<?php
namespace EcafeAddons\Widgets;

use Elementor\Widget_Base;
use Elementor\Controls_Manager;
use Elementor\Utils;
use Elementor\Scheme_Color;
use Elementor\Group_Control_Typography;
use Elementor\Core\Schemes\Typography;
use Elementor\Group_Control_Border;
use Elementor\Group_Control_Image_Size;
use Elementor\Group_Control_Background;
use Elementor\Group_Control_Box_Shadow;
use Elementor\Group_Control_Text_Shadow;

use EcafeAddons\EcafeElementLoad;

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

class Ecafe_Grid_Post_Listing extends Widget_Base {

	public function get_name() {
		return 'ecafe-grid-post-listing';
	}

	public function get_title() {
		return esc_html__( 'Grid Post Listing', 'essential-classy-addons-for-elementor' );
	}

	public function get_icon() {
		return 'ecafe-ele-back-icon ecafe-gridpostlisting-icon';
	}

	public function get_categories() {
		return array( 'essential' );
	}

	public function get_keywords() {
		return array( 'post', 'post list', 'listing', 'cpt', 'grid', 'masonry', 'grid listing', 'masonry listing', 'grid post listing' );
	}

	public function get_script_depends() {
		return array( 'ecafe-isotope', 'ecafe-min-js', 'ecafe-imagesloaded', 'ecafe-post-listing' );
	}
	public function get_custom_help_url() {
		return 'https://store.kapasias.com/helpdesk/';
	}
	public function has_widget_inner_wrapper(): bool {
		return ! \Elementor\Plugin::$instance->experiments->is_feature_active( 'e_optimized_markup' );
	}
	protected function register_controls() {

		$this->start_controls_section(
			'content_section',
			array(
				'label' => esc_html__( 'Layout', 'essential-classy-addons-for-elementor' ),
				'tab'   => Controls_Manager::TAB_CONTENT,
			)
		);
		$this->add_control(
			'selectPostType',
			array(
				'label'     => esc_html__( 'Post Types', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::SELECT,
				'default'   => 'post',
				'options'   => \EcafeHelper::getPostTypes(),
				'condition' => array(
					'ecCustomQuery!' => 'yes',
				),
			)
		);
		$this->add_control(
			'ecCustomQuery',
			array(
				'label'     => esc_html__( 'Custom Query', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::SWITCHER,
				'label_on'  => esc_html__( 'Enable', 'essential-classy-addons-for-elementor' ),
				'label_off' => esc_html__( 'Disable', 'essential-classy-addons-for-elementor' ),
				'default'   => 'no',
			)
		);
		$this->add_control(
			'ecCustomQueryId',
			array(
				'label'       => esc_html__( 'Query ID', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'Enter Query ID', 'essential-classy-addons-for-elementor' ),
				'label_block' => true,
				'condition'   => array(
					'ecCustomQuery' => 'yes',
				),
			)
		);
		$this->add_control(
			'style',
			array(
				'label'   => esc_html__( 'Style', 'essential-classy-addons-for-elementor' ),
				'type'    => Controls_Manager::SELECT,
				'default' => 'style-1',
				'options' => \EcafeHelper::getStyleLoop( 8, '', 'yes' ),
			)
		);
		$this->add_control(
			'grid_post_custom_template',
			array(
				'label'       => esc_html__( 'Custom Template', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::SELECT2,
				'label_block' => true,
				'default'     => '0',
				'options'     => \EcafeHelper::getTemplates(),
				'condition'   => array(
					'style' => 'custom-template',
				),
			)
		);
		$this->add_control(
			'postLayout',
			array(
				'label'   => esc_html__( 'Layout', 'essential-classy-addons-for-elementor' ),
				'type'    => Controls_Manager::SELECT,
				'default' => 'grid',
				'options' => \EcafeHelper::getListLayout(),
			)
		);
		$this->add_control(
			'style8FlipType',
			array(
				'label'     => esc_html__( 'Flip Type', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::SELECT,
				'default'   => 'horizontal',
				'options'   => array(
					'horizontal' => esc_html__( 'Horizontal', 'essential-classy-addons-for-elementor' ),
					'vertical'   => esc_html__( 'Vertical', 'essential-classy-addons-for-elementor' ),
				),
				'condition' => array(
					'style' => 'style-8',
				),
			)
		);
		$this->add_control(
			'relayoutissue',
			array(
				'label'     => esc_html__( 'Relayout Issue', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::SWITCHER,
				'label_on'  => esc_html__( 'Try', 'essential-classy-addons-for-elementor' ),
				'label_off' => esc_html__( 'Try', 'essential-classy-addons-for-elementor' ),
				'separator' => 'before',
			)
		);
		$this->add_control(
			'ecrtl',
			array(
				'label'     => esc_html__( 'RTL', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::SWITCHER,
				'label_on'  => esc_html__( 'Enable', 'essential-classy-addons-for-elementor' ),
				'label_off' => esc_html__( 'Disable', 'essential-classy-addons-for-elementor' ),
				'default'   => 'no',
			)
		);
		$this->end_controls_section();

		$this->start_controls_section(
			'query_section',
			array(
				'label' => esc_html__( 'Query Control', 'essential-classy-addons-for-elementor' ),
				'tab'   => Controls_Manager::TAB_CONTENT,
			)
		);
		$this->add_control(
			'selectTaxonomy',
			array(
				'label'     => esc_html__( 'Taxonomy', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::SELECT,
				'default'   => 'category',
				'options'   => \EcafeHelper::getTaxonomiesList(),
				'condition' => array(
					'ecCustomQuery!' => 'yes',
				),
			)
		);
		$this->add_control(
			'postCategory',
			array(
				'label'       => esc_html__( 'Categories', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::SELECT2,
				'multiple'    => true,
				'options'     => \EcafeHelper::getTermsList(),
				'default'     => array(),
				'label_block' => true,
				'condition'   => array(
					'ecCustomQuery!' => 'yes',
					'selectPostType' => 'post',
					'selectTaxonomy' => 'category',
				),
			)
		);
		$this->add_control(
			'postTags',
			array(
				'label'       => esc_html__( 'Post Tags', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::SELECT2,
				'multiple'    => true,
				'options'     => \EcafeHelper::getTermsList( 'post_tag', 'term_id' ),
				'default'     => array(),
				'label_block' => true,
				'condition'   => array(
					'ecCustomQuery!' => 'yes',
					'selectPostType' => 'post',
					'selectTaxonomy' => 'post_tag',
				),
			)
		);
		$this->add_control(
			'taxonomyInclude',
			array(
				'label'       => esc_html__( 'Taxonomies Terms IDs', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXTAREA,
				'label_block' => true,
				'placeholder' => esc_html__( 'Taxonomies like : 11,22', 'essential-classy-addons-for-elementor' ),
				'condition'   => array(
					'ecCustomQuery!'  => 'yes',
					'selectPostType!' => array( 'post' ),
					'selectTaxonomy!' => '',
				),
			)
		);
		$this->add_control(
			'postsInclude',
			array(
				'label'       => esc_html__( 'Include Post(s)', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'Include like : 11,22', 'essential-classy-addons-for-elementor' ),
				'label_block' => true,
				'condition'   => array(
					'ecCustomQuery!' => 'yes',
				),
			)
		);
		$this->add_control(
			'postsExclude',
			array(
				'label'       => esc_html__( 'Exclude Post(s)', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'Exclude like : 11,22', 'essential-classy-addons-for-elementor' ),
				'label_block' => true,
				'condition'   => array(
					'ecCustomQuery!' => 'yes',
				),
			)
		);
		$this->add_control(
			'numberOfPosts',
			array(
				'label'     => esc_html__( 'Maximum Posts Display', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::NUMBER,
				'min'       => -1,
				'max'       => 1000,
				'step'      => 1,
				'default'   => 6,
				'separator' => 'before',
			)
		);
		$this->add_control(
			'postsOffset',
			array(
				'label'       => esc_html__( 'Offset Posts', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::NUMBER,
				'min'         => 0,
				'max'         => 50,
				'step'        => 1,
				'description' => esc_html__( 'Starting posts hide from the list.', 'essential-classy-addons-for-elementor' ),
			)
		);
		$this->add_control(
			'postsOrderBy',
			array(
				'label'   => esc_html__( 'Order By', 'essential-classy-addons-for-elementor' ),
				'type'    => Controls_Manager::SELECT,
				'default' => 'date',
				'options' => \EcafeHelper::getOrderByArray(),
			)
		);
		$this->add_control(
			'postsOrder',
			array(
				'label'   => esc_html__( 'Order', 'essential-classy-addons-for-elementor' ),
				'type'    => Controls_Manager::SELECT,
				'default' => 'DESC',
				'options' => \EcafeHelper::getOrderArray(),
			)
		);
		$this->end_controls_section();

		$this->start_controls_section(
			'columnsSection',
			array(
				'label'     => esc_html__( 'Columns', 'essential-classy-addons-for-elementor' ),
				'tab'       => Controls_Manager::TAB_CONTENT,
				'condition' => array(
					'style!' => 'style-3',
				),
			)
		);
		$this->add_responsive_control(
			'selectColumns',
			array(
				'label'          => esc_html__( 'Columns', 'essential-classy-addons-for-elementor' ),
				'type'           => Controls_Manager::SELECT,
				'default'        => '33.3333',
				'tablet_default' => '50',
				'mobile_default' => '100',
				'options'        => \EcafeHelper::getResponsiveColumn(),
				'render_type'    => 'ui',
				'selectors'      => array(
					'{{WRAPPER}} .eca-post-grid-listing-wrap .ec-grid-wrap' => 'width: {{selectColumns}}%;',
				),
			)
		);
		$this->add_responsive_control(
			'columnGap',
			array(
				'label'      => esc_html__( 'Gap', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%', 'em' ),
				'selectors'  => array(
					'{{WRAPPER}} .eca-post-grid-listing-wrap .ec-grid-wrap' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->end_controls_section();

		$this->start_controls_section(
			'extraOptionsSection',
			array(
				'label' => esc_html__( 'Layout Options', 'essential-classy-addons-for-elementor' ),
				'tab'   => Controls_Manager::TAB_CONTENT,
			)
		);
		$this->add_responsive_control(
			'contentAlign',
			array(
				'label'     => esc_html__( 'Alignment', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::CHOOSE,
				'options'   => array(
					'left'   => array(
						'title' => esc_html__( 'Left', 'essential-classy-addons-for-elementor' ),
						'icon'  => 'eicon-text-align-left',
					),
					'center' => array(
						'title' => esc_html__( 'Center', 'essential-classy-addons-for-elementor' ),
						'icon'  => 'eicon-text-align-center',
					),
					'right'  => array(
						'title' => esc_html__( 'Right', 'essential-classy-addons-for-elementor' ),
						'icon'  => 'eicon-text-align-right',
					),
				),
				'selectors' => array(
					'{{WRAPPER}} .post-content-data,
					{{WRAPPER}} .listing-style-7 .post-img-inner ' => 'text-align:{{VALUE}};',
				),
				'condition' => array(
					'style' => array( 'style-1', 'style-2', 'style-5', 'style-6', 'style-7' ),
				),
			)
		);
		$this->add_control(
			'showImage',
			array(
				'label'     => esc_html__( 'Show Image', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::SWITCHER,
				'label_on'  => esc_html__( 'Show', 'essential-classy-addons-for-elementor' ),
				'label_off' => esc_html__( 'Hide', 'essential-classy-addons-for-elementor' ),
				'default'   => 'yes',
				'separator' => 'before',
			)
		);
		$this->add_group_control(
			Group_Control_Image_Size::get_type(),
			array(
				'name'      => 'imageSize',
				'default'   => 'full',
				'separator' => 'none',
				'exclude'   => array( 'custom' ),
				'condition' => array(
					'showImage' => 'yes',
				),
			)
		);
		$this->add_control(
			'showTitle',
			array(
				'label'     => esc_html__( 'Show Title', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::SWITCHER,
				'label_on'  => esc_html__( 'Show', 'essential-classy-addons-for-elementor' ),
				'label_off' => esc_html__( 'Hide', 'essential-classy-addons-for-elementor' ),
				'default'   => 'yes',
				'separator' => 'before',
			)
		);
		$this->add_control(
			'titleTag',
			array(
				'label'     => __( 'Title Tag', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::SELECT,
				'default'   => 'h2',
				'options'   => \EcafeHelper::getHtmlTag(),
				'condition' => array(
					'showTitle' => 'yes',
				),
			)
		);
		$this->add_control(
			'titleLength',
			array(
				'label'     => __( 'Title Length', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::NUMBER,
				'condition' => array(
					'showTitle' => 'yes',
				),
			)
		);
		$this->add_control(
			'showExcerpt',
			array(
				'label'     => esc_html__( 'Show Excerpt/Content', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::SWITCHER,
				'label_on'  => esc_html__( 'Show', 'essential-classy-addons-for-elementor' ),
				'label_off' => esc_html__( 'Hide', 'essential-classy-addons-for-elementor' ),
				'default'   => 'yes',
				'separator' => 'before',
				'condition' => array(
					'style!' => array( 'style-3', 'style-4' ),
				),
			)
		);
		$this->add_control(
			'postExcerptLength',
			array(
				'label'     => esc_html__( 'Excerpt/Content Length', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::NUMBER,
				'step'      => 2,
				'default'   => 30,
				'condition' => array(
					'style!'      => array( 'style-3', 'style-4' ),
					'showExcerpt' => 'yes',
				),
			)
		);
		$this->add_control(
			'showPostMeta',
			array(
				'label'     => __( 'Show Post Meta', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::SWITCHER,
				'label_on'  => __( 'Show', 'essential-classy-addons-for-elementor' ),
				'label_off' => __( 'Hide', 'essential-classy-addons-for-elementor' ),
				'default'   => 'yes',
				'separator' => 'before',
				'condition' => array(
					'style!' => array( 'style-3', 'style-8' ),
				),
			)
		);
		$this->add_control(
			'postMetaStyle',
			array(
				'label'     => esc_html__( 'Meta Style', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::SELECT,
				'default'   => 'style-1',
				'options'   => \EcafeHelper::getStyleLoop( 1 ),
				'condition' => array(
					'style!'       => array( 'style-3', 'style-8' ),
					'showPostMeta' => 'yes',
				),
			)
		);
		$this->add_control(
			'postUserMeta',
			array(
				'label'     => __( 'Show User Meta', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::SWITCHER,
				'label_on'  => __( 'Show', 'essential-classy-addons-for-elementor' ),
				'label_off' => __( 'Hide', 'essential-classy-addons-for-elementor' ),
				'default'   => 'yes',
				'condition' => array(
					'style!'       => array( 'style-3', 'style-4', 'style-8' ),
					'showPostMeta' => 'yes',
				),
			)
		);
		$this->add_control(
			'prefixTextPostUserMeta',
			array(
				'label'       => esc_html__( 'Prefix Text User', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'dynamic'     => array( 'active' => true ),
				'label_block' => false,
				'default'     => esc_html__( 'By', 'essential-classy-addons-for-elementor' ),
				'condition'   => array(
					'style!'       => array( 'style-3', 'style-4', 'style-8' ),
					'showPostMeta' => 'yes',
					'postUserMeta' => 'yes',
				),
			)
		);
		$this->add_control(
			'postDateMeta',
			array(
				'label'     => __( 'Show Date Meta', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::SWITCHER,
				'label_on'  => __( 'Show', 'essential-classy-addons-for-elementor' ),
				'label_off' => __( 'Hide', 'essential-classy-addons-for-elementor' ),
				'default'   => 'yes',
				'condition' => array(
					'style!'       => array( 'style-3', 'style-4', 'style-8' ),
					'showPostMeta' => 'yes',
				),
			)
		);
		$this->add_control(
			'readMoreButton',
			array(
				'label'     => __( 'Show Read More Button', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::SWITCHER,
				'label_on'  => __( 'Show', 'essential-classy-addons-for-elementor' ),
				'label_off' => __( 'Hide', 'essential-classy-addons-for-elementor' ),
				'default'   => 'yes',
				'separator' => 'before',
				'condition' => array(
					'style!'          => array( 'style-3', 'style-4', 'style-6', 'style-8' ),
					'selectPostType!' => 'product',
				),
			)
		);
		$this->add_control(
			'readButtonText',
			array(
				'label'     => __( 'Button Text', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::TEXT,
				'dynamic'   => array( 'active' => true ),
				'default'   => __( 'Read More', 'essential-classy-addons-for-elementor' ),
				'condition' => array(
					'style!'          => array( 'style-3', 'style-4', 'style-6', 'style-8' ),
					'readMoreButton'  => 'yes',
					'selectPostType!' => 'product',
				),
			)
		);
		$this->end_controls_section();

		$this->start_controls_section(
			'AdvOptionsSection',
			array(
				'label'     => esc_html__( 'Advanced Options', 'essential-classy-addons-for-elementor' ),
				'tab'       => Controls_Manager::TAB_CONTENT,
				'condition' => array(
					'ecCustomQuery!' => 'yes',
				),
			)
		);
		$this->add_control(
			'advoptionHtml',
			array(
				'type'            => Controls_Manager::RAW_HTML,
				'raw'             => esc_html__( 'Note : Advanced Options is Only For Normal Page.', 'essential-classy-addons-for-elementor' ),
				'content_classes' => 'ec-description-notes',
			)
		);
		$this->add_control(
			'advoptionhighHtml',
			array(
				'type'            => Controls_Manager::RAW_HTML,
				'raw'             => esc_html__( 'Not for Single and Archive.', 'essential-classy-addons-for-elementor' ),
				'content_classes' => 'ec-description-notes-highlight',
			)
		);
		$this->add_control(
			'filterPost',
			array(
				'label'     => esc_html__( 'Filter', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::SWITCHER,
				'label_on'  => esc_html__( 'Show', 'essential-classy-addons-for-elementor' ),
				'label_off' => esc_html__( 'Hide', 'essential-classy-addons-for-elementor' ),
				'default'   => 'no',
				'separator' => 'before',
			)
		);
		$this->add_control(
			'filterAllShow',
			array(
				'label'     => esc_html__( 'Show All Filter', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::SWITCHER,
				'label_on'  => esc_html__( 'SHOW', 'essential-classy-addons-for-elementor' ),
				'label_off' => esc_html__( 'HIDE', 'essential-classy-addons-for-elementor' ),
				'default'   => 'yes',
				'condition' => array(
					'filterPost' => 'yes',
				),
			)
		);
		$this->add_control(
			'allFilterText',
			array(
				'label'     => esc_html__( 'All Filter Text', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::TEXT,
				'default'   => esc_html__( 'All', 'essential-classy-addons-for-elementor' ),
				'condition' => array(
					'filterAllShow' => 'yes',
					'filterPost'    => 'yes',
				),
			)
		);
		$this->add_control(
			'filterStyle',
			array(
				'label'     => esc_html__( 'Filter Style', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::SELECT,
				'default'   => 'style-1',
				'options'   => \EcafeHelper::getStyleLoop( 1 ),
				'condition' => array(
					'filterPost' => 'yes',
				),
			)
		);
		$this->add_control(
			'filterAlign',
			array(
				'label'       => esc_html__( 'Filter Alignment', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::CHOOSE,
				'options'     => array(
					'left'   => array(
						'title' => esc_html__( 'Left', 'essential-classy-addons-for-elementor' ),
						'icon'  => 'eicon-text-align-left',
					),
					'center' => array(
						'title' => esc_html__( 'Center', 'essential-classy-addons-for-elementor' ),
						'icon'  => 'eicon-text-align-center',
					),
					'right'  => array(
						'title' => esc_html__( 'Right', 'essential-classy-addons-for-elementor' ),
						'icon'  => 'eicon-text-align-right',
					),
				),
				'default'     => 'left',
				'toggle'      => true,
				'label_block' => false,
				'selectors'   => array(
					'{{WRAPPER}} .terms-filters-wrap' => 'text-align:{{VALUE}};',
				),
				'condition'   => array(
					'filterPost' => 'yes',
				),
			)
		);
		$this->add_control(
			'postLoadingOpt',
			array(
				'label'     => esc_html__( 'Loading Options', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::SELECT,
				'default'   => 'none',
				'options'   => \EcafeHelper::getLoadingOptions(),
				'separator' => 'before',
			)
		);
		$this->add_control(
			'paginateNext',
			array(
				'label'     => esc_html__( 'Next Text', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::TEXT,
				'default'   => esc_html__( 'Next', 'essential-classy-addons-for-elementor' ),
				'condition' => array(
					'postLoadingOpt' => 'pagination',
				),
			)
		);
		$this->add_control(
			'paginatePrev',
			array(
				'label'     => esc_html__( 'Prev Text', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::TEXT,
				'default'   => esc_html__( 'Prev', 'essential-classy-addons-for-elementor' ),
				'condition' => array(
					'postLoadingOpt' => 'pagination',
				),
			)
		);
		$this->add_control(
			'paginateAlign',
			array(
				'label'       => esc_html__( 'Paginate Alignment', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::CHOOSE,
				'options'     => array(
					'flex-start' => array(
						'title' => esc_html__( 'Left', 'essential-classy-addons-for-elementor' ),
						'icon'  => 'eicon-text-align-left',
					),
					'center'     => array(
						'title' => esc_html__( 'Center', 'essential-classy-addons-for-elementor' ),
						'icon'  => 'eicon-text-align-center',
					),
					'flex-end'   => array(
						'title' => esc_html__( 'Right', 'essential-classy-addons-for-elementor' ),
						'icon'  => 'eicon-text-align-right',
					),
				),
				'default'     => 'flex-start',
				'toggle'      => true,
				'label_block' => false,
				'selectors'   => array(
					'{{WRAPPER}} .eca-paginate' => 'justify-content:{{VALUE}};',
				),
				'condition'   => array(
					'postLoadingOpt' => 'pagination',
				),
			)
		);

		$this->add_control(
			'loadMoreBtnText',
			array(
				'label'     => esc_html__( 'Button Text', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::TEXT,
				'default'   => esc_html__( 'Load More', 'essential-classy-addons-for-elementor' ),
				'condition' => array(
					'postLoadingOpt' => 'load_more',
				),
			)
		);
		$this->add_control(
			'loadingMoreText',
			array(
				'label'     => esc_html__( 'Loading Text', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::TEXT,
				'default'   => esc_html__( 'Loading...', 'essential-classy-addons-for-elementor' ),
				'condition' => array(
					'postLoadingOpt' => array( 'load_more', 'lazy_load' ),
				),
			)
		);
		$this->add_control(
			'loadedPostsText',
			array(
				'label'     => esc_html__( 'After All Posts Loaded Text', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::TEXT,
				'default'   => esc_html__( 'All done!', 'essential-classy-addons-for-elementor' ),
				'condition' => array(
					'postLoadingOpt' => array( 'load_more', 'lazy_load' ),
				),
			)
		);
		$this->add_control(
			'loadMorePost',
			array(
				'label'     => esc_html__( 'More posts on click/scroll', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::NUMBER,
				'min'       => 1,
				'max'       => 40,
				'step'      => 1,
				'default'   => 3,
				'condition' => array(
					'postLoadingOpt' => array( 'load_more', 'lazy_load' ),
				),
			)
		);
		$this->end_controls_section();

		/*Tilt Effect Options*/
		include ECAFE_PATH . 'element/widgets/ecafe-tilt-options.php';

		/*Tippy Tooltip Options*/
		include ECAFE_PATH . 'element/widgets/ecafe-tippy-options.php';

		/*Notice panel*/
		$ecwidgetdemolink = esc_url( 'https://ecaddons.com/elements/grid-post-listing/' );
		$ecwidgetdoclink  = esc_url( 'https://ecaddons.com/docs/grid-post-listing-widget-tutorial/' );
		include ECAFE_PATH . 'element/widgets/ecafe-widgetpanel-help.php';

		/*title start*/
		$this->start_controls_section(
			'titleStyling',
			array(
				'label' => esc_html__( 'Title', 'essential-classy-addons-for-elementor' ),
				'tab'   => Controls_Manager::TAB_STYLE,
			)
		);
		$this->add_responsive_control(
			'titlePadding',
			array(
				'label'      => esc_html__( 'Padding', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%', 'em' ),
				'selectors'  => array(
					'{{WRAPPER}} .post-title a,{{WRAPPER}} .listing-style-3 .post-title,{{WRAPPER}} .listing-style-8 .post-title' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_responsive_control(
			'titleMargin',
			array(
				'label'      => esc_html__( 'Margin', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%', 'em' ),
				'selectors'  => array(
					'{{WRAPPER}} .post-title a,{{WRAPPER}} .listing-style-3 .post-title,{{WRAPPER}} .listing-style-8 .post-title' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Typography::get_type(),
			array(
				'name'     => 'titleTypo',
				'selector' => '{{WRAPPER}} .post-title a,{{WRAPPER}} .listing-style-3 .post-title,{{WRAPPER}} .listing-style-8 .post-title',
			)
		);
		$this->start_controls_tabs( 'tabstitleStyle' );
		$this->start_controls_tab(
			'tabtitleNormal',
			array(
				'label' => esc_html__( 'Normal', 'essential-classy-addons-for-elementor' ),
			)
		);
		$this->add_control(
			'titleColorN',
			array(
				'label'     => esc_html__( 'Color', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .post-title a,{{WRAPPER}} .listing-style-3 .post-title,{{WRAPPER}} .listing-style-8 .post-title' => 'color: {{VALUE}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Background::get_type(),
			array(
				'name'     => 'titleBgN',
				'types'    => array( 'classic', 'gradient' ),
				'selector' => '{{WRAPPER}} .post-title a,{{WRAPPER}} .listing-style-3 .post-title,{{WRAPPER}} .listing-style-8 .post-title',
			)
		);
		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'     => 'titleBorderN',
				'label'    => esc_html__( 'Border', 'essential-classy-addons-for-elementor' ),
				'selector' => '{{WRAPPER}} .post-title a,{{WRAPPER}} .listing-style-3 .post-title,{{WRAPPER}} .listing-style-8 .post-title',
			)
		);
		$this->add_responsive_control(
			'titleBrN',
			array(
				'label'      => esc_html__( 'Border Radius', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .post-title a,{{WRAPPER}} .listing-style-3 .post-title,{{WRAPPER}} .listing-style-8 .post-title' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'titleShadowN',
				'selector' => '{{WRAPPER}} .post-title a,{{WRAPPER}} .listing-style-3 .post-title,{{WRAPPER}} .listing-style-8 .post-title',
			)
		);
		$this->add_group_control(
			Group_Control_Text_Shadow::get_type(),
			array(
				'name'     => 'titleTextShadowN',
				'label'    => esc_html__( 'Text Shadow', 'essential-classy-addons-for-elementor' ),
				'selector' => '{{WRAPPER}} .post-title a,{{WRAPPER}} .listing-style-3 .post-title,{{WRAPPER}} .listing-style-8 .post-title',
			)
		);
		$this->add_control(
			'titleTransition',
			array(
				'label'       => esc_html__( 'Transition css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'all .3s linear', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .post-title a,{{WRAPPER}} .listing-style-3 .post-title,{{WRAPPER}} .listing-style-8 .post-title' => 'transition:{{VALUE}};',
				),
			)
		);
		$this->add_control(
			'titleTransform',
			array(
				'label'       => esc_html__( 'Transform css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'skew(-20deg)', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .post-title a,{{WRAPPER}} .listing-style-3 .post-title,{{WRAPPER}} .listing-style-8 .post-title' => 'transform: {{VALUE}};-ms-transform: {{VALUE}};-moz-transform: {{VALUE}};-webkit-transform: {{VALUE}};',
				),
			)
		);
		$this->end_controls_tab();
		$this->start_controls_tab(
			'tabtitleHover',
			array(
				'label' => esc_html__( 'Hover', 'essential-classy-addons-for-elementor' ),
			)
		);
		$this->add_control(
			'titleColorH',
			array(
				'label'     => esc_html__( 'Color', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .ec-grid-wrap:hover .post-title a,{{WRAPPER}} .ec-grid-wrap:hover .post-title *,{{WRAPPER}}  .grid-style-3:hover .post-title,{{WRAPPER}} .listing-style-8 .ec-grid-wrap:hover .post-title' => 'color: {{VALUE}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Background::get_type(),
			array(
				'name'     => 'titleBgH',
				'types'    => array( 'classic', 'gradient' ),
				'selector' => '{{WRAPPER}} .ec-grid-wrap:hover .post-title a,{{WRAPPER}} .ec-grid-wrap:hover .post-title *,{{WRAPPER}}  .grid-style-3:hover .post-title,{{WRAPPER}} .listing-style-8 .ec-grid-wrap:hover .post-title',
			)
		);
		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'     => 'titleBorderH',
				'label'    => esc_html__( 'Border', 'essential-classy-addons-for-elementor' ),
				'selector' => '{{WRAPPER}} .ec-grid-wrap:hover .post-title a,{{WRAPPER}} .ec-grid-wrap:hover .post-title *,{{WRAPPER}}  .grid-style-3:hover .post-title,{{WRAPPER}} .listing-style-8 .ec-grid-wrap:hover .post-title',
			)
		);
		$this->add_responsive_control(
			'titleBrH',
			array(
				'label'      => esc_html__( 'Border Radius', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .ec-grid-wrap:hover .post-title a,{{WRAPPER}} .ec-grid-wrap:hover .post-title *,{{WRAPPER}}  .grid-style-3:hover .post-title,{{WRAPPER}} .listing-style-8 .ec-grid-wrap:hover .post-title' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'titleShadowH',
				'selector' => '{{WRAPPER}} .ec-grid-wrap:hover .post-title a,{{WRAPPER}} .ec-grid-wrap:hover .post-title *,{{WRAPPER}}  .grid-style-3:hover .post-title,{{WRAPPER}} .listing-style-8 .ec-grid-wrap:hover .post-title',
			)
		);
		$this->add_group_control(
			Group_Control_Text_Shadow::get_type(),
			array(
				'name'     => 'titleTextShadowH',
				'label'    => esc_html__( 'Text Shadow', 'essential-classy-addons-for-elementor' ),
				'selector' => '{{WRAPPER}} .ec-grid-wrap:hover .post-title a,{{WRAPPER}} .ec-grid-wrap:hover .post-title *,{{WRAPPER}}  .grid-style-3:hover .post-title,{{WRAPPER}} .listing-style-8 .ec-grid-wrap:hover .post-title',
			)
		);
		$this->add_control(
			'titleTransitionH',
			array(
				'label'       => esc_html__( 'Transition css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'all .3s linear', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .ec-grid-wrap:hover .post-title a,{{WRAPPER}} .ec-grid-wrap:hover .post-title *,{{WRAPPER}}  .grid-style-3:hover .post-title,{{WRAPPER}} .listing-style-8 .ec-grid-wrap:hover .post-title' => 'transition:{{VALUE}};',
				),
			)
		);
		$this->add_control(
			'titleTransformH',
			array(
				'label'       => esc_html__( 'Transform css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'skew(-20deg)', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .ec-grid-wrap:hover .post-title a,{{WRAPPER}} .ec-grid-wrap:hover .post-title *,{{WRAPPER}}  .grid-style-3:hover .post-title,{{WRAPPER}} .listing-style-8 .ec-grid-wrap:hover .post-title' => 'transform: {{VALUE}};-ms-transform: {{VALUE}};-moz-transform: {{VALUE}};-webkit-transform: {{VALUE}};',
				),
			)
		);
		$this->end_controls_tab();
		$this->end_controls_tabs();
		$this->end_controls_section();
		/*title end*/

		/*separator style*/
		$this->start_controls_section(
			'sepratorStyling',
			array(
				'label'     => esc_html__( 'Seprator', 'essential-classy-addons-for-elementor' ),
				'tab'       => Controls_Manager::TAB_STYLE,
				'condition' => array(
					'style' => array( 'style-4', 'style-5' ),
				),
			)
		);
		$this->add_control(
			'SepratorColor',
			array(
				'label'     => esc_html__( 'Color', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .listing-style-4 .post-title:after' => 'background-color: {{VALUE}};',
					'{{WRAPPER}} .listing-style-5 .top-sep-border' => 'border-top: .1rem solid {{VALUE}};',
				),
			)
		);
		$this->end_controls_section();
		/*separator style*/

		/*Excerpt start*/
		$this->start_controls_section(
			'excerptStyling',
			array(
				'label'     => esc_html__( 'Excerpt/Content', 'essential-classy-addons-for-elementor' ),
				'tab'       => Controls_Manager::TAB_STYLE,
				'condition' => array(
					'style!' => array( 'style-3', 'style-4' ),
				),
			)
		);
		$this->add_responsive_control(
			'excerptPadding',
			array(
				'label'      => esc_html__( 'Padding', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%', 'em' ),
				'selectors'  => array(
					'{{WRAPPER}} .entry-content' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_responsive_control(
			'excerptMargin',
			array(
				'label'      => esc_html__( 'Margin', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%', 'em' ),
				'selectors'  => array(
					'{{WRAPPER}} .entry-content' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Typography::get_type(),
			array(
				'name'     => 'excerptTypo',
				'selector' => '{{WRAPPER}} .entry-content,{{WRAPPER}} .entry-content p',
			)
		);
		$this->start_controls_tabs( 'tabsexcerptStyle' );
		$this->start_controls_tab(
			'tabexcerptNormal',
			array(
				'label' => esc_html__( 'Normal', 'essential-classy-addons-for-elementor' ),
			)
		);
		$this->add_control(
			'excerptColor',
			array(
				'label'     => esc_html__( 'Color', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .entry-content,{{WRAPPER}} .entry-content p' => 'color: {{VALUE}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Background::get_type(),
			array(
				'name'     => 'excerptBgN',
				'types'    => array( 'classic', 'gradient' ),
				'selector' => '{{WRAPPER}} .entry-content',
			)
		);
		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'     => 'excerptBorderN',
				'label'    => esc_html__( 'Border', 'essential-classy-addons-for-elementor' ),
				'selector' => '{{WRAPPER}} .entry-content',
			)
		);
		$this->add_responsive_control(
			'excerptBrN',
			array(
				'label'      => esc_html__( 'Border Radius', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .entry-content' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'excerptShadowN',
				'selector' => '{{WRAPPER}} .entry-content',
			)
		);
		$this->add_group_control(
			Group_Control_Text_Shadow::get_type(),
			array(
				'name'     => 'excerptTextShadowN',
				'label'    => esc_html__( 'Text Shadow', 'essential-classy-addons-for-elementor' ),
				'selector' => '{{WRAPPER}} .entry-content,{{WRAPPER}} .entry-content p',
			)
		);
		$this->add_control(
			'excerptTransition',
			array(
				'label'       => esc_html__( 'Transition css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'all .3s linear', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .entry-content,{{WRAPPER}} .entry-content p' => 'transition:{{VALUE}};',
				),
			)
		);
		$this->add_control(
			'excerptTransform',
			array(
				'label'       => esc_html__( 'Transform css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'skew(-20deg)', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .entry-content,{{WRAPPER}} .entry-content p' => 'transform: {{VALUE}};-ms-transform: {{VALUE}};-moz-transform: {{VALUE}};-webkit-transform: {{VALUE}};',
				),
			)
		);
		$this->end_controls_tab();
		$this->start_controls_tab(
			'tabexcerptHover',
			array(
				'label' => esc_html__( 'Hover', 'essential-classy-addons-for-elementor' ),
			)
		);
		$this->add_control(
			'excerptColorH',
			array(
				'label'     => esc_html__( 'Color', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .ec-grid-wrap:hover .entry-content,{{WRAPPER}} .ec-grid-wrap:hover .entry-content p' => 'color: {{VALUE}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Background::get_type(),
			array(
				'name'     => 'excerptBgH',
				'types'    => array( 'classic', 'gradient' ),
				'selector' => '{{WRAPPER}} .ec-grid-wrap:hover .entry-content',
			)
		);
		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'     => 'excerptBorderH',
				'label'    => esc_html__( 'Border', 'essential-classy-addons-for-elementor' ),
				'selector' => '{{WRAPPER}} .ec-grid-wrap:hover .entry-content',
			)
		);
		$this->add_responsive_control(
			'excerptBrH',
			array(
				'label'      => esc_html__( 'Border Radius', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .ec-grid-wrap:hover .entry-content' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'excerptShadowH',
				'selector' => '{{WRAPPER}} .ec-grid-wrap:hover .entry-content',
			)
		);
		$this->add_group_control(
			Group_Control_Text_Shadow::get_type(),
			array(
				'name'     => 'excerptTextShadowH',
				'label'    => esc_html__( 'Text Shadow', 'essential-classy-addons-for-elementor' ),
				'selector' => '{{WRAPPER}} .ec-grid-wrap:hover .entry-content',
			)
		);
		$this->add_control(
			'excerptTransitionH',
			array(
				'label'       => esc_html__( 'Transition css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'all .3s linear', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .ec-grid-wrap:hover .entry-content' => 'transition:{{VALUE}};',
				),
			)
		);
		$this->add_control(
			'excerptTransformH',
			array(
				'label'       => esc_html__( 'Transform css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'skew(-20deg)', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .ec-grid-wrap:hover .entry-content' => 'transform: {{VALUE}};-ms-transform: {{VALUE}};-moz-transform: {{VALUE}};-webkit-transform: {{VALUE}};',
				),
			)
		);
		$this->end_controls_tab();
		$this->end_controls_tabs();
		$this->end_controls_section();
		/*Excerpt end*/

		/*Date start*/
		$this->start_controls_section(
			'dateStyling',
			array(
				'label'     => esc_html__( 'Date Meta', 'essential-classy-addons-for-elementor' ),
				'tab'       => Controls_Manager::TAB_STYLE,
				'condition' => array(
					'style!' => array( 'style-3', 'style-4', 'style-8' ),
				),
			)
		);
		$this->add_responsive_control(
			'datePadding',
			array(
				'label'      => esc_html__( 'Padding', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%', 'em' ),
				'selectors'  => array(
					'{{WRAPPER}} .meta-date a,{{WRAPPER}} .meta-date-6 a' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_responsive_control(
			'dateMargin',
			array(
				'label'      => esc_html__( 'Margin', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%', 'em' ),
				'selectors'  => array(
					'{{WRAPPER}} .meta-date a,{{WRAPPER}} .meta-date-6 a' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Typography::get_type(),
			array(
				'name'     => 'dateTypo',
				'selector' => '{{WRAPPER}} .meta-date a,{{WRAPPER}} .meta-date-6 a',
			)
		);
		$this->start_controls_tabs( 'tabsdateStyle' );
		$this->start_controls_tab(
			'tabdateNormal',
			array(
				'label' => esc_html__( 'Normal', 'essential-classy-addons-for-elementor' ),
			)
		);
		$this->add_control(
			'dateColor',
			array(
				'label'     => esc_html__( 'Color', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .meta-date a,{{WRAPPER}} .meta-date-6 a' => 'color: {{VALUE}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Background::get_type(),
			array(
				'name'     => 'dateBgN',
				'types'    => array( 'classic', 'gradient' ),
				'selector' => '{{WRAPPER}} .meta-date a,{{WRAPPER}} .meta-date-6 a',
			)
		);
		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'     => 'dateBorderN',
				'label'    => esc_html__( 'Border', 'essential-classy-addons-for-elementor' ),
				'selector' => '{{WRAPPER}} .meta-date a,{{WRAPPER}} .meta-date-6 a',
			)
		);
		$this->add_responsive_control(
			'dateBrN',
			array(
				'label'      => esc_html__( 'Border Radius', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .meta-date a,{{WRAPPER}} .meta-date-6 a' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'dateShadowN',
				'selector' => '{{WRAPPER}} .meta-date a,{{WRAPPER}} .meta-date-6 a',
			)
		);
		$this->add_group_control(
			Group_Control_Text_Shadow::get_type(),
			array(
				'name'     => 'dateTextShadowN',
				'label'    => esc_html__( 'Text Shadow', 'essential-classy-addons-for-elementor' ),
				'selector' => '{{WRAPPER}} .meta-date a,{{WRAPPER}} .meta-date-6 a',
			)
		);
		$this->add_control(
			'dateTransition',
			array(
				'label'       => esc_html__( 'Transition css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'all .3s linear', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .meta-date a,{{WRAPPER}} .meta-date-6 a' => 'transition:{{VALUE}};',
				),
			)
		);
		$this->add_control(
			'dateTransform',
			array(
				'label'       => esc_html__( 'Transform css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'skew(-20deg)', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .meta-date a,{{WRAPPER}} .meta-date-6 a' => 'transform: {{VALUE}};-ms-transform: {{VALUE}};-moz-transform: {{VALUE}};-webkit-transform: {{VALUE}};',
				),
			)
		);
		$this->end_controls_tab();
		$this->start_controls_tab(
			'tabdateHover',
			array(
				'label' => esc_html__( 'Hover', 'essential-classy-addons-for-elementor' ),
			)
		);
		$this->add_control(
			'dateColorH',
			array(
				'label'     => esc_html__( 'Color', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .ec-grid-wrap:hover .meta-date a,{{WRAPPER}} .ec-grid-wrap:hover .meta-date-6 a' => 'color: {{VALUE}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Background::get_type(),
			array(
				'name'     => 'dateBgH',
				'types'    => array( 'classic', 'gradient' ),
				'selector' => '{{WRAPPER}} .ec-grid-wrap:hover .meta-date a,{{WRAPPER}} .ec-grid-wrap:hover .meta-date-6 a',
			)
		);
		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'     => 'dateBorderH',
				'label'    => esc_html__( 'Border', 'essential-classy-addons-for-elementor' ),
				'selector' => '{{WRAPPER}} .ec-grid-wrap:hover .meta-date a,{{WRAPPER}} .ec-grid-wrap:hover .meta-date-6 a',
			)
		);
		$this->add_responsive_control(
			'dateBrH',
			array(
				'label'      => esc_html__( 'Border Radius', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .ec-grid-wrap:hover .meta-date a,{{WRAPPER}} .ec-grid-wrap:hover .meta-date-6 a' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'dateShadowH',
				'selector' => '{{WRAPPER}} .ec-grid-wrap:hover .meta-date a,{{WRAPPER}} .ec-grid-wrap:hover .meta-date-6 a',
			)
		);
		$this->add_group_control(
			Group_Control_Text_Shadow::get_type(),
			array(
				'name'     => 'dateTextShadowH',
				'label'    => esc_html__( 'Text Shadow', 'essential-classy-addons-for-elementor' ),
				'selector' => '{{WRAPPER}} .ec-grid-wrap:hover .meta-date a,{{WRAPPER}} .ec-grid-wrap:hover .meta-date-6 a',
			)
		);
		$this->add_control(
			'dateTransitionH',
			array(
				'label'       => esc_html__( 'Transition css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'all .3s linear', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .ec-grid-wrap:hover .meta-date a,{{WRAPPER}} .ec-grid-wrap:hover .meta-date-6 a' => 'transition:{{VALUE}};',
				),
			)
		);
		$this->add_control(
			'dateTransformH',
			array(
				'label'       => esc_html__( 'Transform css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'skew(-20deg)', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .ec-grid-wrap:hover .meta-date a,{{WRAPPER}} .ec-grid-wrap:hover .meta-date-6 a' => 'transform: {{VALUE}};-ms-transform: {{VALUE}};-moz-transform: {{VALUE}};-webkit-transform: {{VALUE}};',
				),
			)
		);
		$this->end_controls_tab();
		$this->end_controls_tabs();
		$this->end_controls_section();
		/*Date end*/

		/*User start*/
		$this->start_controls_section(
			'userStyling',
			array(
				'label'     => esc_html__( 'User Meta', 'essential-classy-addons-for-elementor' ),
				'tab'       => Controls_Manager::TAB_STYLE,
				'condition' => array(
					'style!' => array( 'style-3', 'style-4', 'style-8' ),
				),
			)
		);
		$this->add_responsive_control(
			'userPadding',
			array(
				'label'      => esc_html__( 'Padding', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%', 'em' ),
				'selectors'  => array(
					'{{WRAPPER}} .post-author' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_responsive_control(
			'userMargin',
			array(
				'label'      => esc_html__( 'Margin', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%', 'em' ),
				'selectors'  => array(
					'{{WRAPPER}} .post-author' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Typography::get_type(),
			array(
				'name'     => 'userTypo',
				'selector' => '{{WRAPPER}} .post-author,{{WRAPPER}} .post-author a',
			)
		);
		$this->start_controls_tabs( 'tabsuserStyle' );
		$this->start_controls_tab(
			'tabuserNormal',
			array(
				'label' => esc_html__( 'Normal', 'essential-classy-addons-for-elementor' ),
			)
		);
		$this->add_control(
			'userColor',
			array(
				'label'     => esc_html__( 'Color', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .post-author,{{WRAPPER}} .post-author a' => 'color: {{VALUE}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Background::get_type(),
			array(
				'name'     => 'userBgN',
				'types'    => array( 'classic', 'gradient' ),
				'selector' => '{{WRAPPER}} .post-author',
			)
		);
		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'     => 'userBorderN',
				'label'    => esc_html__( 'Border', 'essential-classy-addons-for-elementor' ),
				'selector' => '{{WRAPPER}} .post-author',
			)
		);
		$this->add_responsive_control(
			'userBrN',
			array(
				'label'      => esc_html__( 'Border Radius', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .post-author' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'userShadowN',
				'selector' => '{{WRAPPER}} .post-author',
			)
		);
		$this->add_group_control(
			Group_Control_Text_Shadow::get_type(),
			array(
				'name'     => 'userTextShadowN',
				'label'    => esc_html__( 'Text Shadow', 'essential-classy-addons-for-elementor' ),
				'selector' => '{{WRAPPER}} .post-author',
			)
		);
		$this->add_control(
			'userTransition',
			array(
				'label'       => esc_html__( 'Transition css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'all .3s linear', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .post-author' => 'transition:{{VALUE}};',
				),
			)
		);
		$this->add_control(
			'userTransform',
			array(
				'label'       => esc_html__( 'Transform css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'skew(-20deg)', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .post-author' => 'transform: {{VALUE}};-ms-transform: {{VALUE}};-moz-transform: {{VALUE}};-webkit-transform: {{VALUE}};',
				),
			)
		);
		$this->end_controls_tab();
		$this->start_controls_tab(
			'tabuserHover',
			array(
				'label' => esc_html__( 'Hover', 'essential-classy-addons-for-elementor' ),
			)
		);
		$this->add_control(
			'userColorH',
			array(
				'label'     => esc_html__( 'Color', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .ec-grid-wrap:hover .post-author,,{{WRAPPER}} .ec-grid-wrap:hover .post-author a' => 'color: {{VALUE}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Background::get_type(),
			array(
				'name'     => 'userBgH',
				'types'    => array( 'classic', 'gradient' ),
				'selector' => '{{WRAPPER}} .ec-grid-wrap:hover .post-author',
			)
		);
		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'     => 'userBorderH',
				'label'    => esc_html__( 'Border', 'essential-classy-addons-for-elementor' ),
				'selector' => '{{WRAPPER}} .ec-grid-wrap:hover .post-author',
			)
		);
		$this->add_responsive_control(
			'userBrH',
			array(
				'label'      => esc_html__( 'Border Radius', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .ec-grid-wrap:hover .post-author' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'userShadowH',
				'selector' => '{{WRAPPER}} .ec-grid-wrap:hover .post-author',
			)
		);
		$this->add_group_control(
			Group_Control_Text_Shadow::get_type(),
			array(
				'name'     => 'userTextShadowH',
				'label'    => esc_html__( 'Text Shadow', 'essential-classy-addons-for-elementor' ),
				'selector' => '{{WRAPPER}} .ec-grid-wrap:hover .post-author',
			)
		);
		$this->add_control(
			'userTransitionH',
			array(
				'label'       => esc_html__( 'Transition css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'all .3s linear', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .ec-grid-wrap:hover .post-author' => 'transition:{{VALUE}};',
				),
			)
		);
		$this->add_control(
			'userTransformH',
			array(
				'label'       => esc_html__( 'Transform css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'skew(-20deg)', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .ec-grid-wrap:hover .post-author' => 'transform: {{VALUE}};-ms-transform: {{VALUE}};-moz-transform: {{VALUE}};-webkit-transform: {{VALUE}};',
				),
			)
		);
		$this->end_controls_tab();
		$this->end_controls_tabs();
		$this->add_control(
			'metaPrefixHeading',
			array(
				'label'     => esc_html__( 'Prefix', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			)
		);
		$this->add_group_control(
			Group_Control_Typography::get_type(),
			array(
				'name'     => 'metaPrefixTypo',
				'selector' => '{{WRAPPER}} .ec-grid-wrap .post-author .post-author-by',
			)
		);
		$this->add_control(
			'metaPrefixColorN',
			array(
				'label'     => esc_html__( 'Normal Color', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .ec-grid-wrap .post-author .post-author-by' => 'color: {{VALUE}};',
				),
			)
		);
		$this->add_control(
			'metaPrefixColorH',
			array(
				'label'     => esc_html__( 'Hover Color', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .ec-grid-wrap:hover .post-author .post-author-by' => 'color: {{VALUE}};',
				),
			)
		);
		$this->end_controls_section();
		/*User end*/

		/*Image start*/
		$this->start_controls_section(
			'imageStyling',
			array(
				'label' => esc_html__( 'Image', 'essential-classy-addons-for-elementor' ),
				'tab'   => Controls_Manager::TAB_STYLE,
			)
		);
		$this->add_responsive_control(
			'imagePadding',
			array(
				'label'      => esc_html__( 'Padding', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%', 'em' ),
				'selectors'  => array(
					'{{WRAPPER}} .post-content-image img,{{WRAPPER}} .post-flip-front-content img' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_responsive_control(
			'imageMargin',
			array(
				'label'      => esc_html__( 'Margin', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%', 'em' ),
				'selectors'  => array(
					'{{WRAPPER}} .post-content-image img,{{WRAPPER}} .post-flip-front-content img' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_responsive_control(
			'imageWidth',
			array(
				'label'      => esc_html__( 'Width', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::SLIDER,
				'size_units' => array( 'px', '%' ),
				'range'      => array(
					'px' => array(
						'min' => 1,
						'max' => 700,
					),
					'%'  => array(
						'min'  => 1,
						'max'  => 100,
						'step' => 1,
					),
				),
				'selectors'  => array(
					'{{WRAPPER}} .post-content-image img,{{WRAPPER}} .post-flip-front-content img' => 'width:{{SIZE}}{{UNIT}};',
				),
			)
		);
		$this->add_responsive_control(
			'imageHeight',
			array(
				'label'      => esc_html__( 'Height', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::SLIDER,
				'size_units' => array( 'px', '%' ),
				'range'      => array(
					'px' => array(
						'min' => 1,
						'max' => 700,
					),
					'%'  => array(
						'min'  => 1,
						'max'  => 100,
						'step' => 1,
					),
				),
				'selectors'  => array(
					'{{WRAPPER}} .post-content-image img,{{WRAPPER}} .post-flip-front-content img' => 'height:{{SIZE}}{{UNIT}};',
				),
			)
		);
		$this->start_controls_tabs( 'tabsimageStyle' );
		$this->start_controls_tab(
			'tabimageNormal',
			array(
				'label' => esc_html__( 'Normal', 'essential-classy-addons-for-elementor' ),
			)
		);
		$this->add_group_control(
			Group_Control_Background::get_type(),
			array(
				'name'     => 'imageBgN',
				'types'    => array( 'classic', 'gradient' ),
				'selector' => '{{WRAPPER}} .post-content-image img,{{WRAPPER}} .post-flip-front-content img',
			)
		);
		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'     => 'imageBorderN',
				'label'    => esc_html__( 'Border', 'essential-classy-addons-for-elementor' ),
				'selector' => '{{WRAPPER}} .post-content-image img,{{WRAPPER}} .post-flip-front-content img',
			)
		);
		$this->add_responsive_control(
			'imageBrN',
			array(
				'label'      => esc_html__( 'Border Radius', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .post-content-image img,{{WRAPPER}} .post-flip-front-content img' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'imageShadowN',
				'selector' => '{{WRAPPER}} .post-content-image img,{{WRAPPER}} .post-flip-front-content img',
			)
		);
		$this->add_control(
			'imageTransition',
			array(
				'label'       => esc_html__( 'Transition css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'all .3s linear', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .post-content-image img,{{WRAPPER}} .post-flip-front-content img' => 'transition:{{VALUE}};',
				),
			)
		);
		$this->add_control(
			'imageTransform',
			array(
				'label'       => esc_html__( 'Transform css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'skew(-20deg)', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .post-content-image img,{{WRAPPER}} .post-flip-front-content img' => 'transform: {{VALUE}};-ms-transform: {{VALUE}};-moz-transform: {{VALUE}};-webkit-transform: {{VALUE}};',
				),
			)
		);
		$this->end_controls_tab();
		$this->start_controls_tab(
			'tabimageHover',
			array(
				'label' => esc_html__( 'Hover', 'essential-classy-addons-for-elementor' ),
			)
		);
		$this->add_group_control(
			Group_Control_Background::get_type(),
			array(
				'name'     => 'imageBgH',
				'types'    => array( 'classic', 'gradient' ),
				'selector' => '{{WRAPPER}} .ec-grid-wrap:hover .post-content-image img,{{WRAPPER}} .grid-style-3:hover .post-content-image img,{{WRAPPER}} .ec-grid-wrap:hover .post-flip-front-content img',
			)
		);
		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'     => 'imageBorderH',
				'label'    => esc_html__( 'Border', 'essential-classy-addons-for-elementor' ),
				'selector' => '{{WRAPPER}} .ec-grid-wrap:hover .post-content-image img,{{WRAPPER}} .grid-style-3:hover .post-content-image img,{{WRAPPER}} .ec-grid-wrap:hover .post-flip-front-content img',
			)
		);
		$this->add_responsive_control(
			'imageBrH',
			array(
				'label'      => esc_html__( 'Border Radius', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .ec-grid-wrap:hover .post-content-image img,{{WRAPPER}} .grid-style-3:hover .post-content-image img,{{WRAPPER}} .ec-grid-wrap:hover .post-flip-front-content img' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'imageShadowH',
				'selector' => '{{WRAPPER}} .ec-grid-wrap:hover .post-content-image img,{{WRAPPER}} .grid-style-3:hover .post-content-image img,{{WRAPPER}} .ec-grid-wrap:hover .post-flip-front-content img',
			)
		);
		$this->add_control(
			'imageTransitionH',
			array(
				'label'       => esc_html__( 'Transition css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'all .3s linear', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .ec-grid-wrap:hover .post-content-image img,{{WRAPPER}} .grid-style-3:hover .post-content-image img,{{WRAPPER}} .ec-grid-wrap:hover .post-flip-front-content img' => 'transition:{{VALUE}};',
				),
			)
		);
		$this->add_control(
			'imageTransformH',
			array(
				'label'       => esc_html__( 'Transform css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'skew(-20deg)', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .ec-grid-wrap:hover .post-content-image img,{{WRAPPER}} .grid-style-3:hover .post-content-image img,{{WRAPPER}} .ec-grid-wrap:hover .post-flip-front-content img' => 'transform: {{VALUE}};-ms-transform: {{VALUE}};-moz-transform: {{VALUE}};-webkit-transform: {{VALUE}};',
				),
			)
		);
		$this->end_controls_tab();
		$this->end_controls_tabs();
		$this->end_controls_section();
		/*Image end*/

		/*Button start*/
		$this->start_controls_section(
			'buttonStyling',
			array(
				'label'     => esc_html__( 'Button', 'essential-classy-addons-for-elementor' ),
				'tab'       => Controls_Manager::TAB_STYLE,
				'condition' => array(
					'style' => array( 'style-1', 'style-2', 'style-5', 'style-7' ),
				),
			)
		);
		$this->add_responsive_control(
			'buttonPadding',
			array(
				'label'      => esc_html__( 'Padding', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%', 'em' ),
				'selectors'  => array(
					'{{WRAPPER}} .eca-post-read-more' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_responsive_control(
			'buttonMargin',
			array(
				'label'      => esc_html__( 'Margin', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%', 'em' ),
				'selectors'  => array(
					'{{WRAPPER}} .eca-post-read-more' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Typography::get_type(),
			array(
				'name'     => 'buttonTypo',
				'selector' => '{{WRAPPER}} .eca-post-read-more',
			)
		);
		$this->start_controls_tabs( 'tabsbuttonStyle' );
		$this->start_controls_tab(
			'tabbuttonNormal',
			array(
				'label' => esc_html__( 'Normal', 'essential-classy-addons-for-elementor' ),
			)
		);
		$this->add_control(
			'buttonColor',
			array(
				'label'     => esc_html__( 'Color', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .eca-post-read-more' => 'color: {{VALUE}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Background::get_type(),
			array(
				'name'      => 'buttonBgN',
				'types'     => array( 'classic', 'gradient' ),
				'selector'  => '{{WRAPPER}} .eca-post-read-more',
				'condition' => array(
					'buttonHoverEffectH!' => 'yes',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'     => 'buttonBorderN',
				'label'    => esc_html__( 'Border', 'essential-classy-addons-for-elementor' ),
				'selector' => '{{WRAPPER}} .eca-post-read-more',
			)
		);
		$this->add_responsive_control(
			'buttonBrN',
			array(
				'label'      => esc_html__( 'Border Radius', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .eca-post-read-more' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'buttonShadowN',
				'selector' => '{{WRAPPER}} .eca-post-read-more',
			)
		);
		$this->add_group_control(
			Group_Control_Text_Shadow::get_type(),
			array(
				'name'     => 'buttonTextShadowN',
				'label'    => esc_html__( 'Text Shadow', 'essential-classy-addons-for-elementor' ),
				'selector' => '{{WRAPPER}} .eca-post-read-more',
			)
		);
		$this->add_control(
			'buttonTransition',
			array(
				'label'       => esc_html__( 'Transition css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'all .3s linear', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .eca-post-read-more' => 'transition:{{VALUE}};',
				),
			)
		);
		$this->add_control(
			'buttonTransform',
			array(
				'label'       => esc_html__( 'Transform css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'skew(-20deg)', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .eca-post-read-more' => 'transform: {{VALUE}};-ms-transform: {{VALUE}};-moz-transform: {{VALUE}};-webkit-transform: {{VALUE}};',
				),
			)
		);
		$this->end_controls_tab();
		$this->start_controls_tab(
			'tabbuttonHover',
			array(
				'label' => esc_html__( 'Box Hover', 'essential-classy-addons-for-elementor' ),
			)
		);
		$this->add_control(
			'buttonColorH',
			array(
				'label'     => esc_html__( 'Color', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .ec-grid-wrap:hover .eca-post-read-more' => 'color: {{VALUE}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Background::get_type(),
			array(
				'name'      => 'buttonBgH',
				'types'     => array( 'classic', 'gradient' ),
				'selector'  => '{{WRAPPER}} .ec-grid-wrap:hover .eca-post-read-more',
				'condition' => array(
					'buttonHoverEffectH!' => 'yes',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'     => 'buttonBorderH',
				'label'    => esc_html__( 'Border', 'essential-classy-addons-for-elementor' ),
				'selector' => '{{WRAPPER}} .ec-grid-wrap:hover .eca-post-read-more',
			)
		);
		$this->add_responsive_control(
			'buttonBrH',
			array(
				'label'      => esc_html__( 'Border Radius', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .ec-grid-wrap:hover .eca-post-read-more' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'buttonShadowH',
				'selector' => '{{WRAPPER}} .ec-grid-wrap:hover .eca-post-read-more',
			)
		);
		$this->add_group_control(
			Group_Control_Text_Shadow::get_type(),
			array(
				'name'     => 'buttonTextShadowH',
				'label'    => esc_html__( 'Text Shadow', 'essential-classy-addons-for-elementor' ),
				'selector' => '{{WRAPPER}} .ec-grid-wrap:hover .eca-post-read-more',
			)
		);
		$this->add_control(
			'buttonTransitionH',
			array(
				'label'       => esc_html__( 'Transition css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'all .3s linear', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .ec-grid-wrap:hover .eca-post-read-more' => 'transition:{{VALUE}};',
				),
			)
		);
		$this->add_control(
			'buttonTransformH',
			array(
				'label'       => esc_html__( 'Transform css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'skew(-20deg)', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .ec-grid-wrap:hover .eca-post-read-more' => 'transform: {{VALUE}};-ms-transform: {{VALUE}};-moz-transform: {{VALUE}};-webkit-transform: {{VALUE}};',
				),
			)
		);
		$this->end_controls_tab();
		$this->start_controls_tab(
			'tabbuttonHoverA',
			array(
				'label' => esc_html__( 'Hover', 'essential-classy-addons-for-elementor' ),
			)
		);
		$this->add_control(
			'buttonHoverEffectH',
			array(
				'label'     => esc_html__( 'Hover Effect', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::SWITCHER,
				'label_on'  => esc_html__( 'Enable', 'essential-classy-addons-for-elementor' ),
				'label_off' => esc_html__( 'Disable', 'essential-classy-addons-for-elementor' ),
				'default'   => 'no',
			)
		);
		$this->add_control(
			'buttonEffectPosH',
			array(
				'label'     => esc_html__( 'Position', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::SELECT,
				'default'   => '',
				'options'   => array(
					''                              => esc_html__( 'Bottom', 'essential-classy-addons-for-elementor' ),
					'eca-button-hover-effect-top'   => esc_html__( 'Top', 'essential-classy-addons-for-elementor' ),
					'eca-button-hover-effect-left'  => esc_html__( 'Left', 'essential-classy-addons-for-elementor' ),
					'eca-button-hover-effect-right' => esc_html__( 'Right', 'essential-classy-addons-for-elementor' ),
				),
				'condition' => array(
					'buttonHoverEffectH' => 'yes',
				),
			)
		);
		$this->add_control(
			'buttonColorHA',
			array(
				'label'     => esc_html__( 'Color', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .ec-grid-wrap .eca-post-read-more:hover' => 'color: {{VALUE}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Background::get_type(),
			array(
				'name'      => 'buttonBgHA',
				'types'     => array( 'classic', 'gradient' ),
				'selector'  => '{{WRAPPER}} .ec-grid-wrap .eca-post-read-more:hover',
				'condition' => array(
					'buttonHoverEffectH!' => 'yes',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Background::get_type(),
			array(
				'name'      => 'bBgEffectHoverA',
				'types'     => array( 'classic', 'gradient' ),
				'selector'  => '{{WRAPPER}} .eca-button-hover-effect:hover:after',
				'condition' => array(
					'buttonHoverEffectH' => 'yes',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'     => 'buttonBorderHA',
				'label'    => esc_html__( 'Border', 'essential-classy-addons-for-elementor' ),
				'selector' => '{{WRAPPER}} .ec-grid-wrap .eca-post-read-more:hover',
			)
		);
		$this->add_responsive_control(
			'buttonBrHA',
			array(
				'label'      => esc_html__( 'Border Radius', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .ec-grid-wrap .eca-post-read-more:hover' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'buttonShadowHA',
				'selector' => '{{WRAPPER}} .ec-grid-wrap .eca-post-read-more:hover',
			)
		);
		$this->add_group_control(
			Group_Control_Text_Shadow::get_type(),
			array(
				'name'     => 'buttonTextShadowHA',
				'label'    => esc_html__( 'Text Shadow', 'essential-classy-addons-for-elementor' ),
				'selector' => '{{WRAPPER}} .ec-grid-wrap .eca-post-read-more:hover',
			)
		);
		$this->add_control(
			'buttonTransitionHA',
			array(
				'label'       => esc_html__( 'Transition css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'all .3s linear', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .ec-grid-wrap .eca-post-read-more:hover' => 'transition:{{VALUE}};',
				),
			)
		);
		$this->add_control(
			'buttonTransformHA',
			array(
				'label'       => esc_html__( 'Transform css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'skew(-20deg)', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .ec-grid-wrap .eca-post-read-more:hover' => 'transform: {{VALUE}};-ms-transform: {{VALUE}};-moz-transform: {{VALUE}};-webkit-transform: {{VALUE}};',
				),
			)
		);
		$this->end_controls_tab();
		$this->end_controls_tabs();
		$this->end_controls_section();
		/*Button end*/

		/*insidebox hover start*/
		$this->start_controls_section(
			'inBoxHoverStyling',
			array(
				'label'     => esc_html__( 'Inside Box Hover', 'essential-classy-addons-for-elementor' ),
				'tab'       => Controls_Manager::TAB_STYLE,
				'condition' => array(
					'style' => array( 'style-4', 'style-7' ),
				),
			)
		);
		$this->add_group_control(
			Group_Control_Background::get_type(),
			array(
				'name'     => 'inBoxHoverBg',
				'types'    => array( 'classic', 'gradient' ),
				'selector' => '{{WRAPPER}} .post-img-overlay',
			)
		);
		$this->end_controls_section();
		/*insidebox hover end*/

		$this->start_controls_section(
			'loadMoreStyling',
			array(
				'label'     => esc_html__( 'Load More', 'essential-classy-addons-for-elementor' ),
				'tab'       => Controls_Manager::TAB_STYLE,
				'condition' => array(
					'postLoadingOpt' => 'load_more',
				),
			)
		);
		$this->add_responsive_control(
			'loadMorePadding',
			array(
				'label'      => esc_html__( 'Padding', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%', 'em' ),
				'selectors'  => array(
					'{{WRAPPER}} .eca-posts-load-more a.posts-load-more' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_responsive_control(
			'loadMoreMargin',
			array(
				'label'      => esc_html__( 'Margin', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%', 'em' ),
				'selectors'  => array(
					'{{WRAPPER}} .eca-posts-load-more a.posts-load-more' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Typography::get_type(),
			array(
				'name'     => 'loadMoreTypo',
				'selector' => '{{WRAPPER}} .eca-posts-load-more a.posts-load-more,{{WRAPPER}} .eca-all-posts-loaded',
			)
		);
		$this->start_controls_tabs( 'tabsloadMoreStyle' );
		$this->start_controls_tab(
			'tabloadMoreNormal',
			array(
				'label' => esc_html__( 'Normal', 'essential-classy-addons-for-elementor' ),
			)
		);
		$this->add_control(
			'loadMoreColor',
			array(
				'label'     => esc_html__( 'Color', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .eca-posts-load-more a.posts-load-more,{{WRAPPER}} .eca-all-posts-loaded' => 'color: {{VALUE}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Background::get_type(),
			array(
				'name'      => 'loadMoreBgN',
				'types'     => array( 'classic', 'gradient' ),
				'selector'  => '{{WRAPPER}} .eca-posts-load-more a.posts-load-more',
				'condition' => array(
					'buttonHoverEffectLMH!' => 'yes',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'     => 'loadMoreBorderN',
				'label'    => esc_html__( 'Border', 'essential-classy-addons-for-elementor' ),
				'selector' => '{{WRAPPER}} .eca-posts-load-more a.posts-load-more',
			)
		);
		$this->add_responsive_control(
			'loadMoreBrN',
			array(
				'label'      => esc_html__( 'Border Radius', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .eca-posts-load-more a.posts-load-more' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'loadMoreShadowN',
				'selector' => '{{WRAPPER}} .eca-posts-load-more a.posts-load-more',
			)
		);
		$this->add_group_control(
			Group_Control_Text_Shadow::get_type(),
			array(
				'name'     => 'loadMoreTextShadowN',
				'label'    => esc_html__( 'Text Shadow', 'essential-classy-addons-for-elementor' ),
				'selector' => '{{WRAPPER}} .eca-posts-load-more a.posts-load-more,{{WRAPPER}} .eca-all-posts-loaded',
			)
		);
		$this->add_control(
			'loadMoreTransition',
			array(
				'label'       => esc_html__( 'Transition css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'all .3s linear', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .eca-posts-load-more a.posts-load-more' => 'transition:{{VALUE}};',
				),
			)
		);
		$this->add_control(
			'loadMoreTransform',
			array(
				'label'       => esc_html__( 'Transform css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'skew(-20deg)', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .eca-posts-load-more a.posts-load-more' => 'transform: {{VALUE}};-ms-transform: {{VALUE}};-moz-transform: {{VALUE}};-webkit-transform: {{VALUE}};',
				),
			)
		);
		$this->end_controls_tab();
		$this->start_controls_tab(
			'tabloadMoreHover',
			array(
				'label' => esc_html__( 'Hover', 'essential-classy-addons-for-elementor' ),
			)
		);
		$this->add_control(
			'buttonHoverEffectLMH',
			array(
				'label'     => esc_html__( 'Hover Effect', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::SWITCHER,
				'label_on'  => esc_html__( 'Enable', 'essential-classy-addons-for-elementor' ),
				'label_off' => esc_html__( 'Disable', 'essential-classy-addons-for-elementor' ),
				'default'   => 'no',
			)
		);
		$this->add_control(
			'buttonEffectPosLMH',
			array(
				'label'     => esc_html__( 'Position', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::SELECT,
				'default'   => '',
				'options'   => array(
					''                              => esc_html__( 'Bottom', 'essential-classy-addons-for-elementor' ),
					'eca-button-hover-effect-top'   => esc_html__( 'Top', 'essential-classy-addons-for-elementor' ),
					'eca-button-hover-effect-left'  => esc_html__( 'Left', 'essential-classy-addons-for-elementor' ),
					'eca-button-hover-effect-right' => esc_html__( 'Right', 'essential-classy-addons-for-elementor' ),
				),
				'condition' => array(
					'buttonHoverEffectLMH' => 'yes',
				),
			)
		);
		$this->add_control(
			'loadMoreColorH',
			array(
				'label'     => esc_html__( 'Color', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .eca-posts-load-more a.posts-load-more:hover,{{WRAPPER}} .eca-posts-load-more a.posts-load-more:focus' => 'color: {{VALUE}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Background::get_type(),
			array(
				'name'      => 'loadMoreBgH',
				'types'     => array( 'classic', 'gradient' ),
				'selector'  => '{{WRAPPER}} .eca-posts-load-more a.posts-load-more:hover,{{WRAPPER}} .eca-posts-load-more a.posts-load-more:focus',
				'condition' => array(
					'buttonHoverEffectLMH!' => 'yes',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Background::get_type(),
			array(
				'name'      => 'loadMoreBgLMH',
				'types'     => array( 'classic', 'gradient' ),
				'selector'  => '{{WRAPPER}} .posts-load-more.eca-button-hover-effect:hover:after,{{WRAPPER}} .posts-load-more.eca-button-hover-effect:focus:after',
				'condition' => array(
					'buttonHoverEffectLMH' => 'yes',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'     => 'loadMoreBorderH',
				'label'    => esc_html__( 'Border', 'essential-classy-addons-for-elementor' ),
				'selector' => '{{WRAPPER}} .eca-posts-load-more a.posts-load-more:hover,{{WRAPPER}} .eca-posts-load-more a.posts-load-more:focus',
			)
		);
		$this->add_responsive_control(
			'loadMoreBrH',
			array(
				'label'      => esc_html__( 'Border Radius', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .eca-posts-load-more a.posts-load-more:hover,{{WRAPPER}} .eca-posts-load-more a.posts-load-more:focus' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'loadMoreShadowH',
				'selector' => '{{WRAPPER}} .eca-posts-load-more a.posts-load-more:hover,{{WRAPPER}} .eca-posts-load-more a.posts-load-more:focus',
			)
		);
		$this->add_group_control(
			Group_Control_Text_Shadow::get_type(),
			array(
				'name'     => 'loadMoreTextShadowH',
				'label'    => esc_html__( 'Text Shadow', 'essential-classy-addons-for-elementor' ),
				'selector' => '{{WRAPPER}} .eca-posts-load-more a.posts-load-more:hover,{{WRAPPER}} .eca-posts-load-more a.posts-load-more:focus',
			)
		);
		$this->add_control(
			'loadMoreTransitionH',
			array(
				'label'       => esc_html__( 'Transition css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'all .3s linear', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .eca-posts-load-more a.posts-load-more:hover,{{WRAPPER}} .eca-posts-load-more a.posts-load-more:focus' => 'transition:{{VALUE}};',
				),
			)
		);
		$this->add_control(
			'loadMoreTransformH',
			array(
				'label'       => esc_html__( 'Transform css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'skew(-20deg)', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .eca-posts-load-more a.posts-load-more:hover,{{WRAPPER}} .eca-posts-load-more a.posts-load-more:focus' => 'transform: {{VALUE}};-ms-transform: {{VALUE}};-moz-transform: {{VALUE}};-webkit-transform: {{VALUE}};',
				),
			)
		);
		$this->end_controls_tab();
		$this->end_controls_tabs();
		$this->end_controls_section();
		/*Loadmore end*/

		/*Lazyload start*/
		$this->start_controls_section(
			'lazyLoadStyling',
			array(
				'label'     => esc_html__( 'Lazy Load', 'essential-classy-addons-for-elementor' ),
				'tab'       => Controls_Manager::TAB_STYLE,
				'condition' => array(
					'postLoadingOpt' => 'lazy_load',
				),
			)
		);
		$this->add_responsive_control(
			'lazyLoadIconSize',
			array(
				'label'      => esc_html__( 'Icon Size', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::SLIDER,
				'size_units' => array( 'px', '%' ),
				'range'      => array(
					'px' => array(
						'min' => 1,
						'max' => 100,
					),
					'%'  => array(
						'min'  => 1,
						'max'  => 100,
						'step' => 1,
					),
				),
				'selectors'  => array(
					'{{WRAPPER}} .posts-lazy-load::after' => 'width:{{SIZE}}{{UNIT}};height:{{SIZE}}{{UNIT}}',
				),
			)
		);
		$this->add_control(
			'lazyLoadIconColor',
			array(
				'label' => esc_html__( 'Icon Color', 'essential-classy-addons-for-elementor' ),
				'type'  => Controls_Manager::COLOR,
			)
		);
		$this->add_responsive_control(
			'lazyLoadIconBorderSize',
			array(
				'label'      => esc_html__( 'Icon Border Size', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::SLIDER,
				'size_units' => array( 'px' ),
				'range'      => array(
					'px' => array(
						'min' => 1,
						'max' => 10,
					),
				),
				'selectors'  => array(
					'{{WRAPPER}} .posts-lazy-load::after' => 'border: {{SIZE}}{{UNIT}} solid transparent;border-left: {{SIZE}}{{UNIT}} solid {{lazyLoadIconColor.VALUE}};border-right: {{SIZE}}{{UNIT}} solid {{lazyLoadIconColor.VALUE}};',
				),
			)
		);
		$this->add_control(
			'lazyLoadTextHeading',
			array(
				'label'     => esc_html__( 'Text', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			)
		);
		$this->add_control(
			'lazyLoadTextColor',
			array(
				'label'     => esc_html__( 'Color', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .posts-lazy-load .lazy-text,{{WRAPPER}} .eca-all-posts-loaded' => 'color: {{VALUE}};',
				),
			)
		);
		$this->end_controls_section();
		/*Lazyload end*/

		/*Category start*/
		$this->start_controls_section(
			'categoryStyling',
			array(
				'label'     => esc_html__( 'Category', 'essential-classy-addons-for-elementor' ),
				'tab'       => Controls_Manager::TAB_STYLE,
				'condition' => array(
					'style' => array( 'style-2', 'style-4' ),
				),
			)
		);
		$this->add_responsive_control(
			'categoryPadding',
			array(
				'label'      => esc_html__( 'Padding', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%', 'em' ),
				'selectors'  => array(
					'{{WRAPPER}}  .post-category-list a' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_responsive_control(
			'categoryMargin',
			array(
				'label'      => esc_html__( 'Margin', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%', 'em' ),
				'selectors'  => array(
					'{{WRAPPER}}  .post-category-list a' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Typography::get_type(),
			array(
				'name'     => 'categoryTypo',
				'selector' => '{{WRAPPER}}  .post-category-list a',
			)
		);
		$this->start_controls_tabs( 'tabscategoryStyle' );
		$this->start_controls_tab(
			'tabcategoryNormal',
			array(
				'label' => esc_html__( 'Normal', 'essential-classy-addons-for-elementor' ),
			)
		);
		$this->add_control(
			'categoryColor',
			array(
				'label'     => esc_html__( 'Color', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}}  .post-category-list a' => 'color: {{VALUE}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Background::get_type(),
			array(
				'name'     => 'categoryBgN',
				'types'    => array( 'classic', 'gradient' ),
				'selector' => '{{WRAPPER}}  .post-category-list a',
			)
		);
		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'     => 'categoryBorderN',
				'label'    => esc_html__( 'Border', 'essential-classy-addons-for-elementor' ),
				'selector' => '{{WRAPPER}}  .post-category-list a',
			)
		);
		$this->add_responsive_control(
			'categoryBrN',
			array(
				'label'      => esc_html__( 'Border Radius', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}}  .post-category-list a' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'categoryShadowN',
				'selector' => '{{WRAPPER}}  .post-category-list a',
			)
		);
		$this->add_group_control(
			Group_Control_Text_Shadow::get_type(),
			array(
				'name'     => 'categoryTextShadowN',
				'label'    => esc_html__( 'Text Shadow', 'essential-classy-addons-for-elementor' ),
				'selector' => '{{WRAPPER}}  .post-category-list a',
			)
		);
		$this->add_control(
			'categoryTransition',
			array(
				'label'       => esc_html__( 'Transition css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'all .3s linear', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}}  .post-category-list a' => 'transition:{{VALUE}};',
				),
			)
		);
		$this->add_control(
			'categoryTransform',
			array(
				'label'       => esc_html__( 'Transform css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'skew(-20deg)', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}}  .post-category-list a' => 'transform: {{VALUE}};-ms-transform: {{VALUE}};-moz-transform: {{VALUE}};-webkit-transform: {{VALUE}};',
				),
			)
		);
		$this->end_controls_tab();
		$this->start_controls_tab(
			'tabcategoryHover',
			array(
				'label' => esc_html__( 'Hover', 'essential-classy-addons-for-elementor' ),
			)
		);
		$this->add_control(
			'categoryColorH',
			array(
				'label'     => esc_html__( 'Color', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .ec-grid-wrap:hover  .post-category-list a' => 'color: {{VALUE}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Background::get_type(),
			array(
				'name'     => 'categoryBgH',
				'types'    => array( 'classic', 'gradient' ),
				'selector' => '{{WRAPPER}} .ec-grid-wrap:hover  .post-category-list a',
			)
		);
		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'     => 'categoryBorderH',
				'label'    => esc_html__( 'Border', 'essential-classy-addons-for-elementor' ),
				'selector' => '{{WRAPPER}} .ec-grid-wrap:hover  .post-category-list a',
			)
		);
		$this->add_responsive_control(
			'categoryBrH',
			array(
				'label'      => esc_html__( 'Border Radius', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .ec-grid-wrap:hover  .post-category-list a' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'categoryShadowH',
				'selector' => '{{WRAPPER}} .ec-grid-wrap:hover  .post-category-list a',
			)
		);
		$this->add_group_control(
			Group_Control_Text_Shadow::get_type(),
			array(
				'name'     => 'categoryTextShadowH',
				'label'    => esc_html__( 'Text Shadow', 'essential-classy-addons-for-elementor' ),
				'selector' => '{{WRAPPER}} .ec-grid-wrap:hover  .post-category-list a',
			)
		);
		$this->add_control(
			'categoryTransitionH',
			array(
				'label'       => esc_html__( 'Transition css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'all .3s linear', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .ec-grid-wrap:hover  .post-category-list a' => 'transition:{{VALUE}};',
				),
			)
		);
		$this->add_control(
			'categoryTransformH',
			array(
				'label'       => esc_html__( 'Transform css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'skew(-20deg)', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .ec-grid-wrap:hover  .post-category-list a' => 'transform: {{VALUE}};-ms-transform: {{VALUE}};-moz-transform: {{VALUE}};-webkit-transform: {{VALUE}};',
				),
			)
		);
		$this->end_controls_tab();
		$this->end_controls_tabs();
		$this->end_controls_section();
		/*Category end*/

		/*Arrow start*/
		$this->start_controls_section(
			'arrowStyling',
			array(
				'label'     => esc_html__( 'Arrow', 'essential-classy-addons-for-elementor' ),
				'tab'       => Controls_Manager::TAB_STYLE,
				'condition' => array(
					'style' => array( 'style-5', 'style-6' ),
				),
			)
		);
		$this->add_control(
			'arrowColor',
			array(
				'label'     => esc_html__( 'Color', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .post-list-content.post-trans:before' => 'background: {{VALUE}};',
				),
			)
		);
		$this->add_control(
			'arrowColorH',
			array(
				'label'     => esc_html__( 'Hover Color', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .ec-grid-wrap:hover .post-list-content.post-trans:before' => 'background: {{VALUE}};',
				),
			)
		);
		$this->add_control(
			'arrowTransition',
			array(
				'label'       => esc_html__( 'Transition css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'all .3s linear', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .post-list-content.post-trans:before' => 'transition:{{VALUE}};',
				),
			)
		);
		$this->add_control(
			'arrowTransform',
			array(
				'label'       => esc_html__( 'Transform css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'skew(-20deg)', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .post-list-content.post-trans:before' => 'transform: {{VALUE}};-ms-transform: {{VALUE}};-moz-transform: {{VALUE}};-webkit-transform: {{VALUE}};',
				),
			)
		);
		$this->end_controls_section();
		/*Arrow end*/

		/*filter start*/
		$this->start_controls_section(
			'filterStyling',
			array(
				'label'     => esc_html__( 'Filter', 'essential-classy-addons-for-elementor' ),
				'tab'       => Controls_Manager::TAB_STYLE,
				'condition' => array(
					'filterPost' => 'yes',
				),
			)
		);
		$this->add_responsive_control(
			'filterPadding',
			array(
				'label'      => esc_html__( 'Padding', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%', 'em' ),
				'selectors'  => array(
					'{{WRAPPER}} .terms-filters-wrap ul.terms-filters-lists li' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_responsive_control(
			'filterMargin',
			array(
				'label'      => esc_html__( 'Margin', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%', 'em' ),
				'selectors'  => array(
					'{{WRAPPER}} .terms-filters-wrap ul.terms-filters-lists li' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Typography::get_type(),
			array(
				'name'     => 'filterTypo',
				'selector' => '{{WRAPPER}} .terms-filters-wrap ul.terms-filters-lists li span',
			)
		);
		$this->add_control(
			'filterColor',
			array(
				'label'     => esc_html__( 'Color', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .terms-filters-wrap ul.terms-filters-lists li span' => 'color:{{VALUE}};',
				),
			)
		);
		$this->add_control(
			'filterCountColor',
			array(
				'label'     => esc_html__( 'Count Color', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .terms-filters-wrap ul.terms-filters-lists li span.term_count' => 'color:{{VALUE}};',
				),
			)
		);
		$this->add_control(
			'filterColorActive',
			array(
				'label'     => esc_html__( 'Active Color', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .terms-filters-wrap ul.terms-filters-lists li .active span,
					{{WRAPPER}} .terms-filters-wrap ul.terms-filters-lists li .term-filter-list:hover span' => 'color:{{VALUE}};',
				),
			)
		);
		$this->add_control(
			'filterCountColorActive',
			array(
				'label'     => esc_html__( 'Active Count Color', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .terms-filters-wrap ul.terms-filters-lists li .active span.term_count,
					{{WRAPPER}} .terms-filters-wrap ul.terms-filters-lists li .term-filter-list:hover span.term_count' => 'color:{{VALUE}};',
				),
			)
		);
		$this->end_controls_section();
		/*filter end*/

		/*Paginate style start*/
		$this->start_controls_section(
			'paginationStyling',
			array(
				'label'     => esc_html__( 'Pagination', 'essential-classy-addons-for-elementor' ),
				'tab'       => Controls_Manager::TAB_STYLE,
				'condition' => array(
					'postLoadingOpt' => 'pagination',
				),
			)
		);
		$this->add_responsive_control(
			'paginationPadding',
			array(
				'label'      => esc_html__( 'Padding', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', 'em', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .eca-paginate a,{{WRAPPER}} .eca-paginate span' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_responsive_control(
			'paginationMargin',
			array(
				'label'      => esc_html__( 'Margin', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', 'em', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .eca-paginate a,{{WRAPPER}} .eca-paginate span' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Typography::get_type(),
			array(
				'name'     => 'paginationTypography',
				'selector' => '{{WRAPPER}} .eca-paginate a,{{WRAPPER}} .eca-paginate span',
			)
		);
		$this->add_control(
			'paginationGeneralHeading',
			array(
				'label'     => esc_html__( 'General', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			)
		);
		$this->start_controls_tabs( 'tabsPgStyle' );
		$this->start_controls_tab(
			'pgNormal',
			array(
				'label' => esc_html__( 'Normal', 'essential-classy-addons-for-elementor' ),
			)
		);
		$this->add_control(
			'pNColor',
			array(
				'label'     => esc_html__( 'Color', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .eca-paginate a,{{WRAPPER}} .eca-paginate span' => 'color: {{VALUE}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Background::get_type(),
			array(
				'name'     => 'pNBg',
				'types'    => array( 'classic', 'gradient' ),
				'selector' => '{{WRAPPER}} .eca-paginate a,{{WRAPPER}} .eca-paginate span',
			)
		);
		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'     => 'pNBorder',
				'label'    => esc_html__( 'Border', 'essential-classy-addons-for-elementor' ),
				'selector' => '{{WRAPPER}} .eca-paginate a,{{WRAPPER}} .eca-paginate span',
			)
		);
		$this->add_responsive_control(
			'pNBr',
			array(
				'label'      => esc_html__( 'Border Radius', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .eca-paginate a,{{WRAPPER}} .eca-paginate span' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_control(
			'pNTransition',
			array(
				'label'       => esc_html__( 'Transition css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'all 0.3s linear', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .eca-paginate a,{{WRAPPER}} .eca-paginate span' => 'transition: {{VALUE}};',
				),
				'separator'   => 'before',
			)
		);
		$this->add_control(
			'pNTransform',
			array(
				'label'       => esc_html__( 'Transform css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'rotate(25deg) scale(1.2)', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .eca-paginate a,{{WRAPPER}} .eca-paginate span' => 'transform: {{VALUE}};-ms-transform: {{VALUE}};-moz-transform: {{VALUE}};-webkit-transform: {{VALUE}};',
				),
			)
		);
		$this->end_controls_tab();
		$this->start_controls_tab(
			'pGHover',
			array(
				'label' => esc_html__( 'Active/Hover', 'essential-classy-addons-for-elementor' ),
			)
		);
		$this->add_control(
			'pgHColor',
			array(
				'label'     => esc_html__( 'Color', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .eca-paginate a:hover,{{WRAPPER}} .eca-paginate span:hover,{{WRAPPER}} .eca-paginate .current' => 'color: {{VALUE}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Background::get_type(),
			array(
				'name'     => 'pgHBg',
				'types'    => array( 'classic', 'gradient' ),
				'selector' => '{{WRAPPER}} .eca-paginate a:hover,{{WRAPPER}} .eca-paginate span:hover,{{WRAPPER}} .eca-paginate .current',
			)
		);
		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'     => 'pgHBorder',
				'label'    => esc_html__( 'Border', 'essential-classy-addons-for-elementor' ),
				'selector' => '{{WRAPPER}} .eca-paginate a:hover,{{WRAPPER}} .eca-paginate span:hover,{{WRAPPER}} .eca-paginate .current',
			)
		);
		$this->add_responsive_control(
			'pgHBr',
			array(
				'label'      => esc_html__( 'Border Radius', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .eca-paginate a:hover,{{WRAPPER}} .eca-paginate span:hover,{{WRAPPER}} .eca-paginate .current' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->end_controls_tab();
		$this->end_controls_tabs();

		$this->add_control(
			'paginationNextHeading',
			array(
				'label'     => esc_html__( 'Next', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			)
		);
		$this->start_controls_tabs( 'tabsPnStyle' );
		$this->start_controls_tab(
			'pnNormal',
			array(
				'label' => esc_html__( 'Normal', 'essential-classy-addons-for-elementor' ),
			)
		);
		$this->add_control(
			'pnNColor',
			array(
				'label'     => esc_html__( 'Color', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .eca-paginate a.next' => 'color: {{VALUE}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Background::get_type(),
			array(
				'name'     => 'pnNBg',
				'types'    => array( 'classic', 'gradient' ),
				'selector' => '{{WRAPPER}} .eca-paginate a.next',
			)
		);
		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'     => 'pnNBorder',
				'label'    => esc_html__( 'Border', 'essential-classy-addons-for-elementor' ),
				'selector' => '{{WRAPPER}} .eca-paginate a.next',
			)
		);
		$this->add_responsive_control(
			'pnNBr',
			array(
				'label'      => esc_html__( 'Border Radius', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .eca-paginate a.next' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_control(
			'pnNTransition',
			array(
				'label'       => esc_html__( 'Transition css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'all 0.3s linear', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .eca-paginate a.next' => 'transition: {{VALUE}};',
				),
				'separator'   => 'before',
			)
		);
		$this->add_control(
			'pnNTransform',
			array(
				'label'       => esc_html__( 'Transform css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'rotate(25deg) scale(1.2)', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .eca-paginate a.next' => 'transform: {{VALUE}};-ms-transform: {{VALUE}};-moz-transform: {{VALUE}};-webkit-transform: {{VALUE}};',
				),
			)
		);
		$this->end_controls_tab();
		$this->start_controls_tab(
			'pNHover',
			array(
				'label' => esc_html__( 'Hover', 'essential-classy-addons-for-elementor' ),
			)
		);
		$this->add_control(
			'pnHColor',
			array(
				'label'     => esc_html__( 'Color', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .eca-paginate a.next:hover' => 'color: {{VALUE}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Background::get_type(),
			array(
				'name'     => 'pnHBg',
				'types'    => array( 'classic', 'gradient' ),
				'selector' => '{{WRAPPER}} .eca-paginate a.next:hover',
			)
		);
		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'     => 'pnHBorder',
				'label'    => esc_html__( 'Border', 'essential-classy-addons-for-elementor' ),
				'selector' => '{{WRAPPER}} .eca-paginate a.next:hover',
			)
		);
		$this->add_responsive_control(
			'pnHBr',
			array(
				'label'      => esc_html__( 'Border Radius', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .eca-paginate a.next:hover' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->end_controls_tab();
		$this->end_controls_tabs();

		$this->add_control(
			'paginationPrevHeading',
			array(
				'label'     => esc_html__( 'Previous', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			)
		);
		$this->start_controls_tabs( 'tabsPPStyle' );
		$this->start_controls_tab(
			'ppNormal',
			array(
				'label' => esc_html__( 'Normal', 'essential-classy-addons-for-elementor' ),
			)
		);
		$this->add_control(
			'ppNColor',
			array(
				'label'     => esc_html__( 'Color', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .eca-paginate a.prev' => 'color: {{VALUE}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Background::get_type(),
			array(
				'name'     => 'ppNBg',
				'types'    => array( 'classic', 'gradient' ),
				'selector' => '{{WRAPPER}} .eca-paginate a.prev',
			)
		);
		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'     => 'ppNBorder',
				'label'    => esc_html__( 'Border', 'essential-classy-addons-for-elementor' ),
				'selector' => '{{WRAPPER}} .eca-paginate a.prev',
			)
		);
		$this->add_responsive_control(
			'ppNBr',
			array(
				'label'      => esc_html__( 'Border Radius', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .eca-paginate a.prev' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_control(
			'ppNTransition',
			array(
				'label'       => esc_html__( 'Transition css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'all 0.3s linear', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .eca-paginate a.prev' => 'transition: {{VALUE}};',
				),
				'separator'   => 'before',
			)
		);
		$this->add_control(
			'ppNTransform',
			array(
				'label'       => esc_html__( 'Transform css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'rotate(25deg) scale(1.2)', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .eca-paginate a.prev' => 'transform: {{VALUE}};-ms-transform: {{VALUE}};-moz-transform: {{VALUE}};-webkit-transform: {{VALUE}};',
				),
			)
		);
		$this->end_controls_tab();
		$this->start_controls_tab(
			'ppHover',
			array(
				'label' => esc_html__( 'Hover', 'essential-classy-addons-for-elementor' ),
			)
		);
		$this->add_control(
			'ppHColor',
			array(
				'label'     => esc_html__( 'Color', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .eca-paginate a.prev:hover' => 'color: {{VALUE}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Background::get_type(),
			array(
				'name'     => 'ppHBg',
				'types'    => array( 'classic', 'gradient' ),
				'selector' => '{{WRAPPER}} .eca-paginate a.prev:hover',
			)
		);
		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'     => 'ppHBorder',
				'label'    => esc_html__( 'Border', 'essential-classy-addons-for-elementor' ),
				'selector' => '{{WRAPPER}} .eca-paginate a.prev:hover',
			)
		);
		$this->add_responsive_control(
			'ppHBr',
			array(
				'label'      => esc_html__( 'Border Radius', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .eca-paginate a.prev:hover' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->end_controls_tab();
		$this->end_controls_tabs();
		$this->end_controls_section();
		/*Paginate end*/

		/*No Post*/
		$this->start_controls_section(
			'noPostStyling',
			array(
				'label' => esc_html__( 'No Post', 'essential-classy-addons-for-elementor' ),
				'tab'   => Controls_Manager::TAB_STYLE,
			)
		);
		$this->add_control(
			'noPostText',
			array(
				'label'   => esc_html__( 'Text', 'essential-classy-addons-for-elementor' ),
				'type'    => Controls_Manager::TEXT,
				'default' => esc_html__( 'No posts found!', 'essential-classy-addons-for-elementor' ),
			)
		);
		$this->add_responsive_control(
			'noPostPadding',
			array(
				'label'      => esc_html__( 'Padding', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%', 'em' ),
				'selectors'  => array(
					'{{WRAPPER}} .eca-no-posts-found' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Typography::get_type(),
			array(
				'name'     => 'noPostTypo',
				'selector' => '{{WRAPPER}} .eca-no-posts-found',
			)
		);
		$this->add_control(
			'noPostColor',
			array(
				'label'     => esc_html__( 'Color', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					'{{WRAPPER}} .eca-no-posts-found' => 'color: {{VALUE}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Background::get_type(),
			array(
				'name'     => 'noPostBg',
				'types'    => array( 'classic', 'gradient' ),
				'selector' => '{{WRAPPER}} .eca-no-posts-found',
			)
		);
		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'     => 'noPostBorder',
				'label'    => esc_html__( 'Border', 'essential-classy-addons-for-elementor' ),
				'selector' => '{{WRAPPER}} .eca-no-posts-found',
			)
		);
		$this->add_responsive_control(
			'noPostBr',
			array(
				'label'      => esc_html__( 'Border Radius', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .eca-no-posts-found' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'noPostShadow',
				'selector' => '{{WRAPPER}} .eca-no-posts-found',
			)
		);
		$this->end_controls_section();
		/*No Post*/

		/*Box start*/
		$this->start_controls_section(
			'boxStyling',
			array(
				'label' => esc_html__( 'Box', 'essential-classy-addons-for-elementor' ),
				'tab'   => Controls_Manager::TAB_STYLE,
			)
		);
		$this->add_responsive_control(
			'boxPadding',
			array(
				'label'      => esc_html__( 'Padding', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%', 'em' ),
				'selectors'  => array(
					'{{WRAPPER}} .eca-post-grid-listing-wrap:not(.listing-style-6):not(.listing-style-8) .ec-grid-wrap article,{{WRAPPER}} .listing-style-3 .post-list-content,{{WRAPPER}} .listing-style-6 .post-list-content,{{WRAPPER}} .listing-style-8 .post-flip-front' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_responsive_control(
			'boxMargin',
			array(
				'label'      => esc_html__( 'Margin', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%', 'em' ),
				'selectors'  => array(
					'{{WRAPPER}} .eca-post-grid-listing-wrap:not(.listing-style-6):not(.listing-style-8) .ec-grid-wrap article,{{WRAPPER}} .listing-style-3 .post-list-content,{{WRAPPER}} .listing-style-6 .post-list-content,{{WRAPPER}} .listing-style-8 .post-flip-front' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->start_controls_tabs( 'tabsboxStyle' );
		$this->start_controls_tab(
			'tabboxNormal',
			array(
				'label' => esc_html__( 'Normal', 'essential-classy-addons-for-elementor' ),
			)
		);
		$this->add_group_control(
			Group_Control_Background::get_type(),
			array(
				'name'     => 'boxBgN',
				'types'    => array( 'classic', 'gradient' ),
				'selector' => '{{WRAPPER}} .eca-post-grid-listing-wrap:not(.listing-style-6):not(.listing-style-8) .ec-grid-wrap article,{{WRAPPER}} .listing-style-3 .post-list-content,{{WRAPPER}} .listing-style-6 .post-list-content,{{WRAPPER}} .listing-style-8 .post-flip-front',
			)
		);
		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'     => 'boxBorderN',
				'label'    => esc_html__( 'Border', 'essential-classy-addons-for-elementor' ),
				'selector' => '{{WRAPPER}} .eca-post-grid-listing-wrap:not(.listing-style-6):not(.listing-style-8) .ec-grid-wrap article,{{WRAPPER}} .listing-style-3 .post-list-content,{{WRAPPER}} .listing-style-6 .post-list-content,{{WRAPPER}} .listing-style-8 .post-flip-front',
			)
		);
		$this->add_responsive_control(
			'boxBrN',
			array(
				'label'      => esc_html__( 'Border Radius', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .eca-post-grid-listing-wrap:not(.listing-style-6):not(.listing-style-8) .ec-grid-wrap article,{{WRAPPER}} .listing-style-3 .post-list-content,{{WRAPPER}} .listing-style-6 .post-list-content,{{WRAPPER}} .listing-style-8 .post-flip-front' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'boxShadowN',
				'selector' => '{{WRAPPER}} .eca-post-grid-listing-wrap:not(.listing-style-6):not(.listing-style-8) .ec-grid-wrap article,{{WRAPPER}} .listing-style-3 .post-list-content,{{WRAPPER}} .listing-style-6 .post-list-content,{{WRAPPER}} .listing-style-8 .post-flip-front',
			)
		);
		$this->add_control(
			'boxTransition',
			array(
				'label'       => esc_html__( 'Transition css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'all .3s linear', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .eca-post-grid-listing-wrap:not(.listing-style-6):not(.listing-style-8) .ec-grid-wrap article,{{WRAPPER}} .listing-style-3 .post-list-content,{{WRAPPER}} .listing-style-6 .post-list-content,{{WRAPPER}} .listing-style-8 .post-flip-front' => 'transition:{{VALUE}};',
				),
			)
		);
		$this->add_control(
			'boxTransform',
			array(
				'label'       => esc_html__( 'Transform css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'skew(-20deg)', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .eca-post-grid-listing-wrap:not(.listing-style-6):not(.listing-style-8) .ec-grid-wrap article,{{WRAPPER}} .listing-style-3 .post-list-content,{{WRAPPER}} .listing-style-6 .post-list-content,{{WRAPPER}} .listing-style-8 .post-flip-front' => 'transform: {{VALUE}};-ms-transform: {{VALUE}};-moz-transform: {{VALUE}};-webkit-transform: {{VALUE}};',
				),
			)
		);
		$this->end_controls_tab();
		$this->start_controls_tab(
			'tabboxHover',
			array(
				'label' => esc_html__( 'Hover', 'essential-classy-addons-for-elementor' ),
			)
		);
		$this->add_group_control(
			Group_Control_Background::get_type(),
			array(
				'name'     => 'boxBgH',
				'types'    => array( 'classic', 'gradient' ),
				'selector' => '{{WRAPPER}} .eca-post-grid-listing-wrap:not(.listing-style-6):not(.listing-style-8) .ec-grid-wrap:hover article,{{WRAPPER}} .listing-style-3 .grid-style-3:hover .post-list-content,{{WRAPPER}}  .listing-style-6 .ec-grid-wrap:hover .post-list-content,{{WRAPPER}} .listing-style-8 .ec-grid-wrap:hover .post-flip-back',
			)
		);
		$this->add_group_control(
			Group_Control_Border::get_type(),
			array(
				'name'     => 'boxBorderH',
				'label'    => esc_html__( 'Border', 'essential-classy-addons-for-elementor' ),
				'selector' => '{{WRAPPER}} .eca-post-grid-listing-wrap:not(.listing-style-6):not(.listing-style-8) .ec-grid-wrap:hover article,{{WRAPPER}} .listing-style-3 .grid-style-3:hover .post-list-content,{{WRAPPER}}  .listing-style-6 .ec-grid-wrap:hover .post-list-content,{{WRAPPER}} .listing-style-8 .ec-grid-wrap:hover .post-flip-back',
			)
		);
		$this->add_responsive_control(
			'boxBrH',
			array(
				'label'      => esc_html__( 'Border Radius', 'essential-classy-addons-for-elementor' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => array( 'px', '%' ),
				'selectors'  => array(
					'{{WRAPPER}} .eca-post-grid-listing-wrap:not(.listing-style-6):not(.listing-style-8) .ec-grid-wrap:hover article,{{WRAPPER}} .listing-style-3 .grid-style-3:hover .post-list-content,{{WRAPPER}}  .listing-style-6 .ec-grid-wrap:hover .post-list-content,{{WRAPPER}} .listing-style-8 .ec-grid-wrap:hover .post-flip-back' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				),
			)
		);
		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			array(
				'name'     => 'boxShadowH',
				'selector' => '{{WRAPPER}} .eca-post-grid-listing-wrap:not(.listing-style-6):not(.listing-style-8) .ec-grid-wrap:hover article,{{WRAPPER}} .listing-style-3 .grid-style-3:hover .post-list-content,{{WRAPPER}}  .listing-style-6 .ec-grid-wrap:hover .post-list-content,{{WRAPPER}} .listing-style-8 .ec-grid-wrap:hover .post-flip-back',
			)
		);
		$this->add_control(
			'boxTransitionH',
			array(
				'label'       => esc_html__( 'Transition css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'all .3s linear', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .eca-post-grid-listing-wrap:not(.listing-style-6):not(.listing-style-8) .ec-grid-wrap:hover article,{{WRAPPER}} .listing-style-3 .grid-style-3:hover .post-list-content,{{WRAPPER}}  .listing-style-6 .ec-grid-wrap:hover .post-list-content,{{WRAPPER}} .listing-style-8 .ec-grid-wrap:hover .post-flip-back' => 'transition:{{VALUE}};',
				),
			)
		);
		$this->add_control(
			'boxTransformH',
			array(
				'label'       => esc_html__( 'Transform css', 'essential-classy-addons-for-elementor' ),
				'type'        => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'skew(-20deg)', 'essential-classy-addons-for-elementor' ),
				'selectors'   => array(
					'{{WRAPPER}} .eca-post-grid-listing-wrap:not(.listing-style-6):not(.listing-style-8) .ec-grid-wrap:hover article,{{WRAPPER}} .listing-style-3 .grid-style-3:hover .post-list-content,{{WRAPPER}}  .listing-style-6 .ec-grid-wrap:hover .post-list-content,{{WRAPPER}} .listing-style-8 .ec-grid-wrap:hover .post-flip-back' => 'transform: {{VALUE}};-ms-transform: {{VALUE}};-moz-transform: {{VALUE}};-webkit-transform: {{VALUE}};',
				),
			)
		);
		$this->end_controls_tab();
		$this->end_controls_tabs();
		$this->add_control(
			'boxOverflow',
			array(
				'label'     => esc_html__( 'Overflow', 'essential-classy-addons-for-elementor' ),
				'type'      => Controls_Manager::SWITCHER,
				'label_on'  => esc_html__( 'Hidden', 'essential-classy-addons-for-elementor' ),
				'label_off' => esc_html__( 'Visible', 'essential-classy-addons-for-elementor' ),
				'default'   => 'no',
				'selectors' => array(
					'{{WRAPPER}} .eca-post-grid-listing-wrap:not(.listing-style-6):not(.listing-style-8) .ec-grid-wrap article,{{WRAPPER}} .listing-style-3 .post-list-content,{{WRAPPER}} .listing-style-6 .post-list-content,{{WRAPPER}} .listing-style-8 .post-flip-front' => 'overflow:hidden;',
				),
			)
		);
		$this->end_controls_section();
		/*Box end*/
	}

	protected function render() {
		$settings   = $this->get_settings_for_display();
		$uid        = uniqid( 'post' );
		$query_args = $this->post_query_args();

		$query = new \WP_Query( $query_args );

		$data_attr                    = array();
		$data_attr['id']              = esc_attr( $uid );
		$data_attr['selectPostType']  = $settings['selectPostType'];
		$data_attr['style']           = $settings['style'];
		$data_attr['postLayout']      = ( $settings['postLayout'] == 'grid' ) ? 'fitRows' : 'masonry';
		$data_attr['selectTaxonomy']  = $settings['selectTaxonomy'];
		$data_attr['ecrtl']           = ( isset( $settings['ecrtl'] ) && $settings['ecrtl'] == 'yes' ) ? false : true;
		$data_attr['relayoutissue']   = ( isset( $settings['relayoutissue'] ) && $settings['relayoutissue'] == 'yes' ) ? false : true;
		$data_attr['postCategory']    = $settings['postCategory'];
		$data_attr['postTags']        = $settings['postTags'];
		$data_attr['taxonomyInclude'] = $settings['taxonomyInclude'];
		$data_attr['postsInclude']    = $settings['postsInclude'];
		$data_attr['postsExclude']    = $settings['postsExclude'];
		$data_attr['numberOfPosts']   = $settings['numberOfPosts'];
		$data_attr['postsOffset']     = $settings['postsOffset'];
		$data_attr['postsOrderBy']    = $settings['postsOrderBy'];
		$data_attr['postsOrder']      = $settings['postsOrder'];

		$data_attr['showImage'] = $settings['showImage'];
		$data_attr['imageSize'] = $settings['imageSize_size'];

		$data_attr['showTitle']              = $settings['showTitle'];
		$data_attr['titleTag']               = $settings['titleTag'];
		$data_attr['titleLength']            = $settings['titleLength'];
		$data_attr['showExcerpt']            = $settings['showExcerpt'];
		$data_attr['postExcerptLength']      = $settings['postExcerptLength'];
		$data_attr['showPostMeta']           = $settings['showPostMeta'];
		$data_attr['postMetaStyle']          = $settings['postMetaStyle'];
		$data_attr['postUserMeta']           = $settings['postUserMeta'];
		$data_attr['prefixTextPostUserMeta'] = $settings['prefixTextPostUserMeta'];
		$data_attr['postDateMeta']           = $settings['postDateMeta'];
		$data_attr['readMoreButton']         = $settings['readMoreButton'];
		$data_attr['buttonHoverEffectH']     = $settings['buttonHoverEffectH'];
		$data_attr['buttonEffectPosH']       = $settings['buttonEffectPosH'];

		$templateid                  = $settings['grid_post_custom_template'];
		$data_attr['readButtonText'] = $settings['readButtonText'];
		$data_attr['filterPost']     = $settings['filterPost'];

		if ( ! empty( $settings['style'] ) && $settings['style'] == 'custom-template' ) {
			$templateid              = $settings['grid_post_custom_template'];
			$data_attr['templateid'] = $settings['grid_post_custom_template'];

		}

		if ( $settings['postLoadingOpt'] != 'none' ) {
			$data_attr['postLoadingOpt'] = $settings['postLoadingOpt'];
			if ( $settings['postLoadingOpt'] == 'load_more' ) {
				$data_attr['loadMoreBtnText'] = preg_replace( '/[^a-zA-Z0-9_\s-]/', '', $settings['loadMoreBtnText'] );
				$data_attr['loadingMoreText'] = preg_replace( '/[^a-zA-Z0-9_\s-]/', '', $settings['loadingMoreText'] );
				$data_attr['loadedPostsText'] = preg_replace( '/[^a-zA-Z0-9_\s-]/', '', $settings['loadedPostsText'] );
				$data_attr['loadMorePost']    = preg_replace( '/[^a-zA-Z0-9_\s-]/', '', $settings['loadMorePost'] );
			}
			if ( $settings['postLoadingOpt'] == 'lazy_load' ) {
				$data_attr['loadingMoreText'] = preg_replace( '/[^a-zA-Z0-9_\s-]/', '', $settings['loadingMoreText'] );
				$data_attr['loadedPostsText'] = preg_replace( '/[^a-zA-Z0-9_\s-]/', '', $settings['loadedPostsText'] );
				$data_attr['loadMorePost']    = preg_replace( '/[^a-zA-Z0-9_\s-]/', '', $settings['loadMorePost'] );
			}
		}

		if ( $query->found_posts != '' ) {
			$totalPosts    = $query->found_posts;
			$postsOffset   = ( $settings['postsOffset'] != '' ) ? $settings['postsOffset'] : 0;
			$numberOfPosts = ( $settings['numberOfPosts'] != '' ) ? $settings['numberOfPosts'] : 0;
			$offset_posts  = intval( $numberOfPosts + $postsOffset );
			$totalPosts    = intval( $totalPosts - $offset_posts );
			if ( $totalPosts != 0 && $settings['loadMorePost'] != 0 ) {
				$loadPage = ceil( (int) $totalPosts / (int) $settings['loadMorePost'] );
			} else {
				$loadPage = 1;
			}
			$loadPage               = $loadPage + 1;
			$data_attr['totalPage'] = $loadPage;
		} else {
			$loadPage               = 1;
			$data_attr['totalPage'] = $loadPage;
		}

		$data_attr = json_encode( $data_attr );

		$wrapClass  = 'eca-isotope';
		$wrapClass .= ' eca-isotope-' . $settings['postLayout'];
		$wrapClass .= ' listing-' . $settings['style'];
		$wrapClass .= ' ' . $uid;
		$wrapClass .= ( $settings['filterPost'] == 'yes' ) ? ' eca-filter-post-category' : '';

		$output = '<div class="eca-post-grid-listing-wrap ' . esc_attr( $wrapClass ) . '" data-settings=\'' . $data_attr . '\'>';

		if ( $settings['filterPost'] == 'yes' ) {
			$output .= $this->filter_category();
		}

			$output     .= '<div class="eca-post-listing-inner eca-row">';
				$output .= $this->getLoopItem( $query );
			$output     .= '</div>';

		if ( $settings['postLoadingOpt'] == 'pagination' ) {
			$output .= \EcafeHelper::post_pagination( $query->max_num_pages, 2, preg_replace( '/[^a-zA-Z0-9_\s-]/', '', $settings['paginateNext'] ), preg_replace( '/[^a-zA-Z0-9_\s-]/', '', $settings['paginatePrev'] ) );
		} elseif ( $settings['postLoadingOpt'] == 'load_more' ) {
			if ( ! empty( $totalPosts ) && $totalPosts > 0 ) {
				$output              .= '<div class="eca-posts-load-more">';
				$buttonHoverEffectLMH = ( isset( $settings['buttonHoverEffectLMH'] ) && $settings['buttonHoverEffectLMH'] == 'yes' ) ? 'eca-button-hover-effect ' . esc_attr( $settings['buttonEffectPosLMH'] ) : '';

					$output .= '<a class="posts-load-more ' . esc_attr( $buttonHoverEffectLMH ) . '" data-settings=\'' . $data_attr . '\' data-page="1">' . esc_html( preg_replace( '/[^a-zA-Z0-9_\s-]/', '', $settings['loadMoreBtnText'] ) ) . '</a>';
				$output     .= '</div>';
			}
		} elseif ( $settings['postLoadingOpt'] == 'lazy_load' ) {
			if ( ! empty( $totalPosts ) && $totalPosts > 0 ) {
				$output     .= '<div class="eca-posts-lazy-load">';
					$output .= '<a class="posts-lazy-load" data-settings=\'' . $data_attr . '\' data-page="1"><span class="lazy-text">Lazy Load</span></a>';
				$output     .= '</div>';
			}
		}

			$output .= '</div>';

			echo wp_kses_normalize_entities( $output );
	}

	public function post_query_args() {
		$settings   = $this->get_settings_for_display();
		$query_args = \EcafeHelper::getQueryArgs( $settings );
		$offset     = $settings['postsOffset'];
		$offset     = ! empty( $offset ) ? absint( $offset ) : 0;

		global $paged;
		if ( get_query_var( 'paged' ) ) {
			$paged = get_query_var( 'paged' );
		} elseif ( get_query_var( 'page' ) ) {
			$paged = get_query_var( 'page' );
		} else {
			$paged = 1;
		}

		if ( $settings['postLoadingOpt'] != 'pagination' ) {
			$query_args['offset'] = $offset;
		} elseif ( $settings['postLoadingOpt'] == 'pagination' ) {
			$query_args['paged']  = $paged;
			$page                 = max( 1, $paged );
			$offset               = ( $page - 1 ) * intval( $settings['numberOfPosts'] ) + $offset;
			$query_args['offset'] = $offset;
		}

		$ecCustomQuery = isset( $settings['ecCustomQuery'] ) ? $settings['ecCustomQuery'] : '';
		if ( isset( $ecCustomQuery ) && $ecCustomQuery == 'yes' ) {
			$ecCustomQueryId = ! empty( $settings['ecCustomQueryId'] ) ? $settings['ecCustomQueryId'] : '';
			if ( ! empty( $ecCustomQueryId ) ) {
				if ( has_filter( $ecCustomQueryId ) ) {
					$query_args = apply_filters( $ecCustomQueryId, $query_args );
				}
			}
		}

		return $query_args;
	}

	public function filter_category() {

		$settings        = $this->get_settings_for_display();
		$query_args      = $this->post_query_args();
		$filterStyle     = $settings['filterStyle'];
		$query           = new \WP_Query( $query_args );
		$postCategory    = $settings['postCategory'];
		$postTags        = $settings['postTags'];
		$selectTaxonomy  = $settings['selectTaxonomy'];
		$taxonomyInclude = $settings['taxonomyInclude'];

		$all_filter = ( $settings['filterAllShow'] == 'yes' ) ? $settings['allFilterText'] : esc_html__( 'All', 'essential-classy-addons-for-elementor' );

		$terms = get_terms(
			array(
				'taxonomy'   => $settings['selectTaxonomy'],
				'hide_empty' => true,
			)
		);

		$count            = $query->post_count;
		$all_filter_count = '<span class="term_count">' . esc_html( $count ) . '</span>';

		$filter_loop = array();
		if ( $query->have_posts() ) {
			while ( $query->have_posts() ) {
				$query->the_post();

				$taxonomy   = $settings['selectTaxonomy'];
				$categories = get_the_terms( $query->ID, $taxonomy );

				if ( $categories ) {
					foreach ( $categories as $category ) {
						if ( isset( $filter_loop[ $category->slug ] ) ) {
							$filter_loop[ $category->slug ] = $filter_loop[ $category->slug ] + 1;
						} else {
							$filter_loop[ $category->slug ] = 1;
						}
					}
				}
			}
		}
		wp_reset_postdata();

		$output_filter      = '<div class="terms-filters-wrap filter-' . esc_attr( $filterStyle ) . '">';
			$output_filter .= '<ul class="terms-filters-lists">';
		if ( ! empty( $settings['filterAllShow'] ) && $settings['filterAllShow'] == 'yes' ) {
			$output_filter .= '<li><a href="#" class="term-filter-list active all" data-filter="*" >' . $all_filter_count . '<span data-hover="' . esc_attr( $all_filter ) . '">' . esc_html( $all_filter ) . '</span></a></li>';
		}

		if ( $terms != null ) {
			foreach ( $terms as $term ) {
				if ( isset( $filter_loop[ $term->slug ] ) ) {
					$count = $filter_loop[ $term->slug ];
				} else {
					$count = 0;
				}
				$term_count = '<span class="term_count">' . esc_html( $count ) . '</span>';

				if ( $count != 0 ) {
					if ( ! empty( $taxonomyInclude ) ) {
						$taxonomyInclude = ( $settings['taxonomyInclude'] ) ? explode( ',', $settings['taxonomyInclude'] ) : array();
						if ( in_array( $term->slug, $taxonomyInclude ) ) {
							$output_filter .= '<li><a href="#ecf' . esc_attr( $term->term_id ) . '" class="term-filter-list" data-filter=".ecf' . esc_attr( $term->term_id ) . '">' . $term_count . '<span data-hover="ecf' . esc_attr( $term->term_id ) . '">' . esc_html( $term->name ) . '</span></a></li>';
							unset( $term );
						}
					} else {
						$output_filter .= '<li><a href="#ecf' . esc_attr( $term->term_id ) . '" class="term-filter-list" data-filter=".ecf' . esc_attr( $term->term_id ) . '">' . $term_count . '<span data-hover="ecf' . esc_attr( $term->term_id ) . '">' . esc_html( $term->name ) . '</span></a></li>';
						unset( $term );
					}
				}
			}
		}
			$output_filter .= '</ul>';
		$output_filter     .= '</div>';

		return $output_filter;
	}

	public function getLoopItem( $query ) {
		$settings = $this->get_settings_for_display();

		$style         = $settings['style'];
		$styleFlipType = ( $settings['style'] == 'style-8' ) ? $settings['style8FlipType'] : '';
		$noPostText    = ! empty( $settings['noPostText'] ) ? $settings['noPostText'] : 'No posts found!';
		$showTitle     = $settings['showTitle'];
		$titleTag      = $settings['titleTag'];
		$titleLength   = $settings['titleLength'];

		$showImage = $settings['showImage'];
		$imageSize = $settings['imageSize_size'];

		$showExcerpt       = $settings['showExcerpt'];
		$postExcerptLength = $settings['postExcerptLength'];

		$showPostMeta           = $settings['showPostMeta'];
		$postMetaStyle          = $settings['postMetaStyle'];
		$postDateMeta           = $settings['postDateMeta'];
		$postUserMeta           = $settings['postUserMeta'];
		$prefixTextPostUserMeta = $settings['prefixTextPostUserMeta'];

		$readMoreButton     = $settings['readMoreButton'];
		$readButtonText     = $settings['readButtonText'];
		$buttonHoverEffectH = ( isset( $settings['buttonHoverEffectH'] ) && $settings['buttonHoverEffectH'] == 'yes' ) ? 'eca-button-hover-effect ' . esc_attr( $settings['buttonEffectPosH'] ) : '';
		$templateid         = $settings['grid_post_custom_template'];

		$itemClass = '';
		if ( $style != 'style-3' ) {
			$itemClass .= 'ec-grid-wrap ';
		} elseif ( $style == 'style-3' ) {
			$itemClass .= ' grid-style-3';
		}
		$output = '';
		if ( $query->have_posts() ) {
			$tiltclass  = '';
			$tiltrender = '';
			if ( isset( $settings['tiltEffect'] ) && $settings['tiltEffect'] === 'yes' ) {
				/*Tilt Effect Render*/
				include ECAFE_PATH . 'element/widgets/ecafe-tilt-render.php';
			}
			$tippyclass  = '';
			$tippyrender = '';
			if ( isset( $settings['tippyTooltip'] ) && $settings['tippyTooltip'] === 'yes' ) {
				/*Tippy Tooltip Render*/
				include ECAFE_PATH . 'element/widgets/ecafe-tippy-render.php';
			}
			while ( $query->have_posts() ) {
				$query->the_post();

				$filter_post = '';
				if ( $settings['filterPost'] == 'yes' ) {
					$terms = get_the_terms( $query->ID, $settings['selectTaxonomy'] );

					if ( $terms != null ) {
						foreach ( $terms as $term ) {
							$filter_post .= ' ecf' . esc_attr( $term->term_id ) . ' ';
							unset( $term );
						}
					}
				}

				$output .= '<div class="' . esc_attr( $itemClass ) . ' ' . esc_attr( $filter_post ) . ' ' . esc_attr( $tiltclass ) . ' ' . esc_attr( $tippyclass ) . '" ' . $tiltrender . ' ' . $tippyrender . '>';
					ob_start();
						include ECAFE_PATH . 'element/post-data/' . sanitize_file_name( $style ) . '.php';
					$output .= ob_get_contents();
					ob_end_clean();
				$output .= '</div>';
			}
		} else {
			$output .= '<div class="eca-no-posts-found">' . esc_attr( $noPostText ) . '</div>';
		}

		wp_reset_postdata();

		return $output;
	}
}
