<?php

namespace Gigneo\Elementor\Widgets;

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

use Elementor\Controls_Manager;
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\Widget_Base;
use Gigneo\Modules;

/**
 * Gigneo Elementor Service_Archive Widget
 *
 * @since 0.0.1
 */
class Service_Archive extends Widget_Base {


	/**
	 * Get widget unique name.
	 *
	 * @return string
	 */
	public function get_name() {
		return 'gigneo-service-archive';
	}

	/**
	 * Get widget title.
	 *
	 * @return string
	 */
	public function get_title() {
		return esc_html__( 'Service Archive', 'gigneo' );
	}

	/**
	 * Get widget icon.
	 *
	 * @return string
	 */
	public function get_icon() {
		return 'eicon-posts-grid gn-label';
	}

	/**
	 * Get widget categories.
	 *
	 * @return array
	 */
	public function get_categories() {
		return array( 'gigneo-widgets' );
	}

	/**
	 * Get widget keywords.
	 *
	 * @return array
	 */
	public function get_keywords() {
		return array( 'service', 'archive' );
	}

	/**
	 * Register widget controls.
	 */
	protected function register_controls() {
		//Content tab controls
		$this->content_tab_controls();

		//Style tab controls
		$this->style_tab_controls();
	}

	protected function content_tab_controls() {
		$this->start_controls_section(
			'section_general',
			array(
				'label' => esc_html__( 'General', 'gigneo' ),
			)
		);

		$this->add_control(
			'show_input_fields',
			array(
				'label'        => esc_html__( 'Search Field', 'gigneo' ),
				'type'         => Controls_Manager::SELECT,
				'default'      => 'both',
				'options'      => array(
					'none'     => esc_html__( 'None', 'gigneo' ),
					'both'     => esc_html__( 'Both', 'gigneo' ),
					'search'   => esc_html__( 'Keyword only', 'gigneo' ),
					'location' => esc_html__( 'Location only', 'gigneo' ),
				),
				'prefix_class' => 'gn-search-field-',
			)
		);

		$this->add_control(
			'hide_filters',
			array(
				'label'        => esc_html__( 'Hide Filters', 'gigneo' ),
				'type'         => Controls_Manager::SWITCHER,
				'label_on'     => esc_html__( 'Yes', 'gigneo' ),
				'label_off'    => esc_html__( 'No', 'gigneo' ),
				'return_value' => 'yes',
				'default'      => '',
				'selectors'    => array(
					'{{WRAPPER}} .gn-archive-filter-wrapper' => 'display: none;',
				),
			)
		);


		
		$this->add_control(
			'per_page',
			array(
				'label'   => esc_html__( 'Per Page', 'gigneo' ),
				'type'    => Controls_Manager::NUMBER,
				'default' => 10,
				'min'     => 1,
				'max'     => 100,
				'step'    => 1,
			)
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_filters',
			array(
				'label'     => esc_html__( 'Filters', 'gigneo' ),
				'condition' => array(
					'hide_filters!' => 'yes',
				),
			)
		);

		$this->add_control(
			'hide_categories',
			array(
				'label'        => esc_html__( 'Hide Categories', 'gigneo' ),
				'type'         => Controls_Manager::SWITCHER,
				'label_on'     => esc_html__( 'Yes', 'gigneo' ),
				'label_off'    => esc_html__( 'No', 'gigneo' ),
				'return_value' => 'yes',
				'default'      => '',
				'selectors'    => array(
					'{{WRAPPER}} .gn-categories-filter-dropdown' => 'display: none;',
				),
			)
		);

		$this->add_control(
			'hide_skills',
			array(
				'label'        => esc_html__( 'Hide Skills', 'gigneo' ),
				'type'         => Controls_Manager::SWITCHER,
				'label_on'     => esc_html__( 'Yes', 'gigneo' ),
				'label_off'    => esc_html__( 'No', 'gigneo' ),
				'return_value' => 'yes',
				'default'      => '',
				'selectors'    => array(
					'{{WRAPPER}} .gn-skills-filter-dropdown' => 'display: none;',
				),
			)
		);

		$this->add_control(
			'hide_price',
			array(
				'label'        => esc_html__( 'Hide Price', 'gigneo' ),
				'type'         => Controls_Manager::SWITCHER,
				'label_on'     => esc_html__( 'Yes', 'gigneo' ),
				'label_off'    => esc_html__( 'No', 'gigneo' ),
				'return_value' => 'yes',
				'default'      => '',
				'selectors'    => array(
					'{{WRAPPER}} .gn-price-filter-dropdown' => 'display: none;',
				),
			)
		);

		$this->add_control(
			'hide_type',
			array(
				'label'        => esc_html__( 'Hide Type', 'gigneo' ),
				'type'         => Controls_Manager::SWITCHER,
				'label_on'     => esc_html__( 'Yes', 'gigneo' ),
				'label_off'    => esc_html__( 'No', 'gigneo' ),
				'return_value' => 'yes',
				'default'      => '',
				'selectors'    => array(
					'{{WRAPPER}} .gn-type-filter-dropdown' => 'display: none;',
				),
			)
		);

		$this->add_control(
			'hide_delivery',
			array(
				'label'        => esc_html__( 'Hide Delivery', 'gigneo' ),
				'type'         => Controls_Manager::SWITCHER,
				'label_on'     => esc_html__( 'Yes', 'gigneo' ),
				'label_off'    => esc_html__( 'No', 'gigneo' ),
				'return_value' => 'yes',
				'default'      => '',
				'selectors'    => array(
					'{{WRAPPER}} .gn-delivery-filter-dropdown' => 'display: none;',
				),
			)
		);

		$this->add_control(
			'hide_rating',
			array(
				'label'        => esc_html__( 'Hide Rating', 'gigneo' ),
				'type'         => Controls_Manager::SWITCHER,
				'label_on'     => esc_html__( 'Yes', 'gigneo' ),
				'label_off'    => esc_html__( 'No', 'gigneo' ),
				'return_value' => 'yes',
				'default'      => '',
				'selectors'    => array(
					'{{WRAPPER}} .gn-ratings-filter-dropdown' => 'display: none;',
				),
			)
		);

		$this->add_control(
			'hide_more_filters',
			array(
				'label'        => esc_html__( 'Hide More Filters', 'gigneo' ),
				'type'         => Controls_Manager::SWITCHER,
				'label_on'     => esc_html__( 'Yes', 'gigneo' ),
				'label_off'    => esc_html__( 'No', 'gigneo' ),
				'return_value' => 'yes',
				'default'      => '',
				'selectors'    => array(
					'{{WRAPPER}} .gn-more-filter-dropdown' => 'display: none;',
				),
			)
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_listing',
			array(
				'label' => esc_html__( 'Listing', 'gigneo' ),
			)
		);

		$this->add_control(
			'hide_result_count',
			array(
				'label'        => esc_html__( 'Hide Result Count', 'gigneo' ),
				'type'         => Controls_Manager::SWITCHER,
				'label_on'     => esc_html__( 'Yes', 'gigneo' ),
				'label_off'    => esc_html__( 'No', 'gigneo' ),
				'return_value' => 'yes',
				'default'      => '',
				'selectors'    => array(
					'{{WRAPPER}} .gn-result-count' => 'display: none;',
				),
			)
		);

		$this->add_control(
			'hide_sort',
			array(
				'label'        => esc_html__( 'Hide Sort By', 'gigneo' ),
				'type'         => Controls_Manager::SWITCHER,
				'label_on'     => esc_html__( 'Yes', 'gigneo' ),
				'label_off'    => esc_html__( 'No', 'gigneo' ),
				'return_value' => 'yes',
				'default'      => '',
				'selectors'    => array(
					'{{WRAPPER}} .gn-archive-sort' => 'display: none;',
				),
			)
		);

		$this->add_responsive_control(
			'items_per_row',
			array(
				'type'           => Controls_Manager::SLIDER,
				'label'          => esc_html__( 'Items Per Row', 'gigneo' ),
				'range'          => array(
					'px' => array(
						'min' => 1,
						'max' => 6,
					),
				),
				'default'        => array(
					'size' => apply_filters( 'gigneo_archive_items_per_row_default', 3 ),
				),
				'tablet_default' => array(
					'size' => 2,
				),
				'mobile_default' => array(
					'size' => 1,
				),
				'selectors'      => array(
					'{{WRAPPER}} .gn-service-archive-main:has(.gn-service-card)' => 'grid-template-columns: repeat({{SIZE}}, 1fr);',
				),
			)
		);

		$this->add_responsive_control(
			'items_spacing',
			array(
				'type'       => Controls_Manager::SLIDER,
				'label'      => esc_html__( 'Items Spacing', 'gigneo' ),
				'size_units' => array( 'px', '%', 'em', 'rem', 'custom' ),
				'default'    => array(
					'size' => 15,
					'unit' => 'px',
				),
				'selectors'  => array(
					'{{WRAPPER}} .gn-service-archive-main:has(.gn-service-card)' => 'gap: {{SIZE}}{{UNIT}};',
				),
			)
		);

		$this->end_controls_section();
	}

	protected function style_tab_controls() {

		$this->start_controls_section(
			'section_search_style',
			array(
				'label'     => esc_html__( 'Search', 'gigneo' ),
				'tab'       => Controls_Manager::TAB_STYLE,
				'condition' => array(
					'show_input_fields!' => 'none',
				),
			)
		);

		$this->add_responsive_control(
			'search_fields_spacing',
			array(
				'type'       => Controls_Manager::SLIDER,
				'label'      => esc_html__( 'Space Between', 'gigneo' ),
				'size_units' => array( 'px', '%', 'em', 'rem', 'custom' ),
				'range'      => array(
					'px' => array(
						'min'  => 0,
						'max'  => 50,
						'step' => 1,
					),
				),
				'default'    => array(
					'unit' => 'px',
				),
				'selectors'  => array(
					'{{WRAPPER}} .gn-archive-search-wrapper .gn-form-fields' => 'gap: {{SIZE}}{{UNIT}};',
				),
			)
		);

		$this->add_responsive_control(
			'search_fields_margin',
			array(
				'label'      => esc_html__( 'Margin', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%', 'em', 'rem', 'vw', 'custom' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-archive-search-wrapper' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}',
				),
			)
		);

		$this->add_responsive_control(
			'search_fields_padding',
			array(
				'label'      => esc_html__( 'Padding', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%', 'em', 'rem', 'vw', 'custom' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-archive-search-wrapper' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}',
				),
			)
		);

		$this->add_control(
			'search_fields_label_heading',
			array(
				'label'     => esc_html__( 'Label', 'gigneo' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			)
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			array(
				'name'     => 'search_fields_label_typo',
				'selector' => '{{WRAPPER}} .gn-archive-search-wrapper .gn-form-fields .gn-form-field label',
			)
		);

		$this->add_control(
			'search_fields_label_text_color',
			array(
				'label'     => esc_html__( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-search-wrapper .gn-form-fields .gn-form-field label' => 'color: {{VALUE}}',
				),
			)
		);

		$this->add_responsive_control(
			'search_fields_label_spacing',
			array(
				'type'       => Controls_Manager::SLIDER,
				'label'      => esc_html__( 'Space Between', 'gigneo' ),
				'size_units' => array( 'px', '%', 'em', 'rem', 'custom' ),
				'range'      => array(
					'px' => array(
						'min'  => 0,
						'max'  => 30,
						'step' => 1,
					),
				),
				'default'    => array(
					'unit' => 'px',
				),
				'selectors'  => array(
					'{{WRAPPER}} .gn-archive-search-wrapper .gn-form-fields .gn-form-field ' => 'gap: {{SIZE}}{{UNIT}};',
				),
			)
		);

		$this->add_control(
			'search_fields_input_heading',
			array(
				'label'     => esc_html__( 'Input', 'gigneo' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			)
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			array(
				'name'     => 'search_fields_input_typo',
				'selector' => '{{WRAPPER}} .gn-archive-search-wrapper .gn-form-fields .gn-form-field input,{{WRAPPER}} .gn-archive-search-wrapper .gn-select2-dropdown.select2-container .select2-selection',
			)
		);

		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'     => 'search_fields_input_border',
				'selector' => '{{WRAPPER}} .gn-archive-search-wrapper .gn-form-fields .gn-form-field input,{{WRAPPER}} .gn-archive-search-wrapper .gn-select2-dropdown.select2-container .select2-selection',
			)
		);

		$this->add_responsive_control(
			'search_fields_input_border_radius',
			array(
				'label'      => esc_html__( 'Border Radius', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%', 'em', 'rem', 'custom' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-archive-search-wrapper .gn-form-fields .gn-form-field input,{{WRAPPER}} .gn-archive-search-wrapper .gn-select2-dropdown.select2-container .select2-selection' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->start_controls_tabs(
			'search_fields_input_style_tabs'
		);

		$this->start_controls_tab(
			'search_fields_input_style_normal_tab',
			array(
				'label' => esc_html__( 'Normal', 'gigneo' ),
			)
		);

		$this->add_control(
			'search_fields_input_text_color',
			array(
				'label'     => esc_html__( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-search-wrapper .gn-form-fields .gn-form-field input' => 'color: {{VALUE}}',
					'{{WRAPPER}} .gn-archive-search-wrapper .gn-select2-dropdown.select2-container--default .select2-selection--single .select2-selection__rendered' => 'color: {{VALUE}}',
				),
			)
		);

        $this->add_control(
            'search_fields_input_icon_color',
            array(
                'label'     => esc_html__( 'Icon Color', 'gigneo' ),
                'type'      => Controls_Manager::COLOR,
                'selectors' => array(
                    '{{WRAPPER}} .gn-ele-service-archive-wrapper .gn-search-icon[type=submit] i, .gn-ele-service-archive-wrapper .gn-map-address-wrapper .gn-current-location i, .gn-ele-service-archive-wrapper .gn-select:before' => 'color: {{VALUE}}',
                ),
            )
        );

		$this->add_control(
			'search_fields_input_placeholder_color',
			array(
				'label'     => esc_html__( 'Placeholder Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-search-wrapper .gn-form-fields .gn-form-field input::placeholder' => 'color: {{VALUE}}',
					'{{WRAPPER}} .gn-archive-search-wrapper .gn-select2 .select2-container--default .select2-selection--single .select2-selection__placeholder' => 'color: {{VALUE}}',
				),
			)
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'search_fields_input_style_hover_tab',
			array(
				'label' => esc_html__( 'Hover', 'gigneo' ),
			)
		);

		$this->add_control(
			'search_fields_input_text_hover_color',
			array(
				'label'     => esc_html__( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-search-wrapper .gn-form-fields .gn-form-field input:hover' => 'color: {{VALUE}}',
					'{{WRAPPER}} .gn-archive-search-wrapper .gn-select2-dropdown.select2-container--default .select2-selection--single .select2-selection__rendered:hover' => 'color: {{VALUE}}',
				),
			)
		);

        $this->add_control(
            'search_fields_input_icon_color_hover',
            array(
                'label'     => esc_html__( 'Icon Color', 'gigneo' ),
                'type'      => Controls_Manager::COLOR,
                'selectors' => array(
                    '{{WRAPPER}} .gn-ele-service-archive-wrapper .gn-search:hover .gn-search-icon[type=submit] i, .gn-ele-service-archive-wrapper .gn-map-address-wrapper:hover .gn-current-location i, .gn-ele-service-archive-wrapper .gn-select:hover:before' => 'color: {{VALUE}}',
                ),
            )
        );

		$this->add_control(
			'search_fields_input_placeholder_hover_color',
			array(
				'label'     => esc_html__( 'Placeholder Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-search-wrapper .gn-form-fields .gn-form-field input::placeholder' => 'color: {{VALUE}}',
					'{{WRAPPER}} .gn-archive-search-wrapper .gn-select2 .select2-container--default .select2-selection--single .select2-selection__placeholder' => 'color: {{VALUE}}',
				),
			)
		);

		$this->add_control(
			'search_fields_input_border_hover_color',
			array(
				'label'     => esc_html__( 'Border Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-search-wrapper .gn-form-fields .gn-form-field input:hover' => 'border-color: {{VALUE}}',
					'{{WRAPPER}} .gn-archive-search-wrapper .gn-select2-dropdown.select2-container .select2-selection:hover' => 'border-color: {{VALUE}}',
				),
			)
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'search_fields_input_style_focus_tab',
			array(
				'label' => esc_html__( 'Focus', 'gigneo' ),
			)
		);

		$this->add_control(
			'search_fields_input_text_active_color',
			array(
				'label'     => esc_html__( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-search-wrapper .gn-form-fields .gn-form-field input:focus' => 'color: {{VALUE}}',
					'{{WRAPPER}} .gn-archive-search-wrapper .gn-select2 .gn-select2-dropdown.select2-container:focus .select2-selection--single .select2-selection__rendered:hover' => 'color: {{VALUE}}',
				),
			)
		);

        $this->add_control(
            'search_fields_input_icon_color_focus',
            array(
                'label'     => esc_html__( 'Icon Color', 'gigneo' ),
                'type'      => Controls_Manager::COLOR,
                'selectors' => array(
                    '{{WRAPPER}} .gn-ele-service-archive-wrapper .gn-search:focus .gn-search-icon[type=submit] i, .gn-ele-service-archive-wrapper .gn-map-address-wrapper:focus .gn-current-location i, .gn-ele-service-archive-wrapper .gn-select:hover:before' => 'color: {{VALUE}}',
                ),
            )
        );

		$this->add_control(
			'search_fields_input_placeholder_active_color',
			array(
				'label'     => esc_html__( 'Placeholder Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-search-wrapper .gn-form-fields .gn-form-field input:focus' => 'color: {{VALUE}}',
					'{{WRAPPER}} .gn-archive-search-wrapper .gn-select2 .gn-select2-dropdown.select2-container:focus .select2-selection--single .select2-selection__placeholder' => 'color: {{VALUE}}',
				),
			)
		);

		$this->add_control(
			'search_fields_input_border_active_color',
			array(
				'label'     => esc_html__( 'Border Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-search-wrapper .gn-form-fields .gn-form-field input:focus' => 'border-color: {{VALUE}}',
					'{{WRAPPER}} .gn-archive-search-wrapper .gn-select2-dropdown.select2-container .select2-selection:focus' => 'border-color: {{VALUE}}',
				),
			)
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_control(
			'search_field_select_dropdown_heading',
			array(
				'label'     => esc_html__( 'Select Dropdown', 'gigneo' ),
				'type'      => Controls_Manager::HEADING,
				'condition' => array(
					'show_input_fields!' => 'search',
                    'hide_map'          => 'yes',
				),
				'separator' => 'before',
			)
		);

		$this->add_control(
			'search_field_select_dropdown_background',
			array(
				'label'     => esc_html__( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'condition' => array(
					'show_input_fields!' => 'search',
                    'hide_map'          => 'yes',
				),
				'selectors' => array(
					'.gn-select2-dropdown .gn-service-archive-search-location.select2-dropdown, .gn-select2-dropdown .gn-service-archive-search-location.select2-dropdown .select2-results' => 'background-color: {{VALUE}}',
				),
			)
		);

		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'      => 'search_field_select_dropdown_border',
				'condition' => array(
					'show_input_fields!' => 'search',
                    'hide_map'          => 'yes',
				),
				'selector'  => '{{WRAPPER}} .gn-select2-dropdown .gn-service-archive-search-location.select2-dropdown',
			)
		);

		$this->add_responsive_control(
			'search_field_select_dropdown_border_radius',
			array(
				'label'      => esc_html__( 'Border Radius', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%', 'em', 'rem', 'custom' ),
				'condition'  => array(
					'show_input_fields!' => 'search',
                    'hide_map'          => 'yes',
				),
				'selectors'  => array(
					'{{WRAPPER}} .gn-select2-dropdown .gn-service-archive-search-location.select2-dropdown' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_responsive_control(
			'search_field_select_dropdown_padding',
			array(
				'label'      => esc_html__( 'Padding', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%', 'em', 'rem', 'vw', 'custom' ),
				'condition'  => array(
					'show_input_fields!' => 'search',
                    'hide_map'          => 'yes',
				),
				'selectors'  => array(
					'{{WRAPPER}} .gn-select2-dropdown .gn-service-archive-search-location.select2-dropdown' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}',
				),
			)
		);

		$this->add_responsive_control(
			'search_field_select_dropdown_margin',
			array(
				'label'      => esc_html__( 'Margin', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%', 'em', 'rem', 'vw', 'custom' ),
				'condition'  => array(
					'show_input_fields!' => 'search',
                    'hide_map'          => 'yes',
				),
				'selectors'  => array(
					'{{WRAPPER}} .gn-select2-dropdown .gn-service-archive-search-location.select2-dropdown' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}',
				),
			)
		);

		$this->add_control(
			'select_dropdown_search_heading',
			array(
				'label'     => esc_html__( 'Dropdown Search', 'gigneo' ),
				'type'      => \Elementor\Controls_Manager::HEADING,
				'condition' => array(
					'show_input_fields!' => 'search',
                    'hide_map'          => 'yes',
				),
				'separator' => 'before',
			)
		);

		$this->add_group_control(
			\Elementor\Group_Control_Typography::get_type(),
			array(
				'name'      => 'select_dropdown_search_typo',
				'condition' => array(
					'show_input_fields!' => 'search',
                    'hide_map'          => 'yes',
				),
				'selector'  => '{{WRAPPER}} .gn-select2-dropdown.select2-container--default .gn-service-archive-search-location .select2-search--dropdown .select2-search__field',
			)
		);

		$this->add_control(
			'select_dropdown_search_text_color',
			array(
				'label'     => esc_html__( 'Text Color', 'gigneo' ),
				'type'      => \Elementor\Controls_Manager::COLOR,
				'condition' => array(
					'show_input_fields!' => 'search',
                    'hide_map'          => 'yes',
				),
				'selectors' => array(
					'{{WRAPPER}} .gn-select2-dropdown.select2-container--default .gn-service-archive-search-location .select2-search--dropdown .select2-search__field' => 'color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'select_dropdown_search_background',
			array(
				'label'     => esc_html__( 'Background Color', 'gigneo' ),
				'type'      => \Elementor\Controls_Manager::COLOR,
				'condition' => array(
					'show_input_fields!' => 'search',
                    'hide_map'          => 'yes',
				),
				'selectors' => array(
					'{{WRAPPER}} .gn-select2-dropdown.select2-container--default .gn-service-archive-search-location .select2-search--dropdown .select2-search__field' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->add_group_control(
			\Elementor\Group_Control_Border::get_type(),
			array(
				'name'      => 'select_dropdown_search_border',
				'condition' => array(
					'show_input_fields!' => 'search',
                    'hide_map'          => 'yes',
				),
				'selector'  => '{{WRAPPER}} .gn-select2-dropdown.select2-container--default .gn-service-archive-search-location .select2-search--dropdown .select2-search__field',
			)
		);

		$this->add_responsive_control(
			'select_dropdown_search_border_radius',
			array(
				'label'      => esc_html__( 'Border Radius', 'gigneo' ),
				'type'       => \Elementor\Controls_Manager::DIMENSIONS,
				'condition'  => array(
					'show_input_fields!' => 'search',
                    'hide_map'          => 'yes',
				),
				'size_units' => array( 'px', '%', 'em', 'rem' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-select2-dropdown.select2-container--default .gn-service-archive-search-location .select2-search--dropdown .select2-search__field' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_control(
			'select_dropdown_option_heading',
			array(
				'label'     => esc_html__( 'Dropdown Options', 'gigneo' ),
				'type'      => Controls_Manager::HEADING,
				'condition' => array(
					'show_input_fields!' => 'search',
                    'hide_map'          => 'yes',
				),
				'separator' => 'before',
			)
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			array(
				'name'      => 'select_dropdown_option_typography',
				'condition' => array(
					'show_input_fields!' => 'search',
                    'hide_map'          => 'yes',
				),
				'selector'  => '.gn-select2-dropdown .gn-service-archive-search-location .select2-results__option',
			)
		);

		$this->add_responsive_control(
			'select_dropdown_option_option_spacing',
			array(
				'label'      => esc_html__( 'Space Between', 'gigneo' ),
				'type'       => Controls_Manager::SLIDER,
				'size_units' => array( 'px', 'em' ),
				'range'      => array(
					'px' => array(
						'min' => 0,
						'max' => 15,
					),
					'em' => array(
						'min' => 0,
						'max' => 5,
					),
				),
				'condition'  => array(
					'show_input_fields!' => 'search',
                    'hide_map'          => 'yes',
				),
				'selectors'  => array(
					'.gn-select2-dropdown .gn-service-archive-search-location .select2-results__option + .select2-results__option' =>
						'margin-top: {{SIZE}}{{UNIT}};',
				),
			)
		);

		$this->start_controls_tabs( 'select_dropdown_option_tabs' );

		$this->start_controls_tab(
			'select_dropdown_option_normal',
			array( 'label' => esc_html__( 'Normal', 'gigneo' ),
                'condition' => array(
                    'show_input_fields!' => 'search',
                    'hide_map'          => 'yes',
                ),
            )
		);

		$this->add_control(
			'select_dropdown_option_color',
			array(
				'label'     => esc_html__( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'condition' => array(
					'show_input_fields!' => 'search',
                    'hide_map'          => 'yes',
				),
				'selectors' => array(
					'.gn-select2-dropdown .gn-service-archive-search-location .select2-results__option' => 'color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'select_dropdown_option_background_color',
			array(
				'label'     => esc_html__( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'condition' => array(
					'show_input_fields!' => 'search',
                    'hide_map'          => 'yes',
				),
				'selectors' => array(
					'.gn-select2-dropdown .gn-service-archive-search-location .select2-results__option' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'select_dropdown_option_hover',
			array( 'label' => esc_html__( 'Hover', 'gigneo' ),
                    'condition' => array(
                    'show_input_fields!' => 'search',
                    'hide_map'          => 'yes',
                ),
            )
		);

		$this->add_control(
			'select_dropdown_option_text_color_hover',
			array(
				'label'     => esc_html__( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'condition' => array(
					'show_input_fields!' => 'search',
                    'hide_map'          => 'yes',
				),
				'selectors' => array(
					'.gn-select2-dropdown.select2-container--default .gn-service-archive-search-location .select2-results__option--highlighted[aria-selected]' => 'color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'select_dropdown_option_background_color_hover',
			array(
				'label'     => esc_html__( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'condition' => array(
					'show_input_fields!' => 'search',
                    'hide_map'          => 'yes',
				),
				'selectors' => array(
					'.gn-select2-dropdown.select2-container--default .gn-service-archive-search-location .select2-results__option--highlighted[aria-selected]' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'select_dropdown_option_border_color_hover',
			array(
				'label'     => esc_html__( 'Border Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'condition' => array(
					'show_input_fields!' => 'search',
                    'hide_map'          => 'yes',
				),
				'selectors' => array(
					'.gn-select2-dropdown.select2-container--default .gn-service-archive-search-location .select2-results__option--highlighted[aria-selected]' => 'border-color: {{VALUE}};',
				),
			)
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'select_dropdown_option_active',
			array( 'label' => esc_html__( 'Active', 'gigneo' ),
                'condition' => array(
                    'show_input_fields!' => 'search',
                    'hide_map'          => 'yes',
                ),
            )
		);

		$this->add_control(
			'select_dropdown_option_color_active',
			array(
				'label'     => esc_html__( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'condition' => array(
					'show_input_fields!' => 'search',
                    'hide_map'          => 'yes',
				),
				'selectors' => array(
					'.gn-select2-dropdown.select2-container--default .gn-service-archive-search-location .select2-results__option[aria-selected=true]' => 'color: {{VALUE}}; opacity: 1;',
				),
			)
		);

		$this->add_control(
			'select_dropdown_option_background_color_active',
			array(
				'label'     => esc_html__( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'condition' => array(
					'show_input_fields!' => 'search',
                    'hide_map'          => 'yes',
				),
				'selectors' => array(
					'.gn-select2-dropdown.select2-container--default .gn-service-archive-search-location .select2-results__option[aria-selected=true]' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'select_dropdown_option_border_color_active',
			array(
				'label'     => esc_html__( 'Border Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'condition' => array(
					'show_input_fields!' => 'search',
                    'hide_map'          => 'yes',
				),
				'selectors' => array(
					'.gn-select2-dropdown.select2-container--default .gn-service-archive-search-location .select2-results__option[aria-selected=true]' => 'border-color: {{VALUE}};',
				),
			)
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'      => 'select_dropdown_option_border',
				'separator' => 'before',
				'condition' => array(
					'show_input_fields!' => 'search',
                    'hide_map'          => 'yes',
				),
				'selector'  => '.gn-select2-dropdown .gn-service-archive-search-location .select2-results__option',
			)
		);

		$this->add_responsive_control(
			'select_dropdown_option_border_radius',
			array(
				'label'      => esc_html__( 'Border Radius', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'condition'  => array(
					'show_input_fields!' => 'search',
                    'hide_map'          => 'yes',
				),
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'.gn-select2-dropdown .gn-service-archive-search-location .select2-results__option' =>
						'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_responsive_control(
			'select_dropdown_option_padding',
			array(
				'label'      => esc_html__( 'Padding', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'condition'  => array(
					'show_input_fields!' => 'search',
                    'hide_map'          => 'yes',
				),
				'size_units' => array( 'px', 'em', '%' ),
				'selectors'  => array(
					'.gn-select2-dropdown .gn-service-archive-search-location .select2-results__option' =>
						'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_control(
			'submit_button_heading',
			array(
				'label'     => esc_html__( 'Submit Button', 'gigneo' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
				'condition' => array(
					'show_input_fields!' => 'location',
				),
			)
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			array(
				'name'      => 'submit_button_typography',
				'label'     => esc_html__( 'Typography', 'gigneo' ),
				'condition' => array(
					'show_input_fields!' => 'location',
				),
				'selector'  => '{{WRAPPER}} .gn-archive-search-wrapper .gn-form-fields > .gn-btn',
			)
		);

		$this->add_responsive_control(
			'submit_button_space_between',
			array(
				'label'      => esc_html__( 'Space Between', 'gigneo' ),
				'type'       => Controls_Manager::SLIDER,
				'size_units' => array( 'px', '%', 'em' ),
				'range'      => array(
					'px' => array(
						'min' => 0,
						'max' => 30,
					),
				),
				'condition'  => array(
					'show_input_fields!' => 'location',
				),
				'selectors'  => array(
					'{{WRAPPER}} .gn-archive-search-wrapper .gn-form-fields > .gn-btn' => 'gap: {{SIZE}}{{UNIT}};',
				),
			)
		);

		$this->start_controls_tabs( 'submit_button_style_tabs' );

		$this->start_controls_tab(
			'submit_button_normal',
			array( 'label' => esc_html__( 'Normal', 'gigneo' ) )
		);

		$this->add_control(
			'submit_button_text_color',
			array(
				'label'     => esc_html__( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'condition' => array(
					'show_input_fields!' => 'location',
				),
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-search-wrapper .gn-form-fields > .gn-btn' => 'color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'submit_button_background',
			array(
				'label'     => esc_html__( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'condition' => array(
					'show_input_fields!' => 'location',
				),
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-search-wrapper .gn-form-fields > .gn-btn' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'      => 'submit_button_box_shadow',
				'condition' => array(
					'show_input_fields!' => 'location',
				),
				'selector'  => '{{WRAPPER}} .gn-archive-search-wrapper .gn-form-fields > .gn-btn',
			)
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'submit_button_hover',
			array( 'label' => esc_html__( 'Hover', 'gigneo' ) )
		);

		$this->add_control(
			'submit_button_color_hover',
			array(
				'label'     => esc_html__( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'condition' => array(
					'show_input_fields!' => 'location',
				),
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-search-wrapper .gn-form-fields > .gn-btn:hover' => 'color: {{VALUE}}; fill: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'submit_button_background_hover',
			array(
				'label'     => esc_html__( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'condition' => array(
					'show_input_fields!' => 'location',
				),
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-search-wrapper .gn-form-fields > .gn-btn:hover' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'submit_button_border_color_hover',
			array(
				'label'     => __( 'Border Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'condition' => array(
					'show_input_fields!' => 'location',
				),
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-search-wrapper .gn-form-fields > .gn-btn:hover' => 'border-color: {{VALUE}};',
				),
			)
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'      => 'submit_button_box_shadow_hover',
				'condition' => array(
					'show_input_fields!' => 'location',
				),
				'selector'  => '{{WRAPPER}} .gn-archive-search-wrapper .gn-form-fields > .gn-btn:hover',
			)
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'submit_button_focus',
			array( 'label' => esc_html__( 'Focus', 'gigneo' ) )
		);

		$this->add_control(
			'submit_button_color_focus',
			array(
				'label'     => esc_html__( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'condition' => array(
					'show_input_fields!' => 'location',
				),
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-search-wrapper .gn-form-fields > .gn-btn:focus' => 'color: {{VALUE}}; fill: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'submit_button_background_focus',
			array(
				'label'     => esc_html__( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'condition' => array(
					'show_input_fields!' => 'location',
				),
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-search-wrapper .gn-form-fields > .gn-btn:focus' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'submit_button_border_focus',
			array(
				'label'     => __( 'Border Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'condition' => array(
					'show_input_fields!' => 'location',
				),
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-search-wrapper .gn-form-fields > .gn-btn:focus' => 'border-color: {{VALUE}};',
				),
			)
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'      => 'submit_button_box_shadow_focus',
				'condition' => array(
					'show_input_fields!' => 'location',
				),
				'selector'  => '{{WRAPPER}} .gn-archive-search-wrapper .gn-form-fields > .gn-btn:focus',
			)
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'      => 'submit_button_border',
				'separator' => 'before',
				'condition' => array(
					'show_input_fields!' => 'location',
				),
				'selector'  => '{{WRAPPER}} .gn-archive-search-wrapper .gn-form-fields > .gn-btn',
			)
		);

		$this->add_responsive_control(
			'submit_button_border_radius',
			array(
				'label'      => esc_html__( 'Border Radius', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'condition'  => array(
					'show_input_fields!' => 'location',
				),
				'selectors'  => array(
					'{{WRAPPER}} .gn-archive-search-wrapper .gn-form-fields > .gn-btn' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_responsive_control(
			'submit_button_padding',
			array(
				'label'      => esc_html__( 'Padding', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', 'em', '%' ),
				'condition'  => array(
					'show_input_fields!' => 'location',
				),
				'selectors'  => array(
					'{{WRAPPER}} .gn-archive-search-wrapper .gn-form-fields > .gn-btn' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_responsive_control(
			'submit_button_margin',
			array(
				'label'      => esc_html__( 'Margin', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', 'em', '%' ),
				'condition'  => array(
					'show_input_fields!' => 'location',
				),
				'selectors'  => array(
					'{{WRAPPER}} .gn-archive-search-wrapper .gn-form-fields > .gn-btn' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_filters_style',
			array(
				'label'     => esc_html__( 'Filters', 'gigneo' ),
				'tab'       => Controls_Manager::TAB_STYLE,
				'condition' => array(
					'hide_filters!' => 'yes',
				),
			)
		);

		$this->add_responsive_control(
			'filters_space_between',
			array(
				'label'      => esc_html__( 'Space Between', 'gigneo' ),
				'type'       => Controls_Manager::SLIDER,
				'size_units' => array( 'px', '%', 'em' ),
				'range'      => array(
					'px' => array(
						'min' => 0,
						'max' => 30,
					),
				),
				'selectors'  => array(
					'{{WRAPPER}} .gn-archive-filters > .gn-body, .gn-archive-filters > .gn-body .gn-filters-actions' => 'gap: {{SIZE}}{{UNIT}};',
				),
			)
		);

		$this->add_responsive_control(
			'filters_padding',
			array(
				'label'      => esc_html__( 'Padding', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', 'em', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-archive-filters-wrapper .gn-archive-filter-wrapper' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_responsive_control(
			'filters_margin',
			array(
				'label'      => esc_html__( 'Margin', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', 'em', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-archive-filters-wrapper .gn-archive-filter-wrapper' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_control(
			'clear_filters',
			array(
				'label'     => esc_html__( 'Clear Filters', 'gigneo' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			)
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			array(
				'name'     => 'clear_filters_typography',
				'label'    => esc_html__( 'Typography', 'gigneo' ),
				'selector' => '{{WRAPPER}} .gn-link.gn-clear-filters',
			)
		);

		$this->start_controls_tabs( 'clear_filters_style_tabs' );

		$this->start_controls_tab(
			'clear_filters_normal',
			array( 'label' => esc_html__( 'Normal', 'gigneo' ) )
		);

		$this->add_control(
			'clear_filters_text_color',
			array(
				'label'     => esc_html__( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-link.gn-clear-filters' => 'color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'clear_filters_background',
			array(
				'label'     => esc_html__( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-link.gn-clear-filters' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'clear_filters_box_shadow',
				'selector' => '{{WRAPPER}} .gn-link.gn-clear-filters',
			)
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'clear_filters_hover',
			array( 'label' => esc_html__( 'Hover', 'gigneo' ) )
		);

		$this->add_control(
			'clear_filters_text_color_hover',
			array(
				'label'     => __( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-link.gn-clear-filters:hover' => 'color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'clear_filters_background_hover',
			array(
				'label'     => esc_html__( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-link.gn-clear-filters:hover' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'clear_filters_border_color_hover',
			array(
				'label'     => __( 'Border Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-link.gn-clear-filters:hover' => 'border-color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'clear_filter_under_line_color_hover',
			array(
				'label'     => esc_html__( 'Underline Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-link.gn-link-primary:hover:after' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'clear_filters_box_shadow_hover',
				'selector' => '{{WRAPPER}} .gn-link.gn-clear-filters:hover',
			)
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'clear_filters_focus',
			array( 'label' => esc_html__( 'Focus', 'gigneo' ) )
		);

		$this->add_control(
			'clear_filters_text_color_focus',
			array(
				'label'     => __( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-link.gn-clear-filters:focus' => 'color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'clear_filters_background_focus',
			array(
				'label'     => esc_html__( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-link.gn-clear-filters:focus' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'clear_filters_border_focus',
			array(
				'label'     => __( 'Border Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-link.gn-clear-filters:focus' => 'border-color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'clear_filter_underline_line_color_focus',
			array(
				'label'     => esc_html__( 'Underline Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-link.gn-link-primary:focus:after' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'clear_filters_box_shadow_focus',
				'selector' => '{{WRAPPER}} .gn-link.gn-clear-filters:focus',
			)
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'      => 'clear_filters_border',
				'separator' => 'before',
				'selector'  => '{{WRAPPER}} .gn-link.gn-clear-filters',
			)
		);

		$this->add_responsive_control(
			'clear_filters__border_radius',
			array(
				'label'      => esc_html__( 'Border Radius', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-link.gn-clear-filters' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_responsive_control(
			'clear_filters_padding',
			array(
				'label'      => esc_html__( 'Padding', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', 'em', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-link.gn-clear-filters' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_responsive_control(
			'clear_filters_margin',
			array(
				'label'      => esc_html__( 'Margin', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', 'em', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-link.gn-clear-filters' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_control(
			'filters_toggle',
			array(
				'label'     => esc_html__( 'Filters Toggle', 'gigneo' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			)
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			array(
				'name'     => 'filters_toggle_typography',
				'label'    => esc_html__( 'Typography', 'gigneo' ),
				'selector' => '{{WRAPPER}} .gn-btn.gn-filter-dropdown-toggle',
			)
		);

		$this->add_responsive_control(
			'filters_toggle_space_between',
			array(
				'label'      => esc_html__( 'Space Between', 'gigneo' ),
				'type'       => Controls_Manager::SLIDER,
				'size_units' => array( 'px', '%', 'em' ),
				'range'      => array(
					'px' => array(
						'min' => 0,
						'max' => 30,
					),
				),
				'selectors'  => array(
					'{{WRAPPER}} .gn-btn.gn-filter-dropdown-toggle' => 'gap: {{SIZE}}{{UNIT}};',
				),
			)
		);

		$this->start_controls_tabs( 'filters_toggle_style_tabs' );

		$this->start_controls_tab(
			'filters_toggle_normal',
			array( 'label' => esc_html__( 'Normal', 'gigneo' ) )
		);

		$this->add_control(
			'filters_toggle_color',
			array(
				'label'     => esc_html__( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-btn.gn-filter-dropdown-toggle' => 'color: {{VALUE}};',
					'{{WRAPPER}} .gn-more-filter-dropdown .gn-btn i svg path' => 'stroke: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'filters_toggle_background',
			array(
				'label'     => esc_html__( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-btn.gn-filter-dropdown-toggle' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'filters_toggle_box_shadow',
				'selector' => '{{WRAPPER}} .gn-btn.gn-filter-dropdown-toggle',
			)
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'filters_toggle_hover',
			array( 'label' => esc_html__( 'Hover', 'gigneo' ) )
		);

		$this->add_control(
			'filters_toggle_color_hover',
			array(
				'label'     => esc_html__( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-btn.gn-filter-dropdown-toggle:hover' => 'color: {{VALUE}};',
					'{{WRAPPER}} .gn-more-filter-dropdown .gn-btn:hover i svg path' => 'stroke: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'filters_toggle_background_hover',
			array(
				'label'     => esc_html__( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-btn.gn-filter-dropdown-toggle:hover' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'filters_toggle_border_color_hover',
			array(
				'label'     => __( 'Border Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-btn.gn-filter-dropdown-toggle:hover' => 'border-color: {{VALUE}};',
				),
			)
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'filters_toggle_box_shadow_hover',
				'selector' => '{{WRAPPER}} .gn-btn.gn-filter-dropdown-toggle:hover',
			)
		);

		$this->end_controls_tab();

		/* --- Focus --- */
		$this->start_controls_tab(
			'filters_toggle_focus',
			array( 'label' => esc_html__( 'Focus', 'gigneo' ) )
		);

		$this->add_control(
			'filters_toggle_color_focus',
			array(
				'label'     => esc_html__( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-btn.gn-filter-dropdown-toggle:focus' => 'color: {{VALUE}};',
					'{{WRAPPER}} .gn-more-filter-dropdown .gn-btn:focus i svg path' => 'stroke: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'filters_toggle_background_focus',
			array(
				'label'     => esc_html__( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-btn.gn-filter-dropdown-toggle:focus' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'filters_toggle_border_focus',
			array(
				'label'     => __( 'Border Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-btn.gn-filter-dropdown-toggle:focus' => 'border-color: {{VALUE}};',
				),
			)
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'filters_toggle_box_shadow_focus',
				'selector' => '{{WRAPPER}} .gn-btn.gn-filter-dropdown-toggle:focus',
			)
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'      => 'filters_toggle_border',
				'separator' => 'before',
				'selector'  => '{{WRAPPER}} .gn-btn.gn-filter-dropdown-toggle',
			)
		);

		$this->add_responsive_control(
			'filters_toggle_border_radius',
			array(
				'label'      => esc_html__( 'Border Radius', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-btn.gn-filter-dropdown-toggle' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_responsive_control(
			'filters_toggle_padding',
			array(
				'label'      => esc_html__( 'Padding', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', 'em', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-btn.gn-filter-dropdown-toggle' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_responsive_control(
			'filters_toggle_margin',
			array(
				'label'      => esc_html__( 'Margin', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', 'em', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-btn.gn-filter-dropdown-toggle' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_control(
			'filters_toggle_dropdown',
			array(
				'label'     => esc_html__( 'Filters Dropdown', 'gigneo' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			)
		);

        $this->add_group_control(
            Group_Control_Typography::get_type(),
            array(
                'name'     => 'filters_toggle_dropdown_typography',
                'label'    => esc_html__( 'Typography', 'gigneo' ),
                'selector' => '{{WRAPPER}} .gn-ele-service-archive-wrapper .gn-filter-dropdown .gn-form-field > label, {{WRAPPER}} .gn-ele-service-archive-wrapper .gn-filter-dropdown .gn-form-field .gn-field-label',
            )
        );

        $this->add_control(
            'filters_toggle_dropdown_text_color',
            array(
                'label'     => esc_html__( 'Text Color', 'gigneo' ),
                'type'      => Controls_Manager::COLOR,
                'selectors' => array(
                    '{{WRAPPER}} .gn-ele-service-archive-wrapper .gn-filter-dropdown .gn-form-field > label, {{WRAPPER}} .gn-ele-service-archive-wrapper .gn-filter-dropdown .gn-form-field .gn-field-label' => 'color: {{VALUE}} !important;',
                ),
            )
        );

        $this->add_group_control(
            Group_Control_Background::get_type(),
            array(
                'name'     => 'filters_toggle_dropdown_background',
                'types'    => array( 'classic', 'gradient' ),
                'exclude'  => array( 'image' ), // phpcs:ignore WordPressVIPMinimum.Performance.WPQueryParams.PostNotIn_exclude
                'selector' => '{{WRAPPER}} .gn-filter-dropdown-container .gn-filter-dropdown',
            )
        );

		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'     => 'filters_toggle_dropdown_border',
				'selector' => '{{WRAPPER}} .gn-filter-dropdown-container .gn-filter-dropdown',
			)
		);

		$this->add_responsive_control(
			'filters_toggle_dropdown_border_radius',
			array(
				'label'      => esc_html__( 'Border Radius', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-filter-dropdown-container .gn-filter-dropdown' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_responsive_control(
			'filters_toggle_dropdown_padding',
			array(
				'label'      => esc_html__( 'Padding', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', 'em', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-filter-dropdown-container .gn-filter-dropdown>.gn-body' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_responsive_control(
			'filters_toggle_dropdown_margin',
			array(
				'label'      => esc_html__( 'Margin', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', 'em', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-filter-dropdown-container .gn-filter-dropdown' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_control(
			'filters_toggle_dropdown_checkbox',
			array(
				'label'     => esc_html__( 'Checkbox', 'gigneo' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			)
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			array(
				'name'     => 'filters_toggle_dropdown_checkbox_label_typography',
				'label'    => esc_html__( 'Typography', 'gigneo' ),
				'selector' => '{{WRAPPER}} .gn-filter-dropdown-container .gn-filter-dropdown .gn-checkbox label',
			)
		);

		$this->add_control(
			'filters_toggle_dropdown_checkbox_label_color',
			array(
				'label'     => esc_html__( 'Label Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-filter-dropdown-container .gn-filter-dropdown .gn-checkbox label' => 'color: {{VALUE}};',
				),
			)
		);

		$this->add_responsive_control(
			'filters_toggle_dropdown_checkbox_size',
			array(
				'label'      => __( 'Size', 'gigneo' ),
				'type'       => \Elementor\Controls_Manager::SLIDER,
				'size_units' => array( 'px', '%', 'em' ),
				'range'      => array(
					'px' => array(
						'min'  => 10,
						'max'  => 30,
						'step' => 1,
					),
				),
				'selectors'  => array(
					'{{WRAPPER}} .gn-checkbox label:before, .gn-checkbox label:after' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}}; font-size: calc({{SIZE}}{{UNIT}} - 4px);',
				),
			)
		);

		$this->add_responsive_control(
			'filters_toggle_dropdown_checkbox_space_between',
			array(
				'label'      => esc_html__( 'Space Between', 'gigneo' ),
				'type'       => Controls_Manager::SLIDER,
				'size_units' => array( 'px', '%', 'em' ),
				'range'      => array(
					'px' => array(
						'min' => 0,
						'max' => 30,
					),
				),
				'selectors'  => array(
					'{{WRAPPER}} .gn-filter-dropdown-container .gn-filter-dropdown .gn-checkbox label' => 'gap: {{SIZE}}{{UNIT}};',
				),
			)
		);

		$this->start_controls_tabs( 'filters_toggle_dropdown_checkbox_tabs' );

		$this->start_controls_tab(
			'filters_toggle_dropdown_checkbox_tab',
			array( 'label' => esc_html__( 'Unchecked', 'gigneo' ) )
		);

		$this->add_control(
			'filters_toggle_dropdown_checkbox_background_color',
			array(
				'label'     => __( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-checkbox label:before' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'filters_toggle_dropdown_checkbox_border_color',
			array(
				'label'     => esc_html__( 'Border Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-checkbox label:before' => 'border-color: {{VALUE}};',
				),
			)
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'filters_toggle_dropdown_checkbox_secondary_tab',
			array( 'label' => esc_html__( 'Checked', 'gigneo' ) )
		);

		$this->add_control(
			'filters_toggle_dropdown_checkbox_secondary_icon_color',
			array(
				'label'     => esc_html__( 'Icon Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-checkbox label:after' => 'color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'filters_toggle_dropdown_checkbox_secondary_label_color',
			array(
				'label'     => esc_html__( 'Label Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-filter-dropdown-container .gn-filter-dropdown .gn-checkbox input[type=checkbox]:checked+label' => 'color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'filters_toggle_dropdown_checkbox_secondary_background_color',
			array(
				'label'     => __( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-checkbox input[type=checkbox]:checked+label::before' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'filters_toggle_dropdown_checkbox_secondary_border_color',
			array(
				'label'     => esc_html__( 'Border Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-checkbox input[type=checkbox]:checked+label::before' => 'border-color: {{VALUE}};',
				),
			)
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_control(
			'filters_toggle_dropdown_radio',
			array(
				'label'     => esc_html__( 'Radio', 'gigneo' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			)
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			array(
				'name'     => 'filters_toggle_dropdown_radio_label_typo',
				'label'    => esc_html__( 'Typography', 'gigneo' ),
				'selector' => '{{WRAPPER}} .gn-filter-dropdown-container .gn-filter-dropdown .gn-radio label',
			)
		);

		$this->add_control(
			'filters_toggle_dropdown_radio_text_color',
			array(
				'label'     => esc_html__( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-filter-dropdown-container .gn-filter-dropdown .gn-radio label' => 'color: {{VALUE}};',
				),
			)
		);

		$this->add_responsive_control(
			'filters_toggle_dropdown_radio_size',
			array(
				'label'      => esc_html__( 'Size', 'gigneo' ),
				'type'       => Controls_Manager::SLIDER,
				'size_units' => array( 'px', 'em', 'rem' ),
				'range'      => array(
					'px'  => array(
						'min' => 8,
						'max' => 30,
					),
					'em'  => array(
						'min' => 0.5,
						'max' => 3,
					),
					'rem' => array(
						'min' => 0.5,
						'max' => 3,
					),
				),
				'selectors'  => array(
					'{{WRAPPER}} .gn-radio>label::after' => 'height: {{SIZE}}{{UNIT}}; width: {{SIZE}}{{UNIT}};',
					'{{WRAPPER}} .gn-radio:has(input[type="radio"]:checked)>label::before' => 'height: calc({{SIZE}}{{UNIT}} - 10px); width: calc({{SIZE}}{{UNIT}} - 10px);',
				),
			)
		);

		$this->add_responsive_control(
			'filters_toggle_dropdown_radio_space_between',
			array(
				'label'      => esc_html__( 'Space Between', 'gigneo' ),
				'type'       => Controls_Manager::SLIDER,
				'size_units' => array( 'px', '%', 'em' ),
				'range'      => array(
					'px' => array(
						'min' => 0,
						'max' => 30,
					),
				),
				'selectors'  => array(
					'{{WRAPPER}} .gn-filter-dropdown-container .gn-filter-dropdown .gn-radio label' => 'padding-left: {{SIZE}}{{UNIT}};',
				),
			)
		);

		$this->start_controls_tabs( 'filters_toggle_dropdown_radio_tabs' );

		$this->start_controls_tab(
			'filters_toggle_dropdown_radio_unchecked',
			array( 'label' => esc_html__( 'Unchecked', 'gigneo' ) )
		);

		$this->add_control(
			'filters_toggle_dropdown_radio_unchecked_background',
			array(
				'label'     => __( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-radio>label::after' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'filters_toggle_dropdown_radio_unchecked_border_color',
			array(
				'label'     => __( 'Border Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-radio>label::after' => 'border-color: {{VALUE}};',
				),
			)
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'filters_toggle_dropdown_radio_checked',
			array( 'label' => esc_html__( 'Checked', 'gigneo' ) )
		);

		$this->add_control(
			'filters_toggle_dropdown_radio_checked_knob_color',
			array(
				'label'     => __( 'Knob Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-radio:has(input[type="radio"]:checked)>label::before' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'filters_toggle_dropdown_radio_checked_background',
			array(
				'label'     => __( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-radio:has(input[type="radio"]:checked)>label::after' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'filters_toggle_dropdown_radio_checked_border_color',
			array(
				'label'     => __( 'Border Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-radio:has(input[type="radio"]:checked)>label::after' => 'border-color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'filters_toggle_dropdown_radio_checked_label_color',
			array(
				'label'     => esc_html__( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-filter-dropdown-container .gn-filter-dropdown .gn-radio input[type=radio]:checked+label' => 'color: {{VALUE}};',
				),
			)
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

        $this->add_control(
            'filters_toggle_dropdown_range',
            array(
                'label'     => esc_html__( 'Range Slider', 'gigneo' ),
                'type'      => Controls_Manager::HEADING,
                'separator' => 'before',
            )
        );

        $this->add_group_control(
            Group_Control_Box_Shadow::get_type(),
            array(
                'name'     => 'filters_toggle_dropdown_range_slider_box_shadow',
                'label'    => esc_html__( 'Knob Box Shadow', 'gigneo' ),
                'selector' => '{{WRAPPER}} .gn-nouislider .gn-price-range-slider .noUi-handle',
            )
        );

        $this->add_control(
            'filters_toggle_dropdown_range_slider_bg_color',
            array(
                'label'     => esc_html__( 'Background Color', 'gigneo' ),
                'type'      => Controls_Manager::COLOR,
                'selectors' => array( '{{WRAPPER}} .gn-nouislider .gn-price-range-slider.noUi-target' => 'background-color: {{VALUE}};' ),
            )
        );

        $this->add_control(
            'filters_toggle_dropdown_range_slider_bg_color_knob',
            array(
                'label'     => esc_html__( 'Knob Background Color', 'gigneo' ),
                'type'      => Controls_Manager::COLOR,
                'selectors' => array( '{{WRAPPER}} .gn-nouislider .gn-price-range-slider .noUi-handle' => 'background-color: {{VALUE}};' ),
            )
        );

        $this->add_control(
            'filters_toggle_dropdown_range_slider_bg_color_active',
            array(
                'label'     => esc_html__( 'Active Background Color', 'gigneo' ),
                'type'      => Controls_Manager::COLOR,
                'selectors' => array(
                    '{{WRAPPER}} .gn-nouislider .gn-price-range-slider .noUi-connect' => 'background-color: {{VALUE}};',
                    '{{WRAPPER}} .gn-nouislider .gn-price-range-slider .noUi-handle'  => 'border-color: {{VALUE}};',
                ),
            )
        );

        $this->add_responsive_control(
            'filters_toggle_dropdown_range_slider_margin',
            array(
                'label'      => esc_html__( 'Margin', 'gigneo' ),
                'type'       => Controls_Manager::DIMENSIONS,
                'size_units' => array( 'px', 'em', '%' ),
                'selectors'  => array(
                    '{{WRAPPER}} .gn-nouislider .gn-price-range-slider.noUi-target' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
                ),
            )
        );

        $this->add_control(
            'filters_toggle_dropdown_range_input',
            array(
                'label'     => esc_html__( 'Range Input', 'gigneo' ),
                'type'      => Controls_Manager::HEADING,
                'separator' => 'before',
            )
        );

        $this->add_group_control(
            Group_Control_Typography::get_type(),
            array(
                'name'     => 'filters_toggle_dropdown_range_input_typography',
                'selector' => '{{WRAPPER}} .gn-range-display input[type=number]',
            )
        );

        $this->add_group_control(
            Group_Control_Border::get_type(),
            array(
                'name'     => 'filters_toggle_dropdown_range_input_border',
                'selector' => '{{WRAPPER}} .gn-range-display input[type=number]',
            )
        );

        $this->add_responsive_control(
            'filters_toggle_dropdown_range_input_border_radius',
            array(
                'label'      => esc_html__( 'Border Radius', 'gigneo' ),
                'type'       => Controls_Manager::DIMENSIONS,
                'size_units' => array( 'px', '%', 'em', 'rem', 'custom' ),
                'selectors'  => array(
                    '{{WRAPPER}} .gn-range-display input[type=number]' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
                ),
            )
        );

        $this->start_controls_tabs(
            'filters_toggle_dropdown_range_input_tabs'
        );

        $this->start_controls_tab(
            'filters_toggle_dropdown_range_input_normal_tab',
            array(
                'label' => esc_html__( 'Normal', 'gigneo' ),
            )
        );

        $this->add_control(
            'filters_toggle_dropdown_range_input_text_color',
            array(
                'label'     => esc_html__( 'Text Color', 'gigneo' ),
                'type'      => Controls_Manager::COLOR,
                'selectors' => array(
                    '{{WRAPPER}} .gn-range-display input[type=number]' => 'color: {{VALUE}}',
                ),
            )
        );

        $this->add_control(
            'filters_toggle_dropdown_range_input_placeholder_color',
            array(
                'label'     => esc_html__( 'Placeholder Color', 'gigneo' ),
                'type'      => Controls_Manager::COLOR,
                'selectors' => array(
                    '{{WRAPPER}} .gn-range-display input[type=number]::placeholder' => 'color: {{VALUE}}',
                ),
            )
        );

        $this->end_controls_tab();

        $this->start_controls_tab(
            'filters_toggle_dropdown_range_input_hover_tab',
            array(
                'label' => esc_html__( 'Hover', 'gigneo' ),
            )
        );

        $this->add_control(
            'filters_toggle_dropdown_range_input_text_hover_color',
            array(
                'label'     => esc_html__( 'Text Color', 'gigneo' ),
                'type'      => Controls_Manager::COLOR,
                'selectors' => array(
                    '{{WRAPPER}} .gn-range-display input[type=number]:hover' => 'color: {{VALUE}}',
                ),
            )
        );

        $this->add_control(
            'filters_toggle_dropdown_range_input_placeholder_hover_color',
            array(
                'label'     => esc_html__( 'Placeholder Color', 'gigneo' ),
                'type'      => Controls_Manager::COLOR,
                'selectors' => array(
                    '{{WRAPPER}} .gn-range-display input[type=number]::placeholder:hover' => 'color: {{VALUE}}',
                ),
            )
        );

        $this->add_control(
            'filters_toggle_dropdown_range_input_border_hover_color',
            array(
                'label'     => esc_html__( 'Border Color', 'gigneo' ),
                'type'      => Controls_Manager::COLOR,
                'selectors' => array(
                    '{{WRAPPER}} .gn-range-display input[type=number]:hover' => 'border-color: {{VALUE}}',
                ),
            )
        );

        $this->end_controls_tab();

        $this->start_controls_tab(
            'filters_toggle_dropdown_range_input_focus_tab',
            array(
                'label' => esc_html__( 'Focus', 'gigneo' ),
            )
        );

        $this->add_control(
            'filters_toggle_dropdown_range_input_text_active_color',
            array(
                'label'     => esc_html__( 'Text Color', 'gigneo' ),
                'type'      => Controls_Manager::COLOR,
                'selectors' => array(
                    '{{WRAPPER}} .gn-range-display input[type=number]:focus' => 'color: {{VALUE}}',
                ),
            )
        );

        $this->add_control(
            'filters_toggle_dropdown_range_input_placeholder_active_color',
            array(
                'label'     => esc_html__( 'Placeholder Color', 'gigneo' ),
                'type'      => Controls_Manager::COLOR,
                'selectors' => array(
                    '{{WRAPPER}} .gn-range-display input[type=number]::placeholder:focus' => 'color: {{VALUE}}',
                ),
            )
        );

        $this->add_control(
            'filters_toggle_dropdown_range_input_border_active_color',
            array(
                'label'     => esc_html__( 'Border Color', 'gigneo' ),
                'type'      => Controls_Manager::COLOR,
                'selectors' => array(
                    '{{WRAPPER}} .gn-range-display input[type=number]:focus' => 'border-color: {{VALUE}}',
                ),
            )
        );

        $this->end_controls_tab();

        $this->end_controls_tabs();

        $this->add_control(
            'filters_toggle_dropdown_range_label',
            array(
                'label'     => esc_html__( 'Range Label', 'gigneo' ),
                'type'      => Controls_Manager::HEADING,
                'separator' => 'before',
            )
        );

        $this->add_group_control(
            Group_Control_Typography::get_type(),
            array(
                'name'     => 'filters_toggle_dropdown_range_label_typography',
                'selector' => '{{WRAPPER}} .gn-form-fields .gn-form-field .gn-range-min .gn-label, .gn-form-fields .gn-form-field .gn-range-max .gn-label',
            )
        );

        $this->add_control(
            'filters_toggle_dropdown_range_label_text_color',
            array(
                'label'     => esc_html__( 'Text Color', 'gigneo' ),
                'type'      => Controls_Manager::COLOR,
                'selectors' => array(
                    '{{WRAPPER}} .gn-form-fields .gn-form-field .gn-range-min .gn-label, .gn-form-fields .gn-form-field .gn-range-max .gn-label' => 'color: {{VALUE}};',
                ),
            )
        );

        $this->add_responsive_control(
            'filters_toggle_dropdown_range_label_margin',
            array(
                'label'      => esc_html__( 'Margin', 'gigneo' ),
                'type'       => Controls_Manager::DIMENSIONS,
                'size_units' => array( 'px', 'em', '%' ),
                'selectors'  => array(
                    '{{WRAPPER}} .gn-form-fields .gn-form-field .gn-range-min .gn-label, .gn-form-fields .gn-form-field .gn-range-max .gn-label' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
                ),
            )
        );

		$this->add_control(
			'filters_toggle_dropdown_stars',
			array(
				'label'     => esc_html__( 'Stars', 'gigneo' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			)
		);

		$this->add_control(
			'filters_toggle_dropdown_stars_color',
			array(
				'label'     => esc_html__( 'Star Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'default'   => '',
				'selectors' => array(
					'{{WRAPPER}} .gn-ratings-filter-dropdown .gn-filter-dropdown .gn-rating-stars i' => 'color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'filters_toggle_dropdown_stars_filled_color',
			array(
				'label'     => esc_html__( 'Filled Star Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'default'   => '',
				'selectors' => array(
					'{{WRAPPER}} .gn-ratings-filter-dropdown .gn-filter-dropdown .gn-rating-stars i.gn-filled' => 'color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'filters_toggle_dropdown_stars_font_size',
			array(
				'label'      => __( 'Size', 'gigneo' ),
				'type'       => Controls_Manager::SLIDER,
				'size_units' => array( 'px', 'em', '%' ),
				'range'      => array(
					'px' => array(
						'min' => 10,
						'max' => 30,
					),
				),
				'default'    => array(
					'unit' => 'px',
					'size' => 16,
				),
				'selectors'  => array(
					'{{WRAPPER}} .gn-ratings-filter-dropdown .gn-filter-dropdown .gn-rating-stars i' => 'font-size: {{SIZE}}{{UNIT}};',
				),
			)
		);

		$this->add_responsive_control(
			'filters_toggle_dropdown_stars_space_between',
			array(
				'label'      => esc_html__( 'Space Between', 'gigneo' ),
				'type'       => Controls_Manager::SLIDER,
				'size_units' => array( 'px', '%', 'em' ),
				'range'      => array(
					'px' => array(
						'min' => 0,
						'max' => 30,
					),
				),
				'selectors'  => array(
					'{{WRAPPER}} .gn-ratings-filter-dropdown .gn-filter-dropdown .gn-rating-stars' => 'gap: {{SIZE}}{{UNIT}};',
				),
			)
		);

		$this->add_control(
			'filters_toggle_dropdown_switch',
			array(
				'label'     => esc_html__( 'Switch', 'gigneo' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			)
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			array(
				'name'     => 'filters_toggle_dropdown_switch_typography',
				'selector' => '{{WRAPPER}} .gn-more-filter-dropdown .gn-filter-dropdown .gn-form-field .gn-switch>span',
			)
		);

		$this->add_control(
			'filters_toggle_dropdown_switch_text_color',
			array(
				'label'     => esc_html__( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'default'   => '',
				'selectors' => array(
					'{{WRAPPER}} .gn-more-filter-dropdown .gn-filter-dropdown .gn-form-field .gn-switch>span' => 'color: {{VALUE}};',
				),
			)
		);

		$this->add_responsive_control(
			'filters_toggle_dropdown_switch_size',
			array(
				'label'      => esc_html__( 'Size', 'gigneo' ),
				'type'       => Controls_Manager::SLIDER,
				'size_units' => array( 'px', 'em', 'rem' ),
				'range'      => array(
					'px' => array(
						'min' => 8,
						'max' => 30,
					),
				),
				'selectors'  => array(
					'{{WRAPPER}} .gn-switch .gn-checkbox::before, .gn-more-filter-dropdown .gn-filter-dropdown .gn-form-field .gn-switch .gn-checkbox' => 'height: {{SIZE}}{{UNIT}}; width: calc({{SIZE}}{{UNIT}} * 2);',
					'{{WRAPPER}} .gn-switch .gn-checkbox::after' => 'height: calc({{SIZE}}{{UNIT}} - 4px); width: calc({{SIZE}}{{UNIT}} - 4px);',
					'{{WRAPPER}} .gn-switch .gn-checkbox:has(input[type="checkbox"]:checked)::after' => 'left: calc({{SIZE}}{{UNIT}} + 2px);',
				),
			)
		);

		$this->add_responsive_control(
			'filters_toggle_dropdown_switch_space_between',
			array(
				'label'      => esc_html__( 'Space Between', 'gigneo' ),
				'type'       => Controls_Manager::SLIDER,
				'size_units' => array( 'px', '%', 'em' ),
				'range'      => array(
					'px' => array(
						'min' => 0,
						'max' => 30,
					),
				),
				'selectors'  => array(
					'{{WRAPPER}} .gn-more-filter-dropdown .gn-filter-dropdown .gn-form-field .gn-switch' => 'gap: {{SIZE}}{{UNIT}};',
				),
			)
		);

		$this->start_controls_tabs( 'filters_toggle_dropdown_switch_tabs' );

		$this->start_controls_tab(
			'filters_toggle_dropdown_switch_unchecked_tab',
			array( 'label' => esc_html__( 'Unchecked', 'gigneo' ) )
		);

		$this->add_control(
			'filters_toggle_dropdown_switch_unchecked_Controller_color',
			array(
				'label'     => esc_html__( 'Controller Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-switch .gn-checkbox::after' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'filters_toggle_dropdown_switch_unchecked_background',
			array(
				'label'     => esc_html__( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-switch .gn-checkbox::before' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'filters_toggle_dropdown_switch_checked_tab',
			array( 'label' => esc_html__( 'Checked', 'gigneo' ) )
		);

		$this->add_control(
			'filters_toggle_dropdown_switch_checked_Controller_color',
			array(
				'label'     => esc_html__( 'Controller Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-switch .gn-checkbox:has(input[type="checkbox"]:checked)::after' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'filters_toggle_dropdown_switch_checked_background',
			array(
				'label'     => esc_html__( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-switch .gn-checkbox:has(input[type="checkbox"]:checked)::before' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_control(
			'filters_toggle_dropdown_clear_button',
			array(
				'label'     => esc_html__( 'Clear Button', 'gigneo' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			)
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			array(
				'name'     => 'filters_toggle_dropdown_clear_button_typography',
				'label'    => esc_html__( 'Typography', 'gigneo' ),
				'selector' => '{{WRAPPER}} .gn-btn.gn-clear-filter',
			)
		);

		/* --- Tabs --- */
		$this->start_controls_tabs( 'filters_toggle_dropdown_clear_button_tabs' );

		$this->start_controls_tab(
			'filters_toggle_dropdown_clear_button_normal',
			array( 'label' => esc_html__( 'Normal', 'gigneo' ) )
		);

		$this->add_control(
			'filters_toggle_dropdown_clear_button_text_color',
			array(
				'label'     => esc_html__( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-btn.gn-clear-filter' => 'color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'filters_toggle_dropdown_clear_button_background',
			array(
				'label'     => esc_html__( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-btn.gn-clear-filter' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'filters_toggle_dropdown_clear_button_box_shadow',
				'selector' => '{{WRAPPER}} .gn-btn.gn-clear-filter',
			)
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'filters_toggle_dropdown_clear_button_hover',
			array( 'label' => esc_html__( 'Hover', 'gigneo' ) )
		);

		$this->add_control(
			'filters_toggle_dropdown_clear_button_color_hover',
			array(
				'label'     => __( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-btn.gn-clear-filter:hover' => 'color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'filters_toggle_dropdown_clear_button_background_hover',
			array(
				'label'     => esc_html__( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-btn.gn-clear-filter:hover' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'filters_toggle_dropdown_clear_button_border_color_hover',
			array(
				'label'     => __( 'Border Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-btn.gn-clear-filter:hover' => 'border-color: {{VALUE}};',
				),
			)
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'filters_toggle_dropdown_clear_button_box_shadow_hover',
				'selector' => '{{WRAPPER}} .gn-btn.gn-clear-filter:hover',
			)
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'filters_toggle_dropdown_clear_button_focus',
			array( 'label' => esc_html__( 'Focus', 'gigneo' ) )
		);

		$this->add_control(
			'filters_toggle_dropdown_clear_button_color_focus',
			array(
				'label'     => __( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-btn.gn-clear-filter:focus' => 'color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'filters_toggle_dropdown_clear_button_background_focus',
			array(
				'label'     => esc_html__( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-btn.gn-clear-filter:focus' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'filters_toggle_dropdown_clear_button_border_focus',
			array(
				'label'     => __( 'Border Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-btn.gn-clear-filter:focus' => 'border-color: {{VALUE}};',
				),
			)
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'filters_toggle_dropdown_clear_button_box_shadow_focus',
				'selector' => '{{WRAPPER}} .gn-btn.gn-clear-filter:focus',
			)
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'      => 'filters_toggle_dropdown_clear_button_border',
				'separator' => 'before',
				'selector'  => '{{WRAPPER}} .gn-btn.gn-clear-filter',
			)
		);

		$this->add_responsive_control(
			'filters_toggle_dropdown_clear_button_border_radius',
			array(
				'label'      => esc_html__( 'Border Radius', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-btn.gn-clear-filter' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_responsive_control(
			'filters_toggle_dropdown_clear_button_padding',
			array(
				'label'      => esc_html__( 'Padding', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', 'em', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-btn.gn-clear-filter' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_responsive_control(
			'filters_toggle_dropdown_clear_button_margin',
			array(
				'label'      => esc_html__( 'Margin', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', 'em', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-btn.gn-clear-filter' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_control(
			'filters_toggle_dropdown_apply_button',
			array(
				'label'     => esc_html__( 'Apply Button', 'gigneo' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			)
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			array(
				'name'     => 'filters_toggle_dropdown_apply_button_typography',
				'label'    => esc_html__( 'Typography', 'gigneo' ),
				'selector' => '{{WRAPPER}} .gn-btn.gn-apply-filter',
			)
		);

		$this->start_controls_tabs( 'filters_toggle_dropdown_apply_button_tabs' );

		$this->start_controls_tab(
			'filters_toggle_dropdown_apply_button_normal',
			array( 'label' => esc_html__( 'Normal', 'gigneo' ) )
		);

		$this->add_control(
			'filters_toggle_dropdown_apply_button_text_color',
			array(
				'label'     => esc_html__( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-btn.gn-apply-filter' => 'color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'filters_toggle_dropdown_apply_button_background',
			array(
				'label'     => esc_html__( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-link.gn-apply-filter' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'filters_toggle_dropdown_apply_button_box_shadow',
				'selector' => '{{WRAPPER}} .gn-link.gn-apply-filter',
			)
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'filters_toggle_dropdown_apply_button_hover',
			array( 'label' => esc_html__( 'Hover', 'gigneo' ) )
		);

		$this->add_control(
			'filters_toggle_dropdown_apply_button_color_hover',
			array(
				'label'     => esc_html__( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-link.gn-apply-filter:hover' => 'color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'filters_toggle_dropdown_apply_button_background_hover',
			array(
				'label'     => esc_html__( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-link.gn-apply-filter:hover' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'filters_toggle_dropdown_apply_button_border_color_hover',
			array(
				'label'     => __( 'Border Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-link.gn-apply-filter:hover' => 'border-color: {{VALUE}};',
				),
			)
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'filters_toggle_dropdown_apply_button_box_shadow_hover',
				'selector' => '{{WRAPPER}} .gn-link.gn-apply-filter:hover',
			)
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'filters_toggle_dropdown_apply_button_focus',
			array( 'label' => esc_html__( 'Focus', 'gigneo' ) )
		);

		$this->add_control(
			'filters_toggle_dropdown_apply_button_color_focus',
			array(
				'label'     => esc_html__( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-link.gn-apply-filter:focus' => 'color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'filters_toggle_dropdown_apply_button_background_focus',
			array(
				'label'     => esc_html__( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-link.gn-apply-filter:focus' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'filters_toggle_dropdown_apply_button_border_focus',
			array(
				'label'     => __( 'Border Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-link.gn-apply-filter:focus' => 'border-color: {{VALUE}};',
				),
			)
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'filters_toggle_dropdown_apply_button_box_shadow_focus',
				'selector' => '{{WRAPPER}} .gn-link.gn-apply-filter:focus',
			)
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'      => 'filters_toggle_dropdown_apply_button_border',
				'separator' => 'before',
				'selector'  => '{{WRAPPER}} .gn-btn.gn-apply-filter',
			)
		);

		$this->add_responsive_control(
			'filters_toggle_dropdown_apply_button_border_radius',
			array(
				'label'      => esc_html__( 'Border Radius', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-btn.gn-apply-filter' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_responsive_control(
			'filters_toggle_dropdown_apply_button_padding',
			array(
				'label'      => esc_html__( 'Padding', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', 'em', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-btn.gn-apply-filter' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_responsive_control(
			'filters_toggle_dropdown_apply_button_margin',
			array(
				'label'      => esc_html__( 'Margin', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', 'em', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-link.gn-apply-filter' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_control(
			'active_filters_pills_heading',
			array(
				'label'     => esc_html__( 'Active Pills', 'gigneo' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			)
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			array(
				'name'     => 'filters_pills_typography',
				'selector' => '{{WRAPPER}} .gn-active-filters-pills .gn-filter-pill',
			)
		);

		$this->add_responsive_control(
			'filters_pills_space_between',
			array(
				'label'      => esc_html__( 'Space Between', 'gigneo' ),
				'type'       => Controls_Manager::SLIDER,
				'size_units' => array( 'px', '%', 'em' ),
				'range'      => array(
					'px' => array(
						'min' => 0,
						'max' => 30,
					),
				),
				'selectors'  => array(
					'{{WRAPPER}} .gn-active-filters-pills' => 'gap: {{SIZE}}{{UNIT}};',
				),
			)
		);

		$this->add_responsive_control(
			'filters_pills_item_spacing',
			array(
				'label'      => esc_html__( 'Spacing', 'gigneo' ),
				'type'       => Controls_Manager::SLIDER,
				'size_units' => array( 'px', '%', 'em' ),
				'range'      => array(
					'px' => array(
						'min' => 0,
						'max' => 30,
					),
				),
				'selectors'  => array(
					'{{WRAPPER}} .gn-active-filters-pills .gn-filter-pill' => 'gap: {{SIZE}}{{UNIT}};',
				),
			)
		);

		$this->start_controls_tabs( 'filters_pills_tabs' );

		$this->start_controls_tab(
			'filters_pills_normal',
			array( 'label' => esc_html__( 'Normal', 'gigneo' ) )
		);

		$this->add_control(
			'filters_pills_color',
			array(
				'label'     => esc_html__( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-active-filters-pills .gn-filter-pill, {{WRAPPER}} .gn-active-filters-pills .gn-filter-pill i' => 'color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'filters_pills_background_color',
			array(
				'label'     => esc_html__( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-active-filters-pills .gn-filter-pill' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'filters_pills_hover',
			array( 'label' => esc_html__( 'Hover', 'gigneo' ) )
		);

		$this->add_control(
			'filters_pills_color_hover',
			array(
				'label'     => esc_html__( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-active-filters-pills .gn-filter-pill:hover, {{WRAPPER}} .gn-active-filters-pills .gn-filter-pill:hover i' => 'color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'filters_pills_background_color_hover',
			array(
				'label'     => esc_html__( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-active-filters-pills .gn-filter-pill:hover' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'filters_pills_border_color_hover',
			array(
				'label'     => esc_html__( 'Border Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-active-filters-pills .gn-filter-pill:hover' => 'border-color: {{VALUE}};',
				),
			)
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'      => 'filters_pills_border',
				'separator' => 'before',
				'selector'  => '{{WRAPPER}} .gn-active-filters-pills .gn-filter-pill',
			)
		);

		$this->add_responsive_control(
			'filters_pills_border_radius',
			array(
				'label'      => esc_html__( 'Border Radius', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-active-filters-pills .gn-filter-pill' =>
						'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_responsive_control(
			'filters_pills_padding',
			array(
				'label'      => esc_html__( 'Padding', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', 'em', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-active-filters-pills .gn-filter-pill' =>
						'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_responsive_control(
			'filters_pills_margin',
			array(
				'label'      => esc_html__( 'Margin', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%', 'em', 'rem', 'vw' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-active-filters-pills' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'responsive_filters_style',
			array(
				'label' => esc_html__( 'Responsive Filters', 'gigneo' ),
				'tab'   => Controls_Manager::TAB_STYLE,
			)
		);

		$this->add_responsive_control(
			'responsive_filters_background_color',
			array(
				'label'     => esc_html__( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-filters' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'     => 'responsive_filters_border',
				'selector' => '{{WRAPPER}} .gn-archive-filters',
			)
		);

		$this->add_responsive_control(
			'responsive_filters_border_radius',
			array(
				'label'      => esc_html__( 'Border Radius', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-archive-filters' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_responsive_control(
			'responsive_filters_padding',
			array(
				'label'      => esc_html__( 'Padding', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-archive-filters > .gn-body' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_control(
			'responsive_filters_header_heading',
			array(
				'label'     => esc_html__( 'Header', 'gigneo' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			)
		);

		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'     => 'responsive_filters_header_border',
				'selector' => '{{WRAPPER}} .gn-archive-filters > .gn-head',
			)
		);

		$this->add_responsive_control(
			'responsive_filters_header_border_radius',
			array(
				'label'      => esc_html__( 'Border Radius', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-archive-filters > .gn-head' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_responsive_control(
			'responsive_filters_header_padding',
			array(
				'label'      => esc_html__( 'Padding', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-archive-filters > .gn-head' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_control(
			'responsive_filters_title_heading',
			array(
				'label'     => esc_html__( 'Title', 'gigneo' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			)
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			array(
				'name'     => 'responsive_filters_title_typography',
				'selector' => '{{WRAPPER}} .gn-archive-filters > .gn-head .gn-title',
			)
		);

		$this->add_control(
			'responsive_filters_title_text_color',
			array(
				'label'     => esc_html__( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-filters > .gn-head .gn-title' => 'color: {{VALUE}};',
				),
			)
		);

		$this->add_responsive_control(
			'responsive_filters_title_margin',
			array(
				'label'      => esc_html__( 'Margin', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', 'em', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-archive-filters > .gn-head .gn-title' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_control(
			'responsive_filters_close_button_heading',
			array(
				'label'     => esc_html__( 'Close Button', 'gigneo' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			)
		);

		$this->add_responsive_control(
			'responsive_filters_close_button_size',
			array(
				'label'      => __( 'Size', 'gigneo' ),
				'type'       => \Elementor\Controls_Manager::SLIDER,
				'size_units' => array( 'px', '%', 'em' ),
				'range'      => array(
					'px' => array(
						'min'  => 10,
						'max'  => 50,
						'step' => 1,
					),
				),
				'selectors'  => array(
					'{{WRAPPER}} .gn-archive-filters > .gn-head .gn-btn' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}}; font-size: calc({{SIZE}}{{UNIT}} * 0.5);',
				),
			)
		);

		$this->start_controls_tabs( 'responsive_filters_close_button_tabs' );

		$this->start_controls_tab(
			'responsive_filters_close_button_tab',
			array( 'label' => esc_html__( 'Normal', 'gigneo' ) )
		);

		$this->add_control(
			'responsive_filters_close_button_color',
			array(
				'label'     => esc_html__( 'Icon Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-filters > .gn-head .gn-btn > i' => 'color: {{VALUE}}; fill: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'responsive_filters_close_button_background_color',
			array(
				'label'     => __( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-filters > .gn-head .gn-btn' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'responsive_filters_close_button_box_shadow',
				'selector' => '{{WRAPPER}} .gn-archive-filters > .gn-head .gn-btn',
			)
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'responsive_filters_close_button_tab_hover',
			array( 'label' => esc_html__( 'Hover', 'gigneo' ) )
		);

		$this->add_control(
			'responsive_filters_close_button_color_hover',
			array(
				'label'     => esc_html__( 'Icon Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-filters > .gn-head .gn-btn:hover > i' => 'color: {{VALUE}}; fill: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'responsive_filters_close_button_background_color_hover',
			array(
				'label'     => __( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-filters > .gn-head .gn-btn:hover' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'responsive_filters_close_button_border_color_hover',
			array(
				'label'     => __( 'Border Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-filters > .gn-head .gn-btn:hover' => 'border-color: {{VALUE}};',
				),
			)
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'responsive_filters_close_button_box_shadow_hover',
				'selector' => '{{WRAPPER}} .gn-archive-filters > .gn-head .gn-btn:hover',
			)
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'      => 'responsive_filters_close_button_border',
				'separator' => 'before',
				'selector'  => '{{WRAPPER}} .gn-archive-filters > .gn-head .gn-btn',
			)
		);

		$this->add_responsive_control(
			'responsive_filters_close_button_border_radius',
			array(
				'label'      => esc_html__( 'Border Radius', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-archive-filters > .gn-head .gn-btn' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_responsive_control(
			'responsive_filters_close_button_padding',
			array(
				'label'      => esc_html__( 'Padding', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-archive-filters > .gn-head .gn-btn' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_control(
			'responsive_filters_separator_heading',
			array(
				'label'     => esc_html__( 'Separator', 'gigneo' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			)
		);

		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'     => 'responsive_filters_separator_border',
				'selector' => '{{WRAPPER}} .gn-filter-dropdown-container ~ .gn-filter-dropdown-container, .gn-archive-filters .gn-filters-actions',
			)
		);

		$this->add_control(
			'responsive_filters_footer_heading',
			array(
				'label'     => esc_html__( 'Footer', 'gigneo' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			)
		);

		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'     => 'responsive_filters_footer_border',
				'selector' => '{{WRAPPER}} .gn-archive-filters > .gn-footer',
			)
		);

		$this->add_responsive_control(
			'responsive_filters_footer_border_radius',
			array(
				'label'      => esc_html__( 'Border Radius', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-archive-filters > .gn-footer' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_responsive_control(
			'responsive_filters_footer_padding',
			array(
				'label'      => esc_html__( 'Padding', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-archive-filters > .gn-footer' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_control(
			'responsive_filter_toggle_heading',
			array(
				'label'     => esc_html__( 'Responsive Filter Toggle', 'gigneo' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			)
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			array(
				'name'     => 'responsive_filter_toggle_typography',
				'label'    => esc_html__( 'Typography', 'gigneo' ),
				'selector' => '{{WRAPPER}} .gn-archive-filter-wrapper > .gn-btn',
			)
		);

		$this->start_controls_tabs( 'responsive_filter_toggle_tabs' );

		$this->start_controls_tab(
			'responsive_filter_toggle_normal',
			array( 'label' => esc_html__( 'Normal', 'gigneo' ) )
		);

		$this->add_control(
			'responsive_filter_toggle_text_color',
			array(
				'label'     => esc_html__( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-filter-wrapper > .gn-btn' => 'color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'responsive_filter_toggle_background',
			array(
				'label'     => esc_html__( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-filter-wrapper > .gn-btn' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'responsive_filter_toggle_box_shadow',
				'selector' => '{{WRAPPER}} .gn-archive-filter-wrapper > .gn-btn',
			)
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'responsive_filter_toggle_hover',
			array( 'label' => esc_html__( 'Hover', 'gigneo' ) )
		);

		$this->add_control(
			'responsive_filter_toggle_color_hover',
			array(
				'label'     => esc_html__( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-filter-wrapper > .gn-btn:hover' => 'color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'responsive_filter_toggle_background_hover',
			array(
				'label'     => esc_html__( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-filter-wrapper > .gn-btn:hover' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'responsive_filter_toggle_border_color_hover',
			array(
				'label'     => __( 'Border Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-filter-wrapper > .gn-btn:hover' => 'border-color: {{VALUE}};',
				),
			)
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'responsive_filter_toggle_box_shadow_hover',
				'selector' => '{{WRAPPER}} .gn-archive-filter-wrapper > .gn-btn:hover',
			)
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'responsive_filter_toggle_focus',
			array( 'label' => esc_html__( 'Focus', 'gigneo' ) )
		);

		$this->add_control(
			'responsive_filter_toggle_color_focus',
			array(
				'label'     => esc_html__( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-filter-wrapper > .gn-btn:focus' => 'color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'responsive_filter_toggle_background_focus',
			array(
				'label'     => esc_html__( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-filter-wrapper > .gn-btn:focus' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'responsive_filter_toggle_border_focus',
			array(
				'label'     => __( 'Border Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-filter-wrapper > .gn-btn:focus' => 'border-color: {{VALUE}};',
				),
			)
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'responsive_filter_toggle_box_shadow_focus',
				'selector' => '{{WRAPPER}} .gn-archive-filter-wrapper > .gn-btn:focus',
			)
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'      => 'responsive_filter_toggle_border',
				'separator' => 'before',
				'selector'  => '{{WRAPPER}} .gn-archive-filter-wrapper > .gn-btn',
			)
		);

		$this->add_responsive_control(
			'responsive_filter_toggle_border_radius',
			array(
				'label'      => esc_html__( 'Border Radius', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-archive-filter-wrapper > .gn-btn' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_responsive_control(
			'responsive_filter_toggle_padding',
			array(
				'label'      => esc_html__( 'Padding', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', 'em', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-archive-filter-wrapper > .gn-btn' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_responsive_control(
			'responsive_filter_toggle_margin',
			array(
				'label'      => esc_html__( 'Margin', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', 'em', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-archive-filter-wrapper > .gn-btn' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'listing_style',
			array(
				'label' => esc_html__( 'Listing', 'gigneo' ),
				'tab'   => Controls_Manager::TAB_STYLE,
			)
		);

		$this->add_control(
			'listing_bg_color',
			array(
				'label'     => esc_html__( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-content' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'     => 'listing_border',
				'selector' => '{{WRAPPER}} .gn-archive-content',
			)
		);

		$this->add_responsive_control(
			'listing_border_radius',
			array(
				'label'     => esc_html__( 'Border Radius', 'gigneo' ),
				'type'      => Controls_Manager::DIMENSIONS,
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-content' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_responsive_control(
			'listing_padding',
			array(
				'label'     => esc_html__( 'Padding', 'gigneo' ),
				'type'      => Controls_Manager::DIMENSIONS,
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-content' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_responsive_control(
			'listing_margin',
			array(
				'label'     => esc_html__( 'Margin', 'gigneo' ),
				'type'      => Controls_Manager::DIMENSIONS,
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-content' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_control(
			'result_count_heading',
			array(
				'label'     => esc_html__( 'Result Count', 'gigneo' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
				'condition' => array(
					'hide_result_count!' => 'yes',
				),
			)
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			array(
				'name'      => 'result_count_typography',
				'selector'  => '{{WRAPPER}} .gn-archive-sort-wrapper .gn-result-count',
				'condition' => array(
					'hide_result_count!' => 'yes',
				),
			)
		);

		$this->add_control(
			'result_count_text_color',
			array(
				'label'     => esc_html__( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'default'   => '',
				'condition' => array(
					'hide_result_count!' => 'yes',
				),
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-sort-wrapper .gn-result-count' => 'color: {{VALUE}};',
				),
			)
		);

		$this->add_responsive_control(
			'result_count_margin',
			array(
				'label'      => esc_html__( 'Margin', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'condition'  => array(
					'hide_result_count!' => 'yes',
				),
				'size_units' => array( 'px', '%', 'em', 'rem', 'vw' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-archive-sort-wrapper .gn-result-count' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_control(
			'sort_by_heading',
			array(
				'label'     => esc_html__( 'Sort By', 'gigneo' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
				'condition' => array(
					'hide_sort!' => 'yes',
				),
			)
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			array(
				'name'      => 'sort_by_typography',
				'condition' => array(
					'hide_sort!' => 'yes',
				),
				'selector'  => '{{WRAPPER}} .gn-archive-sort-wrapper .gn-archive-sort>label',
			)
		);

		$this->add_control(
			'sort_by_text_color',
			array(
				'label'     => esc_html__( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'condition' => array(
					'hide_sort!' => 'yes',
				),
				'default'   => '',
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-sort-wrapper .gn-archive-sort>label' => 'color: {{VALUE}};',
				),
			)
		);

		$this->add_responsive_control(
			'sort_by_space_between',
			array(
				'label'      => esc_html__( 'Space Between', 'gigneo' ),
				'type'       => Controls_Manager::SLIDER,
				'condition'  => array(
					'hide_sort!' => 'yes',
				),
				'size_units' => array( 'px', '%', 'em' ),
				'range'      => array(
					'px' => array(
						'min' => 0,
						'max' => 30,
					),
				),
				'selectors'  => array(
					'{{WRAPPER}} .gn-archive-sort-wrapper .gn-archive-sort' => 'gap: {{SIZE}}{{UNIT}};',
				),
			)
		);

		$this->add_responsive_control(
			'sort_by_margin',
			array(
				'label'      => esc_html__( 'Margin', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%', 'em', 'rem', 'vw' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-archive-sort-wrapper .gn-archive-sort>label' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
				'condition'  => array(
					'hide_sort!' => 'yes',
				),
			)
		);

		$this->add_control(
			'sort_by_input_heading',
			array(
				'label'     => esc_html__( 'Input', 'gigneo' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			)
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			array(
				'name'     => 'sort_by_input_typo',
				'selector' => '{{WRAPPER}} .gn-archive-sort-wrapper .gn-form-fields .gn-form-field input,{{WRAPPER}} .gn-archive-search-wrapper .gn-select2-dropdown.select2-container .select2-selection',
			)
		);

		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'     => 'sort_by_input_border',
				'selector' => '{{WRAPPER}} .gn-archive-sort-wrapper .gn-form-fields .gn-form-field input,{{WRAPPER}} .gn-archive-search-wrapper .gn-select2-dropdown.select2-container .select2-selection',
			)
		);

		$this->add_responsive_control(
			'sort_by_input_border_radius',
			array(
				'label'      => esc_html__( 'Border Radius', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%', 'em', 'rem', 'custom' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-archive-sort-wrapper .gn-form-fields .gn-form-field input,{{WRAPPER}} .gn-archive-search-wrapper .gn-select2-dropdown.select2-container .select2-selection' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->start_controls_tabs(
			'sort_by_input_style_tabs'
		);

		$this->start_controls_tab(
			'sort_by_input_style_normal_tab',
			array(
				'label' => esc_html__( 'Normal', 'gigneo' ),
			)
		);

		$this->add_control(
			'sort_by_input_text_color',
			array(
				'label'     => esc_html__( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-sort-wrapper .gn-form-fields .gn-form-field input' => 'color: {{VALUE}}',
					'{{WRAPPER}} .gn-archive-sort-wrapper .gn-select2-dropdown.select2-container--default .select2-selection--single .select2-selection__rendered' => 'color: {{VALUE}}',
				),
			)
		);

		$this->add_control(
			'sort_by_input_placeholder_color',
			array(
				'label'     => esc_html__( 'Placeholder Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-sort-wrapper .gn-form-fields .gn-form-field input::placeholder' => 'color: {{VALUE}}',
					'{{WRAPPER}} .gn-archive-sort-wrapper .gn-select2 .select2-container--default .select2-selection--single .select2-selection__placeholder' => 'color: {{VALUE}}',
				),
			)
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'sort_by_input_style_hover_tab',
			array(
				'label' => esc_html__( 'Hover', 'gigneo' ),
			)
		);

		$this->add_control(
			'sort_by_input_text_hover_color',
			array(
				'label'     => esc_html__( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-sort-wrapper .gn-form-fields .gn-form-field input:hover' => 'color: {{VALUE}}',
					'{{WRAPPER}} .gn-archive-sort-wrapper .gn-select2-dropdown.select2-container--default .select2-selection--single .select2-selection__rendered:hover' => 'color: {{VALUE}}',
				),
			)
		);

		$this->add_control(
			'sort_by_input_placeholder_hover_color',
			array(
				'label'     => esc_html__( 'Placeholder Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-sort-wrapper .gn-form-fields .gn-form-field input::placeholder' => 'color: {{VALUE}}',
					'{{WRAPPER}} .gn-archive-sort-wrapper .gn-select2 .select2-container--default .select2-selection--single .select2-selection__placeholder' => 'color: {{VALUE}}',
				),
			)
		);

		$this->add_control(
			'sort_by_input_border_hover_color',
			array(
				'label'     => esc_html__( 'Border Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-sort-wrapper .gn-form-fields .gn-form-field input:hover' => 'border-color: {{VALUE}}',
					'{{WRAPPER}} .gn-archive-sort-wrapper .gn-select2-dropdown.select2-container .select2-selection:hover' => 'border-color: {{VALUE}}',
				),
			)
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'sort_by_input_style_focus_tab',
			array(
				'label' => esc_html__( 'Focus', 'gigneo' ),
			)
		);

		$this->add_control(
			'sort_by_input_text_active_color',
			array(
				'label'     => esc_html__( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-sort-wrapper .gn-form-fields .gn-form-field input:focus' => 'color: {{VALUE}}',
					'{{WRAPPER}} .gn-archive-sort-wrapper .gn-select2 .gn-select2-dropdown.select2-container:focus .select2-selection--single .select2-selection__rendered:hover' => 'color: {{VALUE}}',
				),
			)
		);

		$this->add_control(
			'sort_by_input_placeholder_active_color',
			array(
				'label'     => esc_html__( 'Placeholder Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-sort-wrapper .gn-form-fields .gn-form-field input:focus' => 'color: {{VALUE}}',
					'{{WRAPPER}} .gn-archive-sort-wrapper .gn-select2 .gn-select2-dropdown.select2-container:focus .select2-selection--single .select2-selection__placeholder' => 'color: {{VALUE}}',
				),
			)
		);

		$this->add_control(
			'sort_by_input_border_active_color',
			array(
				'label'     => esc_html__( 'Border Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-sort-wrapper .gn-form-fields .gn-form-field input:focus' => 'border-color: {{VALUE}}',
					'{{WRAPPER}} .gn-archive-sort-wrapper .gn-select2-dropdown.select2-container .select2-selection:focus' => 'border-color: {{VALUE}}',
				),
			)
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_control(
			'sort_by_select_dropdown_heading',
			array(
				'label'     => esc_html__( 'Select Dropdown', 'gigneo' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			)
		);

		$this->add_control(
			'sort_by_select_dropdown_background',
			array(
				'label'     => esc_html__( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'.gn-select2-dropdown .gn-service-archive-search-sort.select2-dropdown, .gn-select2-dropdown .gn-service-archive-search-sort.select2-dropdown .select2-results' => 'background-color: {{VALUE}}',
				),
			)
		);

		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'     => 'sort_by_select_dropdown_border',
				'selector' => '{{WRAPPER}} .gn-select2-dropdown .gn-service-archive-search-sort.select2-dropdown',
			)
		);

		$this->add_responsive_control(
			'sort_by_select_dropdown_border_radius',
			array(
				'label'      => esc_html__( 'Border Radius', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%', 'em', 'rem', 'custom' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-select2-dropdown .gn-service-archive-search-sort.select2-dropdown' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_responsive_control(
			'sort_by_select_dropdown_padding',
			array(
				'label'      => esc_html__( 'Padding', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%', 'em', 'rem', 'vw', 'custom' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-select2-dropdown .gn-service-archive-search-sort.select2-dropdown' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}',
				),
			)
		);

		$this->add_responsive_control(
			'sort_by_select_dropdown_margin',
			array(
				'label'      => esc_html__( 'Margin', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%', 'em', 'rem', 'vw', 'custom' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-select2-dropdown .gn-service-archive-search-sort.select2-dropdown' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}',
				),
			)
		);

		$this->add_control(
			'sort_by_dropdown_option_heading',
			array(
				'label'     => esc_html__( 'Dropdown Options', 'gigneo' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			)
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			array(
				'name'     => 'sort_by_dropdown_option_typography',
				'selector' => '.gn-select2-dropdown .gn-service-archive-search-sort .select2-results__option',
			)
		);

		$this->add_responsive_control(
			'sort_by_dropdown_option_option_spacing',
			array(
				'label'      => esc_html__( 'Space Between', 'gigneo' ),
				'type'       => Controls_Manager::SLIDER,
				'size_units' => array( 'px', 'em' ),
				'range'      => array(
					'px' => array(
						'min' => 0,
						'max' => 15,
					),
					'em' => array(
						'min' => 0,
						'max' => 5,
					),
				),
				'selectors'  => array(
					'.gn-select2-dropdown .gn-service-archive-search-sort .select2-results__option + .select2-results__option' =>
						'margin-top: {{SIZE}}{{UNIT}};',
				),
			)
		);

		$this->start_controls_tabs( 'sort_by_dropdown_option_tabs' );

		$this->start_controls_tab(
			'sort_by_dropdown_option_normal',
			array( 'label' => esc_html__( 'Normal', 'gigneo' ) )
		);

		$this->add_control(
			'sort_by_dropdown_option_color',
			array(
				'label'     => esc_html__( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'.gn-select2-dropdown .gn-service-archive-search-sort .select2-results__option' => 'color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'sort_by_dropdown_option_background_color',
			array(
				'label'     => esc_html__( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'.gn-select2-dropdown .gn-service-archive-search-sort .select2-results__option' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'sort_by_dropdown_option_hover',
			array( 'label' => esc_html__( 'Hover', 'gigneo' ) )
		);

		$this->add_control(
			'sort_by_dropdown_option_text_color_hover',
			array(
				'label'     => esc_html__( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'.gn-select2-dropdown.select2-container--default .gn-service-archive-search-sort .select2-results__option--highlighted[aria-selected]' => 'color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'sort_by_dropdown_option_background_color_hover',
			array(
				'label'     => esc_html__( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'.gn-select2-dropdown.select2-container--default .gn-service-archive-search-sort .select2-results__option--highlighted[aria-selected]' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'sort_by_dropdown_option_border_color_hover',
			array(
				'label'     => esc_html__( 'Border Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'.gn-select2-dropdown.select2-container--default .gn-service-archive-search-sort .select2-results__option--highlighted[aria-selected]' => 'border-color: {{VALUE}};',
				),
			)
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'sort_by_dropdown_option_active',
			array( 'label' => esc_html__( 'Active', 'gigneo' ) )
		);

		$this->add_control(
			'sort_by_dropdown_option_color_active',
			array(
				'label'     => esc_html__( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'.gn-select2-dropdown.select2-container--default .gn-service-archive-search-sort .select2-results__option[aria-selected=true]' => 'color: {{VALUE}}; opacity: 1;',
				),
			)
		);

		$this->add_control(
			'sort_by_dropdown_option_background_color_active',
			array(
				'label'     => esc_html__( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'.gn-select2-dropdown.select2-container--default .gn-service-archive-search-sort .select2-results__option[aria-selected=true]' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'sort_by_dropdown_option_border_color_active',
			array(
				'label'     => esc_html__( 'Border Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'.gn-select2-dropdown.select2-container--default .gn-service-archive-search-sort .select2-results__option[aria-selected=true]' => 'border-color: {{VALUE}};',
				),
			)
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'      => 'sort_by_dropdown_option_border',
				'separator' => 'before',
				'selector'  => '.gn-select2-dropdown .gn-service-archive-search-sort .select2-results__option',
			)
		);

		$this->add_responsive_control(
			'sort_by_dropdown_option_border_radius',
			array(
				'label'      => esc_html__( 'Border Radius', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'.gn-select2-dropdown .gn-service-archive-search-sort .select2-results__option' =>
						'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_responsive_control(
			'sort_by_dropdown_option_padding',
			array(
				'label'      => esc_html__( 'Padding', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', 'em', '%' ),
				'selectors'  => array(
					'.gn-select2-dropdown .gn-service-archive-search-sort .select2-results__option' =>
						'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_control(
			'archive_card_heading',
			array(
				'label'     => esc_html__( 'Archive Card', 'gigneo' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			)
		);

		$this->add_group_control(
			Group_Control_Background::get_type(),
			array(
				'name'     => 'archive_card_background',
				'types'    => array( 'classic', 'gradient' ),
				'exclude'  => array( 'image' ), // phpcs:ignore WordPressVIPMinimum.Performance.WPQueryParams.PostNotIn_exclude
				'selector' => '{{WRAPPER}} .gn-service-card',
			)
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'archive_card_box_shadow',
				'label'    => esc_html__( 'Box Shadow', 'gigneo' ),
				'selector' => '{{WRAPPER}} .gn-service-card',
			)
		);

		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'     => 'archive_card_border',
				'selector' => '{{WRAPPER}} .gn-service-card',
			)
		);

		$this->add_responsive_control(
			'archive_card_border_radius',
			array(
				'label'      => esc_html__( 'Border Radius', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-service-card' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_responsive_control(
			'archive_card_margin',
			array(
				'label'      => esc_html__( 'Margin', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', 'em', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-service-card' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_control(
			'archive_card_cover_image_heading',
			array(
				'label'     => esc_html__( 'Cover Image', 'gigneo' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			)
		);

		$this->add_control(
			'archive_card_cover_image_background',
			array(
				'label'     => esc_html__( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'condition' => array(
					'show_input_fields!' => 'location',
				),
				'selectors' => array(
					'{{WRAPPER}} .gn-service-card .gn-service-media' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->add_responsive_control(
			'archive_card_cover_image_height',
			array(
				'label'      => esc_html__( 'Height', 'gigneo' ),
				'type'       => Controls_Manager::SLIDER,
				'size_units' => array( 'px', '%', 'vw' ),
				'range'      => array(
					'px' => array(
						'min' => 0,
						'max' => 250,
					),
					'%'  => array(
						'min' => 0,
						'max' => 100,
					),
					'vw' => array(
						'min' => 0,
						'max' => 100,
					),
				),
				'default'    => array(
					'size' => 200,
					'unit' => 'px',
				),
				'selectors'  => array(
					'{{WRAPPER}} .gn-service-card .gn-service-media' => 'height: {{SIZE}}{{UNIT}};',
				),
			)
		);

		$this->add_responsive_control(
			'archive_card_cover_image_border_radius',
			array(
				'label'      => esc_html__( 'Border Radius', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-service-card .gn-service-media, .gn-service-card .gn-service-media img' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_control(
			'archive_card_save_button_heading',
			array(
				'label'     => esc_html__( 'Save Button', 'gigneo' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			)
		);

		$this->add_responsive_control(
			'save_btn_size',
			array(
				'label'      => __( 'Size', 'gigneo' ),
				'type'       => \Elementor\Controls_Manager::SLIDER,
				'size_units' => array( 'px', '%', 'em' ),
				'range'      => array(
					'px' => array(
						'min'  => 20,
						'max'  => 50,
						'step' => 1,
					),
				),
				'selectors'  => array(
					'{{WRAPPER}} .gn-save-btn'            => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}};',
					'{{WRAPPER}} .gn-save-btn svg'        => 'width: calc({{SIZE}}{{UNIT}} - 12px); height: calc({{SIZE}}{{UNIT}} - 12px);',
					'{{WRAPPER}} button.gn-loading:after' => 'width: calc({{SIZE}}{{UNIT}} - 14px); height: calc({{SIZE}}{{UNIT}} - 14px);',
				),
			)
		);

		$this->start_controls_tabs( 'save_btn_tabs' );

		$this->start_controls_tab(
			'save_btn_normal',
			array( 'label' => esc_html__( 'Normal', 'gigneo' ) )
		);

		$this->add_control(
			'save_btn_icon_color',
			array(
				'label'     => esc_html__( 'Icon Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array( '{{WRAPPER}} .gn-archive-main .gn-save-btn svg path' => 'stroke: {{VALUE}};' ),
			)
		);

		$this->add_control(
			'save_btn_bg_color',
			array(
				'label'     => esc_html__( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array( '{{WRAPPER}} .gn-save-btn' => 'background-color: {{VALUE}};' ),
			)
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'save_btn_shadow',
				'selector' => '{{WRAPPER}} .gn-save-btn',
			)
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'save_btn_hover',
			array( 'label' => esc_html__( 'Hover', 'gigneo' ) )
		);

		$this->add_control(
			'save_btn_icon_color_hover',
			array(
				'label'     => esc_html__( 'Icon Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array( '{{WRAPPER}} .gn-archive-main .gn-save-btn:hover svg path' => 'stroke: {{VALUE}};' ),
			)
		);

		$this->add_control(
			'save_btn_bg_color_hover',
			array(
				'label'     => esc_html__( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array( '{{WRAPPER}} .gn-save-btn:hover' => 'background-color: {{VALUE}};' ),
			)
		);

		$this->add_control(
			'save_btn_border_color_hover',
			array(
				'label'     => esc_html__( 'Border Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'.gn-save-btn:hover' => 'border-color: {{VALUE}};',
				),
			)
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'save_btn_shadow_hover',
				'selector' => '{{WRAPPER}} .gn-save-btn:hover',
			)
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'save_btn_loader',
			array( 'label' => esc_html__( 'Loader', 'gigneo' ) )
		);

		$this->add_control(
			'fav_btn_loader_border_color',
			array(
				'label'     => __( 'Border Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} button.gn-loading:after' => 'border-color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'fav_btn_loader_border_top_color',
			array(
				'label'     => __( 'Border Top Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} button.gn-loading:after' => 'border-top-color: {{VALUE}};',
				),
			)
		);

		$this->end_controls_tabs();

		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'      => 'save_btn_border',
				'separator' => 'before',
				'selector'  => '{{WRAPPER}} .gn-save-btn',
			)
		);

		$this->add_responsive_control(
			'save_btn_radius',
			array(
				'label'     => esc_html__( 'Border Radius', 'gigneo' ),
				'type'      => Controls_Manager::DIMENSIONS,
				'selectors' => array(
					'{{WRAPPER}} .gn-save-btn' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_responsive_control(
			'save_btn_margin',
			array(
				'label'      => esc_html__( 'Margin', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', 'em', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-save-btn' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_control(
			'archive_card_title_heading',
			array(
				'label'     => esc_html__( 'Title', 'gigneo' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			)
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			array(
				'name'     => 'archive_card_title_typography',
				'label'    => esc_html__( 'Typography', 'gigneo' ),
				'selector' => '{{WRAPPER}} .gn-service-card>.gn-body .gn-title',
			)
		);

		$this->add_control(
			'archive_card_title_color',
			array(
				'label'     => esc_html__( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-service-card>.gn-body .gn-title a' => 'color: {{VALUE}};',
				),
			)
		);

		$this->add_group_control(
			Group_Control_Text_Shadow::get_type(),
			array(
				'name'     => 'archive_card_title_text_shadow',
				'selector' => '{{WRAPPER}} .gn-service-card>.gn-body .gn-title',
			)
		);

		$this->add_responsive_control(
			'archive_card_title_margin',
			array(
				'label'      => esc_html__( 'Margin', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', 'em', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-service-card>.gn-body .gn-title' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_control(
			'archive_card_price_heading',
			array(
				'label'     => esc_html__( 'Price', 'gigneo' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			)
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			array(
				'name'     => 'archive_card_price_typography',
				'label'    => esc_html__( 'Typography', 'gigneo' ),
				'selector' => '{{WRAPPER}} .gn-service-card>.gn-body .gn-price',
			)
		);

		$this->add_control(
			'archive_card_price_color',
			array(
				'label'     => esc_html__( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-service-card>.gn-body .gn-price' => 'color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'archive_card_price_value_color',
			array(
				'label'     => esc_html__( 'Value Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-service-card>.gn-body .gn-price .gn-value' => 'color: {{VALUE}};',
				),
			)
		);

		$this->add_responsive_control(
			'archive_card_price_space_between',
			array(
				'label'      => esc_html__( 'Space Between', 'gigneo' ),
				'type'       => Controls_Manager::SLIDER,
				'size_units' => array( 'px', '%', 'em' ),
				'range'      => array(
					'px' => array(
						'min' => 0,
						'max' => 30,
					),
				),
				'selectors'  => array(
					'{{WRAPPER}} .gn-service-card>.gn-body .gn-price' => 'gap: {{SIZE}}{{UNIT}};',
				),
			)
		);

		$this->add_control(
			'archive_card_meta_heading',
			array(
				'label'     => esc_html__( 'Meta', 'gigneo' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			)
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			array(
				'name'     => 'archive_card_meta_typography',
				'label'    => esc_html__( 'Typography', 'gigneo' ),
				'selector' => '
                    {{WRAPPER}} .gn-service-card>.gn-body .gn-meta>div',
			)
		);

		$this->add_control(
			'archive_card_meta_color',
			array(
				'label'     => esc_html__( 'Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-service-card>.gn-body .gn-meta>div' => 'color: {{VALUE}};',
				),
			)
		);

		$this->add_responsive_control(
			'archive_card_meta_size',
			array(
				'label'      => __( 'Icon Size', 'gigneo' ),
				'type'       => \Elementor\Controls_Manager::SLIDER,
				'size_units' => array( 'px', '%', 'em' ),
				'range'      => array(
					'px' => array(
						'min'  => 10,
						'max'  => 30,
						'step' => 1,
					),
				),
				'selectors'  => array(
					'{{WRAPPER}} .gn-service-card>.gn-body .gn-meta i' => 'font-size: {{SIZE}}{{UNIT}};',
				),
			)
		);

		$this->add_responsive_control(
			'archive_card_meta_space_between',
			array(
				'label'      => esc_html__( 'Space Between', 'gigneo' ),
				'type'       => Controls_Manager::SLIDER,
				'size_units' => array( 'px', '%', 'em' ),
				'range'      => array(
					'px' => array(
						'min' => 0,
						'max' => 30,
					),
				),
				'selectors'  => array(
					'{{WRAPPER}} .gn-service-card>.gn-body .gn-meta' => 'gap: {{SIZE}}{{UNIT}};',
				),
			)
		);

		$this->add_responsive_control(
			'archive_card_meta_spacing',
			array(
				'label'      => esc_html__( 'Spacing', 'gigneo' ),
				'type'       => Controls_Manager::SLIDER,
				'size_units' => array( 'px', '%', 'em' ),
				'range'      => array(
					'px' => array(
						'min' => 0,
						'max' => 30,
					),
				),
				'selectors'  => array(
					'{{WRAPPER}} .gn-service-card>.gn-body .gn-meta>div' => 'gap: {{SIZE}}{{UNIT}};',
				),
			)
		);

		$this->add_control(
			'archive_card_footer_heading',
			array(
				'label'     => esc_html__( 'Footer', 'gigneo' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			)
		);

		$this->add_control(
			'archive_card_footer_background_color',
			array(
				'label'     => esc_html__( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-service-card .gn-footer' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'     => 'archive_card_footer_border',
				'selector' => '{{WRAPPER}} .gn-service-card .gn-footer',
			)
		);

		$this->add_responsive_control(
			'archive_card_footer_border_radius',
			array(
				'label'      => esc_html__( 'Border Radius', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-service-card .gn-footer' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_responsive_control(
			'archive_card_footer_padding',
			array(
				'label'      => esc_html__( 'Padding', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', 'em', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-service-card .gn-footer' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_control(
			'archive_card_avatar_heading',
			array(
				'label'     => esc_html__( 'Avatar', 'gigneo' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			)
		);

		$this->add_responsive_control(
			'avatar_size',
			array(
				'label'      => __( 'Size', 'gigneo' ),
				'type'       => \Elementor\Controls_Manager::SLIDER,
				'size_units' => array( 'px', '%', 'em' ),
				'range'      => array(
					'px' => array(
						'min'  => 10,
						'max'  => 80,
						'step' => 1,
					),
				),
				'selectors'  => array(
					'{{WRAPPER}} .gn-service-card .gn-avatar' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}};',
				),
			)
		);

		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'     => 'avatar_border',
				'selector' => '{{WRAPPER}} .gn-service-card .gn-avatar',
			)
		);

		$this->add_responsive_control(
			'avatar_border_radius',
			array(
				'label'      => esc_html__( 'Border Radius', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-service-card .gn-avatar' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_control(
			'status_indicator',
			array(
				'label'     => esc_html__( 'Status', 'gigneo' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			)
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'status_indicator_box_shadow',
				'label'    => esc_html__( 'Box Shadow', 'gigneo' ),
				'selector' => '{{WRAPPER}} .gn-service-card .gn-avatar:before',
			)
		);

		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'     => 'status_indicator_border',
				'selector' => '{{WRAPPER}} .gn-service-card .gn-avatar:before',
			)
		);

		$this->add_responsive_control(
			'status_indicator_margin',
			array(
				'label'      => esc_html__( 'Margin', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', 'em', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-service-card .gn-avatar:before' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_control(
			'archive_card_profile_name_heading',
			array(
				'label'     => esc_html__( 'Name', 'gigneo' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			)
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			array(
				'name'     => 'profile_name_typography',
				'global'   => array(
					'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
				),
				'selector' => '{{WRAPPER}} .gn-info .gn-name',
			)
		);

		$this->add_control(
			'profile_name_color',
			array(
				'label'     => esc_html__( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-info .gn-name' => 'color: {{VALUE}};',
				),
			)
		);

		$this->add_group_control(
			Group_Control_Text_Shadow::get_type(),
			array(
				'name'     => 'profile_name_text_shadow',
				'selector' => '{{WRAPPER}} .gn-info .gn-name',
			)
		);

		$this->add_responsive_control(
			'profile_name_margin',
			array(
				'label'      => esc_html__( 'Margin', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', 'em', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-info .gn-name' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_control(
			'archive_card_rating_heading',
			array(
				'label'     => esc_html__( 'Rating', 'gigneo' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			)
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			array(
				'name'     => 'archive_card_rating_typography',
				'selector' => '{{WRAPPER}} .gn-service-card .gn-footer .gn-info .gn-ratings',
			)
		);

		$this->add_control(
			'archive_card_rating_text_color',
			array(
				'label'     => esc_html__( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'default'   => '',
				'selectors' => array(
					'{{WRAPPER}} .gn-service-card .gn-footer .gn-info .gn-ratings' => 'color: {{VALUE}};',
				),
			)
		);

		$this->start_controls_tabs( 'archive_card_style_tabs' );

		$this->start_controls_tab(
			'archive_card_rating_icon_tab',
			array( 'label' => esc_html__( 'Icon', 'gigneo' ) )
		);

		$this->add_responsive_control(
			'rating_icon_size',
			array(
				'label'      => esc_html__( 'Size', 'gigneo' ),
				'type'       => Controls_Manager::SLIDER,
				'size_units' => array( 'px', 'em', 'rem' ),
				'range'      => array(
					'px' => array(
						'min'  => 10,
						'max'  => 30,
						'step' => 1,
					),
				),
				'selectors'  => array(
					'{{WRAPPER}} .gn-service-card .gn-footer .gn-info .gn-ratings i' => 'font-size: {{SIZE}}{{UNIT}};',
				),
			)
		);

		$this->add_control(
			'rating_icon_icon_color',
			array(
				'label'     => esc_html__( 'Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'default'   => '',
				'selectors' => array(
					'{{WRAPPER}} .gn-service-card .gn-footer .gn-info .gn-ratings i' => 'color: {{VALUE}};',
				),
			)
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'archive_card_rating_count_tab',
			array( 'label' => esc_html__( 'Count', 'gigneo' ) )
		);

		$this->add_control(
			'archive_card_rating_count_text_color',
			array(
				'label'     => esc_html__( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'default'   => '',
				'selectors' => array(
					'{{WRAPPER}} .gn-service-card .gn-footer .gn-info .gn-ratings .gn-count' => 'color: {{VALUE}};',
				),
			)
		);

		$this->add_responsive_control(
			'archive_card_rating_margin',
			array(
				'label'      => esc_html__( 'Margin', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%', 'em' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-service-card .gn-footer .gn-info .gn-ratings .gn-count' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_control(
			'archive_card_view_button_heading',
			array(
				'label'     => esc_html__( 'View Button', 'gigneo' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			)
		);

		$this->add_responsive_control(
			'view_btn_icon_size',
			array(
				'label'      => esc_html__( 'Icon Size', 'gigneo' ),
				'type'       => Controls_Manager::SLIDER,
				'size_units' => array( 'px', 'em', 'rem' ),
				'range'      => array(
					'px' => array(
						'min'  => 10,
						'max'  => 30,
						'step' => 1,
					),
				),
				'selectors'  => array(
					'{{WRAPPER}} .gn-service-card .gn-footer .gn-actions .gn-btn i' => 'font-size: {{SIZE}}{{UNIT}};',
				),
			)
		);

		$this->start_controls_tabs( 'view_btn_tabs' );

		$this->start_controls_tab(
			'view_btn_normal',
			array(
				'label' => esc_html__( 'Normal', 'gigneo' ),
			)
		);

		$this->add_control(
			'view_btn_icon_color',
			array(
				'label'     => esc_html__( 'Icon Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-service-card .gn-footer .gn-actions .gn-btn i' => 'color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'view_btn_bg_color',
			array(
				'label'     => esc_html__( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-service-card .gn-footer .gn-actions .gn-btn' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'view_btn_shadow',
				'selector' => '{{WRAPPER}} .gn-service-card .gn-footer .gn-actions .gn-btn',
			)
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'view_btn_hover',
			array(
				'label' => esc_html__( 'Hover', 'gigneo' ),
			)
		);

		$this->add_control(
			'view_btn_text_color_hover',
			array(
				'label'     => esc_html__( 'Icon Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-service-card .gn-footer .gn-actions .gn-btn i' => 'color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'view_btn_bg_color_hover',
			array(
				'label'     => esc_html__( 'Background Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-service-card .gn-footer .gn-actions .gn-btn:hover' => 'background-color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'view_btn_border_color_hover',
			array(
				'label'     => __( 'Border Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .gn-service-card .gn-footer .gn-actions .gn-btn:hover' => 'border-color: {{VALUE}};',
				),
			)
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'view_btn_shadow_hover',
				'selector' => '{{WRAPPER}} .gn-service-card .gn-footer .gn-actions .gn-btn:hover',
			)
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'      => 'view_btn_border',
				'separator' => 'before',
				'selector'  => '{{WRAPPER}} .gn-service-card .gn-footer .gn-actions .gn-btn',
			)
		);

		$this->add_responsive_control(
			'viw_btn_padding',
			array(
				'label'     => esc_html__( 'Padding', 'gigneo' ),
				'type'      => Controls_Manager::DIMENSIONS,
				'selectors' => array(
					'{{WRAPPER}} .gn-service-card .gn-footer .gn-actions .gn-btn' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_responsive_control(
			'view_radius',
			array(
				'label'     => esc_html__( 'Border Radius', 'gigneo' ),
				'type'      => Controls_Manager::DIMENSIONS,
				'selectors' => array(
					'{{WRAPPER}} .gn-service-card .gn-footer .gn-actions .gn-btn' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->end_controls_section();

		if ( apply_filters( 'gigneo_is_map_enabled', false ) ) {
			$this->start_controls_section(
				'map_style',
				array(
					'label'     => esc_html__( 'Map', 'gigneo' ),
					'tab'       => Controls_Manager::TAB_STYLE,
					'condition' => array(
						'hide_map!' => 'yes',
					),
				)
			);

        $this->add_group_control(
            Group_Control_Border::get_type(),
            array(
                'name'     => 'map_border',
                'condition' => array(
                    'hide_map!'           => 'yes',
                ),
                'selector' => '{{WRAPPER}} .gn-archive-map-panel .gn-map-container',
            )
        );

        $this->add_responsive_control(
            'map_border_radius',
            array(
                'label'      => esc_html__( 'Border Radius', 'gigneo' ),
                'type'       => Controls_Manager::DIMENSIONS,
                'condition' => array(
                    'hide_map!'           => 'yes',
                ),
                'size_units' => array( 'px', '%' ),
                'selectors'  => array(
                    '{{WRAPPER}} .gn-archive-map-panel .gn-map-container' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
                ),
            )
        );

        $this->add_responsive_control(
            'map_padding',
            array(
                'label'      => esc_html__( 'Padding', 'gigneo' ),
                'type'       => Controls_Manager::DIMENSIONS,
                'condition' => array(
                    'hide_map!'           => 'yes',
                ),
                'size_units' => array( 'px', '%', 'em', 'rem', 'vw' ),
                'selectors'  => array(
                    '{{WRAPPER}} .gn-archive-map-panel .gn-map-container' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
                ),
            )
        );

        $this->add_responsive_control(
            'map_margin',
            array(
                'label'      => esc_html__( 'Margin', 'gigneo' ),
                'type'       => Controls_Manager::DIMENSIONS,
                'condition' => array(
                    'hide_map!'           => 'yes',
                ),
                'size_units' => array( 'px', '%', 'em', 'rem', 'vw' ),
                'selectors'  => array(
                    '{{WRAPPER}} .gn-archive-map-panel .gn-map-container' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
                ),
            )
        );

        $this->add_control(
            'map_search_button_heading',
            array(
                'label'     => esc_html__( 'Search Button', 'gigneo' ),
                'type'      => Controls_Manager::HEADING,
                'condition' => array(
                    'hide_map!'           => 'yes',
                ),
                'separator' => 'before',
            )
        );

        $this->add_group_control(
            Group_Control_Typography::get_type(),
            array(
                'name'     => 'map_search_button_typography',
                'condition' => array(
                    'hide_map!'           => 'yes',
                ),
                'selector' => '{{WRAPPER}} .gn-ele-service-archive-wrapper .gn-search-area-btn-wrap .gn-btn',
            )
        );

        $this->add_responsive_control(
            'map_search_button_icon_size',
            array(
                'label'      => esc_html__( 'Icon Size', 'gigneo' ),
                'type'       => Controls_Manager::SLIDER,
                'condition' => array(
                    'hide_map!'           => 'yes',
                ),
                'size_units' => array( 'px', 'em', 'rem' ),
                'range'      => array(
                    'px' => array(
                        'min'  => 10,
                        'max'  => 30,
                        'step' => 1,
                    ),
                ),
                'selectors'  => array(
                    '{{WRAPPER}} .gn-ele-service-archive-wrapper .gn-search-area-btn-wrap .gn-btn i' => 'font-size: {{SIZE}}{{UNIT}};',
                ),
            )
        );

        $this->start_controls_tabs( 'map_search_button_tabs' );

        $this->start_controls_tab(
            'map_search_button_normal',
            array(
                'label' => esc_html__( 'Normal', 'gigneo' ),
                'condition' => array(
                    'hide_map!'           => 'yes',
                ),
            )
        );

        $this->add_control(
            'map_search_button_text_color',
            array(
                'label'     => esc_html__( 'Text Color', 'gigneo' ),
                'type'      => Controls_Manager::COLOR,
                'condition' => array(
                    'hide_map!'           => 'yes',
                ),
                'selectors' => array(
                    '{{WRAPPER}} .gn-ele-service-archive-wrapper .gn-search-area-btn-wrap .gn-btn'   => 'color: {{VALUE}};',
                    '{{WRAPPER}} .gn-ele-service-archive-wrapper .gn-search-area-btn-wrap .gn-btn i' => 'color: {{VALUE}};',
                ),
            )
        );

        $this->add_control(
            'map_search_button_bg_color',
            array(
                'label'     => esc_html__( 'Background Color', 'gigneo' ),
                'type'      => Controls_Manager::COLOR,
                'condition' => array(
                    'hide_map!'           => 'yes',
                ),
                'selectors' => array(
                    '{{WRAPPER}} .gn-ele-service-archive-wrapper .gn-search-area-btn-wrap .gn-btn' => 'background-color: {{VALUE}};',
                ),
            )
        );

        $this->add_group_control(
            Group_Control_Box_Shadow::get_type(),
            array(
                'name'     => 'map_search_button_shadow',
                'condition' => array(
                    'hide_map!'           => 'yes',
                ),
                'selector' => '{{WRAPPER}} .gn-ele-service-archive-wrapper .gn-search-area-btn-wrap .gn-btn',
            )
        );

        $this->end_controls_tab();

        $this->start_controls_tab(
            'map_search_button_hover',
            array(
                'label' => esc_html__( 'Hover', 'gigneo' ),
                'condition' => array(
                    'hide_map!'           => 'yes',
                ),
            )
        );

        $this->add_control(
            'map_search_button_text_color_hover',
            array(
                'label'     => esc_html__( 'Text Color', 'gigneo' ),
                'type'      => Controls_Manager::COLOR,
                'condition' => array(
                    'hide_map!'           => 'yes',
                ),
                'selectors' => array(
                    '{{WRAPPER}} .gn-ele-service-archive-wrapper .gn-search-area-btn-wrap .gn-btn:hover'   => 'color: {{VALUE}};',
                    '{{WRAPPER}} .gn-ele-service-archive-wrapper .gn-search-area-btn-wrap .gn-btn:hover i' => 'color: {{VALUE}};',
                ),
            )
        );

        $this->add_control(
            'map_search_button_bg_color_hover',
            array(
                'label'     => esc_html__( 'Background Color', 'gigneo' ),
                'type'      => Controls_Manager::COLOR,
                'condition' => array(
                    'hide_map!'           => 'yes',
                ),
                'selectors' => array(
                    '{{WRAPPER}} .gn-ele-service-archive-wrapper .gn-search-area-btn-wrap .gn-btn:hover' => 'background-color: {{VALUE}};',
                ),
            )
        );

        $this->add_control(
            'map_search_button_border_color_hover',
            array(
                'label'     => __( 'Border Color', 'gigneo' ),
                'type'      => Controls_Manager::COLOR,
                'condition' => array(
                    'hide_map!'           => 'yes',
                ),
                'selectors' => array(
                    '{{WRAPPER}} .gn-ele-service-archive-wrapper .gn-search-area-btn-wrap .gn-btn:hover' => 'border-color: {{VALUE}};',
                ),
            )
        );

        $this->add_group_control(
            Group_Control_Box_Shadow::get_type(),
            array(
                'name'     => 'map_search_button_shadow_hover',
                'condition' => array(
                    'hide_map!'           => 'yes',
                ),
                'selector' => '{{WRAPPER}} .gn-ele-service-archive-wrapper .gn-search-area-btn-wrap .gn-btn:hover',
            )
        );

        $this->end_controls_tab();

        $this->end_controls_tabs();

        $this->add_group_control(
            Group_Control_Border::get_type(),
            array(
                'name'      => 'map_search_button_border',
                'condition' => array(
                    'hide_map!'           => 'yes',
                ),
                'separator' => 'before',
                'selector'  => '{{WRAPPER}} .gn-ele-service-archive-wrapper .gn-search-area-btn-wrap .gn-btn',
            )
        );

        $this->add_responsive_control(
            'map_search_button_radius',
            array(
                'label'     => esc_html__( 'Border Radius', 'gigneo' ),
                'type'      => Controls_Manager::DIMENSIONS,
                'condition' => array(
                    'hide_map!'           => 'yes',
                ),
                'selectors' => array(
                    '{{WRAPPER}} .gn-ele-service-archive-wrapper .gn-search-area-btn-wrap .gn-btn' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
                ),
            )
        );

        $this->add_responsive_control(
            'map_search_button_padding',
            array(
                'label'     => esc_html__( 'Padding', 'gigneo' ),
                'type'      => Controls_Manager::DIMENSIONS,
                'condition' => array(
                    'hide_map!'           => 'yes',
                ),
                'selectors' => array(
                    '{{WRAPPER}} .gn-ele-service-archive-wrapper .gn-search-area-btn-wrap .gn-btn' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
                ),
            )
        );

        $this->add_responsive_control(
            'map_search_button_margin',
            array(
                'label'     => esc_html__( 'Margin', 'gigneo' ),
                'type'      => Controls_Manager::DIMENSIONS,
                'condition' => array(
                    'hide_map!'           => 'yes',
                ),
                'selectors' => array(
                    '{{WRAPPER}} .gn-ele-service-archive-wrapper .gn-search-area-btn-wrap .gn-btn' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
                ),
            )
        );

        $this->add_control(
            'map_search_radius_heading',
            array(
                'label'     => esc_html__( 'Search Radius', 'gigneo' ),
                'type'      => Controls_Manager::HEADING,
                'condition' => array(
                    'hide_map!'           => 'yes',
                ),
                'separator' => 'before',
            )
        );

        $this->add_control(
            'map_search_radius_background_color',
            array(
                'label'     => esc_html__( 'Background Color', 'gigneo' ),
                'type'      => Controls_Manager::COLOR,
                'condition' => array(
                    'hide_map!'           => 'yes',
                ),
                'selectors' => array(
                    '{{WRAPPER}} .gn-ele-service-archive-wrapper .gn-map-radius-wrapper' => 'background-color: {{VALUE}};',
                ),
            )
        );

        $this->add_group_control(
            Group_Control_Box_Shadow::get_type(),
            array(
                'name'     => 'map_search_radius_box_shadow',
                'condition' => array(
                    'hide_map!'           => 'yes',
                ),
                'selector' => '{{WRAPPER}} .gn-ele-service-archive-wrapper .gn-map-radius-wrapper',
            )
        );

        $this->add_group_control(
            Group_Control_Border::get_type(),
            array(
                'name'     => 'map_search_radius_border',
                'condition' => array(
                    'hide_map!'           => 'yes',
                ),
                'selector' => '{{WRAPPER}} .gn-ele-service-archive-wrapper .gn-map-radius-wrapper',
            )
        );

        $this->add_responsive_control(
            'map_search_radius_border_radius',
            array(
                'label'      => esc_html__( 'Border Radius', 'gigneo' ),
                'type'       => Controls_Manager::DIMENSIONS,
                'condition' => array(
                    'hide_map!'           => 'yes',
                ),
                'size_units' => array( 'px', '%' ),
                'selectors'  => array(
                    '{{WRAPPER}} .gn-ele-service-archive-wrapper .gn-map-radius-wrapper' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
                ),
            )
        );

        $this->add_responsive_control(
            'map_search_radius_padding',
            array(
                'label'      => esc_html__( 'Padding', 'gigneo' ),
                'type'       => Controls_Manager::DIMENSIONS,
                'condition' => array(
                    'hide_map!'           => 'yes',
                ),
                'size_units' => array( 'px', 'em', '%' ),
                'selectors'  => array(
                    '{{WRAPPER}} .gn-ele-service-archive-wrapper .gn-map-radius-wrapper' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
                ),
            )
        );

        $this->add_responsive_control(
            'map_search_radius_margin',
            array(
                'label'      => esc_html__( 'Margin', 'gigneo' ),
                'type'       => Controls_Manager::DIMENSIONS,
                'condition' => array(
                    'hide_map!'           => 'yes',
                ),
                'size_units' => array( 'px', 'em', '%' ),
                'selectors'  => array(
                    '{{WRAPPER}} .gn-ele-service-archive-wrapper .gn-map-radius-wrapper' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
                ),
            )
        );

        $this->add_control(
            'map_search_label_heading',
            array(
                'label'     => esc_html__( 'Label', 'gigneo' ),
                'type'      => Controls_Manager::HEADING,
                'condition' => array(
                    'hide_map!'           => 'yes',
                ),
                'separator' => 'before',
            )
        );

        $this->add_group_control(
            Group_Control_Typography::get_type(),
            array(
                'name'     => 'map_search_label_typo',
                'condition' => array(
                    'hide_map!'           => 'yes',
                ),
                'selector' => '{{WRAPPER}} .gn-nouislider .gn-form-field>.gn-field-label',
            )
        );

        $this->add_control(
            'map_search_label_text_color',
            array(
                'label'     => esc_html__( 'Text Color', 'gigneo' ),
                'type'      => Controls_Manager::COLOR,
                'condition' => array(
                    'hide_map!'           => 'yes',
                ),
                'selectors' => array(
                    '{{WRAPPER}} .gn-nouislider .gn-form-field>.gn-field-label' => 'color: {{VALUE}}',
                ),
            )
        );

        $this->add_responsive_control(
            'map_search_label_margin',
            array(
                'label'      => esc_html__( 'Margin', 'gigneo' ),
                'type'       => Controls_Manager::DIMENSIONS,
                'condition' => array(
                    'hide_map!'           => 'yes',
                ),
                'size_units' => array( 'px', 'em', '%' ),
                'selectors'  => array(
                    '{{WRAPPER}} .gn-nouislider .gn-form-field>.gn-field-label' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
                ),
            )
        );

        $this->add_control(
            'map_search_value_heading',
            array(
                'label'     => esc_html__( 'Value', 'gigneo' ),
                'type'      => Controls_Manager::HEADING,
                'condition' => array(
                    'hide_map!'           => 'yes',
                ),
                'separator' => 'before',
            )
        );

        $this->add_group_control(
            Group_Control_Typography::get_type(),
            array(
                'name'     => 'map_search_value_typo',
                'condition' => array(
                    'hide_map!'           => 'yes',
                ),
                'selector' => '{{WRAPPER}} .gn-map-radius-wrapper .gn-radius-value',
            )
        );

        $this->add_control(
            'map_search_value_text_color',
            array(
                'label'     => esc_html__( 'Text Color', 'gigneo' ),
                'type'      => Controls_Manager::COLOR,
                'condition' => array(
                    'hide_map!'           => 'yes',
                ),
                'selectors' => array(
                    '{{WRAPPER}} .gn-map-radius-wrapper .gn-radius-value' => 'color: {{VALUE}}',
                ),
            )
        );

        $this->add_responsive_control(
            'map_search_value_margin',
            array(
                'label'      => esc_html__( 'Margin', 'gigneo' ),
                'type'       => Controls_Manager::DIMENSIONS,
                'condition' => array(
                    'hide_map!'           => 'yes',
                ),
                'size_units' => array( 'px', 'em', '%' ),
                'selectors'  => array(
                    '{{WRAPPER}} .gn-map-radius-wrapper .gn-radius-value' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
                ),
            )
        );

        $this->add_control(
            'map_search_range_slider',
            array(
                'label'     => esc_html__( 'Range Slider', 'gigneo' ),
                'type'      => Controls_Manager::HEADING,
                'condition' => array(
                    'hide_map!'           => 'yes',
                ),
                'separator' => 'before',
            )
        );

        $this->add_group_control(
            Group_Control_Box_Shadow::get_type(),
            array(
                'name'     => 'map_search_range_slider_box_shadow',
                'label'    => esc_html__( 'Knob Box Shadow', 'gigneo' ),
                'condition' => array(
                    'hide_map!'           => 'yes',
                ),
                'selector' => '{{WRAPPER}} .gn-ele-service-archive-wrapper .gn-nouislider .noUi-handle',
            )
        );

        $this->add_control(
            'map_search_range_slider_bg_color',
            array(
                'label'     => esc_html__( 'Background Color', 'gigneo' ),
                'type'      => Controls_Manager::COLOR,
                'condition' => array(
                    'hide_map!'           => 'yes',
                ),
                'selectors' => array( '{{WRAPPER}} .gn-ele-service-archive-wrapper .gn-nouislider .noUi-target' => 'background-color: {{VALUE}};' ),
            )
        );

        $this->add_control(
            'map_search_range_slider_bg_color_knob',
            array(
                'label'     => esc_html__( 'Knob Background Color', 'gigneo' ),
                'type'      => Controls_Manager::COLOR,
                'condition' => array(
                    'hide_map!'           => 'yes',
                ),
                'selectors' => array( '{{WRAPPER}} .gn-ele-service-archive-wrapper .gn-nouislider .noUi-handle' => 'background-color: {{VALUE}};' ),
            )
        );

        $this->add_control(
            'map_search_range_slider_bg_color_active',
            array(
                'label'     => esc_html__( 'Active Background Color', 'gigneo' ),
                'type'      => Controls_Manager::COLOR,
                'condition' => array(
                    'hide_map!'           => 'yes',
                ),
                'selectors' => array(
                    '{{WRAPPER}} .gn-ele-service-archive-wrapper .gn-nouislider .noUi-connect' => 'background-color: {{VALUE}};',
                    '{{WRAPPER}} .gn-ele-service-archive-wrapper .gn-nouislider .noUi-handle'  => 'border-color: {{VALUE}};',
                ),
            )
        );

        $this->add_responsive_control(
            'map_search_range_slider_margin',
            array(
                'label'      => esc_html__( 'Margin', 'gigneo' ),
                'type'       => Controls_Manager::DIMENSIONS,
                'size_units' => array( 'px', 'em', '%' ),
                'condition' => array(
                    'hide_map!'           => 'yes',
                ),
                'selectors'  => array(
                    '{{WRAPPER}} .gn-ele-service-archive-wrapper .gn-nouislider .noUi-target' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
                ),
            )
        );

        $this->end_controls_section();
		}

		$this->start_controls_section(
			'empty_style',
			array(
				'label' => esc_html__( 'Empty View', 'gigneo' ),
				'tab'   => Controls_Manager::TAB_STYLE,
			)
		);

		$this->add_group_control(
			Group_Control_Background::get_type(),
			array(
				'name'     => 'empty_view_bg_color',
				'types'    => array( 'classic', 'gradient' ),
				'exclude'  => array( 'image' ), // phpcs:ignore WordPressVIPMinimum.Performance.WPQueryParams.PostNotIn_exclude
				'selector' => '{{WRAPPER}} .gn-archive-main .gn-not-found-wrapper',
			)
		);

		$this->add_responsive_control(
			'empty_view_min_height',
			array(
				'label'      => esc_html__( 'Min Height', 'gigneo' ),
				'type'       => Controls_Manager::SLIDER,
				'size_units' => array( 'px', '%', 'vw' ),
				'range'      => array(
					'px' => array(
						'min' => 0,
						'max' => 1000,
					),
					'%'  => array(
						'min' => 0,
						'max' => 100,
					),
					'vw' => array(
						'min' => 0,
						'max' => 100,
					),
				),
				'default'    => array(
					'size' => '',
					'unit' => 'px',
				),
				'selectors'  => array(
					'{{WRAPPER}} .gn-archive-main .gn-not-found-wrapper' => 'min-height: {{SIZE}}{{UNIT}};',
				),
			)
		);

		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'     => 'empty_view_border',
				'selector' => '{{WRAPPER}} .gn-archive-main .gn-not-found-wrapper',
			)
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'empty_view_box_shadow',
				'selector' => '{{WRAPPER}} .gn-archive-main .gn-not-found-wrapper',
			)
		);

		$this->add_responsive_control(
			'empty_view_radius',
			array(
				'label'     => esc_html__( 'Border Radius', 'gigneo' ),
				'type'      => Controls_Manager::DIMENSIONS,
				'selectors' => array(
					'{{WRAPPER}} .gn-archive-main .gn-not-found-wrapper' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_responsive_control(
			'empty_view_padding',
			array(
				'label'      => esc_html__( 'Padding', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', 'em', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-archive-main .gn-not-found-wrapper' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_responsive_control(
			'empty_view_margin',
			array(
				'label'      => esc_html__( 'Margin', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', 'em', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-archive-main .gn-not-found-wrapper' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_control(
			'empty_view_image',
			array(
				'label'     => esc_html__( 'Image', 'gigneo' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			)
		);

		$this->add_responsive_control(
			'empty_view_image_size',
			array(
				'label'      => __( 'Size', 'gigneo' ),
				'type'       => \Elementor\Controls_Manager::SLIDER,
				'size_units' => array( 'px', '%', 'em' ),
				'range'      => array(
					'px' => array(
						'min'  => 10,
						'max'  => 200,
						'step' => 1,
					),
				),
				'selectors'  => array(
					'{{WRAPPER}} .gn-not-found-image svg' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}};',
				),
			)
		);

		$this->add_responsive_control(
			'empty_view_image_margin',
			array(
				'label'      => esc_html__( 'Margin', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', 'em', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-not-found-image' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_control(
			'empty_view_title',
			array(
				'label'     => esc_html__( 'Title', 'gigneo' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			)
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			array(
				'name'     => 'empty_view_title_typography',
				'selector' => '{{WRAPPER}} .gn-not-found-content .gn-not-found-title',
			)
		);

		$this->add_control(
			'empty_view_title_color',
			array(
				'label'     => esc_html__( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'default'   => '',
				'selectors' => array(
					'{{WRAPPER}} .gn-not-found-content .gn-not-found-title' => 'color: {{VALUE}};',
				),
			)
		);

		$this->add_responsive_control(
			'empty_view_title_margin',
			array(
				'label'      => esc_html__( 'Margin', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', 'em', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-not-found-content .gn-not-found-title' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->add_control(
			'empty_view_desc',
			array(
				'label'     => esc_html__( 'Description', 'gigneo' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			)
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			array(
				'name'     => 'empty_view_desc_typography',
				'selector' => '{{WRAPPER}} .gn-not-found-content .gn-not-found-desc',
			)
		);

		$this->add_control(
			'empty_view_desc_color',
			array(
				'label'     => esc_html__( 'Text Color', 'gigneo' ),
				'type'      => Controls_Manager::COLOR,
				'default'   => '',
				'selectors' => array(
					'{{WRAPPER}} .gn-not-found-content .gn-not-found-desc' => 'color: {{VALUE}};',
				),
			)
		);

		$this->add_responsive_control(
			'empty_view_desc_margin',
			array(
				'label'      => esc_html__( 'Margin', 'gigneo' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', 'em', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .gn-not-found-content .gn-not-found-desc' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);

		$this->end_controls_section();

        $this->start_controls_section(
            'pagination_style',
            array(
                'label' => esc_html__('Pagination', 'gigneo'),
                'tab' => Controls_Manager::TAB_STYLE,
            )
        );

        $this->add_group_control(
            Group_Control_Typography::get_type(),
            array(
                'name' => 'pagination_typography',
                'label' => esc_html__('Typography', 'gigneo'),
                'selector' => '{{WRAPPER}} .gn-pagination span, .gn-pagination a',
            )
        );

        $this->add_responsive_control(
            'pagination_icon_size',
            array(
                'label' => esc_html__('Icon Size', 'gigneo'),
                'type' => Controls_Manager::SLIDER,
                'range' => array(
                    'px' => array(
                        'min' => 6,
                        'max' => 30,
                    ),
                ),
                'selectors' => array(
                    '{{WRAPPER}} .gn-pagination span i, .gn-pagination a i' => 'font-size: {{SIZE}}{{UNIT}};',
                ),
            )
        );

        $this->start_controls_tabs('pagination_tabs');

        $this->start_controls_tab(
            'pagination_normal',
            array('label' => esc_html__('Normal', 'gigneo'))
        );

        $this->add_control(
            'pagination_text_color',
            array(
                'label' => esc_html__('Text Color', 'gigneo'),
                'type' => Controls_Manager::COLOR,
                'selectors' => array(
                    '{{WRAPPER}} .gn-pagination span, .gn-pagination a' => 'color: {{VALUE}};',
                ),
            )
        );

        $this->add_control(
            'pagination_background',
            array(
                'label' => esc_html__('Background Color', 'gigneo'),
                'type' => Controls_Manager::COLOR,
                'selectors' => array(
                    '{{WRAPPER}} .gn-pagination span, .gn-pagination a' => 'background-color: {{VALUE}};',
                ),
            )
        );

        $this->add_group_control(
            Group_Control_Box_Shadow::get_type(),
            array(
                'name' => 'pagination_box_shadow',
                'selector' => '{{WRAPPER}} .gn-pagination span, .gn-pagination a',
            )
        );

        $this->end_controls_tab();

        $this->start_controls_tab(
            'pagination_hover',
            array('label' => esc_html__('Hover', 'gigneo'))
        );

        $this->add_control(
            'pagination_color_hover',
            array(
                'label' => esc_html__('Text Color', 'gigneo'),
                'type' => Controls_Manager::COLOR,
                'selectors' => array(
                    '{{WRAPPER}} .gn-pagination span:hover, .gn-pagination a:hover' => 'color: {{VALUE}};',
                ),
            )
        );

        $this->add_control(
            'pagination_background_hover',
            array(
                'label' => esc_html__('Background Color', 'gigneo'),
                'type' => Controls_Manager::COLOR,
                'selectors' => array(
                    '{{WRAPPER}} .gn-pagination span:hover, .gn-pagination a:hover' => 'background-color: {{VALUE}};',
                ),
            )
        );

        $this->add_control(
            'pagination_border_color_hover',
            array(
                'label' => __('Border Color', 'gigneo'),
                'type' => Controls_Manager::COLOR,
                'selectors' => array(
                    '{{WRAPPER}} .gn-pagination span:hover, .gn-pagination a:hover' => 'border-color: {{VALUE}};',
                ),
            )
        );

        $this->add_group_control(
            Group_Control_Box_Shadow::get_type(),
            array(
                'name' => 'pagination_box_shadow_hover',
                'selector' => '{{WRAPPER}} .gn-pagination span:hover, .gn-pagination a:hover',
            )
        );

        $this->end_controls_tab();

        $this->start_controls_tab(
            'pagination_focus',
            array('label' => esc_html__('Focus', 'gigneo'))
        );

        $this->add_control(
            'pagination_color_focus',
            array(
                'label' => esc_html__('Text Color', 'gigneo'),
                'type' => Controls_Manager::COLOR,
                'selectors' => array(
                    '{{WRAPPER}} .gn-pagination .gn-current' => 'color: {{VALUE}};',
                ),
            )
        );

        $this->add_control(
            'pagination_background_focus',
            array(
                'label' => esc_html__('Background Color', 'gigneo'),
                'type' => Controls_Manager::COLOR,
                'selectors' => array(
                    '{{WRAPPER}} .gn-pagination .gn-current' => 'background-color: {{VALUE}};',
                ),
            )
        );

        $this->add_control(
            'pagination_border_focus',
            array(
                'label' => __('Border Color', 'gigneo'),
                'type' => Controls_Manager::COLOR,
                'selectors' => array(
                    '{{WRAPPER}} .gn-pagination .gn-current' => 'border-color: {{VALUE}};',
                ),
            )
        );

        $this->add_group_control(
            Group_Control_Box_Shadow::get_type(),
            array(
                'name' => 'pagination_box_shadow_focus',
                'selector' => '{{WRAPPER}} .gn-pagination .gn-current',
            )
        );

        $this->end_controls_tab();

        $this->end_controls_tabs();

        $this->add_group_control(
            Group_Control_Border::get_type(),
            array(
                'name' => 'pagination_border',
                'separator' => 'before',
                'selector' => '{{WRAPPER}} .gn-pagination span, .gn-pagination a',
            )
        );

        $this->add_responsive_control(
            'pagination_radius',
            array(
                'label' => esc_html__('Border Radius', 'gigneo'),
                'type' => Controls_Manager::DIMENSIONS,
                'size_units' => array('px', '%'),
                'selectors' => array(
                    '{{WRAPPER}} .gn-pagination span, .gn-pagination a' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
                ),
            )
        );

        $this->add_responsive_control(
            'pagination_padding',
            array(
                'label' => esc_html__('Padding', 'gigneo'),
                'type' => Controls_Manager::DIMENSIONS,
                'size_units' => array('px', 'em', '%'),
                'selectors' => array(
                    '{{WRAPPER}} .gn-pagination span, .gn-pagination a' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
                ),
            )
        );

        $this->add_responsive_control(
            'pagination_margin',
            array(
                'label' => esc_html__('Margin', 'gigneo'),
                'type' => Controls_Manager::DIMENSIONS,
                'size_units' => array('px', 'em', '%'),
                'selectors' => array(
                    '{{WRAPPER}} .gn-pagination span, .gn-pagination a' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
                ),
            )
        );

        $this->end_controls_section();
	}


	/**
	 * Render widget output on the frontend.
	 */
	protected function render() {
		// Include the frontend template for the widget.
		require gigneo_get_template( 'elementor/widgets/service-archive' );
	}
}
