<?php
/**
 * Custom Styling output for Astra Theme.
 *
 * @package     Astra
 * @subpackage  Class
 * @link        https://wpastra.com/
 * @since       Astra 1.0.0
 */

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Dynamic CSS
 */
if ( ! class_exists( 'Astra_Dynamic_CSS' ) ) {

	/**
	 * Dynamic CSS
	 */
	class Astra_Dynamic_CSS {
		/**
		 * Return CSS Output
		 *
		 * @param  string $dynamic_css          Astra Dynamic CSS.
		 * @param  string $dynamic_css_filtered Astra Dynamic CSS Filters.
		 * @return string Generated CSS.
		 */
		public static function return_output( $dynamic_css, $dynamic_css_filtered = '' ) {

			/**
			 * Contents
			 * - Variable Declaration
			 * - Global CSS
			 * - Typography
			 * - Page Layout
			 *   - Sidebar Positions CSS
			 *      - Full Width Layout CSS
			 *   - Fluid Width Layout CSS
			 *   - Box Layout CSS
			 *   - Padded Layout CSS
			 * - Blog
			 *   - Single Blog
			 * - Typography of Headings
			 * - Header
			 * - Footer
			 *   - Main Footer CSS
			 *     - Small Footer CSS
			 * - 404 Page
			 * - Secondary
			 * - Global CSS
			 */

			/**
			 * - Variable Declaration
			 */
			$is_site_rtl = is_rtl();
			$rtl_left    = 'left';
			$rtl_right   = 'right';
			if ( $is_site_rtl ) {
				$rtl_left  = 'right';
				$rtl_right = 'left';
			}
			$site_content_width         = astra_get_option( 'site-content-width', 1200 );
			$narrow_container_max_width = astra_get_option( 'narrow-container-max-width', apply_filters( 'astra_narrow_container_width', 750 ) );
			$header_logo_width          = astra_get_option( 'ast-header-responsive-logo-width' );
			$container_layout           = astra_toggle_layout( 'ast-site-content-layout', 'global', false );

			// Get the Global Container Layout based on Global Boxed and Global Sidebar Style.
			if ( 'plain-container' === $container_layout ) {
				$is_boxed         = ( 'boxed' === astra_get_option( 'site-content-style' ) );
				$is_sidebar_boxed = ( 'boxed' === astra_get_option( 'site-sidebar-style' ) );
				$sidebar_layout   = astra_get_option( 'site-sidebar-layout' );

				// Apply content boxed layout or boxed layout depending on content/sidebar style.
				if ( 'no-sidebar' === $sidebar_layout ) {
					if ( $is_boxed ) {
						$container_layout = 'boxed-container';
					}
				} elseif ( 'no-sidebar' !== $sidebar_layout ) {
					if ( $is_boxed ) {
						$container_layout = $is_sidebar_boxed ? 'boxed-container' : 'content-boxed-container';
					} elseif ( $is_sidebar_boxed ) {

						/**
						 * Case: unboxed container with sidebar boxed
						 * Container unboxed css is applied through astra_apply_unboxed_container()
						 */
						$container_layout = 'boxed-container';
					}
				}
			}

			$title_color                = astra_get_option( 'header-color-site-title' );
			$title_hover_color          = astra_get_option( 'header-color-h-site-title' );
			$tagline_color              = astra_get_option( 'header-color-site-tagline' );
			$site_title_setting         = astra_get_option( 'display-site-title-responsive' );
			$desktop_title_visibility   = $site_title_setting['desktop'] ? 'block' : 'none';
			$tablet_title_visibility    = $site_title_setting['tablet'] ? 'block' : 'none';
			$mobile_title_visibility    = $site_title_setting['mobile'] ? 'block' : 'none';
			$site_tagline_setting       = astra_get_option( 'display-site-tagline-responsive' );
			$desktop_tagline_visibility = $site_tagline_setting['desktop'] ? 'block' : 'none';
			$tablet_tagline_visibility  = $site_tagline_setting['tablet'] ? 'block' : 'none';
			$mobile_tagline_visibility  = $site_tagline_setting['mobile'] ? 'block' : 'none';

			// Site Background Color.
			$box_bg_obj = astra_get_option( 'site-layout-outside-bg-obj-responsive' );

			// Override page background with meta value if set.
			$meta_background_enabled = astra_get_option_meta( 'ast-page-background-enabled' );

			// Check for third party pages meta.
			if ( '' === $meta_background_enabled && astra_with_third_party() ) {
				$meta_background_enabled = astra_third_party_archive_meta( 'ast-page-background-enabled' );
				if ( isset( $meta_background_enabled ) && 'enabled' === $meta_background_enabled ) {
					$box_bg_obj = astra_third_party_archive_meta( 'ast-page-background-meta' );
				}
			} elseif ( isset( $meta_background_enabled ) && 'enabled' === $meta_background_enabled ) {
				$box_bg_obj = astra_get_option_meta( 'ast-page-background-meta' );
			}

			// Color Options.
			$text_color         = astra_get_option( 'text-color' );
			$theme_color        = astra_get_option( 'theme-color' );
			$link_color         = astra_get_option( 'link-color', $theme_color );
			$link_hover_color   = astra_get_option( 'link-h-color' );
			$heading_base_color = astra_get_option( 'heading-base-color' );

			// Typography.
			$body_font_size       = astra_get_option( 'font-size-body' );
			$body_line_height     = astra_get_font_extras( astra_get_option( 'body-font-extras' ), 'line-height', 'line-height-unit' );
			$para_margin_bottom   = astra_get_option( 'para-margin-bottom' );
			$body_text_transform  = astra_get_font_extras( astra_get_option( 'body-font-extras' ), 'text-transform' );
			$body_letter_spacing  = astra_get_font_extras( astra_get_option( 'body-font-extras' ), 'letter-spacing', 'letter-spacing-unit' );
			$body_text_decoration = astra_get_font_extras( astra_get_option( 'body-font-extras' ), 'text-decoration' );

			$site_title_font_size   = astra_get_option( 'font-size-site-title' );
			$site_tagline_font_size = astra_get_option( 'font-size-site-tagline' );

			$archive_post_title_font_size = astra_get_option( 'font-size-page-title' );
			$archive_post_meta_font_size  = astra_get_option( 'font-size-post-meta' );
			$archive_post_tax_font_size   = astra_get_option( 'font-size-post-tax' );
			$archive_cards_radius         = astra_get_option( 'post-card-border-radius' );
			$archive_cards_overlay        = astra_get_option( 'post-card-featured-overlay' );

			$heading_h1_font_size = astra_get_option( 'font-size-h1' );
			$heading_h2_font_size = astra_get_option( 'font-size-h2' );
			$heading_h3_font_size = astra_get_option( 'font-size-h3' );
			$heading_h4_font_size = astra_get_option( 'font-size-h4' );
			$heading_h5_font_size = astra_get_option( 'font-size-h5' );
			$heading_h6_font_size = astra_get_option( 'font-size-h6' );

			/**
			 * Heading Typography - h1 - h3.
			 */
			$headings_font_family    = astra_get_option( 'headings-font-family' );
			$headings_font_weight    = astra_get_option( 'headings-font-weight' );
			$headings_line_height    = astra_get_font_extras( astra_get_option( 'headings-font-extras' ), 'line-height', 'line-height-unit' );
			$headings_font_transform = astra_get_font_extras( astra_get_option( 'headings-font-extras' ), 'text-transform' );

			$h1_font_family     = astra_get_option( 'font-family-h1' );
			$h1_font_weight     = astra_get_option( 'font-weight-h1' );
			$h1_line_height     = astra_get_font_extras( astra_get_option( 'font-extras-h1' ), 'line-height', 'line-height-unit' );
			$h1_text_transform  = astra_get_font_extras( astra_get_option( 'font-extras-h1' ), 'text-transform' );
			$h1_letter_spacing  = astra_get_font_extras( astra_get_option( 'font-extras-h1' ), 'letter-spacing', 'letter-spacing-unit' );
			$h1_text_decoration = astra_get_font_extras( astra_get_option( 'font-extras-h1' ), 'text-decoration' );

			$h2_font_family     = astra_get_option( 'font-family-h2' );
			$h2_font_weight     = astra_get_option( 'font-weight-h2' );
			$h2_line_height     = astra_get_font_extras( astra_get_option( 'font-extras-h2' ), 'line-height', 'line-height-unit' );
			$h2_text_transform  = astra_get_font_extras( astra_get_option( 'font-extras-h2' ), 'text-transform' );
			$h2_letter_spacing  = astra_get_font_extras( astra_get_option( 'font-extras-h2' ), 'letter-spacing', 'letter-spacing-unit' );
			$h2_text_decoration = astra_get_font_extras( astra_get_option( 'font-extras-h2' ), 'text-decoration' );

			$h3_font_family     = astra_get_option( 'font-family-h3' );
			$h3_font_weight     = astra_get_option( 'font-weight-h3' );
			$h3_line_height     = astra_get_font_extras( astra_get_option( 'font-extras-h3' ), 'line-height', 'line-height-unit' );
			$h3_text_transform  = astra_get_font_extras( astra_get_option( 'font-extras-h3' ), 'text-transform' );
			$h3_letter_spacing  = astra_get_font_extras( astra_get_option( 'font-extras-h3' ), 'letter-spacing', 'letter-spacing-unit' );
			$h3_text_decoration = astra_get_font_extras( astra_get_option( 'font-extras-h3' ), 'text-decoration' );

			$h4_font_family     = '';
			$h4_font_weight     = '';
			$h4_line_height     = '';
			$h4_text_transform  = '';
			$h4_letter_spacing  = '';
			$h4_text_decoration = '';

			$h5_font_family     = '';
			$h5_font_weight     = '';
			$h5_line_height     = '';
			$h5_text_transform  = '';
			$h5_letter_spacing  = '';
			$h5_text_decoration = '';

			$h6_font_family     = '';
			$h6_font_weight     = '';
			$h6_line_height     = '';
			$h6_text_transform  = '';
			$h6_letter_spacing  = '';
			$h6_text_decoration = '';

			$is_widget_title_support_font_weight = self::support_font_css_to_widget_and_in_editor();
			$font_weight_prop                    = $is_widget_title_support_font_weight ? 'inherit' : 'normal';

			// Elementor heading margin compatibility.
			$elementor_heading_margin_style_comp = self::elementor_heading_margin_style_comp();

			// Elementor Loop block padding compatibility.
			$elementor_container_padding_style_comp = self::elementor_container_padding_style_comp();

			// Heading px to em conversion compatibility for responsive heading tags.
			$heading_font_size_comp = self::heading_font_size_comp();

			// Elementor button styling compatibility.
			$add_body_class = self::elementor_btn_styling_comp();

			$update_customizer_strctural_defaults = astra_check_is_structural_setup();
			$blog_layout                          = astra_get_blog_layout();

			// Fallback for H1 - headings typography.
			if ( 'inherit' === $h1_font_family ) {
				$h1_font_family = $headings_font_family;
			}
			if ( $font_weight_prop === $h1_font_weight ) {
				$h1_font_weight = $headings_font_weight;
			}
			if ( '' == $h1_text_transform ) {
				$h1_text_transform = $headings_font_transform;
			}
			if ( '' == $h1_line_height ) {
				$h1_line_height = $headings_line_height;
			}

			// Fallback for H2 - headings typography.
			if ( 'inherit' === $h2_font_family ) {
				$h2_font_family = $headings_font_family;
			}
			if ( $font_weight_prop === $h2_font_weight ) {
				$h2_font_weight = $headings_font_weight;
			}
			if ( '' == $h2_text_transform ) {
				$h2_text_transform = $headings_font_transform;
			}
			if ( '' == $h2_line_height ) {
				$h2_line_height = $headings_line_height;
			}

			// Fallback for H3 - headings typography.
			if ( 'inherit' === $h3_font_family ) {
				$h3_font_family = $headings_font_family;
			}
			if ( $font_weight_prop === $h3_font_weight ) {
				$h3_font_weight = $headings_font_weight;
			}
			if ( '' == $h3_text_transform ) {
				$h3_text_transform = $headings_font_transform;
			}
			if ( '' == $h3_line_height ) {
				$h3_line_height = $headings_line_height;
			}

			// Fallback for H4 - headings typography.
			$h4_line_height = $headings_line_height;

			// Fallback for H5 - headings typography.
			$h5_line_height = $headings_line_height;

			// Fallback for H6 - headings typography.
			$h6_line_height = $headings_line_height;

			if ( astra_has_gcp_typo_preset_compatibility() ) {

				$h4_font_family     = astra_get_option( 'font-family-h4' );
				$h4_font_weight     = astra_get_option( 'font-weight-h4' );
				$h4_line_height     = astra_get_font_extras( astra_get_option( 'font-extras-h4' ), 'line-height', 'line-height-unit' );
				$h4_text_transform  = astra_get_font_extras( astra_get_option( 'font-extras-h4' ), 'text-transform' );
				$h4_letter_spacing  = astra_get_font_extras( astra_get_option( 'font-extras-h4' ), 'letter-spacing', 'letter-spacing-unit' );
				$h4_text_decoration = astra_get_font_extras( astra_get_option( 'font-extras-h4' ), 'text-decoration' );

				$h5_font_family     = astra_get_option( 'font-family-h5' );
				$h5_font_weight     = astra_get_option( 'font-weight-h5' );
				$h5_line_height     = astra_get_font_extras( astra_get_option( 'font-extras-h5' ), 'line-height', 'line-height-unit' );
				$h5_text_transform  = astra_get_font_extras( astra_get_option( 'font-extras-h5' ), 'text-transform' );
				$h5_letter_spacing  = astra_get_font_extras( astra_get_option( 'font-extras-h5' ), 'letter-spacing', 'letter-spacing-unit' );
				$h5_text_decoration = astra_get_font_extras( astra_get_option( 'font-extras-h5' ), 'text-decoration' );

				$h6_font_family     = astra_get_option( 'font-family-h6' );
				$h6_font_weight     = astra_get_option( 'font-weight-h6' );
				$h6_line_height     = astra_get_font_extras( astra_get_option( 'font-extras-h6' ), 'line-height', 'line-height-unit' );
				$h6_text_transform  = astra_get_font_extras( astra_get_option( 'font-extras-h6' ), 'text-transform' );
				$h6_letter_spacing  = astra_get_font_extras( astra_get_option( 'font-extras-h6' ), 'letter-spacing', 'letter-spacing-unit' );
				$h6_text_decoration = astra_get_font_extras( astra_get_option( 'font-extras-h6' ), 'text-decoration' );

				// Fallback for H4 - headings typography.
				if ( 'inherit' === $h4_font_family ) {
					$h4_font_family = $headings_font_family;
				}
				if ( $font_weight_prop === $h4_font_weight ) {
					$h4_font_weight = $headings_font_weight;
				}
				if ( '' == $h4_text_transform ) {
					$h4_text_transform = $headings_font_transform;
				}

				// Fallback for H5 - headings typography.
				if ( 'inherit' === $h5_font_family ) {
						$h5_font_family = $headings_font_family;
				}
				if ( $font_weight_prop === $h5_font_weight ) {
					$h5_font_weight = $headings_font_weight;
				}
				if ( '' == $h5_text_transform ) {
					$h5_text_transform = $headings_font_transform;
				}

				// Fallback for H6 - headings typography.
				if ( 'inherit' === $h6_font_family ) {
						$h6_font_family = $headings_font_family;
				}
				if ( $font_weight_prop === $h6_font_weight ) {
					$h6_font_weight = $headings_font_weight;
				}
				if ( '' == $h6_text_transform ) {
					$h6_text_transform = $headings_font_transform;
				}
			}

			// Button Styling.
			$btn_border_radius_fields = astra_get_option( 'button-radius-fields' );
			$theme_btn_padding        = astra_get_option( 'theme-button-padding' );
			$highlight_theme_color    = astra_get_foreground_color( $theme_color );
			$button_styling_improved  = self::astra_4_6_4_compatibility();

			// Submenu Border color.
			$submenu_border               = astra_get_option( 'primary-submenu-border' );
			$primary_submenu_item_border  = astra_get_option( 'primary-submenu-item-border' );
			$primary_submenu_b_color      = astra_get_option( 'primary-submenu-b-color', $theme_color );
			$primary_submenu_item_b_color = astra_get_option( 'primary-submenu-item-b-color', '#eaeaea' );

			// Astra and WordPress-5.8 compatibility.
			$is_wp_5_8_support_enabled = self::is_block_editor_support_enabled();

			// Gutenberg editor improvement.
			/** @psalm-suppress InvalidScalarArgument */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
			$improve_gb_ui = astra_get_option( 'improve-gb-editor-ui', true );
			/** @psalm-suppress InvalidScalarArgument */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort

			$block_editor_legacy_setup = astra_block_based_legacy_setup();

			if ( false === Astra_Builder_Helper::$is_header_footer_builder_active ) {
				// Footer Bar Colors.
				$footer_bg_obj       = astra_get_option( 'footer-bg-obj' );
				$footer_color        = astra_get_option( 'footer-color' );
				$footer_link_color   = astra_get_option( 'footer-link-color' );
				$footer_link_h_color = astra_get_option( 'footer-link-h-color' );

				// Color.
				$footer_adv_bg_obj             = astra_get_option( 'footer-adv-bg-obj' );
				$footer_adv_text_color         = astra_get_option( 'footer-adv-text-color' );
				$footer_adv_widget_title_color = astra_get_option( 'footer-adv-wgt-title-color' );
				$footer_adv_link_color         = astra_get_option( 'footer-adv-link-color' );
				$footer_adv_link_h_color       = astra_get_option( 'footer-adv-link-h-color' );

				// Header Break Point.
				$header_break_point = astra_header_break_point();

				// Custom Buttom menu item.
				$header_custom_button_style          = astra_get_option( 'header-main-rt-section-button-style' );
				$header_custom_button_text_color     = astra_get_option( 'header-main-rt-section-button-text-color' );
				$header_custom_button_text_h_color   = astra_get_option( 'header-main-rt-section-button-text-h-color' );
				$header_custom_button_back_color     = astra_get_option( 'header-main-rt-section-button-back-color' );
				$header_custom_button_back_h_color   = astra_get_option( 'header-main-rt-section-button-back-h-color' );
				$header_custom_button_spacing        = astra_get_option( 'header-main-rt-section-button-padding' );
				$header_custom_button_border_color   = astra_get_option( 'header-main-rt-section-button-border-color' );
				$header_custom_button_border_h_color = astra_get_option( 'header-main-rt-section-button-border-h-color' );
				$header_custom_button_border_size    = astra_get_option( 'header-main-rt-section-button-border-size' );

				$header_custom_trans_button_text_color     = astra_get_option( 'header-main-rt-trans-section-button-text-color' );
				$header_custom_trans_button_text_h_color   = astra_get_option( 'header-main-rt-trans-section-button-text-h-color' );
				$header_custom_trans_button_back_color     = astra_get_option( 'header-main-rt-trans-section-button-back-color' );
				$header_custom_trans_button_back_h_color   = astra_get_option( 'header-main-rt-trans-section-button-back-h-color' );
				$header_custom_trans_button_spacing        = astra_get_option( 'header-main-rt-trans-section-button-padding' );
				$header_custom_trans_button_radius         = astra_get_option( 'header-main-rt-trans-section-button-border-radius' );
				$header_custom_trans_button_border_color   = astra_get_option( 'header-main-rt-trans-section-button-border-color' );
				$header_custom_trans_button_border_h_color = astra_get_option( 'header-main-rt-trans-section-button-border-h-color' );
				$header_custom_trans_button_border_size    = astra_get_option( 'header-main-rt-trans-section-button-border-size' );

			}

			$global_custom_button_border_size = astra_get_option( 'theme-button-border-group-border-size' );
			$btn_border_color                 = astra_get_option( 'theme-button-border-group-border-color' );
			$btn_border_h_color               = astra_get_option( 'theme-button-border-group-border-h-color' );

			/**
			 * Theme Button Typography
			 */
			$theme_btn_font_family     = astra_get_option( 'font-family-button' );
			$theme_btn_font_size       = astra_get_option( 'font-size-button' );
			$theme_btn_font_weight     = astra_get_option( 'font-weight-button' );
			$theme_btn_text_transform  = astra_get_font_extras( astra_get_option( 'font-extras-button' ), 'text-transform' );
			$theme_btn_line_height     = astra_get_font_extras( astra_get_option( 'font-extras-button' ), 'line-height', 'line-height-unit' );
			$theme_btn_letter_spacing  = astra_get_font_extras( astra_get_option( 'font-extras-button' ), 'letter-spacing', 'letter-spacing-unit' );
			$theme_btn_text_decoration = astra_get_font_extras( astra_get_option( 'font-extras-button' ), 'text-decoration' );

			if ( false === Astra_Builder_Helper::$is_header_footer_builder_active ) {
				/**
				 * Custom Header Button Typography
				 */
				$header_custom_btn_font_family    = astra_get_option( 'primary-header-button-font-family' );
				$header_custom_btn_font_weight    = astra_get_option( 'primary-header-button-font-weight' );
				$header_custom_btn_font_size      = astra_get_option( 'primary-header-button-font-size' );
				$header_custom_btn_text_transform = astra_get_option( 'primary-header-button-text-transform' );
				$header_custom_btn_line_height    = astra_get_option( 'primary-header-button-line-height' );
				$header_custom_btn_letter_spacing = astra_get_option( 'primary-header-button-letter-spacing' );

				$footer_adv_border_width = astra_get_option( 'footer-adv-border-width' );
				$footer_adv_border_color = astra_get_option( 'footer-adv-border-color' );
			}

			/**
			 * Apply text color depends on link color
			 */
			$btn_text_color = astra_get_option( 'button-color' );
			if ( empty( $btn_text_color ) ) {
				$btn_text_color = astra_get_foreground_color( $theme_color );
			}

			/**
			 * Apply text hover color depends on link hover color
			 */
			$btn_text_hover_color = astra_get_option( 'button-h-color' );
			if ( empty( $btn_text_hover_color ) ) {
				$btn_text_hover_color = astra_get_foreground_color( $link_hover_color );
			}
			$btn_bg_color     = astra_get_option( 'button-bg-color', $theme_color );
			$btn_preset_style = astra_get_option( 'button-preset-style' );

			if ( 'button_04' === $btn_preset_style || 'button_05' === $btn_preset_style || 'button_06' === $btn_preset_style ) {

				if ( empty( $btn_border_color ) ) {
					$btn_border_color = $btn_bg_color;
				}

				if ( '' === astra_get_option( 'button-bg-color' ) && '' === astra_get_option( 'button-color' ) ) {
					$btn_text_color = $theme_color;
				} elseif ( '' === astra_get_option( 'button-color' ) ) {
						$btn_text_color = $btn_bg_color;
				}

				$btn_bg_color = 'transparent';
			}

			$btn_bg_hover_color = astra_get_option( 'button-bg-h-color', $link_hover_color );

			if ( false === Astra_Builder_Helper::$is_header_footer_builder_active ) {
				// Spacing of Big Footer.
				$small_footer_divider_color = astra_get_option( 'footer-sml-divider-color' );
				$small_footer_divider       = astra_get_option( 'footer-sml-divider' );

				/**
				 * Small Footer Styling
				 */
				$small_footer_layout = astra_get_option( 'footer-sml-layout', 'footer-sml-layout-1' );
				$astra_footer_width  = astra_get_option( 'footer-layout-width' );
			}

			// Blog Post Title Typography Options.
			$single_post_max                        = astra_get_option( 'blog-single-width' );
			$single_post_max_width                  = astra_get_option( 'blog-single-max-width' );
			$single_page_max                        = astra_get_option( 'page-single-width' );
			$single_page_max_width                  = astra_get_option( 'page-single-max-width' );
			$blog_width                             = astra_get_option( 'blog-width' );
			$blog_max_width                         = astra_get_option( 'blog-max-width' );
			$mobile_header_toggle_btn_style_color   = astra_get_option( 'mobile-header-toggle-btn-style-color', $btn_bg_color );
			$mobile_header_toggle_btn_border_radius = astra_get_option( 'mobile-header-toggle-btn-border-radius' );
			$aspect_ratio_type                      = astra_get_option( 'blog-image-ratio-type' );
			$predefined_scale                       = astra_get_option( 'blog-image-ratio-pre-scale' );
			$custom_scale_width                     = astra_get_option( 'blog-image-custom-scale-width', 16 );
			$custom_scale_height                    = astra_get_option( 'blog-image-custom-scale-height', 9 );
			$aspect_ratio                           = astra_get_dynamic_image_aspect_ratio( $aspect_ratio_type, $predefined_scale, $custom_scale_width, $custom_scale_height );
			$with_aspect_img_width                  = 'predefined' === $aspect_ratio_type || 'custom' === $aspect_ratio_type ? '100%' : '';

			/** @psalm-suppress InvalidArgument */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
			$btn_style_color = astra_get_option( 'mobile-header-toggle-btn-style-color', false );

			if ( ! $btn_style_color ) {
				// button text color.
				$menu_btn_color = esc_attr( astra_get_option( 'button-color' ) );
			} else {
				// toggle button color.
				$menu_btn_color = astra_get_foreground_color( $btn_style_color );
			}

			$css_output = array();
			// Body Font Family.
			$body_font_family = astra_body_font_family();
			$body_font_weight = astra_get_option( 'body-font-weight' );

			if ( is_array( $body_font_size ) ) {
				$body_font_size_desktop = isset( $body_font_size['desktop'] ) && '' != $body_font_size['desktop'] ? $body_font_size['desktop'] : 15;
				// Convert to appropriate pixels if the unit is 'rem'.
				$body_font_size_desktop = ! empty( $body_font_size['desktop-unit'] ) && $body_font_size['desktop-unit'] === 'rem' ? $body_font_size_desktop * 16 : $body_font_size_desktop;
			} else {
				$body_font_size_desktop = '' != $body_font_size ? $body_font_size : 15;
			}
			// check the selection color incase of empty/no theme color.
			$selection_text_color = 'transparent' === $highlight_theme_color ? '' : $highlight_theme_color;

			$h4_properties = array(
				'font-size'   => astra_responsive_font( $heading_h4_font_size, 'desktop' ),
				'line-height' => esc_attr( $headings_line_height ),
			);

			$h5_properties = array(
				'font-size'   => astra_responsive_font( $heading_h5_font_size, 'desktop' ),
				'line-height' => esc_attr( $headings_line_height ),
			);

			$h6_properties = array(
				'font-size'   => astra_responsive_font( $heading_h6_font_size, 'desktop' ),
				'line-height' => esc_attr( $headings_line_height ),
			);

			if ( astra_has_gcp_typo_preset_compatibility() ) {
				$h4_font_properties = array(
					'font-weight'     => astra_get_css_value( $h4_font_weight, 'font' ),
					'font-family'     => astra_get_css_value( $h4_font_family, 'font' ),
					'text-transform'  => esc_attr( $h4_text_transform ),
					'line-height'     => esc_attr( $h4_line_height ),
					'text-decoration' => esc_attr( $h4_text_decoration ),
					'letter-spacing'  => esc_attr( $h4_letter_spacing ),

				);

				$h4_properties = array_merge( $h4_properties, $h4_font_properties );

				$h5_font_properties = array(
					'font-weight'     => astra_get_css_value( $h5_font_weight, 'font' ),
					'font-family'     => astra_get_css_value( $h5_font_family, 'font' ),
					'text-transform'  => esc_attr( $h5_text_transform ),
					'line-height'     => esc_attr( $h5_line_height ),
					'text-decoration' => esc_attr( $h5_text_decoration ),
					'letter-spacing'  => esc_attr( $h5_letter_spacing ),
				);

				$h5_properties = array_merge( $h5_properties, $h5_font_properties );

				$h6_font_properties = array(
					'font-weight'     => astra_get_css_value( $h6_font_weight, 'font' ),
					'font-family'     => astra_get_css_value( $h6_font_family, 'font' ),
					'text-transform'  => esc_attr( $h6_text_transform ),
					'line-height'     => esc_attr( $h6_line_height ),
					'text-decoration' => esc_attr( $h6_text_decoration ),
					'letter-spacing'  => esc_attr( $h6_letter_spacing ),
				);

				$h6_properties = array_merge( $h6_properties, $h6_font_properties );
			}

			$link_selector            = true === $update_customizer_strctural_defaults ? 'a' : 'a, .page-title';
			$article_space            = self::astra_4_6_0_compatibility() ? '2.5em' : '3em';
			$color_palette_reorganize = self::astra_4_8_9_compatibility();

			$css_output = array(

				':root'                                  => array(
					'--ast-post-nav-space'                 => 0, // Moved from inc/dynamic-css/single-post.php for the fix of post-navigation issue for the old users. @since 4.6.13
					'--ast-container-default-xlg-padding'  => true === $update_customizer_strctural_defaults ? $article_space : '6.67em',
					'--ast-container-default-lg-padding'   => true === $update_customizer_strctural_defaults ? $article_space : '5.67em',
					'--ast-container-default-slg-padding'  => true === $update_customizer_strctural_defaults ? '2em' : '4.34em',
					'--ast-container-default-md-padding'   => true === $update_customizer_strctural_defaults ? $article_space : '3.34em',
					'--ast-container-default-sm-padding'   => true === $update_customizer_strctural_defaults ? $article_space : '6.67em',
					'--ast-container-default-xs-padding'   => true === $update_customizer_strctural_defaults ? '2.4em' : '2.4em',
					'--ast-container-default-xxs-padding'  => true === $update_customizer_strctural_defaults ? '1.8em' : '1.4em',
					'--ast-code-block-background'          => true === self::astra_check_default_color_typo() ? '#ECEFF3' : '#EEEEEE',
					'--ast-comment-inputs-background'      => true === self::astra_check_default_color_typo() ? '#F9FAFB' : '#FAFAFA',
					'--ast-normal-container-width'         => $site_content_width . 'px',
					'--ast-narrow-container-width'         => $narrow_container_max_width . 'px',
					'--ast-blog-title-font-weight'         => self::astra_4_6_0_compatibility() ? '600' : 'normal',
					'--ast-blog-meta-weight'               => self::astra_4_6_0_compatibility() ? '600' : 'inherit',
					'--ast-global-color-primary'           => $color_palette_reorganize ? 'var(--ast-global-color-4)' : 'var(--ast-global-color-5)',
					'--ast-global-color-secondary'         => $color_palette_reorganize ? 'var(--ast-global-color-5)' : 'var(--ast-global-color-4)',
					'--ast-global-color-alternate-background' => $color_palette_reorganize ? 'var(--ast-global-color-6)' : 'var(--ast-global-color-7)',
					'--ast-global-color-subtle-background' => $color_palette_reorganize ? 'var(--ast-global-color-7)' : 'var(--ast-global-color-6)',
				),

				// HTML.
				'html'                                   => array(
					'font-size' => astra_get_font_css_value( (int) $body_font_size_desktop * 6.25, '%' ),
				),
				$link_selector                           => array(
					'color' => esc_attr( $link_color ),
				),
				'a:hover, a:focus'                       => array(
					'color' => esc_attr( $link_hover_color ),
				),
				'body, button, input, select, textarea, .ast-button, .ast-custom-button' => array(
					'font-family'     => astra_get_font_family( $body_font_family ),
					'font-weight'     => esc_attr( $body_font_weight ),
					'font-size'       => astra_responsive_font( $body_font_size, 'desktop' ),
					'line-height'     => ! empty( $body_line_height ) ? 'var(--ast-body-line-height, ' . esc_attr( $body_line_height ) . ')' : '',
					'text-transform'  => esc_attr( $body_text_transform ),
					'text-decoration' => esc_attr( $body_text_decoration ),
					'letter-spacing'  => esc_attr( $body_letter_spacing ),
				),
				'blockquote'                             => array(
					'border-color' => astra_hex_to_rgba( $link_color, 0.15 ),
				),
				'p, .entry-content p'                    => array(
					'margin-bottom' => astra_get_css_value( $para_margin_bottom, 'em' ),
				),

				// Conditionally select the css selectors with or without achors.
				self::conditional_headings_css_selectors(
					'h1, .entry-content h1, .entry-content h1 a, h2, .entry-content h2, .entry-content h2 a, h3, .entry-content h3, .entry-content h3 a, h4, .entry-content h4, .entry-content h4 a, h5, .entry-content h5, .entry-content h5 a, h6, .entry-content h6, .entry-content h6 a, .site-title, .site-title a',
					'h1, .entry-content h1, h2, .entry-content h2, h3, .entry-content h3, h4, .entry-content h4, h5, .entry-content h5, h6, .entry-content h6, .site-title, .site-title a'
				)                                        => astra_get_font_array_css( astra_get_option( 'headings-font-family' ), astra_get_option( 'headings-font-weight' ), array(), 'headings-font-extras' ),

				'.ast-site-identity .site-title a'       => array(
					'color' => esc_attr( $title_color ),
				),
				'.ast-site-identity .site-title a:hover' => array(
					'color' => esc_attr( $title_hover_color ),
				),
				'.ast-site-identity .site-description'   => array(
					'color' => esc_attr( $tagline_color ),
				),
				'.site-title'                            => array(
					'font-size' => astra_responsive_font( $site_title_font_size, 'desktop' ),
					'display'   => esc_attr( $desktop_title_visibility ),
				),
				is_customize_preview() ? '.ast-sg-logo-section .custom-logo-link img, header .custom-logo-link img' : 'header .custom-logo-link img' => array(
					'max-width' => astra_get_css_value( $header_logo_width['desktop'], 'px' ),
					'width'     => astra_get_css_value( $header_logo_width['desktop'], 'px' ),
				),
				'.astra-logo-svg'                        => array(
					'width' => astra_get_css_value( $header_logo_width['desktop'], 'px' ),
				),

				'.site-header .site-description'         => array(
					'font-size' => astra_responsive_font( $site_tagline_font_size, 'desktop' ),
					'display'   => esc_attr( $desktop_tagline_visibility ),
				),
				'.entry-title'                           => array(
					'font-size' => astra_responsive_font( $archive_post_title_font_size, 'desktop' ),
				),
				'.ast-blog-single-element.ast-taxonomy-container a' => array(
					'font-size' => astra_responsive_font( $archive_post_tax_font_size, 'desktop' ),
				),
				'.ast-blog-meta-container'               => array(
					'font-size' => astra_responsive_font( $archive_post_meta_font_size, 'desktop' ),
				),
				'blog-layout-5' === $blog_layout ? '.archive .ast-article-post, .blog .ast-article-post, .archive .ast-article-post:hover, .blog .ast-article-post:hover' : '.archive .ast-article-post .ast-article-inner, .blog .ast-article-post .ast-article-inner, .archive .ast-article-post .ast-article-inner:hover, .blog .ast-article-post .ast-article-inner:hover' => array(
					'border-top-left-radius'     => astra_responsive_spacing( $archive_cards_radius, 'top', 'desktop' ),
					'border-top-right-radius'    => astra_responsive_spacing( $archive_cards_radius, 'right', 'desktop' ),
					'border-bottom-right-radius' => astra_responsive_spacing( $archive_cards_radius, 'bottom', 'desktop' ),
					'border-bottom-left-radius'  => astra_responsive_spacing( $archive_cards_radius, 'left', 'desktop' ),
					'overflow'                   => 'hidden',
				),

				// Conditionally select the css selectors with or without anchors.
				self::conditional_headings_css_selectors(
					'h1, .entry-content h1, .entry-content h1 a',
					'h1, .entry-content h1'
				)                                        => array(
					'font-size'       => astra_responsive_font( $heading_h1_font_size, 'desktop' ),
					'font-weight'     => astra_get_css_value( $h1_font_weight, 'font' ),
					'font-family'     => astra_get_css_value( $h1_font_family, 'font' ),
					'line-height'     => esc_attr( $h1_line_height ),
					'text-transform'  => esc_attr( $h1_text_transform ),
					'text-decoration' => esc_attr( $h1_text_decoration ),
					'letter-spacing'  => esc_attr( $h1_letter_spacing ),
				),

				// Conditionally select the css selectors with or without achors.
				self::conditional_headings_css_selectors(
					'h2, .entry-content h2, .entry-content h2 a',
					'h2, .entry-content h2'
				)                                        => array(
					'font-size'       => astra_responsive_font( $heading_h2_font_size, 'desktop' ),
					'font-weight'     => astra_get_css_value( $h2_font_weight, 'font' ),
					'font-family'     => astra_get_css_value( $h2_font_family, 'font' ),
					'line-height'     => esc_attr( $h2_line_height ),
					'text-transform'  => esc_attr( $h2_text_transform ),
					'text-decoration' => esc_attr( $h2_text_decoration ),
					'letter-spacing'  => esc_attr( $h2_letter_spacing ),
				),

				// Conditionally select the css selectors with or without achors.
				self::conditional_headings_css_selectors(
					'h3, .entry-content h3, .entry-content h3 a',
					'h3, .entry-content h3'
				)                                        => array(
					'font-size'       => astra_responsive_font( $heading_h3_font_size, 'desktop' ),
					'font-weight'     => astra_get_css_value( $h3_font_weight, 'font' ),
					'font-family'     => astra_get_css_value( $h3_font_family, 'font' ),
					'line-height'     => esc_attr( $h3_line_height ),
					'text-transform'  => esc_attr( $h3_text_transform ),
					'text-decoration' => esc_attr( $h3_text_decoration ),
					'letter-spacing'  => esc_attr( $h3_letter_spacing ),
				),

				// Conditionally select the css selectors with or without achors.
				self::conditional_headings_css_selectors(
					'h4, .entry-content h4, .entry-content h4 a',
					'h4, .entry-content h4'
				)                                        => $h4_properties,

				// Conditionally select the css selectors with or without achors.
				self::conditional_headings_css_selectors(
					'h5, .entry-content h5, .entry-content h5 a',
					'h5, .entry-content h5'
				)                                        => $h5_properties,

				// Conditionally select the css selectors with or without achors.
				self::conditional_headings_css_selectors(
					'h6, .entry-content h6, .entry-content h6 a',
					'h6, .entry-content h6'
				)                                        => $h6_properties,

				// Global CSS.
				'::selection'                            => array(
					'background-color' => esc_attr( $theme_color ),
					'color'            => esc_attr( $selection_text_color ),
				),

				// Conditionally select selectors with annchors or withour anchors for text color.
				self::conditional_headings_css_selectors(
					'body, h1, .entry-title a, .entry-content h1, .entry-content h1 a, h2, .entry-content h2, .entry-content h2 a, h3, .entry-content h3, .entry-content h3 a, h4, .entry-content h4, .entry-content h4 a, h5, .entry-content h5, .entry-content h5 a, h6, .entry-content h6, .entry-content h6 a',
					'body, h1, .entry-title a, .entry-content h1, h2, .entry-content h2, h3, .entry-content h3, h4, .entry-content h4, h5, .entry-content h5, h6, .entry-content h6'
				)                                        => array(
					'color' => esc_attr( $text_color ),
				),

				// Typography.
				'.tagcloud a:hover, .tagcloud a:focus, .tagcloud a.current-item' => array(
					'color'            => astra_get_foreground_color( $link_color ),
					'border-color'     => esc_attr( $link_color ),
					'background-color' => esc_attr( $link_color ),
				),

				// Input tags.
				'input:focus, input[type="text"]:focus, input[type="email"]:focus, input[type="url"]:focus, input[type="password"]:focus, input[type="reset"]:focus, input[type="search"]:focus, textarea:focus' => array(
					'border-color' => esc_attr( $link_color ),
				),
				'input[type="radio"]:checked, input[type=reset], input[type="checkbox"]:checked, input[type="checkbox"]:hover:checked, input[type="checkbox"]:focus:checked, input[type=range]::-webkit-slider-thumb' => array(
					'border-color'     => esc_attr( $link_color ),
					'background-color' => esc_attr( $link_color ),
					'box-shadow'       => 'none',
				),

				// Small Footer.
				'.site-footer a:hover + .post-count, .site-footer a:focus + .post-count' => array(
					'background'   => esc_attr( $link_color ),
					'border-color' => esc_attr( $link_color ),
				),

				'.single .nav-links .nav-previous, .single .nav-links .nav-next' => array(
					'color' => esc_attr( $link_color ),
				),

				// Blog Post Meta Typography.
				'.entry-meta, .entry-meta *'             => array(
					'line-height' => '1.45',
					'color'       => esc_attr( $link_color ),
					'font-weight' => self::astra_4_6_0_compatibility() && ! defined( 'ASTRA_EXT_VER' ) ? '600' : '',
				),
				'.entry-meta a:not(.ast-button):hover, .entry-meta a:not(.ast-button):hover *, .entry-meta a:not(.ast-button):focus, .entry-meta a:not(.ast-button):focus *, .page-links > .page-link, .page-links .page-link:hover, .post-navigation a:hover' => array(
					'color' => esc_attr( $link_hover_color ),
				),

				// Blockquote Text Color.
				'blockquote'                             => array(
					'color' => astra_adjust_brightness( $text_color, 75, 'darken' ),
				),

				'#cat option, .secondary .calendar_wrap thead a, .secondary .calendar_wrap thead a:visited' => array(
					'color' => esc_attr( $link_color ),
				),
				'.secondary .calendar_wrap #today, .ast-progress-val span' => array(
					'background' => esc_attr( $link_color ),
				),
				'.secondary a:hover + .post-count, .secondary a:focus + .post-count' => array(
					'background'   => esc_attr( $link_color ),
					'border-color' => esc_attr( $link_color ),
				),
				'.calendar_wrap #today > a'              => array(
					'color' => astra_get_foreground_color( $link_color ),
				),

				// Pagination.
				'.page-links .page-link, .single .post-navigation a' => array(
					'color' => esc_attr( self::astra_4_6_0_compatibility() ? $text_color : $link_color ),
				),

				// Menu Toggle Border Radius.
				'.ast-header-break-point .main-header-bar .ast-button-wrap .menu-toggle' => array(
					'border-radius' => '' !== $mobile_header_toggle_btn_border_radius ? esc_attr( $mobile_header_toggle_btn_border_radius ) . 'px' : '',
				),

				// Search.
				'.ast-search-menu-icon .search-form button.search-submit' => array(
					'padding' => '0 4px',
				),
				'.ast-search-menu-icon form.search-form' => array(
					'padding-right' => '0',
				),
				'.ast-search-menu-icon.slide-search input.search-field' => array(
					'width' => Astra_Builder_Helper::$is_header_footer_builder_active ? '0' : '',
				),
				'.ast-header-search .ast-search-menu-icon.ast-dropdown-active .search-form, .ast-header-search .ast-search-menu-icon.ast-dropdown-active .search-field:focus' => array(
					'transition'   => 'all 0.2s',
					'border-color' => astra_get_option( 'site-accessibility-highlight-input-color' ),
				),
				'.search-form input.search-field:focus'  => array(
					'outline' => 'none', // Making highlight by border that's why making outline none.
				),
			);

			if ( 'blog-layout-6' === $blog_layout ) {
				$css_output['.ast-blog-layout-6-grid .ast-article-inner .post-thumb::after'] = array(
					'content'    => '""',
					'background' => $archive_cards_overlay,
					'position'   => 'absolute',
					'top'        => '0',
					'right'      => '0',
					'bottom'     => '0',
					'left'       => '0',
				);
			}

			if ( self::astra_4_4_0_compatibility() ) {
				$css_output['.ast-search-menu-icon .search-form button.search-submit:focus, .ast-theme-transparent-header .ast-header-search .ast-dropdown-active .ast-icon, .ast-theme-transparent-header .ast-inline-search .search-field:focus .ast-icon'] = array(
					'color' => 'var(--ast-global-color-1)',
				);
				$css_output['.ast-header-search .slide-search .search-form'] = array(
					'border' => '2px solid var(--ast-global-color-0)',
				);

				// Reduced specificity so that it does not override customizer background color option.
				$css_output['.ast-header-search .slide-search .search-field'] = array(
					'background-color' => '#fff', // Referred by main.css.
				);
			}

			/*  This is a fix issue with logo height for normal and transparent logo so that they are the same */
			if ( ! apply_filters( 'astra_site_svg_logo_equal_height', astra_get_option( 'astra-site-svg-logo-equal-height', true ) ) ) {
				$css_output['.astra-logo-svg:not(.sticky-custom-logo .astra-logo-svg, .transparent-custom-logo .astra-logo-svg, .advanced-header-logo .astra-logo-svg)'] = array(
					'height' => astra_get_css_value( ! empty( $header_logo_width['desktop-svg-height'] ) && ! is_customize_preview() ? $header_logo_width['desktop-svg-height'] : '', 'px' ),
				);
			}

			/* Compatibility with cost calculator plugin range slider*/
			if ( defined( 'CALC_VERSION' ) ) {
				$css_output['.calc-range-slider input::-webkit-slider-runnable-track'] = array(
					'height'        => 'auto',
					'box-shadow'    => 'none',
					'background'    => 'transparent',
					'border-radius' => 'none',
					'border'        => 'none',
				);

				$css_output['.calc-range-slider input::-moz-range-track'] = array(
					'height'        => 'auto',
					'box-shadow'    => 'none',
					'background'    => 'transparent',
					'border-radius' => 'none',
					'border'        => 'none',
				);

				$css_output['.calc-range-slider input::-webkit-slider-thumb'] = array(
					'margin-top' => 'auto',
				);
			}

			if ( astra_has_global_color_format_support() ) {
				$css_output['.ast-archive-title'] = array(
					'color' => esc_attr( $heading_base_color ),
				);
			}

			if ( ! $block_editor_legacy_setup && false === $update_customizer_strctural_defaults ) {
				$css_output['.wp-block-latest-posts > li > a'] = array(
					'color' => esc_attr( $heading_base_color ),
				);
			}

			// Construct the selector string conditionally
			$selectors = '.widget-title';
			if ( ! self::astra_heading_inside_widget_font_size_comp() ) {
				$selectors .= ', .widget .wp-block-heading';
			}

			// Default widget title color.
			$css_output[ $selectors ] = array(
				'font-size' => astra_get_font_css_value( (int) $body_font_size_desktop * 1.428571429 ),
				'color'     => astra_has_global_color_format_support() ? esc_attr( $heading_base_color ) : esc_attr( $text_color ),
			);

			// Remove this condition after 2-3 updates of add-on.
			if ( defined( 'ASTRA_EXT_VER' ) && version_compare( ASTRA_EXT_VER, '3.0.1', '>=' ) ) {
				$css_output['.single .ast-author-details .author-title'] = array(
					'color' => esc_attr( $link_hover_color ),
				);
			}

			if ( 'no-sidebar' !== astra_page_layout() ) {
				$css_output['#secondary, #secondary button, #secondary input, #secondary select, #secondary textarea'] = array(
					'font-size' => astra_responsive_font( $body_font_size, 'desktop' ),
				);
			}

			// Add underline to every link in content area.
			$content_links_underline = astra_get_option( 'underline-content-links' );

			if ( $content_links_underline ) {
				$text_decoration_selector                = class_exists( 'WooCommerce' ) ? '.ast-single-post .entry-content a, .ast-comment-content a:not(.ast-comment-edit-reply-wrap a), .woocommerce-js .woocommerce-product-details__short-description a' : '.ast-single-post .entry-content a, .ast-comment-content a:not(.ast-comment-edit-reply-wrap a)';
				$css_output[ $text_decoration_selector ] = array(
					'text-decoration' => 'underline',
				);

				$reset_underline_from_anchors = self::unset_builder_elements_underline();
				$buttons_exclusion_selectors  = $button_styling_improved ? '.ast-single-post .elementor-button-wrapper .elementor-button, .ast-single-post .entry-content .uagb-tab a, .ast-single-post .entry-content .uagb-ifb-cta a, .ast-single-post .entry-content .uabb-module-content a, .ast-single-post .entry-content .uagb-post-grid a, .ast-single-post .entry-content .uagb-timeline a, .ast-single-post .entry-content .uagb-toc__wrap a, .ast-single-post .entry-content .uagb-taxomony-box a, .ast-single-post .entry-content .woocommerce a, .entry-content .wp-block-latest-posts > li > a, .ast-single-post .entry-content .wp-block-file__button, li.ast-post-filter-single, .ast-single-post .ast-comment-content .comment-reply-link, .ast-single-post .ast-comment-content .comment-edit-link' : '.ast-single-post .wp-block-button .wp-block-button__link, .ast-single-post .elementor-button-wrapper .elementor-button, .ast-single-post .entry-content .uagb-tab a, .ast-single-post .entry-content .uagb-ifb-cta a, .ast-single-post .entry-content .wp-block-uagb-buttons a, .ast-single-post .entry-content .uabb-module-content a, .ast-single-post .entry-content .uagb-post-grid a, .ast-single-post .entry-content .uagb-timeline a, .ast-single-post .entry-content .uagb-toc__wrap a, .ast-single-post .entry-content .uagb-taxomony-box a, .ast-single-post .entry-content .woocommerce a, .entry-content .wp-block-latest-posts > li > a, .ast-single-post .entry-content .wp-block-file__button, li.ast-post-filter-single, .ast-single-post .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link, .ast-single-post .ast-comment-content .comment-reply-link, .ast-single-post .ast-comment-content .comment-edit-link';

				$excluding_anchor_selectors = $reset_underline_from_anchors ? $buttons_exclusion_selectors : '.ast-single-post .wp-block-button .wp-block-button__link, .ast-single-post .elementor-button-wrapper .elementor-button, li.ast-post-filter-single, .ast-single-post .wp-block-button.is-style-outline .wp-block-button__link, div.ast-custom-button, .ast-single-post .ast-comment-content .comment-reply-link, .ast-single-post .ast-comment-content .comment-edit-link';

				if ( class_exists( 'WooCommerce' ) ) {
					$excluding_anchor_selectors .= ', .entry-content [CLASS*="wc-block"] .wc-block-components-button, .entry-content [CLASS*="wc-block"] .wc-block-components-totals-coupon-link, .entry-content [CLASS*="wc-block"] .wc-block-components-product-name';
				}

				$excluding_anchor_selectors = apply_filters( 'astra_remove_underline_anchor_links', $excluding_anchor_selectors );

				$css_output[ $excluding_anchor_selectors ] = array(
					'text-decoration' => 'none',
				);
			}

			// Accessibility options.
			$enable_site_accessibility        = astra_get_option( 'site-accessibility-toggle', false );
			$html_selectors_focus_visible     = '.ast-search-menu-icon.slide-search a:focus-visible:focus-visible, .astra-search-icon:focus-visible, #close:focus-visible, a:focus-visible, .ast-menu-toggle:focus-visible, .site .skip-link:focus-visible, .wp-block-loginout input:focus-visible, .wp-block-search.wp-block-search__button-inside .wp-block-search__inside-wrapper, .ast-header-navigation-arrow:focus-visible, .woocommerce .wc-proceed-to-checkout > .checkout-button:focus-visible, .woocommerce .woocommerce-MyAccount-navigation ul li a:focus-visible, .ast-orders-table__row .ast-orders-table__cell:focus-visible, .woocommerce .woocommerce-order-details .order-again > .button:focus-visible, .woocommerce .woocommerce-message a.button.wc-forward:focus-visible, .woocommerce #minus_qty:focus-visible, .woocommerce #plus_qty:focus-visible, a#ast-apply-coupon:focus-visible, .woocommerce .woocommerce-info a:focus-visible, .woocommerce .astra-shop-summary-wrap a:focus-visible, .woocommerce a.wc-forward:focus-visible, #ast-apply-coupon:focus-visible, .woocommerce-js .woocommerce-mini-cart-item a.remove:focus-visible, #close:focus-visible, .button.search-submit:focus-visible, #search_submit:focus, .normal-search:focus-visible, .ast-header-account-wrap:focus-visible, .woocommerce .ast-on-card-button.ast-quick-view-trigger:focus';
			$html_selectors_focus_only_inputs = 'input:focus, input[type="text"]:focus, input[type="email"]:focus, input[type="url"]:focus, input[type="password"]:focus, input[type="reset"]:focus, input[type="search"]:focus, input[type="number"]:focus, textarea:focus, .wp-block-search__input:focus, [data-section="section-header-mobile-trigger"] .ast-button-wrap .ast-mobile-menu-trigger-minimal:focus, .ast-mobile-popup-drawer.active .menu-toggle-close:focus, .woocommerce-ordering select.orderby:focus, #ast-scroll-top:focus, #coupon_code:focus, .woocommerce-page #comment:focus, .woocommerce #reviews #respond input#submit:focus, .woocommerce a.add_to_cart_button:focus, .woocommerce .button.single_add_to_cart_button:focus, .woocommerce .woocommerce-cart-form button:focus, .woocommerce .woocommerce-cart-form__cart-item .quantity .qty:focus, .woocommerce .woocommerce-billing-fields .woocommerce-billing-fields__field-wrapper .woocommerce-input-wrapper > .input-text:focus, .woocommerce #order_comments:focus, .woocommerce #place_order:focus, .woocommerce .woocommerce-address-fields .woocommerce-address-fields__field-wrapper .woocommerce-input-wrapper > .input-text:focus, .woocommerce .woocommerce-MyAccount-content form button:focus, .woocommerce .woocommerce-MyAccount-content .woocommerce-EditAccountForm .woocommerce-form-row .woocommerce-Input.input-text:focus, .woocommerce .ast-woocommerce-container .woocommerce-pagination ul.page-numbers li a:focus, body #content .woocommerce form .form-row .select2-container--default .select2-selection--single:focus, #ast-coupon-code:focus, .woocommerce.woocommerce-js .quantity input[type=number]:focus, .woocommerce-js .woocommerce-mini-cart-item .quantity input[type=number]:focus, .woocommerce p#ast-coupon-trigger:focus';

			if ( $enable_site_accessibility ) {
				$outline_style = astra_get_option( 'site-accessibility-highlight-type' );
				$outline_color = astra_get_option( 'site-accessibility-highlight-color' );

				$outline_input_style = astra_get_option( 'site-accessibility-highlight-input-type' );

				// If the outline input style is set to 'disable', change it to 'unset' css value.
				if ( $outline_input_style === 'disable' ) {
					$outline_input_style = 'unset';
				}

				$outline_input_color = astra_get_option( 'site-accessibility-highlight-input-color' );

				$css_output[ $html_selectors_focus_visible ] = array(
					'outline-style' => $outline_style ? $outline_style : 'inherit',
					'outline-color' => $outline_color ? $outline_color : 'inherit',
					'outline-width' => 'thin',
					'border-color'  => astra_get_option( 'site-accessibility-highlight-input-color' ),
				);

				if ( 'unset' !== $outline_input_style ) {
					$css_output[ $html_selectors_focus_only_inputs ] = array(
						'border-style'  => $outline_input_style ? $outline_input_style : 'inherit',
						'border-color'  => $outline_input_color ? $outline_input_color : 'inherit',
						'border-width'  => 'thin',
						'outline-color' => astra_get_option( 'site-accessibility-highlight-input-color' ),
					);
				} else {
					$css_output[ $html_selectors_focus_only_inputs ] = array(
						'border-style'  => $outline_style ? $outline_style : 'inherit',
						'border-color'  => $outline_color ? $outline_color : 'inherit',
						'border-width'  => 'thin',
						'outline-color' => astra_get_option( 'site-accessibility-highlight-input-color' ),
					);
				}

				$css_output['input'] = array(
					'outline' => 'none',
				);

				if ( class_exists( 'WooCommerce' ) ) {
					$css_output['.woocommerce-js input[type=text]:focus, .woocommerce-js input[type=email]:focus, .woocommerce-js textarea:focus, input[type=number]:focus, .comments-area textarea#comment:focus, .comments-area textarea#comment:active, .comments-area .ast-comment-formwrap input[type="text"]:focus, .comments-area .ast-comment-formwrap input[type="text"]:active'] = array(
						'outline-style' => $outline_input_style ? $outline_input_style : 'inherit',
						'outline-color' => $outline_input_color ? $outline_input_color : 'inherit',
						'outline-width' => 'thin',
						'border-color'  => astra_get_option( 'site-accessibility-highlight-input-color' ),
					);
				}
			}

			if ( false === $enable_site_accessibility ) {
				$css_output[ $html_selectors_focus_only_inputs . ', ' . $html_selectors_focus_visible ] = array(
					'outline-style' => 'none',
				);

				$css_output['.ast-header-search .ast-search-menu-icon.ast-dropdown-active .search-form, .ast-header-search .ast-search-menu-icon.ast-dropdown-active .search-field:focus'] = array(
					'border-color' => 'var(--ast-global-color-0)',
				);
			}

			if ( self::astra_4_4_0_compatibility() ) {
				$css_output['.ast-search-menu-icon .search-form button.search-submit:focus, .ast-theme-transparent-header .ast-header-search .ast-dropdown-active .ast-icon, .ast-theme-transparent-header .ast-inline-search .search-field:focus .ast-icon'] = array(
					'color' => 'var(--ast-global-color-1)',
				);

				if ( false === $enable_site_accessibility ) {
					$css_output['.ast-header-search .slide-search .search-form'] = array(
						'border' => '2px solid var(--ast-global-color-0)',
					);
				}

				// Reduced specificity so that it does not override customizer background color option.
				$css_output['.ast-header-search .slide-search .search-field'] = array(
					'background-color' => '#fff', // Referred by main.css.
				);
			}

			/**
			 * Loaded the following CSS conditionally because of following scenarios -
			 *
			 * 1. $text_color is applying to menu-link anchors as well though $link_color should apply over there.
			 * 2. $link_color applying in old header as hover color for menu-anchors.
			 *
			 * @since 3.0.0
			 */
			if ( false === Astra_Builder_Helper::$is_header_footer_builder_active ) {
				// Header - Main Header CSS.
				$css_output['.main-header-menu .menu-link, .ast-header-custom-item a'] = array(
					'color' => esc_attr( $text_color ),
				);
				// Main - Menu Items.
				$css_output['.main-header-menu .menu-item:hover > .menu-link, .main-header-menu .menu-item:hover > .ast-menu-toggle, .main-header-menu .ast-masthead-custom-menu-items a:hover, .main-header-menu .menu-item.focus > .menu-link, .main-header-menu .menu-item.focus > .ast-menu-toggle, .main-header-menu .current-menu-item > .menu-link, .main-header-menu .current-menu-ancestor > .menu-link, .main-header-menu .current-menu-item > .ast-menu-toggle, .main-header-menu .current-menu-ancestor > .ast-menu-toggle'] = array(
					'color' => esc_attr( $link_color ),
				);
				$css_output['.header-main-layout-3 .ast-main-header-bar-alignment'] = array(
					'margin-right' => 'auto',
				);
				if ( $is_site_rtl ) {
					$css_output['.header-main-layout-2 .site-header-section-left .ast-site-identity'] = array(
						'text-align' => 'right',
					);
				} else {
					$css_output['.header-main-layout-2 .site-header-section-left .ast-site-identity'] = array(
						'text-align' => 'left',
					);
				}
			}

			$page_header_logo = defined( 'ASTRA_EXT_VER' ) && Astra_Ext_Extension::is_active( 'advanced-headers' ) && Astra_Ext_Advanced_Headers_Loader::astra_advanced_headers_design_option( 'logo-url' ) ? true : false;

			if ( astra_get_option( 'logo-title-inline' ) || is_customize_preview() ) {
				$css_output['.ast-logo-title-inline .site-logo-img'] = array(
					'padding-right' => '1em',
				);
			}

			if ( get_theme_mod( 'custom_logo' )
				|| astra_get_option( 'transparent-header-logo' )
				|| astra_get_option( 'sticky-header-logo' )
				|| $page_header_logo
				|| is_customize_preview() ) {

				$css_output['.site-logo-img img'] = array(
					' transition' => 'all 0.2s linear',
				);

				if ( astra_get_option( 'header-logo-color' ) ) {
					$css_output['.site-logo-img img'] = array(
						'filter'      => 'url(#ast-img-color-filter)',
						' transition' => 'all 0.2s linear',
					);
				}

				if ( astra_get_option( 'transparent-header-logo-color' ) ) {
					$css_output['.site-logo-img .transparent-custom-logo img, .ast-theme-transparent-header .site-logo-img img'] = array(
						'filter' => 'url(#ast-img-color-filter-2)',
					);
				}
			}

			$parse_css = '';
			if ( $block_editor_legacy_setup ) {
				$parse_css .= '
					.ast-no-sidebar .entry-content .alignfull {
						margin-left: calc( -50vw + 50%);
						margin-right: calc( -50vw + 50%);
						max-width: 100vw;
						width: 100vw;
					}
					.ast-no-sidebar .entry-content .alignwide {
						margin-left: calc(-41vw + 50%);
						margin-right: calc(-41vw + 50%);
						max-width: unset;
						width: unset;
					}
					.ast-no-sidebar .entry-content .alignfull .alignfull, .ast-no-sidebar .entry-content .alignfull .alignwide, .ast-no-sidebar .entry-content .alignwide .alignfull, .ast-no-sidebar .entry-content .alignwide .alignwide,
					.ast-no-sidebar .entry-content .wp-block-column .alignfull, .ast-no-sidebar .entry-content .wp-block-column .alignwide{
						width: 100%;
						margin-left: auto;
						margin-right: auto;
					}
					.wp-block-gallery,
						.blocks-gallery-grid {
						margin: 0;
					}
					.wp-block-separator {
						max-width: 100px;
					}
					.wp-block-separator.is-style-wide, .wp-block-separator.is-style-dots {
						max-width: none;
					}
					.entry-content .has-2-columns .wp-block-column:first-child {
						padding-right: 10px;
					}
					.entry-content .has-2-columns .wp-block-column:last-child {
						padding-left: 10px;
					}
					@media (max-width: 782px) {
						.entry-content .wp-block-columns .wp-block-column {
							flex-basis: 100%;
						}
						.entry-content .has-2-columns .wp-block-column:first-child {
							padding-right: 0;
						}
						.entry-content .has-2-columns .wp-block-column:last-child {
							padding-left: 0;
						}
					}
					body .entry-content .wp-block-latest-posts {
						margin-left: 0;
					}
					body .entry-content .wp-block-latest-posts li {
						list-style: none;
					}
					.ast-no-sidebar .ast-container .entry-content .wp-block-latest-posts {
						margin-left: 0;
					}
					.ast-header-break-point .entry-content .alignwide {
						margin-left: auto;
						margin-right: auto;
					}
					.entry-content .blocks-gallery-item img {
						margin-bottom: auto;
					}
					.wp-block-pullquote {
						border-top: 4px solid #555d66;
						border-bottom: 4px solid #555d66;
						color: #40464d;
					}
				';
			}

			/* Parse CSS from array() */
			$parse_css .= astra_parse_css( $css_output );

			if ( defined( 'BORLABS_COOKIE_VERSION' ) ) {
				$oembed_wrapper = array(
					'body .ast-oembed-container > *' => array(
						'position' => 'absolute',
						'top'      => '0',
						'width'    => '100%',
						'height'   => '100%',
						( $is_site_rtl ? 'right' : 'left' ) => '0',
					),
				);
			} else {
				$oembed_wrapper = array(
					'body .ast-oembed-container *' => array(
						'position' => 'absolute',
						'top'      => '0',
						'width'    => '100%',
						'height'   => '100%',
						( $is_site_rtl ? 'right' : 'left' ) => '0',
					),
				);
			}

			/**
			 * Special case handling for pocket casts embed url.
			 *
			 * @since 4.6.4
			 */
			$oembed_wrapper['body .wp-block-embed-pocket-casts .ast-oembed-container *'] = array(
				'position' => 'unset',
			);

			$parse_css .= astra_parse_css( $oembed_wrapper );

			if ( ! Astra_Builder_Helper::$is_header_footer_builder_active ) {

				$old_header_mobile_toggle = array(
					// toggle style
					// Menu Toggle Minimal.
					'.ast-header-break-point .ast-mobile-menu-buttons-minimal.menu-toggle' => array(
						'background' => 'transparent',
						'color'      => esc_attr( $mobile_header_toggle_btn_style_color ),
					),

					// Menu Toggle Outline.
					'.ast-header-break-point .ast-mobile-menu-buttons-outline.menu-toggle' => array(
						'background' => 'transparent',
						'border'     => '1px solid ' . $mobile_header_toggle_btn_style_color,
						'color'      => esc_attr( $mobile_header_toggle_btn_style_color ),
					),

					// Menu Toggle Fill.
					'.ast-header-break-point .ast-mobile-menu-buttons-fill.menu-toggle' => array(
						'background' => esc_attr( $mobile_header_toggle_btn_style_color ),
						'color'      => $menu_btn_color,
					),
				);

				$parse_css .= astra_parse_css( $old_header_mobile_toggle );
			}

			$parse_css .= astra_container_layout_css();

			if ( 'no-sidebar' !== astra_page_layout() ) {
				$parse_css .= Astra_Enqueue_Scripts::trim_css( self::load_sidebar_static_css() );
				$parse_css .= self::astra_sticky_sidebar_css();
			}

			if ( self::astra_4_6_0_compatibility() ) {

				// Forms default styling improvements.
				$parse_css .= self::astra_default_forms_styling_dynamic_css();
			}

			if ( true === Astra_Builder_Helper::$is_header_footer_builder_active ) {

				$parse_css .= astra_parse_css(
					array(
						'#ast-desktop-header' => array(
							'display' => 'none',
						),
					),
					'',
					number_format( absint( astra_get_tablet_breakpoint() ) + 0.9, 1, '.', '' )
				);

				$parse_css .= astra_parse_css(
					array(
						'#ast-mobile-header' => array(
							'display' => 'none',
						),
					),
					astra_get_tablet_breakpoint( '', 1 )
				);
			}

			// Comments CSS.
			if ( ! Astra_Builder_Helper::apply_flex_based_css() ) {
				require_once ASTRA_THEME_DIR . 'inc/dynamic-css/comments.php'; // PHPCS:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound
			} else {
				require_once ASTRA_THEME_DIR . 'inc/dynamic-css/comments-flex.php'; // PHPCS:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound
			}

			// Single post improvement.
			require_once ASTRA_THEME_DIR . 'inc/dynamic-css/single-post.php'; // PHPCS:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound

			$live_search_enabled = astra_get_option( 'live-search', false );
			if ( ( true === Astra_Builder_Helper::$is_header_footer_builder_active && Astra_Builder_Helper::is_component_loaded( 'search', 'header' ) && $live_search_enabled ) || ( is_search() && true === astra_get_option( 'ast-search-live-search' ) ) ) {
				// Live search CSS.
				require_once ASTRA_THEME_DIR . 'inc/dynamic-css/live-search.php'; // PHPCS:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound
			}

			if ( Astra_Builder_Helper::is_component_loaded( 'woo-cart', 'header' ) || Astra_Builder_Helper::is_component_loaded( 'edd-cart', 'header' ) ) {
				$parse_css .= Astra_Enqueue_Scripts::trim_css( self::load_cart_static_css() );

				$parse_css .= astra_parse_css(
					array(
						'.astra-cart-drawer.active' => array(
							'width' => '80%',
						),
					),
					'',
					astra_get_tablet_breakpoint()
				);

				$parse_css .= astra_parse_css(
					array(
						'.astra-cart-drawer.active' => array(
							'width' => '100%',
						),
					),
					'',
					astra_get_mobile_breakpoint()
				);
			}

			if ( ! Astra_Builder_Helper::$is_header_footer_builder_active ) {
				$footer_css_output = array(
					'.ast-small-footer'               => array(
						'color' => esc_attr( $footer_color ),
					),
					'.ast-small-footer > .ast-footer-overlay' => astra_get_background_obj( $footer_bg_obj ),

					'.ast-small-footer a'             => array(
						'color' => esc_attr( $footer_link_color ),
					),
					'.ast-small-footer a:hover'       => array(
						'color' => esc_attr( $footer_link_h_color ),
					),

					// Advanced Footer colors/fonts.
					'.footer-adv .footer-adv-overlay' => array(
						'border-top-style' => 'solid',
						'border-top-width' => astra_get_css_value( $footer_adv_border_width, 'px' ),
						'border-top-color' => esc_attr( $footer_adv_border_color ),
					),
					'.footer-adv .widget-title,.footer-adv .widget-title a' => array(
						'color' => esc_attr( $footer_adv_widget_title_color ),
					),

					'.footer-adv'                     => array(
						'color' => esc_attr( $footer_adv_text_color ),
					),

					'.footer-adv a'                   => array(
						'color' => esc_attr( $footer_adv_link_color ),
					),

					'.footer-adv .tagcloud a:hover, .footer-adv .tagcloud a.current-item' => array(
						'border-color'     => esc_attr( $footer_adv_link_color ),
						'background-color' => esc_attr( $footer_adv_link_color ),
					),

					'.footer-adv a:hover, .footer-adv .no-widget-text a:hover, .footer-adv a:focus, .footer-adv .no-widget-text a:focus' => array(
						'color' => esc_attr( $footer_adv_link_h_color ),
					),

					'.footer-adv .calendar_wrap #today, .footer-adv a:hover + .post-count' => array(
						'background-color' => esc_attr( $footer_adv_link_color ),
					),

					'.footer-adv-overlay'             => astra_get_background_obj( $footer_adv_bg_obj ),

				);

				$parse_css .= astra_parse_css( $footer_css_output );
			}

			// Paginaiton CSS.
			require_once ASTRA_THEME_DIR . 'inc/dynamic-css/pagination.php'; // PHPCS:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound
			// Related Posts Dynamic CSS.

			// Navigation CSS.
			if ( ! self::astra_4_6_0_compatibility() && is_single() ) {
				/**
				 * CSS for post navigation design break for the old users.
				 */
				$parse_css .= Astra_Enqueue_Scripts::trim_css(
					'
				@media( max-width: 420px ) {
					.single .nav-links .nav-previous,
					.single .nav-links .nav-next {
						width: 100%;
						text-align: center;
					}
				}
				'
				);
			}

			// Navigation CSS.
			if ( is_single() && self::astra_4_6_0_compatibility() ) {
				require_once ASTRA_THEME_DIR . 'inc/dynamic-css/navigation.php'; // PHPCS:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound
			}

			/**
			 * Load dynamic css related to logo svg icons.
			 *
			 * @since 4.7.0
			 */
			require_once ASTRA_THEME_DIR . 'inc/dynamic-css/logo-svg-icons.php'; // PHPCS:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound

			/**
			 * Fix button aligment issue comming from the gutenberg plugin (v9.3.0).
			 */
			$gtn_plugin_button_center_alignment = array(
				'.wp-block-buttons.aligncenter' => array(
					'justify-content' => 'center',
				),
			);
			$parse_css                         .= astra_parse_css( $gtn_plugin_button_center_alignment );

			$ast_container_layout = astra_get_content_layout();
			$is_boxed             = astra_is_content_style_boxed();
			$is_sidebar_boxed     = astra_is_sidebar_style_boxed();
			$ast_container_layout = astra_apply_boxed_layouts( $ast_container_layout, $is_boxed, $is_sidebar_boxed );

			/**
			 * If transparent header is activated then it adds top 1.5em padding space, so this CSS will fix this issue.
			 * This issue is only visible on responsive devices.
			 *
			 * @since 2.6.0
			 */
			if ( self::gutenberg_core_blocks_css_comp() && is_singular() ) {
				$trans_header_responsive_top_space_css_fix = array(
					'.ast-theme-transparent-header #primary, .ast-theme-transparent-header #secondary' => array(
						'padding' => 0,
					),
				);

				/* Parse CSS from array() -> max-width: (tablet-breakpoint)px CSS */
				$parse_css .= astra_parse_css( $trans_header_responsive_top_space_css_fix, '', astra_get_tablet_breakpoint() );
			}

			/**
			 * Remove #primary padding on mobile devices which compromises deigned layout.
			 *
			 * @since 2.6.1
			 */
			if ( self::gutenberg_media_text_block_css_compat() && is_singular() ) {
				$remove_primary_padding_on_mobile_css = array(
					'.ast-plain-container.ast-no-sidebar #primary' => array(
						'padding' => 0,
					),
				);

				/* Parse CSS from array() -> max-width: (tablet-breakpoint)px CSS */
				$parse_css .= astra_parse_css( $remove_primary_padding_on_mobile_css, '', astra_get_tablet_breakpoint() );
			}

			/**
			 * Remove margin top when Primary Header is not set and No Sidebar is added in Full-Width / Contained Layout.
			 *
			 * @since 2.5.0
			 */
			if ( self::gtn_group_cover_css_comp() && is_singular() ) {
				$display_header = get_post_meta( get_the_ID(), 'ast-main-header-display', true );
				if ( 'disabled' === $display_header && apply_filters( 'astra_content_margin_full_width_contained', true ) || ( Astra_Ext_Transparent_Header_Markup::is_transparent_header() ) || ( self::gutenberg_core_blocks_css_comp() ) ) {
					$gtn_margin_top = array(
						'.ast-plain-container.ast-no-sidebar #primary' => array(
							'margin-top'    => '0',
							'margin-bottom' => '0',
						),
					);
					$parse_css     .= astra_parse_css( $gtn_margin_top );
				}
				/**
				 * Re-add margin top when FullWidth Contained layout is set.
				 *
				 * @since 3.8.3
				 */
				if ( true === $update_customizer_strctural_defaults ) {
					$display_title = get_post_meta( get_the_ID(), 'site-post-title', true );
					if ( 'disabled' !== $display_title && ! Astra_Ext_Transparent_Header_Markup::is_transparent_header() && apply_filters( 'astra_contained_layout_primary_spacing', true ) ) {
						$gtn_margin_top = array(
							'.ast-plain-container.ast-no-sidebar #primary' => array(
								'margin-top'    => '60px',
								'margin-bottom' => '60px',
							),
						);
						/* Parse CSS from array() -> min-width: (1200)px CSS */
						$parse_css .= astra_parse_css( $gtn_margin_top, '1200' );
					}
				}
			}

			$single_post_outside_spacing = astra_get_option( 'single-post-outside-spacing' );

			if ( ! self::astra_4_6_0_compatibility() ) {
				$single_post_outside_spacing_css_desktop = array(
					'.ast-separate-container.ast-single-post.ast-right-sidebar #primary, .ast-separate-container.ast-single-post.ast-left-sidebar #primary, .ast-separate-container.ast-single-post #primary, .ast-plain-container.ast-single-post #primary, .ast-narrow-container.ast-single-post #primary' => array(
						'margin-top'    => astra_responsive_spacing( $single_post_outside_spacing, 'top', 'desktop' ),
						'margin-bottom' => astra_responsive_spacing( $single_post_outside_spacing, 'bottom', 'desktop' ),
					),
					'.ast-left-sidebar.ast-single-post #primary, .ast-right-sidebar.ast-single-post #primary, .ast-separate-container.ast-single-post.ast-right-sidebar #primary, .ast-separate-container.ast-single-post.ast-left-sidebar #primary, .ast-separate-container.ast-single-post #primary, .ast-narrow-container.ast-single-post #primary' => array(
						'padding-left'  => astra_responsive_spacing( $single_post_outside_spacing, 'left', 'desktop' ),
						'padding-right' => astra_responsive_spacing( $single_post_outside_spacing, 'right', 'desktop' ),
					),
				);

				$parse_css .= astra_parse_css( $single_post_outside_spacing_css_desktop );

				$single_post_outside_spacing_css_tablet = array(
					'.ast-separate-container.ast-single-post.ast-right-sidebar #primary, .ast-separate-container.ast-single-post.ast-left-sidebar #primary, .ast-separate-container.ast-single-post #primary, .ast-plain-container #primary, .ast-narrow-container #primary' => array(
						'margin-top'    => astra_responsive_spacing( $single_post_outside_spacing, 'top', 'tablet' ),
						'margin-bottom' => astra_responsive_spacing( $single_post_outside_spacing, 'bottom', 'tablet' ),
					),
					'.ast-left-sidebar #primary, .ast-right-sidebar #primary, .ast-separate-container.ast-single-post.ast-right-sidebar #primary, .ast-separate-container.ast-single-post.ast-left-sidebar #primary, .ast-separate-container #primary, .ast-narrow-container #primary' => array(
						'padding-left'  => astra_responsive_spacing( $single_post_outside_spacing, 'left', 'tablet' ),
						'padding-right' => astra_responsive_spacing( $single_post_outside_spacing, 'right', 'tablet' ),
					),
					'.ast-separate-container.ast-single-post.ast-right-sidebar #primary, .ast-separate-container.ast-single-post.ast-left-sidebar #primary, .ast-separate-container.ast-single-post #primary, .ast-plain-container.ast-single-post #primary, .ast-narrow-container.ast-single-post #primary' => array(
						'margin-top'    => astra_responsive_spacing( $single_post_outside_spacing, 'top', 'tablet' ),
						'margin-bottom' => astra_responsive_spacing( $single_post_outside_spacing, 'bottom', 'tablet' ),
					),
					'.ast-left-sidebar.ast-single-post #primary, .ast-right-sidebar.ast-single-post #primary, .ast-separate-container.ast-single-post.ast-right-sidebar #primary, .ast-separate-container.ast-single-post.ast-left-sidebar #primary, .ast-separate-container.ast-single-post #primary, .ast-narrow-container.ast-single-post #primary' => array(
						'padding-left'  => astra_responsive_spacing( $single_post_outside_spacing, 'left', 'tablet' ),
						'padding-right' => astra_responsive_spacing( $single_post_outside_spacing, 'right', 'tablet' ),
					),
				);

				$parse_css .= astra_parse_css( $single_post_outside_spacing_css_tablet, '', astra_get_tablet_breakpoint() );

				$single_post_outside_spacing_css_mobile = array(
					'.ast-separate-container.ast-single-post.ast-right-sidebar #primary, .ast-separate-container.ast-single-post.ast-left-sidebar #primary, .ast-separate-container.ast-single-post #primary, .ast-plain-container.ast-single-post #primary, .ast-narrow-container.ast-single-post #primary' => array(
						'margin-top'    => astra_responsive_spacing( $single_post_outside_spacing, 'top', 'mobile' ),
						'margin-bottom' => astra_responsive_spacing( $single_post_outside_spacing, 'bottom', 'mobile' ),
					),
					'.ast-left-sidebar.ast-single-post #primary, .ast-right-sidebar.ast-single-post #primary, .ast-separate-container.ast-single-post.ast-right-sidebar #primary, .ast-separate-container.ast-single-post.ast-left-sidebar #primary, .ast-separate-container.ast-single-post #primary, .ast-narrow-container.ast-single-post #primary' => array(
						'padding-left'  => astra_responsive_spacing( $single_post_outside_spacing, 'left', 'mobile' ),
						'padding-right' => astra_responsive_spacing( $single_post_outside_spacing, 'right', 'mobile' ),
					),
				);

				$parse_css .= astra_parse_css( $single_post_outside_spacing_css_mobile, '', astra_get_mobile_breakpoint() );
			}

			if ( self::astra_4_8_2_compatibility() ) {

				$single_post_outside_padding_css_tablet = array(
					'.ast-separate-container.ast-single-post #primary, .ast-narrow-container.ast-single-post #primary' => array(
						'padding-left'  => astra_responsive_spacing( $single_post_outside_spacing, 'left', 'tablet' ),
						'padding-right' => astra_responsive_spacing( $single_post_outside_spacing, 'right', 'tablet' ),
					),
				);

				$parse_css .= astra_parse_css( $single_post_outside_padding_css_tablet, '', astra_get_tablet_breakpoint() );

				$single_post_outside_padding_css_mobile = array(
					'.ast-separate-container.ast-single-post #primary, .ast-narrow-container.ast-single-post #primary' => array(
						'padding-left'  => astra_responsive_spacing( $single_post_outside_spacing, 'left', 'mobile' ),
						'padding-right' => astra_responsive_spacing( $single_post_outside_spacing, 'right', 'mobile' ),
					),
				);

				$parse_css .= astra_parse_css( $single_post_outside_padding_css_mobile, '', astra_get_mobile_breakpoint() );
			}

			/**
			 * Single Post Outer spacing
			 */
			// To apply Container Outside Spacing we need to remove default top padding given from the theme.
			$remove_single_post_top_padding_container = array(
				'.ast-separate-container #primary, .ast-narrow-container #primary' => array(
					'padding-top' => astra_get_css_value( 0, 'px' ),
				),
			);

			// To apply Container Outside Spacing we need to remove default bottom padding given from the theme.
			$remove_single_post_bottom_padding_container = array(
				'.ast-separate-container #primary, .ast-narrow-container #primary' => array(
					'padding-bottom' => astra_get_css_value( 0, 'px' ),
				),
			);

			if ( isset( $single_post_outside_spacing['desktop']['top'] ) && '' != $single_post_outside_spacing['desktop']['top'] ) {
				$parse_css .= astra_parse_css( $remove_single_post_top_padding_container );
			}
			if ( isset( $single_post_outside_spacing['tablet']['top'] ) && '' != $single_post_outside_spacing['tablet']['top'] ) {
				$parse_css .= astra_parse_css( $remove_single_post_top_padding_container, '', astra_get_tablet_breakpoint() );
			}
			if ( isset( $single_post_outside_spacing['mobile']['top'] ) && '' != $single_post_outside_spacing['mobile']['top'] ) {
				$parse_css .= astra_parse_css( $remove_single_post_top_padding_container, '', astra_get_mobile_breakpoint() );
			}

			if ( isset( $single_post_outside_spacing['desktop']['top'] ) && '' != $single_post_outside_spacing['desktop']['top'] ) {
				$parse_css .= astra_parse_css( $remove_single_post_bottom_padding_container );
			}
			if ( isset( $single_post_outside_spacing['tablet']['top'] ) && '' != $single_post_outside_spacing['tablet']['top'] ) {
				$parse_css .= astra_parse_css( $remove_single_post_bottom_padding_container, '', astra_get_tablet_breakpoint() );
			}
			if ( isset( $single_post_outside_spacing['mobile']['top'] ) && '' != $single_post_outside_spacing['mobile']['top'] ) {
				$parse_css .= astra_parse_css( $remove_single_post_bottom_padding_container, '', astra_get_mobile_breakpoint() );
			}

			if ( $block_editor_legacy_setup ) {
				/*
				* Fix the wide width issue in gutenberg
				* check if the current user is existing user or new user.
				* if new user load the CSS bty default if existing provide a filter
				*/
				if ( self::gtn_image_group_css_comp() ) {

					if ( false === $improve_gb_ui && ( 'content-boxed-container' === $ast_container_layout || 'boxed-container' === $ast_container_layout ) ) {
						$parse_css .= astra_parse_css(
							array(
								'.ast-separate-container.ast-right-sidebar .entry-content .wp-block-image.alignfull,.ast-separate-container.ast-left-sidebar .entry-content .wp-block-image.alignfull,.ast-separate-container.ast-right-sidebar .entry-content .wp-block-cover.alignfull,.ast-separate-container.ast-left-sidebar .entry-content .wp-block-cover.alignfull' => array(
									'margin-left'  => '-6.67em',
									'margin-right' => '-6.67em',
									'max-width'    => 'unset',
									'width'        => 'unset',
								),
								'.ast-separate-container.ast-right-sidebar .entry-content .wp-block-image.alignwide,.ast-separate-container.ast-left-sidebar .entry-content .wp-block-image.alignwide,.ast-separate-container.ast-right-sidebar .entry-content .wp-block-cover.alignwide,.ast-separate-container.ast-left-sidebar .entry-content .wp-block-cover.alignwide' => array(
									'margin-left'  => '-20px',
									'margin-right' => '-20px',
									'max-width'    => 'unset',
									'width'        => 'unset',
								),
							),
							'1200'
						);
					}

					$gtn_full_wide_image_css = array(
						'.wp-block-group .has-background' => array(
							'padding' => '20px',
						),
					);
					$parse_css              .= astra_parse_css( $gtn_full_wide_image_css, '1200' );

				} else {

					$gtn_tablet_column_css = array(
						'.entry-content .wp-block-columns .wp-block-column' => array(
							'margin-left' => '0px',
						),
					);

					$parse_css .= astra_parse_css( $gtn_tablet_column_css, '', '782' );
				}

				if ( self::gtn_group_cover_css_comp() ) {

					if ( 'no-sidebar' !== astra_page_layout() ) {

						switch ( $ast_container_layout ) {
							case 'content-boxed-container':
							case 'boxed-container':
								if ( true === $improve_gb_ui ) {
									break;
								}
								$parse_css .= astra_parse_css(
									array(
										// With container - Sidebar.
										'.ast-separate-container.ast-right-sidebar .entry-content .wp-block-group.alignwide, .ast-separate-container.ast-left-sidebar .entry-content .wp-block-group.alignwide, .ast-separate-container.ast-right-sidebar .entry-content .wp-block-cover.alignwide, .ast-separate-container.ast-left-sidebar .entry-content .wp-block-cover.alignwide' => array(
											'margin-left'  => '-20px',
											'margin-right' => '-20px',
											'padding-left' => '20px',
											'padding-right' => '20px',
										),
										'.ast-separate-container.ast-right-sidebar .entry-content .wp-block-group.alignfull, .ast-separate-container.ast-left-sidebar .entry-content .wp-block-group.alignfull, .ast-separate-container.ast-right-sidebar .entry-content .wp-block-cover.alignfull, .ast-separate-container.ast-left-sidebar .entry-content .wp-block-cover.alignfull' => array(
											'margin-left'  => '-6.67em',
											'margin-right' => '-6.67em',
											'padding-left' => '6.67em',
											'padding-right' => '6.67em',
										),
									),
									'1200'
								);
								break;

							case 'plain-container':
								$parse_css .= astra_parse_css(
									array(
										// Without container - Sidebar.
										'.ast-plain-container.ast-right-sidebar .entry-content .wp-block-group.alignwide, .ast-plain-container.ast-left-sidebar .entry-content .wp-block-group.alignwide, .ast-plain-container.ast-right-sidebar .entry-content .wp-block-group.alignfull, .ast-plain-container.ast-left-sidebar .entry-content .wp-block-group.alignfull' => array(
											'padding-left' => '20px',
											'padding-right' => '20px',
										),
									),
									'1200'
								);
								break;

							case 'page-builder':
								$parse_css .= astra_parse_css(
									array(
										'.ast-page-builder-template.ast-left-sidebar .entry-content .wp-block-cover.alignwide, .ast-page-builder-template.ast-right-sidebar .entry-content .wp-block-cover.alignwide, .ast-page-builder-template.ast-left-sidebar .entry-content .wp-block-cover.alignfull, .ast-page-builder-template.ast-right-sidebar .entry-content .wp-block-cover.alignful' => array(
											'padding-right' => '0',
											'padding-left' => '0',
										),
									),
									'1200'
								);
								break;
						}
					} else {

						switch ( $container_layout ) {
							case 'content-boxed-container':
							case 'boxed-container':
								if ( true === $improve_gb_ui ) {
									break;
								}

								$parse_css .= astra_parse_css(
									array(
										// With container - No Sidebar.
										'.ast-no-sidebar.ast-separate-container .entry-content .wp-block-group.alignwide, .ast-no-sidebar.ast-separate-container .entry-content .wp-block-cover.alignwide' => array(
											'margin-left'  => '-20px',
											'margin-right' => '-20px',
											'padding-left' => '20px',
											'padding-right' => '20px',
										),
										'.ast-no-sidebar.ast-separate-container .entry-content .wp-block-cover.alignfull, .ast-no-sidebar.ast-separate-container .entry-content .wp-block-group.alignfull' => array(
											'margin-left'  => '-6.67em',
											'margin-right' => '-6.67em',
											'padding-left' => '6.67em',
											'padding-right' => '6.67em',
										),
									),
									'1200'
								);
								break;

							case 'plain-container':
								$parse_css .= astra_parse_css(
									array(
										// Without container - No Sidebar.
										'.ast-plain-container.ast-no-sidebar .entry-content .alignwide .wp-block-cover__inner-container, .ast-plain-container.ast-no-sidebar .entry-content .alignfull .wp-block-cover__inner-container' => array(
											'width' => astra_get_css_value( $site_content_width + 40, 'px' ),
										),
									),
									'1200'
								);
								break;

							case 'page-builder':
								$parse_css .= astra_parse_css(
									array(
										'.ast-page-builder-template.ast-no-sidebar .entry-content .wp-block-cover.alignwide, .ast-page-builder-template.ast-no-sidebar .entry-content .wp-block-cover.alignfull' => array(
											'padding-right' => '0',
											'padding-left' => '0',
										),
									),
									'1200'
								);
								break;
						}
					}

					$parse_css .= astra_parse_css(
						array(
							'.wp-block-cover-image.alignwide .wp-block-cover__inner-container, .wp-block-cover.alignwide .wp-block-cover__inner-container, .wp-block-cover-image.alignfull .wp-block-cover__inner-container, .wp-block-cover.alignfull .wp-block-cover__inner-container' => array(
								'width' => '100%',
							),
						),
						'1200'
					);
				}

				if ( self::gutenberg_core_blocks_css_comp() ) {
					$desktop_screen_gb_css = array(
						// Group block, Columns block, Gallery block, Table block & has-text-align-center selector compatibility Desktop CSS.
						'.wp-block-columns'         => array(
							'margin-bottom' => 'unset',
						),
						'.wp-block-image.size-full' => array(
							'margin' => '2rem 0',
						),
						'.wp-block-separator.has-background' => array(
							'padding' => '0',
						),
						'.wp-block-gallery'         => array(
							'margin-bottom' => '1.6em',
						),
						'.wp-block-group'           => array(
							'padding-top'    => '4em',
							'padding-bottom' => '4em',
						),
						'.wp-block-group__inner-container .wp-block-columns:last-child, .wp-block-group__inner-container :last-child, .wp-block-table table' => array(
							'margin-bottom' => '0',
						),
						'.blocks-gallery-grid'      => array(
							'width' => '100%',
						),
						'.wp-block-navigation-link__content' => array(
							'padding' => '5px 0',
						),
						'.wp-block-group .wp-block-group .has-text-align-center, .wp-block-group .wp-block-column .has-text-align-center' => array(
							'max-width' => '100%',
						),
						'.has-text-align-center'    => array(
							'margin' => '0 auto',
						),
					);

					/* Parse CSS from array() -> Desktop CSS */
					$parse_css .= astra_parse_css( $desktop_screen_gb_css );

					if ( false === $improve_gb_ui ) {
						$middle_screen_min_gb_css = array(
							// Group & Column block > align compatibility (min-width:1200px) CSS.
							'.wp-block-cover__inner-container, .alignwide .wp-block-group__inner-container, .alignfull .wp-block-group__inner-container' => array(
								'max-width' => '1200px',
								'margin'    => '0 auto',
							),
							'.wp-block-group.alignnone, .wp-block-group.aligncenter, .wp-block-group.alignleft, .wp-block-group.alignright, .wp-block-group.alignwide, .wp-block-columns.alignwide' => array(
								'margin' => '2rem 0 1rem 0',
							),
						);
						/* Parse CSS from array() -> min-width: (1200)px CSS */
						$parse_css .= astra_parse_css( $middle_screen_min_gb_css, '1200' );
					}

					$middle_screen_max_gb_css = array(
						// Group & Column block (max-width:1200px) CSS.
						'.wp-block-group'                 => array(
							'padding' => '3em',
						),
						'.wp-block-group .wp-block-group' => array(
							'padding' => '1.5em',
						),
						'.wp-block-columns, .wp-block-column' => array(
							'margin' => '1rem 0',
						),
					);

					/* Parse CSS from array() -> max-width: (1200)px CSS */
					$parse_css .= astra_parse_css( $middle_screen_max_gb_css, '', '1200' );

					$tablet_screen_min_gb_css = array(
						// Columns inside Group block compatibility (min-width: tablet-breakpoint) CSS.
						'.wp-block-columns .wp-block-group' => array(
							'padding' => '2em',
						),
					);

					/* Parse CSS from array() -> min-width: (tablet-breakpoint)px CSS */
					$parse_css .= astra_parse_css( $tablet_screen_min_gb_css, astra_get_tablet_breakpoint() );

					$mobile_screen_max_gb_css = array(
						// Content | image | video inside Media & Text block, Cover block, Image inside cover block compatibility (max-width: mobile-breakpoint) CSS.
						'.wp-block-cover-image .wp-block-cover__inner-container, .wp-block-cover .wp-block-cover__inner-container' => array(
							'width' => 'unset',
						),
						'.wp-block-cover, .wp-block-cover-image' => array(
							'padding' => '2em 0',
						),
						'.wp-block-group, .wp-block-cover' => array(
							'padding' => '2em',
						),
						'.wp-block-media-text__media img, .wp-block-media-text__media video' => array(
							'width'     => 'unset',
							'max-width' => '100%',
						),
						'.wp-block-media-text.has-background .wp-block-media-text__content' => array(
							'padding' => '1em',
						),
					);

					if ( ! self::gutenberg_media_text_block_css_compat() ) {
						// Added this [! self::gutenberg_media_text_block_css_compat()] condition as we update the same selector CSS in gutenberg_media_text_block_css_compat() function with new padding: 8% 0; CSS for max-width: (mobile-breakpoint).
						$mobile_screen_max_gb_css['.wp-block-media-text .wp-block-media-text__content'] = array(
							'padding' => '3em 2em',
						);
					}

					/* Parse CSS from array() -> max-width: (mobile-breakpoint)px CSS */
					$parse_css .= astra_parse_css( $mobile_screen_max_gb_css, '', astra_get_mobile_breakpoint() );
				}

				$is_legacy_setup = 'legacy' === astra_get_option( 'wp-blocks-ui' ) ? true : false;

				if ( $is_legacy_setup && astra_wp_version_compare( '6.0', '>=' ) ) {
					// Image block align center CSS.
					$image_block_center_align = array(
						'.wp-block-image.aligncenter' => array(
							'margin-left'  => 'auto',
							'margin-right' => 'auto',
						),
					);
					$parse_css               .= astra_parse_css( $image_block_center_align );
				}

				if ( $is_legacy_setup ) {
					// Table block align center CSS.
					$table_block_center_align = array(
						'.wp-block-table.aligncenter' => array(
							'margin-left'  => 'auto',
							'margin-right' => 'auto',
						),
					);
					$parse_css               .= astra_parse_css( $table_block_center_align );
				}

				if ( self::gutenberg_media_text_block_css_compat() ) {
					$media_text_block_padding_css = array(
						// Media & Text block CSS compatibility (min-width: mobile-breakpoint) CSS.
						'.entry-content .wp-block-media-text.has-media-on-the-right .wp-block-media-text__content' => array(
							'padding' => '0 8% 0 0',
						),
						'.entry-content .wp-block-media-text .wp-block-media-text__content' => array(
							'padding' => '0 0 0 8%',
						),
						'.ast-plain-container .site-content .entry-content .has-custom-content-position.is-position-bottom-left > *, .ast-plain-container .site-content .entry-content .has-custom-content-position.is-position-bottom-right > *, .ast-plain-container .site-content .entry-content .has-custom-content-position.is-position-top-left > *, .ast-plain-container .site-content .entry-content .has-custom-content-position.is-position-top-right > *, .ast-plain-container .site-content .entry-content .has-custom-content-position.is-position-center-right > *, .ast-plain-container .site-content .entry-content .has-custom-content-position.is-position-center-left > *'  => array(
							'margin' => 0,
						),
					);

					/* Parse CSS from array() -> min-width: (mobile-breakpoint)px CSS */
					$parse_css .= astra_parse_css( $media_text_block_padding_css, astra_get_mobile_breakpoint() );

					$mobile_screen_media_text_block_css = array(
						// Media & Text block padding CSS for (max-width: mobile-breakpoint) CSS.
						'.entry-content .wp-block-media-text .wp-block-media-text__content' => array(
							'padding' => '8% 0',
						),
						'.wp-block-media-text .wp-block-media-text__media img' => array(
							'width'     => 'auto',
							'max-width' => '100%',
						),
					);

					/* Parse CSS from array() -> max-width: (mobile-breakpoint)px CSS */
					$parse_css .= astra_parse_css( $mobile_screen_media_text_block_css, '', astra_get_mobile_breakpoint() );
				}
			}

			/**
			 * When supporting GB button outline patterns in v3.3.0 we have given 2px as default border for GB outline button, where we restrict button border for flat type buttons.
			 * But now while reverting this change there is no need of default border because whatever customizer border will set it should behave accordingly. Although it is empty ('') WP applying 2px as default border for outline buttons.
			 *
			 * @since 3.6.3
			 */
			$default_border_size = '2px';
			if ( astra_button_default_padding_updated() ) {
				$default_border_size = '';
			}

			// Outline Gutenberg button compatibility CSS.
			$theme_btn_top_border    = isset( $global_custom_button_border_size['top'] ) && ( '' !== $global_custom_button_border_size['top'] && '0' !== $global_custom_button_border_size['top'] ) ? astra_get_css_value( $global_custom_button_border_size['top'], 'px' ) : $default_border_size;
			$theme_btn_right_border  = isset( $global_custom_button_border_size['right'] ) && ( '' !== $global_custom_button_border_size['right'] && '0' !== $global_custom_button_border_size['right'] ) ? astra_get_css_value( $global_custom_button_border_size['right'], 'px' ) : $default_border_size;
			$theme_btn_left_border   = isset( $global_custom_button_border_size['left'] ) && ( '' !== $global_custom_button_border_size['left'] && '0' !== $global_custom_button_border_size['left'] ) ? astra_get_css_value( $global_custom_button_border_size['left'], 'px' ) : $default_border_size;
			$theme_btn_bottom_border = isset( $global_custom_button_border_size['bottom'] ) && ( '' !== $global_custom_button_border_size['bottom'] && '0' !== $global_custom_button_border_size['bottom'] ) ? astra_get_css_value( $global_custom_button_border_size['bottom'], 'px' ) : $default_border_size;

			if ( self::gutenberg_core_patterns_compat() ) {

				$outline_button_css = array(
					'.wp-block-button.is-style-outline .wp-block-button__link' => array(
						'border-color'        => empty( $btn_border_color ) ? esc_attr( $btn_bg_color ) : esc_attr( $btn_border_color ),
						'border-top-width'    => esc_attr( $theme_btn_top_border ),
						'border-right-width'  => esc_attr( $theme_btn_right_border ),
						'border-bottom-width' => esc_attr( $theme_btn_bottom_border ),
						'border-left-width'   => esc_attr( $theme_btn_left_border ),
					),
					'div.wp-block-button.is-style-outline > .wp-block-button__link:not(.has-text-color), div.wp-block-button.wp-block-button__link.is-style-outline:not(.has-text-color)' => array(
						'color' => empty( $btn_border_color ) ? esc_attr( $btn_bg_color ) : esc_attr( $btn_border_color ),
					),
					'.wp-block-button.is-style-outline .wp-block-button__link:hover, .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:focus, .wp-block-buttons .wp-block-button.is-style-outline > .wp-block-button__link:not(.has-text-color):hover, .wp-block-buttons .wp-block-button.wp-block-button__link.is-style-outline:not(.has-text-color):hover' => array(
						'color'            => esc_attr( $btn_text_hover_color ),
						'background-color' => esc_attr( $btn_bg_hover_color ),
						'border-color'     => empty( $btn_border_h_color ) ? esc_attr( $btn_bg_hover_color ) : esc_attr( $btn_border_h_color ),
					),
					// Adding CSS to highlight current paginated number.
					'.post-page-numbers.current .page-link, .ast-pagination .page-numbers.current'                    => array(
						'color'            => astra_get_foreground_color( $theme_color ),
						'border-color'     => esc_attr( $theme_color ),
						'background-color' => esc_attr( $theme_color ),
					),
				);

				/* Parse CSS from array() -> All media CSS */
				$parse_css .= astra_parse_css( $outline_button_css );

				if ( $block_editor_legacy_setup ) {

					if ( ! astra_button_default_padding_updated() ) {
						// Tablet CSS.
						$outline_button_tablet_css = array(
							'.wp-block-button.is-style-outline .wp-block-button__link' => array(
								'padding-top'    => 'calc(15px - ' . (int) $theme_btn_top_border . 'px)',
								'padding-right'  => 'calc(30px - ' . (int) $theme_btn_right_border . 'px)',
								'padding-bottom' => 'calc(15px - ' . (int) $theme_btn_bottom_border . 'px)',
								'padding-left'   => 'calc(30px - ' . (int) $theme_btn_left_border . 'px)',
							),
						);

						$parse_css .= astra_parse_css( $outline_button_tablet_css, '', astra_get_tablet_breakpoint() );

						// Mobile CSS.
						$outline_button_mobile_css = array(
							'.wp-block-button.is-style-outline .wp-block-button__link' => array(
								'padding-top'    => 'calc(15px - ' . (int) $theme_btn_top_border . 'px)',
								'padding-right'  => 'calc(30px - ' . (int) $theme_btn_right_border . 'px)',
								'padding-bottom' => 'calc(15px - ' . (int) $theme_btn_bottom_border . 'px)',
								'padding-left'   => 'calc(30px - ' . (int) $theme_btn_left_border . 'px)',
							),
						);

						$parse_css .= astra_parse_css( $outline_button_mobile_css, '', astra_get_mobile_breakpoint() );
					}

					if ( $is_site_rtl ) {
						$gb_patterns_min_mobile_css = array(
							'.entry-content > .alignleft'  => array(
								'margin-left' => '20px',
							),
							'.entry-content > .alignright' => array(
								'margin-right' => '20px',
							),
						);
					} else {
						$gb_patterns_min_mobile_css = array(
							'.entry-content > .alignleft'  => array(
								'margin-right' => '20px',
							),
							'.entry-content > .alignright' => array(
								'margin-left' => '20px',
							),
						);
					}

					if ( ! astra_button_default_padding_updated() ) {
						$gb_patterns_min_mobile_css['.wp-block-group.has-background'] = array(
							'padding' => '20px',
						);
					}

					/* Parse CSS from array() -> min-width: (mobile-breakpoint) px CSS  */
					$parse_css .= astra_parse_css( $gb_patterns_min_mobile_css, astra_get_mobile_breakpoint() );
				}
			}

			if ( astra_button_default_padding_updated() ) {
				$outline_button_css = array(
					'.wp-block-button.is-style-outline .wp-block-button__link' => array(
						'border-top-width'    => esc_attr( $theme_btn_top_border ),
						'border-right-width'  => esc_attr( $theme_btn_right_border ),
						'border-bottom-width' => esc_attr( $theme_btn_bottom_border ),
						'border-left-width'   => esc_attr( $theme_btn_left_border ),
					),
				);

				/* Parse CSS from array() -> All media CSS */
				$parse_css .= astra_parse_css( $outline_button_css );
			}

			/**
			 * Secondary button styles.
			 */
			$scndry_btn_text_color                   = astra_get_option( 'secondary-button-color' );
			$scndry_btn_border_color                 = astra_get_option( 'secondary-theme-button-border-group-border-color' );
			$scndry_btn_border_h_color               = astra_get_option( 'secondary-theme-button-border-group-border-h-color' );
			$global_scndry_custom_button_border_size = astra_get_option( 'secondary-theme-button-border-group-border-size' );
			$scndry_theme_btn_top_border             = isset( $global_scndry_custom_button_border_size['top'] ) && ( '' !== $global_scndry_custom_button_border_size['top'] && '0' !== $global_scndry_custom_button_border_size['top'] ) ? astra_get_css_value( $global_scndry_custom_button_border_size['top'], 'px' ) : $default_border_size;
			$scndry_theme_btn_right_border           = isset( $global_scndry_custom_button_border_size['right'] ) && ( '' !== $global_scndry_custom_button_border_size['right'] && '0' !== $global_scndry_custom_button_border_size['right'] ) ? astra_get_css_value( $global_scndry_custom_button_border_size['right'], 'px' ) : $default_border_size;
			$scndry_theme_btn_left_border            = isset( $global_scndry_custom_button_border_size['left'] ) && ( '' !== $global_scndry_custom_button_border_size['left'] && '0' !== $global_scndry_custom_button_border_size['left'] ) ? astra_get_css_value( $global_scndry_custom_button_border_size['left'], 'px' ) : $default_border_size;
			$scndry_theme_btn_bottom_border          = isset( $global_scndry_custom_button_border_size['bottom'] ) && ( '' !== $global_scndry_custom_button_border_size['bottom'] && '0' !== $global_scndry_custom_button_border_size['bottom'] ) ? astra_get_css_value( $global_scndry_custom_button_border_size['bottom'], 'px' ) : $default_border_size;
			$scndry_theme_btn_font_family            = astra_get_option( 'secondary-font-family-button' );
			$scndry_theme_btn_font_size              = astra_get_option( 'secondary-font-size-button' );
			$scndry_theme_btn_font_weight            = astra_get_option( 'secondary-font-weight-button' );
			$scndry_theme_btn_text_transform         = astra_get_font_extras( astra_get_option( 'secondary-font-extras-button' ), 'text-transform' );
			$scndry_theme_btn_line_height            = astra_get_font_extras( astra_get_option( 'secondary-font-extras-button' ), 'line-height', 'line-height-unit' );
			$scndry_theme_btn_letter_spacing         = astra_get_font_extras( astra_get_option( 'secondary-font-extras-button' ), 'letter-spacing', 'letter-spacing-unit' );
			$scndry_theme_btn_text_decoration        = astra_get_font_extras( astra_get_option( 'secondary-font-extras-button' ), 'text-decoration' );
			$scndry_theme_btn_padding                = astra_get_option( 'secondary-theme-button-padding' );
			$scndry_btn_border_radius_fields         = astra_get_option( 'secondary-button-radius-fields' );
			$scndry_btn_bg_color                     = astra_get_option( 'secondary-button-bg-color' );
			$scndry_btn_bg_hover_color               = astra_get_option( 'secondary-button-bg-h-color' );
			$scndry_btn_text_hover_color             = astra_get_option( 'secondary-button-h-color' );
			$outline_button_selector                 = '.wp-block-button.is-style-outline .wp-block-button__link.wp-element-button, .ast-outline-button';
			$padding_top                             = astra_responsive_spacing( $scndry_theme_btn_padding, 'top', 'desktop' );
			$padding_right                           = astra_responsive_spacing( $scndry_theme_btn_padding, 'right', 'desktop' );
			$padding_bottom                          = astra_responsive_spacing( $scndry_theme_btn_padding, 'bottom', 'desktop' );
			$padding_left                            = astra_responsive_spacing( $scndry_theme_btn_padding, 'left', 'desktop' );
			$border_top_val                          = '';
			$border_right_val                        = '';
			$border_bottom_val                       = '';
			$border_left_val                         = '';
			$gutenberg_core_patterns_compat          = self::gutenberg_core_patterns_compat();

			// Secondary color.
			if ( empty( $scndry_btn_text_color ) && $gutenberg_core_patterns_compat ) {
				$btn_color_val = empty( $btn_border_color ) ? esc_attr( $btn_bg_color ) : esc_attr( $btn_border_color );
			} else {
				$btn_color_val = $scndry_btn_text_color;
			}

			// Secondary border color.
			if ( empty( $scndry_btn_border_color ) && empty( $scndry_btn_bg_color ) && $gutenberg_core_patterns_compat ) {
				$btn_border_color_val = empty( $btn_border_color ) ? esc_attr( $btn_bg_color ) : esc_attr( $btn_border_color );
			} else {
				$btn_border_color_val = empty( $scndry_btn_border_color ) ? esc_attr( $scndry_btn_bg_color ) : esc_attr( $scndry_btn_border_color );
			}

			// Secondary border hover color.
			if ( empty( $scndry_btn_border_h_color ) && $gutenberg_core_patterns_compat ) {
				$btn_border_h_color_val = empty( $btn_border_h_color ) ? esc_attr( $btn_bg_hover_color ) : esc_attr( $btn_border_h_color );
			} else {
				$btn_border_h_color_val = $scndry_btn_border_h_color;
			}

			// Secondary button border size.
			if ( $scndry_theme_btn_top_border || $scndry_theme_btn_right_border || $scndry_theme_btn_left_border || $scndry_theme_btn_bottom_border ) {
				$border_top_val          = $scndry_theme_btn_top_border;
				$border_right_val        = $scndry_theme_btn_right_border;
				$border_bottom_val       = $scndry_theme_btn_bottom_border;
				$border_left_val         = $scndry_theme_btn_left_border;
				$outline_button_selector = '.wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link.wp-element-button, .ast-outline-button, .wp-block-uagb-buttons-child .uagb-buttons-repeater.ast-outline-button';
			}

			// Secondary button padding.
			if ( $padding_top || $padding_right || $padding_bottom || $padding_left ) {
				$outline_button_selector = '.wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link.wp-element-button, .ast-outline-button, .wp-block-uagb-buttons-child .uagb-buttons-repeater.ast-outline-button';
			}

			// Secondary button preset compatibility.
			$secondary_btn_preset_style = astra_get_option( 'secondary-button-preset-style' );

			if ( 'button_04' === $secondary_btn_preset_style || 'button_05' === $secondary_btn_preset_style || 'button_06' === $secondary_btn_preset_style ) {

				if ( empty( $scndry_btn_border_color ) ) {
					$btn_border_color_val = $scndry_btn_bg_color;
				}

				if ( '' === astra_get_option( 'secondary-button-bg-color' ) && '' === astra_get_option( 'secondary-button-color' ) ) {
					$btn_color_val = $theme_color;
				} elseif ( '' === astra_get_option( 'secondary-button-color' ) ) {
					$btn_color_val = $scndry_btn_bg_color;
				}

				$scndry_btn_bg_color = 'transparent';
			}

			$outline_button_css_desktop = array(
				$outline_button_selector => array(
					'border-color'               => esc_attr( $btn_border_color_val ),
					'border-top-width'           => esc_attr( $border_top_val ),
					'border-right-width'         => esc_attr( $border_right_val ),
					'border-bottom-width'        => esc_attr( $border_bottom_val ),
					'border-left-width'          => esc_attr( $border_left_val ),
					'font-family'                => astra_get_font_family( $scndry_theme_btn_font_family ),
					'font-weight'                => esc_attr( $scndry_theme_btn_font_weight ),
					'font-size'                  => isset( $scndry_theme_btn_font_size['desktop'] ) && isset( $scndry_theme_btn_font_size['desktop-unit'] ) && is_array( $scndry_theme_btn_font_size ) ? astra_get_font_css_value( $scndry_theme_btn_font_size['desktop'], $scndry_theme_btn_font_size['desktop-unit'] ) : '',
					'line-height'                => esc_attr( $scndry_theme_btn_line_height ),
					'text-transform'             => esc_attr( $scndry_theme_btn_text_transform ),
					'text-decoration'            => esc_attr( $scndry_theme_btn_text_decoration ),
					'letter-spacing'             => esc_attr( $scndry_theme_btn_letter_spacing ),
					'padding-top'                => $padding_top,
					'padding-right'              => $padding_right,
					'padding-bottom'             => $padding_bottom,
					'padding-left'               => $padding_left,
					'border-top-left-radius'     => astra_responsive_spacing( $scndry_btn_border_radius_fields, 'top', 'desktop' ),
					'border-top-right-radius'    => astra_responsive_spacing( $scndry_btn_border_radius_fields, 'right', 'desktop' ),
					'border-bottom-right-radius' => astra_responsive_spacing( $scndry_btn_border_radius_fields, 'bottom', 'desktop' ),
					'border-bottom-left-radius'  => astra_responsive_spacing( $scndry_btn_border_radius_fields, 'left', 'desktop' ),
				),
				'.wp-block-buttons .wp-block-button.is-style-outline > .wp-block-button__link:not(.has-text-color), .wp-block-buttons .wp-block-button.wp-block-button__link.is-style-outline:not(.has-text-color), .ast-outline-button' => array(
					'color' => esc_attr( $btn_color_val ),
				),
				'.wp-block-button.is-style-outline .wp-block-button__link:hover, .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:focus, .wp-block-buttons .wp-block-button.is-style-outline > .wp-block-button__link:not(.has-text-color):hover, .wp-block-buttons .wp-block-button.wp-block-button__link.is-style-outline:not(.has-text-color):hover, .ast-outline-button:hover, .ast-outline-button:focus, .wp-block-uagb-buttons-child .uagb-buttons-repeater.ast-outline-button:hover, .wp-block-uagb-buttons-child .uagb-buttons-repeater.ast-outline-button:focus' => array(
					'color'            => empty( $scndry_btn_text_hover_color ) && $gutenberg_core_patterns_compat ? esc_attr( $btn_text_hover_color ) : esc_attr( $scndry_btn_text_hover_color ),
					'background-color' => empty( $scndry_btn_bg_hover_color ) && $gutenberg_core_patterns_compat ? esc_attr( $btn_bg_hover_color ) : esc_attr( $scndry_btn_bg_hover_color ),
					'border-color'     => esc_attr( $btn_border_h_color_val ),
				),
			);

			if ( $content_links_underline && $button_styling_improved ) {
				$outline_button_css_desktop['.ast-single-post .entry-content a.ast-outline-button, .ast-single-post .entry-content .is-style-outline>.wp-block-button__link'] = array(
					'text-decoration' => '' === $scndry_theme_btn_text_decoration || 'initial' === $scndry_theme_btn_text_decoration ? 'none' : esc_attr( $scndry_theme_btn_text_decoration ),
				);
			}

			$outline_button_css_tablet = array(
				$outline_button_selector => array(
					'font-size'                  => astra_responsive_font( $scndry_theme_btn_font_size, 'tablet' ),
					'padding-top'                => astra_responsive_spacing( $scndry_theme_btn_padding, 'top', 'tablet' ),
					'padding-right'              => astra_responsive_spacing( $scndry_theme_btn_padding, 'right', 'tablet' ),
					'padding-bottom'             => astra_responsive_spacing( $scndry_theme_btn_padding, 'bottom', 'tablet' ),
					'padding-left'               => astra_responsive_spacing( $scndry_theme_btn_padding, 'left', 'tablet' ),
					'border-top-left-radius'     => astra_responsive_spacing( $scndry_btn_border_radius_fields, 'top', 'tablet' ),
					'border-top-right-radius'    => astra_responsive_spacing( $scndry_btn_border_radius_fields, 'right', 'tablet' ),
					'border-bottom-right-radius' => astra_responsive_spacing( $scndry_btn_border_radius_fields, 'bottom', 'tablet' ),
					'border-bottom-left-radius'  => astra_responsive_spacing( $scndry_btn_border_radius_fields, 'left', 'tablet' ),
				),
			);

			$outline_button_css_mobile = array(
				$outline_button_selector => array(
					'font-size'                  => astra_responsive_font( $scndry_theme_btn_font_size, 'mobile' ),
					'padding-top'                => astra_responsive_spacing( $scndry_theme_btn_padding, 'top', 'mobile' ),
					'padding-right'              => astra_responsive_spacing( $scndry_theme_btn_padding, 'right', 'mobile' ),
					'padding-bottom'             => astra_responsive_spacing( $scndry_theme_btn_padding, 'bottom', 'mobile' ),
					'padding-left'               => astra_responsive_spacing( $scndry_theme_btn_padding, 'left', 'mobile' ),
					'border-top-left-radius'     => astra_responsive_spacing( $scndry_btn_border_radius_fields, 'top', 'mobile' ),
					'border-top-right-radius'    => astra_responsive_spacing( $scndry_btn_border_radius_fields, 'right', 'mobile' ),
					'border-bottom-right-radius' => astra_responsive_spacing( $scndry_btn_border_radius_fields, 'bottom', 'mobile' ),
					'border-bottom-left-radius'  => astra_responsive_spacing( $scndry_btn_border_radius_fields, 'left', 'mobile' ),
				),
			);

			// Secondary button background color.
			$outline_button_css_desktop['.wp-block-button .wp-block-button__link.wp-element-button.is-style-outline:not(.has-background), .wp-block-button.is-style-outline>.wp-block-button__link.wp-element-button:not(.has-background), .ast-outline-button'] = array(
				'background-color' => empty( $scndry_btn_bg_color ) ? 'transparent' : esc_attr( $scndry_btn_bg_color ),
			);

			// Secondary button preset compatibility.
			if ( 'button_01' === $secondary_btn_preset_style || 'button_02' === $secondary_btn_preset_style || 'button_03' === $secondary_btn_preset_style ) {
				if ( empty( $scndry_btn_text_color ) ) {
					$scndry_btn_text_color = astra_get_foreground_color( $theme_color );
				}
				$outline_button_css_desktop['.wp-block-buttons .wp-block-button .wp-block-button__link.is-style-outline:not(.has-background), .wp-block-buttons .wp-block-button.is-style-outline>.wp-block-button__link:not(.has-background), .ast-outline-button'] = array(
					'background-color' => empty( $scndry_btn_bg_color ) ? esc_attr( $theme_color ) : esc_attr( $scndry_btn_bg_color ),
					'color'            => esc_attr( $scndry_btn_text_color ),
				);
			}

			if ( $button_styling_improved ) {
				$outline_button_css_desktop['.uagb-buttons-repeater.ast-outline-button'] = array(
					'border-radius' => '9999px',
				);
			}

			/* Parse CSS from array() -> Desktop */
			$parse_css .= astra_parse_css( $outline_button_css_desktop );

			/* Parse CSS from array() -> Tablet */
			$parse_css .= astra_parse_css( $outline_button_css_tablet, '', astra_get_tablet_breakpoint() );

			/* Parse CSS from array() -> Mobile */
			$parse_css .= astra_parse_css( $outline_button_css_mobile, '', astra_get_mobile_breakpoint() );

			/**
			 * Add margin-bottom to the figure element conditionally for WordPress 6.3 or above.
			 *
			 * @since 4.4.0
			 */
			if ( astra_wp_version_compare( '6.3', '>=' ) ) {
				$figure_margin_bottom = array(
					'.entry-content[data-ast-blocks-layout] > figure' => array(
						'margin-bottom' => '1em',
					),
				);

				/* Parse CSS from array() -> All media CSS */
				$parse_css .= astra_parse_css( $figure_margin_bottom );
			}

			if ( $is_widget_title_support_font_weight ) {
				$widget_title_font_weight_support = array(
					'h1.widget-title' => array(
						'font-weight' => esc_attr( $h1_font_weight ),
					),
					'h2.widget-title' => array(
						'font-weight' => esc_attr( $h2_font_weight ),
					),
					'h3.widget-title' => array(
						'font-weight' => esc_attr( $h3_font_weight ),
					),
				);

				/* Parse CSS from array() -> All media CSS */
				$parse_css .= astra_parse_css( $widget_title_font_weight_support );
			}

			$static_layout_css = array(
				'.ast-separate-container #primary, .ast-separate-container #secondary' => array(
					'padding' => '1.5em 0',
				),
				'#primary, #secondary' => array(
					'padding' => '1.5em 0',
					'margin'  => 0,
				),
				'.ast-left-sidebar #content > .ast-container' => array(
					'display'        => 'flex',
					'flex-direction' => 'column-reverse',
					'width'          => '100%',
				),
			);

			// Handle backward compatibility for Elementor Pro heading's margin.
			if ( defined( 'ELEMENTOR_PRO_VERSION' ) && $elementor_heading_margin_style_comp ) {
				$elementor_base_css = [];
				$elementor_base_css[' .content-area .elementor-widget-theme-post-content h1, .content-area .elementor-widget-theme-post-content h2, .content-area .elementor-widget-theme-post-content h3, .content-area .elementor-widget-theme-post-content h4, .content-area .elementor-widget-theme-post-content h5, .content-area .elementor-widget-theme-post-content h6'] = array(
					'margin-top'    => '1.5em',
					'margin-bottom' => 'calc(0.3em + 10px)',
				);
				$parse_css .= astra_parse_css( $elementor_base_css );
			}

			// Getting the responsive alignment option.
			$shop_product_alignment = astra_get_option( 'shop-product-align-responsive' );

			// Added Check if the tablet alignment is 'align-center'
			if ( ( isset( $shop_product_alignment['desktop'] ) && 'align-center' === $shop_product_alignment['desktop'] ) && 'shop-page-list-style' !== astra_get_option( 'shop-style' ) ) {
				$desktop_review_wrapper = [];
				$desktop_review_wrapper[' .ast-desktop .review-count'] = array(
					'margin-left'  => '-40px',
					'margin-right' => 'auto',
				);

				/* Parse CSS from array() -> Desktop CSS */
				$parse_css .= astra_parse_css( $desktop_review_wrapper );
			}

			if ( class_exists( 'WooCommerce' ) && ! is_product() ) {
				$review_rating_style = [];
				$review_rating_style['.review-rating'] = array(
					'display'     => 'flex',
					'align-items' => 'center',
					'order'       => '2',
				);

				/* Parse CSS from array() -> Desktop CSS */
				$parse_css .= astra_parse_css( $review_rating_style );
			}

			// Added cover block paragraph tag text color compatibility.
			if ( has_block( 'core/cover' ) ) {
				$cover_block_style = [];
				$cover_block_style['body .wp-block-cover:not(.has-text-color.has-link-color) p'] = array(
					'color' => esc_attr( $text_color ),
				);
				$parse_css .= astra_parse_css( $cover_block_style );
			}

			if ( true === $update_customizer_strctural_defaults ) {
				$is_site_rtl               = is_rtl() ? true : false;
				$ltr_left                  = $is_site_rtl ? esc_attr( 'right' ) : esc_attr( 'left' );
				$ltr_right                 = $is_site_rtl ? esc_attr( 'left' ) : esc_attr( 'right' );
				$default_layout_update_css = array(
					'#page'                           => array(
						'display'        => 'flex',
						'flex-direction' => 'column',
						'min-height'     => '100vh',
					),
					'.ast-404-layout-1 h1.page-title' => array(
						'color' => 'var(--ast-global-color-2)',
					),
					'.single .post-navigation a'      => array(
						'line-height' => '1em',
						'height'      => 'inherit',
					),
					'.error-404 .page-sub-title'      => array(
						'font-size'   => '1.5rem',
						'font-weight' => 'inherit',
					),
					'.search .site-content .content-area .search-form' => array(
						'margin-bottom' => '0',
					),
					'#page .site-content'             => array(
						'flex-grow' => '1',
					),
					'.widget'                         => array(
						'margin-bottom' => '1.25em',
					),
					'#secondary li'                   => array(
						'line-height' => '1.5em',
					),
					'#secondary .wp-block-group h2'   => array(
						'margin-bottom' => '0.7em',
					),
					'#secondary h2'                   => array(
						'font-size' => '1.7rem',
					),
					'.ast-separate-container .ast-article-post, .ast-separate-container .ast-article-single, .ast-separate-container .comment-respond' => array(
						'padding' => self::astra_4_6_0_compatibility() && is_single() ? '2.5em' : '3em',
					),

					'.ast-separate-container .ast-article-single .ast-article-single' => array(
						'padding' => '0',
					),

					'.ast-article-single .wp-block-post-template-is-layout-grid' => array(
						'padding-' . $ltr_left => '0',
					),
					'.ast-separate-container .comments-title, .ast-narrow-container .comments-title' => array(
						'padding' => '1.5em 2em',
					),
					'.ast-page-builder-template .comment-form-textarea, .ast-comment-formwrap .ast-grid-common-col' => array(
						'padding' => '0',
					),
					'.ast-comment-formwrap'           => array(
						'padding'      => '0',
						'display'      => 'inline-flex',
						'column-gap'   => '20px',
						'width'        => '100%',
						'margin-left'  => '0',
						'margin-right' => '0',
					),
					'.comments-area textarea#comment:focus, .comments-area textarea#comment:active, .comments-area .ast-comment-formwrap input[type="text"]:focus, .comments-area .ast-comment-formwrap input[type="text"]:active ' => array(
						'box-shadow' => 'none',
						'outline'    => 'none',
					),
					'.archive.ast-page-builder-template .entry-header' => array(
						'margin-top' => '2em',
					),
					'.ast-page-builder-template .ast-comment-formwrap' => array(
						'width' => '100%',
					),
					'.entry-title'                    => array(
						'margin-bottom' => self::astra_4_6_0_compatibility() ? '0.6em' : '0.5em',
					),
					'.ast-archive-description p'      => array(
						'font-size'   => 'inherit',
						'font-weight' => 'inherit',
						'line-height' => 'inherit',
					),
				);
				if ( ! self::astra_4_6_0_compatibility() ) {
					$default_layout_update_css['.ast-separate-container .ast-comment-list li.depth-1, .hentry'] = array(
						'margin-bottom' => '2em',
					);
				} else {
					if ( is_single() && astra_get_option( 'single-content-images-shadow', false ) ) {
						$default_layout_update_css['.ast-article-single img'] = array(
							'box-shadow'         => '0 0 30px 0 rgba(0,0,0,.15)',
							'-webkit-box-shadow' => '0 0 30px 0 rgba(0,0,0,.15)',
							'-moz-box-shadow'    => '0 0 30px 0 rgba(0,0,0,.15)',
						);
					}
					$default_layout_update_css['.ast-separate-container .ast-comment-list li.depth-1, .hentry'] = array(
						'margin-bottom' => '1.5em',
					);
					$default_layout_update_css['.site-content section.ast-archive-description']                 = array(
						'margin-bottom' => '2em',
					);

					// Search page.
					if ( is_search() ) {
						$default_layout_update_css['.no-results']                                       = array(
							'text-align' => 'center',
						);
						$default_layout_update_css['.no-results .search-form']                          = array(
							'max-width' => '370px',
							'margin'    => '0 auto',
						);
						$default_layout_update_css['.no-results .search-field']                         = array(
							'width' => '100%',
						);
						$default_layout_update_css['.search .site-main .no-results .ast-search-submit'] = array(
							'display' => 'block',
						);
						$default_layout_update_css['.search .site-main .no-results .ast-live-search-results'] = array(
							'max-height' => '200px',
						);
					}
				}
				/* Parse CSS from array() -> Desktop CSS */
				$parse_css .= astra_parse_css( $default_layout_update_css );

				$default_tablet_layout_css = array(
					'.ast-left-sidebar.ast-page-builder-template #secondary, .archive.ast-right-sidebar.ast-page-builder-template .site-main' => array(
						'padding-' . $ltr_left  => '20px',
						'padding-' . $ltr_right => '20px',
					),
				);

				/* Parse CSS from array() -> min-width: tablet-breakpoint CSS */
				$parse_css .= astra_parse_css( $default_tablet_layout_css, astra_get_tablet_breakpoint() );

				$default_mobile_layout_css = array(
					'.ast-comment-formwrap.ast-row' => array(
						'column-gap' => '10px',
						'display'    => 'inline-block',
					),
					'#ast-commentform .ast-grid-common-col' => array(
						'position' => 'relative',
						'width'    => '100%',
					),
				);

				/* Parse CSS from array() -> max-width: mobile-breakpoint CSS */
				$parse_css .= astra_parse_css( $default_mobile_layout_css, '', astra_get_mobile_breakpoint() );

				if ( is_user_logged_in() ) {
					$admin_bar_specific_page_css = array(
						'.admin-bar #page' => array(
							'min-height' => 'calc(100vh - 32px)',
						),
					);
					$parse_css                  .= astra_parse_css( $admin_bar_specific_page_css );

					$admin_bar_responsive_page_css = array(
						'.admin-bar #page' => array(
							'min-height' => 'calc(100vh - 46px)',
						),
					);
					$parse_css                    .= astra_parse_css( $admin_bar_responsive_page_css, '', '782' );
				}

				$default_medium_layout_css = array(
					'.ast-separate-container .ast-article-post, .ast-separate-container .ast-article-single, .ast-separate-container .ast-author-box, .ast-separate-container .ast-404-layout-1, .ast-separate-container .no-results' => array(
						'padding' => self::astra_4_6_0_compatibility() && is_single() ? '2.5em' : '3em',
					),
				);

				/* Parse CSS from array() -> min-width: 1201px CSS */
				$parse_css .= astra_parse_css( $default_medium_layout_css, '1201' );

				if ( is_author() ) {
					$default_author_css = array(
						'.ast-author-box img.avatar' => array(
							'margin' => '0',
						),
					);
					/* Parse CSS from array() -> Desktop CSS */
					$parse_css                    .= astra_parse_css( $default_author_css );
					$default_tablet_min_author_css = array(
						'.ast-author-box img.avatar' => array(
							'width'  => '100px',
							'height' => '100px',
						),
						'.ast-author-box'            => array(
							'column-gap' => '50px',
						),
					);
					/* Parse CSS from array() -> min-width: (tablet-breakpoint) CSS */
					$parse_css                    .= astra_parse_css( $default_tablet_min_author_css, astra_get_tablet_breakpoint() );
					$default_max_tablet_author_css = array(
						'.ast-author-avatar' => array(
							'margin-top' => '20px',
						),
					);
					/* Parse CSS from array() -> max-width: (tablet-breakpoint) CSS */
					$parse_css                             .= astra_parse_css( $default_max_tablet_author_css, '', astra_get_tablet_breakpoint() );
					$default_tablet_min_extra_px_author_css = array(
						'.ast-author-box' => array(
							'align-items' => 'center',
						),
					);
					/* Parse CSS from array() -> min-width: (tablet-breakpoint + 1) CSS */
					$parse_css .= astra_parse_css( $default_tablet_min_extra_px_author_css, astra_get_tablet_breakpoint( '', 1 ) );
				}
			} else {
				$static_layout_css['.ast-separate-container .ast-article-post, .ast-separate-container .ast-article-single'] = array(
					'padding' => '1.5em 2.14em',
				);
				$static_layout_css['.ast-author-box img.avatar'] = array(
					'margin' => '20px 0 0 0',
				);
			}

			// Handle backward compatibility for Elementor Loop block post div container padding.
			if ( defined( 'ELEMENTOR_PRO_VERSION' ) && $elementor_container_padding_style_comp ) {
				$elementor_base_css['.elementor-loop-container .e-loop-item, .elementor-loop-container .ast-separate-container .ast-article-post, .elementor-loop-container .ast-separate-container .ast-article-single, .elementor-loop-container .ast-separate-container .comment-respond'] = array(
					'padding' => '0px',
				);
				$parse_css .= astra_parse_css( $elementor_base_css );
			}

			/* Parse CSS from array() -> max-width: (tablet-breakpoint)px CSS */
			$parse_css .= astra_parse_css( $static_layout_css, '', astra_get_tablet_breakpoint() );

			if ( is_author() && false === $update_customizer_strctural_defaults ) {
				$parse_css .= astra_parse_css(
					array(
						'.ast-author-box img.avatar' => array(
							'margin' => '20px 0 0 0',
						),
					),
					astra_get_tablet_breakpoint()
				);
			}

			if ( 'no-sidebar' !== astra_page_layout() ) {
				$static_secondary_layout_css = array(
					'#secondary.secondary' => array(
						'padding-top' => 0,
					),
					'.ast-separate-container.ast-right-sidebar #secondary' => array(
						'padding-left'  => '1em',
						'padding-right' => '1em',
					),
					'.ast-separate-container.ast-two-container #secondary' => array(
						'padding-left'  => 0,
						'padding-right' => 0,
					),
					'.ast-page-builder-template .entry-header #secondary, .ast-page-builder-template #secondary' => array(
						'margin-top' => '1.5em',
					),
				);
				$parse_css                  .= astra_parse_css( $static_secondary_layout_css, '', astra_get_tablet_breakpoint() );
			}

			if ( 'no-sidebar' !== astra_page_layout() ) {
				if ( $is_site_rtl ) {
					$static_layout_lang_direction_css = array(
						'.ast-right-sidebar #primary'  => array(
							'padding-left' => 0,
						),
						'.ast-page-builder-template.ast-left-sidebar #secondary, ast-page-builder-template.ast-right-sidebar #secondary' => array(
							'padding-left'  => '20px',
							'padding-right' => '20px',
						),
						'.ast-right-sidebar #secondary, .ast-left-sidebar #primary' => array(
							'padding-right' => 0,
						),
						'.ast-left-sidebar #secondary' => array(
							'padding-left' => 0,
						),
					);
				} else {
						$static_layout_lang_direction_css = array(
							'.ast-right-sidebar #primary'  => array(
								'padding-right' => 0,
							),
							'.ast-page-builder-template.ast-left-sidebar #secondary, .ast-page-builder-template.ast-right-sidebar #secondary' => array(
								'padding-right' => '20px',
								'padding-left'  => '20px',
							),
							'.ast-right-sidebar #secondary, .ast-left-sidebar #primary' => array(
								'padding-left' => 0,
							),
							'.ast-left-sidebar #secondary' => array(
								'padding-right' => 0,
							),
						);
				}
				/* Parse CSS from array() -> max-width: (tablet-breakpoint)px CSS */
				$parse_css .= astra_parse_css( $static_layout_lang_direction_css, '', astra_get_tablet_breakpoint() );
			}

			$static_layout_css_min = array(
				'.ast-separate-container.ast-right-sidebar #primary, .ast-separate-container.ast-left-sidebar #primary' => array(
					'border' => 0,
				),
				'.search-no-results.ast-separate-container #primary' => array(
					'margin-bottom' => '4em',
				),
			);

			if ( is_author() ) {
				$author_table_css      = array(
					'.ast-author-box' => array(
						'-js-display' => 'flex',
						'display'     => 'flex',
					),
					'.ast-author-bio' => array(
						'flex' => '1',
					),
				);
				$static_layout_css_min = array_merge( $static_layout_css_min, $author_table_css );
			}

			/* Parse CSS from array() -> min-width: (tablet-breakpoint + 1)px CSS */
			$parse_css .= astra_parse_css( $static_layout_css_min, astra_get_tablet_breakpoint( '', '1' ) );

			// 404 Page.
			if ( is_404() ) {

				$page_404   = array(
					'.ast-404-layout-1 .ast-404-text' => array(
						'font-size' => astra_get_font_css_value( '200' ),
					),
				);
				$parse_css .= astra_parse_css( $page_404 );

				$parse_css .= astra_parse_css(
					array(
						'.error404.ast-separate-container #primary' => array(
							'margin-bottom' => '4em',
						),
					),
					astra_get_tablet_breakpoint( '', '1' )
				);

				$parse_css .= astra_parse_css(
					array(
						'.ast-404-layout-1 .ast-404-text' => array(
							'font-size' => astra_get_font_css_value( 100 ),
						),
					),
					'',
					'920'
				);
			}

			if ( 'no-sidebar' !== astra_page_layout() ) {

				if ( $is_site_rtl ) {
					$static_layout_min_lang_direction_css = array(
						'.ast-right-sidebar #primary'   => array(
							'border-left' => '1px solid var(--ast-border-color)',
						),
						'.ast-right-sidebar #secondary' => array(
							'border-right' => '1px solid var(--ast-border-color)',
							'margin-right' => '-1px',
						),
						'.ast-left-sidebar #primary'    => array(
							'border-right' => '1px solid var(--ast-border-color)',
						),
						'.ast-left-sidebar #secondary'  => array(
							'border-left' => '1px solid var(--ast-border-color)',
							'margin-left' => '-1px',
						),
						'.ast-separate-container.ast-two-container.ast-right-sidebar #secondary' => array(
							'padding-right' => '30px',
							'padding-left'  => 0,
						),
						'.ast-separate-container.ast-two-container.ast-left-sidebar #secondary' => array(
							'padding-left'  => '30px',
							'padding-right' => 0,
						),
						'.ast-separate-container.ast-right-sidebar #secondary, .ast-separate-container.ast-left-sidebar #secondary' => array(
							'border'       => 0,
							'margin-left'  => 'auto',
							'margin-right' => 'auto',
						),
						'.ast-separate-container.ast-two-container #secondary .widget:last-child' => array(
							'margin-bottom' => 0,
						),
					);
				} else {
					$static_layout_min_lang_direction_css = array(
						'.ast-right-sidebar #primary'   => array(
							'border-right' => '1px solid var(--ast-border-color)',
						),
						'.ast-left-sidebar #primary'    => array(
							'border-left' => '1px solid var(--ast-border-color)',
						),
						'.ast-right-sidebar #secondary' => array(
							'border-left' => '1px solid var(--ast-border-color)',
							'margin-left' => '-1px',
						),
						'.ast-left-sidebar #secondary'  => array(
							'border-right' => '1px solid var(--ast-border-color)',
							'margin-right' => '-1px',
						),
						'.ast-separate-container.ast-two-container.ast-right-sidebar #secondary' => array(
							'padding-left'  => '30px',
							'padding-right' => 0,
						),
						'.ast-separate-container.ast-two-container.ast-left-sidebar #secondary' => array(
							'padding-right' => '30px',
							'padding-left'  => 0,
						),
						'.ast-separate-container.ast-right-sidebar #secondary, .ast-separate-container.ast-left-sidebar #secondary' => array(
							'border'       => 0,
							'margin-left'  => 'auto',
							'margin-right' => 'auto',
						),
						'.ast-separate-container.ast-two-container #secondary .widget:last-child' => array(
							'margin-bottom' => 0,
						),
					);
				}

				/* Parse CSS from array() -> min-width: (tablet-breakpoint + 1)px CSS */
				$parse_css .= astra_parse_css( $static_layout_min_lang_direction_css, astra_get_tablet_breakpoint( '', '1' ) );
			}

			/**
			 * Elementor & Gutenberg button backward compatibility for default styling.
			 */
			if ( self::page_builder_button_style_css() ) {

				$search_button_selector       = ! $block_editor_legacy_setup || $is_wp_5_8_support_enabled ? ', form[CLASS*="wp-block-search__"].wp-block-search .wp-block-search__inside-wrapper .wp-block-search__button' : '';
				$search_button_hover_selector = ! $block_editor_legacy_setup || $is_wp_5_8_support_enabled ? ', form[CLASS*="wp-block-search__"].wp-block-search .wp-block-search__inside-wrapper .wp-block-search__button:hover, form[CLASS*="wp-block-search__"].wp-block-search .wp-block-search__inside-wrapper .wp-block-search__button:focus' : '';

				$file_block_button_selector             = ! $block_editor_legacy_setup || $improve_gb_ui ? ', body .wp-block-file .wp-block-file__button' : '';
				$file_block_button_hover_selector       = ! $block_editor_legacy_setup || $improve_gb_ui ? ', body .wp-block-file .wp-block-file__button:hover, body .wp-block-file .wp-block-file__button:focus' : '';
				$search_page_btn_selector               = true === $update_customizer_strctural_defaults ? ', .search .search-submit' : '';
				$woo_btns_selector                      = true === self::astra_woo_support_global_settings() ? ', .woocommerce-js a.button, .woocommerce button.button, .woocommerce .woocommerce-message a.button, .woocommerce #respond input#submit.alt, .woocommerce input.button.alt, .woocommerce input.button,.woocommerce input.button:disabled, .woocommerce input.button:disabled[disabled], .woocommerce input.button:disabled:hover, .woocommerce input.button:disabled[disabled]:hover, .woocommerce #respond input#submit, .woocommerce button.button.alt.disabled, .wc-block-grid__products .wc-block-grid__product .wp-block-button__link, .wc-block-grid__product-onsale, [CLASS*="wc-block"] button, .woocommerce-js .astra-cart-drawer .astra-cart-drawer-content .woocommerce-mini-cart__buttons .button:not(.checkout):not(.ast-continue-shopping), .woocommerce-js .astra-cart-drawer .astra-cart-drawer-content .woocommerce-mini-cart__buttons a.checkout, .woocommerce button.button.alt.disabled.wc-variation-selection-needed, [CLASS*="wc-block"] .wc-block-components-button' : '';
				$woo_btns_hover_selector                = true === self::astra_woo_support_global_settings() ? ', .woocommerce-js a.button:hover, .woocommerce button.button:hover, .woocommerce .woocommerce-message a.button:hover,.woocommerce #respond input#submit:hover,.woocommerce #respond input#submit.alt:hover, .woocommerce input.button.alt:hover, .woocommerce input.button:hover, .woocommerce button.button.alt.disabled:hover, .wc-block-grid__products .wc-block-grid__product .wp-block-button__link:hover, [CLASS*="wc-block"] button:hover, .woocommerce-js .astra-cart-drawer .astra-cart-drawer-content .woocommerce-mini-cart__buttons .button:not(.checkout):not(.ast-continue-shopping):hover, .woocommerce-js .astra-cart-drawer .astra-cart-drawer-content .woocommerce-mini-cart__buttons a.checkout:hover, .woocommerce button.button.alt.disabled.wc-variation-selection-needed:hover, [CLASS*="wc-block"] .wc-block-components-button:hover, [CLASS*="wc-block"] .wc-block-components-button:focus' : '';
				$v4_2_2_core_form_btns_styling_selector = true === self::astra_core_form_btns_styling() ? ', #comments .submit, .search .search-submit' : '';

				/**
				 * Global button CSS - Desktop.
				 */
				$global_button_desktop = array(
					'.menu-toggle, button, .ast-button, .ast-custom-button, .button, input#submit, input[type="button"], input[type="submit"], input[type="reset"]' . $v4_2_2_core_form_btns_styling_selector . $search_button_selector . $file_block_button_selector . $search_page_btn_selector . $woo_btns_selector => array(
						'border-style'               => 'solid',
						'border-top-width'           => isset( $global_custom_button_border_size['top'] ) && '' !== $global_custom_button_border_size['top'] ? astra_get_css_value( $global_custom_button_border_size['top'], 'px' ) : '0',
						'border-right-width'         => isset( $global_custom_button_border_size['right'] ) && '' !== $global_custom_button_border_size['right'] ? astra_get_css_value( $global_custom_button_border_size['right'], 'px' ) : '0',
						'border-left-width'          => isset( $global_custom_button_border_size['left'] ) && '' !== $global_custom_button_border_size['left'] ? astra_get_css_value( $global_custom_button_border_size['left'], 'px' ) : '0',
						'border-bottom-width'        => isset( $global_custom_button_border_size['bottom'] ) && '' !== $global_custom_button_border_size['bottom'] ? astra_get_css_value( $global_custom_button_border_size['bottom'], 'px' ) : '0',
						'color'                      => esc_attr( $btn_text_color ),
						'border-color'               => empty( $btn_border_color ) ? esc_attr( $btn_bg_color ) : esc_attr( $btn_border_color ),
						'background-color'           => esc_attr( $btn_bg_color ),
						'padding-top'                => astra_responsive_spacing( $theme_btn_padding, 'top', 'desktop' ),
						'padding-right'              => astra_responsive_spacing( $theme_btn_padding, 'right', 'desktop' ),
						'padding-bottom'             => astra_responsive_spacing( $theme_btn_padding, 'bottom', 'desktop' ),
						'padding-left'               => astra_responsive_spacing( $theme_btn_padding, 'left', 'desktop' ),
						'font-family'                => astra_get_font_family( $theme_btn_font_family ),
						'font-weight'                => esc_attr( $theme_btn_font_weight ),
						'font-size'                  => astra_get_font_css_value( $theme_btn_font_size['desktop'], $theme_btn_font_size['desktop-unit'] ),
						'line-height'                => esc_attr( $theme_btn_line_height ),
						'text-transform'             => esc_attr( $theme_btn_text_transform ),
						'text-decoration'            => esc_attr( $theme_btn_text_decoration ),
						'letter-spacing'             => esc_attr( $theme_btn_letter_spacing ),
						'border-top-left-radius'     => astra_responsive_spacing( $btn_border_radius_fields, 'top', 'desktop' ),
						'border-top-right-radius'    => astra_responsive_spacing( $btn_border_radius_fields, 'right', 'desktop' ),
						'border-bottom-right-radius' => astra_responsive_spacing( $btn_border_radius_fields, 'bottom', 'desktop' ),
						'border-bottom-left-radius'  => astra_responsive_spacing( $btn_border_radius_fields, 'left', 'desktop' ),
					),
					'button:focus, .menu-toggle:hover, button:hover, .ast-button:hover, .ast-custom-button:hover .button:hover, .ast-custom-button:hover , input[type=reset]:hover, input[type=reset]:focus, input#submit:hover, input#submit:focus, input[type="button"]:hover, input[type="button"]:focus, input[type="submit"]:hover, input[type="submit"]:focus' . $search_button_hover_selector . $file_block_button_hover_selector . $woo_btns_hover_selector => array(
						'color'            => esc_attr( $btn_text_hover_color ),
						'background-color' => esc_attr( $btn_bg_hover_color ),
						'border-color'     => empty( $btn_border_h_color ) ? esc_attr( $btn_bg_hover_color ) : esc_attr( $btn_border_h_color ),

					),
				);

				/**
				 * Global button CSS - Tablet.
				 */
				$global_button_tablet = array(
					'.menu-toggle, button, .ast-button, .ast-custom-button, .button, input#submit, input[type="button"], input[type="submit"], input[type="reset"]' . $v4_2_2_core_form_btns_styling_selector . $search_button_selector . $file_block_button_selector . $search_page_btn_selector . $woo_btns_selector => array(
						'padding-top'                => astra_responsive_spacing( $theme_btn_padding, 'top', 'tablet' ),
						'padding-right'              => astra_responsive_spacing( $theme_btn_padding, 'right', 'tablet' ),
						'padding-bottom'             => astra_responsive_spacing( $theme_btn_padding, 'bottom', 'tablet' ),
						'padding-left'               => astra_responsive_spacing( $theme_btn_padding, 'left', 'tablet' ),
						'font-size'                  => astra_responsive_font( $theme_btn_font_size, 'tablet' ),
						'border-top-left-radius'     => astra_responsive_spacing( $btn_border_radius_fields, 'top', 'tablet' ),
						'border-top-right-radius'    => astra_responsive_spacing( $btn_border_radius_fields, 'right', 'tablet' ),
						'border-bottom-right-radius' => astra_responsive_spacing( $btn_border_radius_fields, 'bottom', 'tablet' ),
						'border-bottom-left-radius'  => astra_responsive_spacing( $btn_border_radius_fields, 'left', 'tablet' ),
					),
				);

				/**
				 * Global button CSS - Mobile.
				 */
				$global_button_mobile = array(
					'.menu-toggle, button, .ast-button, .ast-custom-button, .button, input#submit, input[type="button"], input[type="submit"], input[type="reset"]' . $v4_2_2_core_form_btns_styling_selector . $search_button_selector . $file_block_button_selector . $search_page_btn_selector . $woo_btns_selector => array(
						'padding-top'                => astra_responsive_spacing( $theme_btn_padding, 'top', 'mobile' ),
						'padding-right'              => astra_responsive_spacing( $theme_btn_padding, 'right', 'mobile' ),
						'padding-bottom'             => astra_responsive_spacing( $theme_btn_padding, 'bottom', 'mobile' ),
						'padding-left'               => astra_responsive_spacing( $theme_btn_padding, 'left', 'mobile' ),
						'font-size'                  => astra_responsive_font( $theme_btn_font_size, 'mobile' ),
						'border-top-left-radius'     => astra_responsive_spacing( $btn_border_radius_fields, 'top', 'mobile' ),
						'border-top-right-radius'    => astra_responsive_spacing( $btn_border_radius_fields, 'right', 'mobile' ),
						'border-bottom-right-radius' => astra_responsive_spacing( $btn_border_radius_fields, 'bottom', 'mobile' ),
						'border-bottom-left-radius'  => astra_responsive_spacing( $btn_border_radius_fields, 'left', 'mobile' ),
					),
				);

				$btn_text_color_selectors = '.wp-block-button .wp-block-button__link';

				$extra_body_class = $add_body_class ? 'body ' : '';

				if ( 'color-typo' === self::elementor_default_color_font_setting() || 'color' === self::elementor_default_color_font_setting() || 'typo' === self::elementor_default_color_font_setting() ) {
					$ele_btn_default_desktop = array(
						'.elementor-button-wrapper .elementor-button' => array(
							'border-style'        => 'solid',
							'text-decoration'     => 'none',
							'border-top-width'    => isset( $global_custom_button_border_size['top'] ) && '' !== $global_custom_button_border_size['top'] ? astra_get_css_value( $global_custom_button_border_size['top'], 'px' ) : '0',
							'border-right-width'  => isset( $global_custom_button_border_size['right'] ) && '' !== $global_custom_button_border_size['right'] ? astra_get_css_value( $global_custom_button_border_size['right'], 'px' ) : '0',
							'border-left-width'   => isset( $global_custom_button_border_size['left'] ) && '' !== $global_custom_button_border_size['left'] ? astra_get_css_value( $global_custom_button_border_size['left'], 'px' ) : '0',
							'border-bottom-width' => isset( $global_custom_button_border_size['bottom'] ) && '' !== $global_custom_button_border_size['bottom'] ? astra_get_css_value( $global_custom_button_border_size['bottom'], 'px' ) : '0',
						),
						$extra_body_class . '.elementor-button.elementor-size-sm, ' . $extra_body_class . '.elementor-button.elementor-size-xs, ' . $extra_body_class . '.elementor-button.elementor-size-md, ' . $extra_body_class . '.elementor-button.elementor-size-lg, ' . $extra_body_class . '.elementor-button.elementor-size-xl, ' . $extra_body_class . '.elementor-button' => array(
							'border-top-left-radius'     => astra_responsive_spacing( $btn_border_radius_fields, 'top', 'desktop' ),
							'border-top-right-radius'    => astra_responsive_spacing( $btn_border_radius_fields, 'right', 'desktop' ),
							'border-bottom-right-radius' => astra_responsive_spacing( $btn_border_radius_fields, 'bottom', 'desktop' ),
							'border-bottom-left-radius'  => astra_responsive_spacing( $btn_border_radius_fields, 'left', 'desktop' ),
							'padding-top'                => astra_responsive_spacing( $theme_btn_padding, 'top', 'desktop' ),
							'padding-right'              => astra_responsive_spacing( $theme_btn_padding, 'right', 'desktop' ),
							'padding-bottom'             => astra_responsive_spacing( $theme_btn_padding, 'bottom', 'desktop' ),
							'padding-left'               => astra_responsive_spacing( $theme_btn_padding, 'left', 'desktop' ),
						),
					);

					/* Parse CSS from array() */
					$parse_css .= astra_parse_css( $ele_btn_default_desktop );

					$ele_btn_default_tablet = array(
						'.elementor-button-wrapper .elementor-button.elementor-size-sm, .elementor-button-wrapper .elementor-button.elementor-size-xs, .elementor-button-wrapper .elementor-button.elementor-size-md, .elementor-button-wrapper .elementor-button.elementor-size-lg, .elementor-button-wrapper .elementor-button.elementor-size-xl, .elementor-button-wrapper .elementor-button' => array(
							'padding-top'                => astra_responsive_spacing( $theme_btn_padding, 'top', 'tablet' ),
							'padding-right'              => astra_responsive_spacing( $theme_btn_padding, 'right', 'tablet' ),
							'padding-bottom'             => astra_responsive_spacing( $theme_btn_padding, 'bottom', 'tablet' ),
							'padding-left'               => astra_responsive_spacing( $theme_btn_padding, 'left', 'tablet' ),
							'border-top-left-radius'     => astra_responsive_spacing( $btn_border_radius_fields, 'top', 'tablet' ),
							'border-top-right-radius'    => astra_responsive_spacing( $btn_border_radius_fields, 'right', 'tablet' ),
							'border-bottom-right-radius' => astra_responsive_spacing( $btn_border_radius_fields, 'bottom', 'tablet' ),
							'border-bottom-left-radius'  => astra_responsive_spacing( $btn_border_radius_fields, 'left', 'tablet' ),
						),
					);

					/* Parse CSS from array() */
					$parse_css .= astra_parse_css( $ele_btn_default_tablet, '', astra_get_tablet_breakpoint() );

					$ele_btn_default_mobile = array(
						'.elementor-button-wrapper .elementor-button.elementor-size-sm, .elementor-button-wrapper .elementor-button.elementor-size-xs, .elementor-button-wrapper .elementor-button.elementor-size-md, .elementor-button-wrapper .elementor-button.elementor-size-lg, .elementor-button-wrapper .elementor-button.elementor-size-xl, .elementor-button-wrapper .elementor-button' => array(
							'padding-top'                => astra_responsive_spacing( $theme_btn_padding, 'top', 'mobile' ),
							'padding-right'              => astra_responsive_spacing( $theme_btn_padding, 'right', 'mobile' ),
							'padding-bottom'             => astra_responsive_spacing( $theme_btn_padding, 'bottom', 'mobile' ),
							'padding-left'               => astra_responsive_spacing( $theme_btn_padding, 'left', 'mobile' ),
							'border-top-left-radius'     => astra_responsive_spacing( $btn_border_radius_fields, 'top', 'mobile' ),
							'border-top-right-radius'    => astra_responsive_spacing( $btn_border_radius_fields, 'right', 'mobile' ),
							'border-bottom-right-radius' => astra_responsive_spacing( $btn_border_radius_fields, 'bottom', 'mobile' ),
							'border-bottom-left-radius'  => astra_responsive_spacing( $btn_border_radius_fields, 'left', 'mobile' ),
						),
					);

					/* Parse CSS from array() */
					$parse_css .= astra_parse_css( $ele_btn_default_mobile, '', astra_get_mobile_breakpoint() );
				}

				if ( 'color-typo' === self::elementor_default_color_font_setting() || 'color' === self::elementor_default_color_font_setting() ) {
					// Check if Global Elementor - Theme Style - button color is set. If yes then remove ( :visited ) CSS for the compatibility.
					if ( false === self::is_elementor_kit_button_color_set() ) {
						$btn_text_color_selectors .= ' , .elementor-button-wrapper .elementor-button, .elementor-button-wrapper .elementor-button:visited';
					} else {
						$btn_text_color_selectors .= ' , .elementor-button-wrapper .elementor-button';
					}

					$ele_btn_color_builder_desktop = array(
						'.elementor-button-wrapper .elementor-button' => array(
							'border-color'     => empty( $btn_border_color ) ? esc_attr( $btn_bg_color ) : esc_attr( $btn_border_color ),
							'background-color' => esc_attr( $btn_bg_color ),
						),
						'.elementor-button-wrapper .elementor-button:hover, .elementor-button-wrapper .elementor-button:focus' => array(
							'color'            => esc_attr( $btn_text_hover_color ),
							'background-color' => esc_attr( $btn_bg_hover_color ),
							'border-color'     => empty( $btn_border_h_color ) ? esc_attr( $btn_bg_hover_color ) : esc_attr( $btn_border_h_color ),

						),
					);

					/* Parse CSS from array() */
					$parse_css .= astra_parse_css( $ele_btn_color_builder_desktop );
				}

				$global_button_page_builder_text_color_desktop = array(
					$btn_text_color_selectors => array(
						'color' => esc_attr( $btn_text_color ),
					),
				);

				/* Parse CSS from array() */
				$parse_css .= astra_parse_css( $global_button_page_builder_text_color_desktop );

				if ( 'color-typo' === self::elementor_default_color_font_setting() || 'typo' === self::elementor_default_color_font_setting() ) {
					$ele_btn_typo_builder_desktop = array(
						'.elementor-button-wrapper .elementor-button' => astra_get_font_array_css( astra_get_option( 'font-family-button' ), astra_get_option( 'font-weight-button' ), $theme_btn_font_size, 'font-extras-button' ),
						'body .elementor-button.elementor-size-sm, body .elementor-button.elementor-size-xs, body .elementor-button.elementor-size-md, body .elementor-button.elementor-size-lg, body .elementor-button.elementor-size-xl, body .elementor-button' => array(
							'font-size' => astra_responsive_font( $theme_btn_font_size, 'desktop' ),
						),
					);

					/* Parse CSS from array() */
					$parse_css .= astra_parse_css( $ele_btn_typo_builder_desktop );
				}

				$global_button_page_builder_desktop = array(
					'.wp-block-button .wp-block-button__link:hover, .wp-block-button .wp-block-button__link:focus' => array(
						'color'            => esc_attr( $btn_text_hover_color ),
						'background-color' => esc_attr( $btn_bg_hover_color ),
						'border-color'     => empty( $btn_border_h_color ) ? esc_attr( $btn_bg_hover_color ) : esc_attr( $btn_border_h_color ),
					),
				);

				if ( defined( 'ELEMENTOR_VERSION' ) ) {
					$global_button_page_builder_desktop = array_merge(
						$global_button_page_builder_desktop,
						array(
							'.elementor-widget-heading h1.elementor-heading-title' => array(
								'line-height' => esc_attr( $h1_line_height ),
							),
							'.elementor-widget-heading h2.elementor-heading-title' => array(
								'line-height' => esc_attr( $h2_line_height ),
							),
							'.elementor-widget-heading h3.elementor-heading-title' => array(
								'line-height' => esc_attr( $h3_line_height ),
							),
							'.elementor-widget-heading h4.elementor-heading-title' => array(
								'line-height' => esc_attr( $h4_line_height ),
							),
							'.elementor-widget-heading h5.elementor-heading-title' => array(
								'line-height' => esc_attr( $h5_line_height ),
							),
							'.elementor-widget-heading h6.elementor-heading-title' => array(
								'line-height' => esc_attr( $h6_line_height ),
							),
						)
					);
				}

				if ( $block_editor_legacy_setup && self::gutenberg_core_patterns_compat() && ! astra_button_default_padding_updated() ) {
					$theme_outline_gb_btn_top_border    = isset( $global_custom_button_border_size['top'] ) && ( '' !== $global_custom_button_border_size['top'] && '0' !== $global_custom_button_border_size['top'] ) ? astra_get_css_value( $global_custom_button_border_size['top'], 'px' ) : '2px';
					$theme_outline_gb_btn_right_border  = isset( $global_custom_button_border_size['right'] ) && ( '' !== $global_custom_button_border_size['right'] && '0' !== $global_custom_button_border_size['right'] ) ? astra_get_css_value( $global_custom_button_border_size['right'], 'px' ) : '2px';
					$theme_outline_gb_btn_bottom_border = isset( $global_custom_button_border_size['bottom'] ) && ( '' !== $global_custom_button_border_size['bottom'] && '0' !== $global_custom_button_border_size['bottom'] ) ? astra_get_css_value( $global_custom_button_border_size['bottom'], 'px' ) : '2px';
					$theme_outline_gb_btn_left_border   = isset( $global_custom_button_border_size['left'] ) && ( '' !== $global_custom_button_border_size['left'] && '0' !== $global_custom_button_border_size['left'] ) ? astra_get_css_value( $global_custom_button_border_size['left'], 'px' ) : '2px';

					$global_button_page_builder_desktop['.wp-block-button .wp-block-button__link']                  = array(
						'border'                     => 'none',
						'background-color'           => esc_attr( $btn_bg_color ),
						'color'                      => esc_attr( $btn_text_color ),
						'font-family'                => astra_get_font_family( $theme_btn_font_family ),
						'font-weight'                => esc_attr( $theme_btn_font_weight ),
						'line-height'                => esc_attr( $theme_btn_line_height ),
						'text-transform'             => esc_attr( $theme_btn_text_transform ),
						'text-decoration'            => esc_attr( $theme_btn_text_decoration ),
						'letter-spacing'             => esc_attr( $theme_btn_letter_spacing ),
						'font-size'                  => astra_responsive_font( $theme_btn_font_size, 'desktop' ),
						'padding'                    => '15px 30px',
						'border-top-left-radius'     => astra_responsive_spacing( $btn_border_radius_fields, 'top', 'desktop' ),
						'border-top-right-radius'    => astra_responsive_spacing( $btn_border_radius_fields, 'right', 'desktop' ),
						'border-bottom-right-radius' => astra_responsive_spacing( $btn_border_radius_fields, 'bottom', 'desktop' ),
						'border-bottom-left-radius'  => astra_responsive_spacing( $btn_border_radius_fields, 'left', 'desktop' ),
					);
					$global_button_page_builder_desktop['.wp-block-button.is-style-outline .wp-block-button__link'] = array(
						'border-style'        => 'solid',
						'border-top-width'    => esc_attr( $theme_outline_gb_btn_top_border ),
						'border-right-width'  => esc_attr( $theme_outline_gb_btn_right_border ),
						'border-left-width'   => esc_attr( $theme_outline_gb_btn_left_border ),
						'border-bottom-width' => esc_attr( $theme_outline_gb_btn_bottom_border ),
						'border-color'        => empty( $btn_border_color ) ? esc_attr( $btn_bg_color ) : esc_attr( $btn_border_color ),
						'padding-top'         => 'calc(15px - ' . (int) $theme_outline_gb_btn_top_border . 'px)',
						'padding-right'       => 'calc(30px - ' . (int) $theme_outline_gb_btn_right_border . 'px)',
						'padding-bottom'      => 'calc(15px - ' . (int) $theme_outline_gb_btn_bottom_border . 'px)',
						'padding-left'        => 'calc(30px - ' . (int) $theme_outline_gb_btn_left_border . 'px)',
					);

					$global_button_page_builder_tablet = array(
						'.wp-block-button .wp-block-button__link' => array(
							'font-size' => astra_responsive_font( $theme_btn_font_size, 'tablet' ),
							'border'    => 'none',
							'padding'   => '15px 30px',
						),
						'.wp-block-button.is-style-outline .wp-block-button__link' => array(
							'padding-top'    => 'calc(15px - ' . (int) $theme_btn_top_border . 'px)',
							'padding-right'  => 'calc(30px - ' . (int) $theme_btn_right_border . 'px)',
							'padding-bottom' => 'calc(15px - ' . (int) $theme_btn_bottom_border . 'px)',
							'padding-left'   => 'calc(30px - ' . (int) $theme_btn_left_border . 'px)',
						),
					);

					$global_button_page_builder_mobile = array(
						'.wp-block-button .wp-block-button__link' => array(
							'font-size' => astra_responsive_font( $theme_btn_font_size, 'mobile' ),
							'border'    => 'none',
							'padding'   => '15px 30px',
						),
						'.wp-block-button.is-style-outline .wp-block-button__link' => array(
							'padding-top'    => 'calc(15px - ' . (int) $theme_btn_top_border . 'px)',
							'padding-right'  => 'calc(30px - ' . (int) $theme_btn_right_border . 'px)',
							'padding-bottom' => 'calc(15px - ' . (int) $theme_btn_bottom_border . 'px)',
							'padding-left'   => 'calc(30px - ' . (int) $theme_btn_left_border . 'px)',
						),
					);
				} else {

					$default_border_size = '0';
					if ( astra_button_default_padding_updated() || ! $block_editor_legacy_setup ) {
						$default_border_size = '';
					}

					$selector = '.wp-block-button .wp-block-button__link';
					if ( ! $block_editor_legacy_setup ) {
						$selector .= ', .wp-block-search .wp-block-search__button, body .wp-block-file .wp-block-file__button';
					}

					$btn_top_border_size    = isset( $global_custom_button_border_size['top'] ) && '' !== $global_custom_button_border_size['top'] ? astra_get_css_value( $global_custom_button_border_size['top'], 'px' ) : $default_border_size;
					$btn_bottom_border_size = isset( $global_custom_button_border_size['bottom'] ) && '' !== $global_custom_button_border_size['bottom'] ? astra_get_css_value( $global_custom_button_border_size['bottom'], 'px' ) : $default_border_size;
					$btn_right_border_size  = isset( $global_custom_button_border_size['right'] ) && '' !== $global_custom_button_border_size['right'] ? astra_get_css_value( $global_custom_button_border_size['right'], 'px' ) : $default_border_size;
					$btn_left_border_size   = isset( $global_custom_button_border_size['left'] ) && '' !== $global_custom_button_border_size['left'] ? astra_get_css_value( $global_custom_button_border_size['left'], 'px' ) : $default_border_size;

					$global_button_page_builder_desktop[ $selector ] = array(
						'border-style'               => $btn_top_border_size || $btn_right_border_size || $btn_left_border_size || $btn_bottom_border_size ? 'solid' : '',
						'border-top-width'           => $btn_top_border_size,
						'border-right-width'         => $btn_right_border_size,
						'border-left-width'          => $btn_left_border_size,
						'border-bottom-width'        => $btn_bottom_border_size,
						'border-color'               => empty( $btn_border_color ) ? esc_attr( $btn_bg_color ) : esc_attr( $btn_border_color ),
						'background-color'           => esc_attr( $btn_bg_color ),
						'color'                      => esc_attr( $btn_text_color ),
						'font-family'                => astra_get_font_family( $theme_btn_font_family ),
						'font-weight'                => esc_attr( $theme_btn_font_weight ),
						'line-height'                => esc_attr( $theme_btn_line_height ),
						'text-transform'             => esc_attr( $theme_btn_text_transform ),
						'text-decoration'            => esc_attr( $theme_btn_text_decoration ),
						'letter-spacing'             => esc_attr( $theme_btn_letter_spacing ),
						'font-size'                  => astra_responsive_font( $theme_btn_font_size, 'desktop' ),
						'border-top-left-radius'     => astra_responsive_spacing( $btn_border_radius_fields, 'top', 'desktop' ),
						'border-top-right-radius'    => astra_responsive_spacing( $btn_border_radius_fields, 'right', 'desktop' ),
						'border-bottom-right-radius' => astra_responsive_spacing( $btn_border_radius_fields, 'bottom', 'desktop' ),
						'border-bottom-left-radius'  => astra_responsive_spacing( $btn_border_radius_fields, 'left', 'desktop' ),
						'padding-top'                => astra_responsive_spacing( $theme_btn_padding, 'top', 'desktop' ),
						'padding-right'              => astra_responsive_spacing( $theme_btn_padding, 'right', 'desktop' ),
						'padding-bottom'             => astra_responsive_spacing( $theme_btn_padding, 'bottom', 'desktop' ),
						'padding-left'               => astra_responsive_spacing( $theme_btn_padding, 'left', 'desktop' ),
					);

					if ( $content_links_underline && $button_styling_improved ) {
						$global_button_page_builder_desktop['.ast-single-post .entry-content .wp-block-button .wp-block-button__link, .ast-single-post .entry-content .wp-block-search .wp-block-search__button, body .entry-content .wp-block-file .wp-block-file__button'] = array(
							'text-decoration' => '' === $theme_btn_text_decoration || 'initial' === $theme_btn_text_decoration ? 'none' : esc_attr( $theme_btn_text_decoration ),
						);
					}

					$global_button_page_builder_tablet = array(
						$selector => array(
							'font-size'                  => astra_responsive_font( $theme_btn_font_size, 'tablet' ),
							'padding-top'                => astra_responsive_spacing( $theme_btn_padding, 'top', 'tablet' ),
							'padding-right'              => astra_responsive_spacing( $theme_btn_padding, 'right', 'tablet' ),
							'padding-bottom'             => astra_responsive_spacing( $theme_btn_padding, 'bottom', 'tablet' ),
							'padding-left'               => astra_responsive_spacing( $theme_btn_padding, 'left', 'tablet' ),
							'border-top-left-radius'     => astra_responsive_spacing( $btn_border_radius_fields, 'top', 'tablet' ),
							'border-top-right-radius'    => astra_responsive_spacing( $btn_border_radius_fields, 'right', 'tablet' ),
							'border-bottom-right-radius' => astra_responsive_spacing( $btn_border_radius_fields, 'bottom', 'tablet' ),
							'border-bottom-left-radius'  => astra_responsive_spacing( $btn_border_radius_fields, 'left', 'tablet' ),
						),
					);

					$global_button_page_builder_mobile = array(
						$selector => array(
							'font-size'                  => astra_responsive_font( $theme_btn_font_size, 'mobile' ),
							'padding-top'                => astra_responsive_spacing( $theme_btn_padding, 'top', 'mobile' ),
							'padding-right'              => astra_responsive_spacing( $theme_btn_padding, 'right', 'mobile' ),
							'padding-bottom'             => astra_responsive_spacing( $theme_btn_padding, 'bottom', 'mobile' ),
							'padding-left'               => astra_responsive_spacing( $theme_btn_padding, 'left', 'mobile' ),
							'border-top-left-radius'     => astra_responsive_spacing( $btn_border_radius_fields, 'top', 'mobile' ),
							'border-top-right-radius'    => astra_responsive_spacing( $btn_border_radius_fields, 'right', 'mobile' ),
							'border-bottom-right-radius' => astra_responsive_spacing( $btn_border_radius_fields, 'bottom', 'mobile' ),
							'border-bottom-left-radius'  => astra_responsive_spacing( $btn_border_radius_fields, 'left', 'mobile' ),
						),
					);
				}

				/* Parse CSS from array() */
				$parse_css .= astra_parse_css( $global_button_page_builder_desktop );

				/* Parse CSS from array() */
				$parse_css .= astra_parse_css( $global_button_page_builder_tablet, '', astra_get_tablet_breakpoint() );
				/* Parse CSS from array() */
				$parse_css .= astra_parse_css( $global_button_page_builder_mobile, '', astra_get_mobile_breakpoint() );

			} else {

				$search_button_selector       = $is_wp_5_8_support_enabled ? ', form[CLASS*="wp-block-search__"].wp-block-search .wp-block-search__inside-wrapper .wp-block-search__button' : '';
				$search_button_hover_selector = $is_wp_5_8_support_enabled ? ', form[CLASS*="wp-block-search__"].wp-block-search .wp-block-search__inside-wrapper .wp-block-search__button:hover, form[CLASS*="wp-block-search__"].wp-block-search .wp-block-search__inside-wrapper .wp-block-search__button:focus' : '';

				/**
				 * Global button CSS - Desktop.
				 */
				$global_button_desktop = array(
					'.menu-toggle, button, .ast-button, .ast-custom-button, .button, input#submit, input[type="button"], input[type="submit"], input[type="reset"]' . $search_button_selector => array(
						'color'                      => esc_attr( $btn_text_color ),
						'border-color'               => empty( $btn_border_color ) ? esc_attr( $btn_bg_color ) : esc_attr( $btn_border_color ),
						'background-color'           => esc_attr( $btn_bg_color ),
						'border-top-left-radius'     => astra_responsive_spacing( $btn_border_radius_fields, 'top', 'desktop' ),
						'border-top-right-radius'    => astra_responsive_spacing( $btn_border_radius_fields, 'right', 'desktop' ),
						'border-bottom-right-radius' => astra_responsive_spacing( $btn_border_radius_fields, 'bottom', 'desktop' ),
						'border-bottom-left-radius'  => astra_responsive_spacing( $btn_border_radius_fields, 'left', 'desktop' ),
						'padding-top'                => astra_responsive_spacing( $theme_btn_padding, 'top', 'desktop' ),
						'padding-right'              => astra_responsive_spacing( $theme_btn_padding, 'right', 'desktop' ),
						'padding-bottom'             => astra_responsive_spacing( $theme_btn_padding, 'bottom', 'desktop' ),
						'padding-left'               => astra_responsive_spacing( $theme_btn_padding, 'left', 'desktop' ),
						'font-family'                => astra_get_font_family( $theme_btn_font_family ),
						'font-weight'                => esc_attr( $theme_btn_font_weight ),
						'font-size'                  => astra_get_font_css_value( $theme_btn_font_size['desktop'], $theme_btn_font_size['desktop-unit'] ),
						'text-transform'             => esc_attr( $theme_btn_text_transform ),
						'text-decoration'            => esc_attr( $theme_btn_text_decoration ),
						'letter-spacing'             => esc_attr( $theme_btn_letter_spacing ),
					),
					'button:focus, .menu-toggle:hover, button:hover, .ast-button:hover, .ast-custom-button:hover .button:hover, .ast-custom-button:hover, input[type=reset]:hover, input[type=reset]:focus, input#submit:hover, input#submit:focus, input[type="button"]:hover, input[type="button"]:focus, input[type="submit"]:hover, input[type="submit"]:focus' . $search_button_hover_selector => array(
						'color'            => esc_attr( $btn_text_hover_color ),
						'background-color' => esc_attr( $btn_bg_hover_color ),
						'border-color'     => empty( $btn_border_h_color ) ? esc_attr( $btn_bg_hover_color ) : esc_attr( $btn_border_h_color ),
					),
				);

				/**
				 * Global button CSS - Tablet.
				 */
				$global_button_tablet = array(
					'.menu-toggle, button, .ast-button, .ast-custom-button, .button, input#submit, input[type="button"], input[type="submit"], input[type="reset"]' . $search_button_selector => array(
						'padding-top'                => astra_responsive_spacing( $theme_btn_padding, 'top', 'tablet' ),
						'padding-right'              => astra_responsive_spacing( $theme_btn_padding, 'right', 'tablet' ),
						'padding-bottom'             => astra_responsive_spacing( $theme_btn_padding, 'bottom', 'tablet' ),
						'padding-left'               => astra_responsive_spacing( $theme_btn_padding, 'left', 'tablet' ),
						'font-size'                  => astra_responsive_font( $theme_btn_font_size, 'tablet' ),
						'border-top-left-radius'     => astra_responsive_spacing( $btn_border_radius_fields, 'top', 'tablet' ),
						'border-top-right-radius'    => astra_responsive_spacing( $btn_border_radius_fields, 'right', 'tablet' ),
						'border-bottom-right-radius' => astra_responsive_spacing( $btn_border_radius_fields, 'bottom', 'tablet' ),
						'border-bottom-left-radius'  => astra_responsive_spacing( $btn_border_radius_fields, 'left', 'tablet' ),
					),
				);

				/**
				 * Global button CSS - Mobile.
				 */
				$global_button_mobile = array(
					'.menu-toggle, button, .ast-button, .ast-custom-button, .button, input#submit, input[type="button"], input[type="submit"], input[type="reset"]' . $search_button_selector => array(
						'padding-top'                => astra_responsive_spacing( $theme_btn_padding, 'top', 'mobile' ),
						'padding-right'              => astra_responsive_spacing( $theme_btn_padding, 'right', 'mobile' ),
						'padding-bottom'             => astra_responsive_spacing( $theme_btn_padding, 'bottom', 'mobile' ),
						'padding-left'               => astra_responsive_spacing( $theme_btn_padding, 'left', 'mobile' ),
						'font-size'                  => astra_responsive_font( $theme_btn_font_size, 'mobile' ),
						'border-top-left-radius'     => astra_responsive_spacing( $btn_border_radius_fields, 'top', 'mobile' ),
						'border-top-right-radius'    => astra_responsive_spacing( $btn_border_radius_fields, 'right', 'mobile' ),
						'border-bottom-right-radius' => astra_responsive_spacing( $btn_border_radius_fields, 'bottom', 'mobile' ),
						'border-bottom-left-radius'  => astra_responsive_spacing( $btn_border_radius_fields, 'left', 'mobile' ),
					),
				);
			}

			if ( true === $update_customizer_strctural_defaults ) {
				$global_button_desktop['form[CLASS*="wp-block-search__"].wp-block-search .wp-block-search__inside-wrapper .wp-block-search__button.has-icon'] = array(
					'padding-top'    => 'calc(' . astra_responsive_spacing( $theme_btn_padding, 'top', 'desktop' ) . ' - 3px)',
					'padding-right'  => 'calc(' . astra_responsive_spacing( $theme_btn_padding, 'right', 'desktop' ) . ' - 3px)',
					'padding-bottom' => 'calc(' . astra_responsive_spacing( $theme_btn_padding, 'bottom', 'desktop' ) . ' - 3px)',
					'padding-left'   => 'calc(' . astra_responsive_spacing( $theme_btn_padding, 'left', 'desktop' ) . ' - 3px)',
				);
			}

			/* Parse CSS from array() */
			$parse_css .= astra_parse_css( $global_button_desktop );

			$parse_css .= astra_parse_css( $global_button_tablet, '', astra_get_tablet_breakpoint() );

			$parse_css .= astra_parse_css( $global_button_mobile, '', astra_get_mobile_breakpoint() );

			/* Parse CSS from array() -> min-width: (tablet-breakpoint) px CSS  */
			if ( empty( $site_content_width ) ) {
				$container_min_tablet_css = array(
					'.ast-container' => array(
						'max-width' => '100%',
					),
				);
				$parse_css               .= astra_parse_css( $container_min_tablet_css, astra_get_tablet_breakpoint() );
			}

			$container_min_mobile_css = array(
				'.ast-container' => array(
					'max-width' => '100%',
				),
			);

			/**
			 * Global button CSS - -> max-width: (tablet-breakpoint) px.
			 */
			$global_button_tablet = array(
				'.menu-toggle, button, .ast-button, .button, input#submit, input[type="button"], input[type="submit"], input[type="reset"]' => array(
					'font-size' => astra_get_font_css_value( $theme_btn_font_size['tablet'], $theme_btn_font_size['tablet-unit'] ),
				),
				'.ast-mobile-header-stack .main-header-bar .ast-search-menu-icon' => array(
					'display' => 'inline-block',
				),
				'.ast-header-break-point.ast-header-custom-item-outside .ast-mobile-header-stack .main-header-bar .ast-search-icon' => array(
					'margin' => '0',
				),
				'.ast-comment-avatar-wrap img' => array(
					'max-width' => '2.5em',
				),
				'.ast-comment-meta'            => array(
					'padding' => '0 1.8888em 1.3333em',
				),
			);

			if ( ! self::astra_4_6_0_compatibility() ) {
				$global_button_tablet['.ast-separate-container .ast-comment-list li.depth-1'] = array(
					'padding' => '1.5em 2.14em',
				);
				$global_button_tablet['.ast-separate-container .comment-respond']             = array(
					'padding' => '2em 2.14em',
				);
			}

			/* Parse CSS from array() -> max-width: (tablet-breakpoint) px CSS */
			$parse_css .= astra_parse_css( $global_button_tablet, '', astra_get_tablet_breakpoint() );

			/* Parse CSS from array() -> min-width: (mobile-breakpoint) px CSS  */
			$parse_css .= astra_parse_css( $container_min_mobile_css, astra_get_mobile_breakpoint() );

			$global_button_mobile = array(
				'.ast-separate-container .ast-article-post, .ast-separate-container .ast-article-single, .ast-separate-container .comments-title, .ast-separate-container .ast-archive-description' => array(
					'padding' => '1.5em 1em',
				),
				'.ast-separate-container #content .ast-container' => array(
					'padding-left'  => '0.54em',
					'padding-right' => '0.54em',
				),
				'.ast-separate-container .ast-comment-list .bypostauthor' => array(
					'padding' => '.5em',
				),
				'.ast-search-menu-icon.ast-dropdown-active .search-field' => array(
					'width' => '170px',
				),
				'.menu-toggle, button, .ast-button, .button, input#submit, input[type="button"], input[type="submit"], input[type="reset"]' => array(
					'font-size' => astra_get_font_css_value( $theme_btn_font_size['mobile'], $theme_btn_font_size['mobile-unit'] ),
				),
			);

			if ( ! self::astra_4_6_0_compatibility() ) {
				$global_button_tablet['.ast-separate-container .ast-comment-list li.depth-1'] = array(
					'padding'       => '1.5em 1em',
					'margin-bottom' => '1.5em',
				);
			}

			if ( 'no-sidebar' !== astra_page_layout() ) {
				$global_button_mobile['.ast-separate-container #secondary']                           = array(
					'padding-top' => 0,
				);
				$global_button_mobile['.ast-separate-container.ast-two-container #secondary .widget'] = array(
					'margin-bottom' => '1.5em',
					'padding-left'  => '1em',
					'padding-right' => '1em',
				);
			}

			// Add/Remove logo max-width: 100%; CSS for logo in old header layout.
			if ( false === Astra_Builder_Helper::$is_header_footer_builder_active && false === self::remove_logo_max_width_mobile_static_css() ) {
				$global_button_mobile['.site-branding img, .site-header .site-logo-img .custom-logo-link img'] = array(
					'max-width' => '100%',
				);
			}

			/* Parse CSS from array() -> max-width: (mobile-breakpoint) px  */
			$parse_css .= astra_parse_css( $global_button_mobile, '', astra_get_mobile_breakpoint() );

			if ( Astra_Builder_Helper::is_component_loaded( 'search', 'header', 'mobile' ) ) {

				if ( $is_site_rtl ) {
					$global_button_tablet_lang_direction_css = array(
						'.ast-header-break-point .ast-search-menu-icon.slide-search .search-form' => array(
							'left' => '0',
						),
						'.ast-header-break-point .ast-mobile-header-stack .ast-search-menu-icon.slide-search .search-form' => array(
							'left' => '-1em',
						),
					);
				} else {
					$global_button_tablet_lang_direction_css = array(
						'.ast-header-break-point .ast-search-menu-icon.slide-search .search-form' => array(
							'right' => '0',
						),
						'.ast-header-break-point .ast-mobile-header-stack .ast-search-menu-icon.slide-search .search-form' => array(
							'right' => '-1em',
						),
					);
				}

				$parse_css .= astra_parse_css( $global_button_tablet_lang_direction_css, '', astra_get_tablet_breakpoint() );
			}

			if ( false === Astra_Builder_Helper::$is_header_footer_builder_active && 'custom-button' === $header_custom_button_style ) {
				$css_output = array(

					// Header button typography stylings.
					'.main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button, .ast-theme-transparent-header .main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button' => array(
						'font-family'    => astra_get_font_family( $header_custom_btn_font_family ),
						'font-weight'    => esc_attr( $header_custom_btn_font_weight ),
						'font-size'      => astra_responsive_font( $header_custom_btn_font_size, 'desktop' ),
						'line-height'    => esc_attr( $header_custom_btn_line_height ),
						'text-transform' => esc_attr( $header_custom_btn_text_transform ),
						'letter-spacing' => astra_get_css_value( $header_custom_btn_letter_spacing, 'px' ),
					),

					// Custom menu item button - Default.
					'.main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button' => array(
						'color'                      => esc_attr( $header_custom_button_text_color ),
						'background-color'           => esc_attr( $header_custom_button_back_color ),
						'padding-top'                => astra_responsive_spacing( $header_custom_button_spacing, 'top', 'desktop' ),
						'padding-bottom'             => astra_responsive_spacing( $header_custom_button_spacing, 'bottom', 'desktop' ),
						'padding-left'               => astra_responsive_spacing( $header_custom_button_spacing, 'left', 'desktop' ),
						'padding-right'              => astra_responsive_spacing( $header_custom_button_spacing, 'right', 'desktop' ),
						'border-top-left-radius'     => astra_responsive_spacing( $btn_border_radius_fields, 'top', 'desktop' ),
						'border-top-right-radius'    => astra_responsive_spacing( $btn_border_radius_fields, 'right', 'desktop' ),
						'border-bottom-right-radius' => astra_responsive_spacing( $btn_border_radius_fields, 'bottom', 'desktop' ),
						'border-bottom-left-radius'  => astra_responsive_spacing( $btn_border_radius_fields, 'left', 'desktop' ),
						'border-style'               => 'solid',
						'border-color'               => esc_attr( $header_custom_button_border_color ),
						'border-top-width'           => isset( $header_custom_button_border_size['top'] ) && '' !== $header_custom_button_border_size['top'] ? astra_get_css_value( $header_custom_button_border_size['top'], 'px' ) : '0px',
						'border-right-width'         => isset( $header_custom_button_border_size['right'] ) && '' !== $header_custom_button_border_size['right'] ? astra_get_css_value( $header_custom_button_border_size['right'], 'px' ) : '0px',
						'border-left-width'          => isset( $header_custom_button_border_size['left'] ) && '' !== $header_custom_button_border_size['left'] ? astra_get_css_value( $header_custom_button_border_size['left'], 'px' ) : '0px',
						'border-bottom-width'        => isset( $header_custom_button_border_size['bottom'] ) && '' !== $header_custom_button_border_size['bottom'] ? astra_get_css_value( $header_custom_button_border_size['bottom'], 'px' ) : '0px',
					),
					'.main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button:hover' => array(
						'color'            => esc_attr( $header_custom_button_text_h_color ),
						'background-color' => esc_attr( $header_custom_button_back_h_color ),
						'border-color'     => esc_attr( $header_custom_button_border_h_color ),
					),

					// Custom menu item button - Transparent.
					'.ast-theme-transparent-header .main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button' => array(
						'color'               => esc_attr( $header_custom_trans_button_text_color ),
						'background-color'    => esc_attr( $header_custom_trans_button_back_color ),
						'padding-top'         => astra_responsive_spacing( $header_custom_trans_button_spacing, 'top', 'desktop' ),
						'padding-bottom'      => astra_responsive_spacing( $header_custom_trans_button_spacing, 'bottom', 'desktop' ),
						'padding-left'        => astra_responsive_spacing( $header_custom_trans_button_spacing, 'left', 'desktop' ),
						'padding-right'       => astra_responsive_spacing( $header_custom_trans_button_spacing, 'right', 'desktop' ),
						'border-radius'       => astra_get_css_value( $header_custom_trans_button_radius, 'px' ),
						'border-style'        => 'solid',
						'border-color'        => esc_attr( $header_custom_trans_button_border_color ),
						'border-top-width'    => isset( $header_custom_trans_button_border_size['top'] ) && '' !== $header_custom_trans_button_border_size['top'] ? astra_get_css_value( $header_custom_trans_button_border_size['top'], 'px' ) : '',
						'border-right-width'  => isset( $header_custom_trans_button_border_size['right'] ) && '' !== $header_custom_trans_button_border_size['right'] ? astra_get_css_value( $header_custom_trans_button_border_size['right'], 'px' ) : '',
						'border-left-width'   => isset( $header_custom_trans_button_border_size['left'] ) && '' !== $header_custom_trans_button_border_size['left'] ? astra_get_css_value( $header_custom_trans_button_border_size['left'], 'px' ) : '',
						'border-bottom-width' => isset( $header_custom_trans_button_border_size['bottom'] ) && '' !== $header_custom_trans_button_border_size['bottom'] ? astra_get_css_value( $header_custom_trans_button_border_size['bottom'], 'px' ) : '',
					),
					'.ast-theme-transparent-header .main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button:hover' => array(
						'color'            => esc_attr( $header_custom_trans_button_text_h_color ),
						'background-color' => esc_attr( $header_custom_trans_button_back_h_color ),
						'border-color'     => esc_attr( $header_custom_trans_button_border_h_color ),
					),
				);

				/* Parse CSS from array() */
				$parse_css .= astra_parse_css( $css_output );

				/* Parse CSS from array()*/

				/* Custom Menu Item Button */
				$custom_button_css = array(
					'.main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button' => array(
						'font-size'      => astra_responsive_font( $header_custom_btn_font_size, 'tablet' ),
						'padding-top'    => astra_responsive_spacing( $header_custom_button_spacing, 'top', 'tablet' ),
						'padding-bottom' => astra_responsive_spacing( $header_custom_button_spacing, 'bottom', 'tablet' ),
						'padding-left'   => astra_responsive_spacing( $header_custom_button_spacing, 'left', 'tablet' ),
						'padding-right'  => astra_responsive_spacing( $header_custom_button_spacing, 'right', 'tablet' ),
					),
				);

				$custom_trans_button_css = array(
					'.ast-theme-transparent-header .main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button' => array(
						'font-size'      => astra_responsive_font( $header_custom_btn_font_size, 'tablet' ),
						'padding-top'    => astra_responsive_spacing( $header_custom_trans_button_spacing, 'top', 'tablet' ),
						'padding-bottom' => astra_responsive_spacing( $header_custom_trans_button_spacing, 'bottom', 'tablet' ),
						'padding-left'   => astra_responsive_spacing( $header_custom_trans_button_spacing, 'left', 'tablet' ),
						'padding-right'  => astra_responsive_spacing( $header_custom_trans_button_spacing, 'right', 'tablet' ),
					),
				);

				/* Parse CSS from array()*/
				$parse_css .= astra_parse_css( array_merge( $custom_button_css, $custom_trans_button_css ), '', astra_get_tablet_breakpoint() );

				/* Custom Menu Item Button */
				$custom_button = array(
					'.main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button' => array(
						'font-size'      => astra_responsive_font( $header_custom_btn_font_size, 'mobile' ),
						'padding-top'    => astra_responsive_spacing( $header_custom_button_spacing, 'top', 'mobile' ),
						'padding-bottom' => astra_responsive_spacing( $header_custom_button_spacing, 'bottom', 'mobile' ),
						'padding-left'   => astra_responsive_spacing( $header_custom_button_spacing, 'left', 'mobile' ),
						'padding-right'  => astra_responsive_spacing( $header_custom_button_spacing, 'right', 'mobile' ),
					),
				);

				$custom_trans_button = array(
					'.ast-theme-transparent-header .main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button' => array(
						'font-size'      => astra_responsive_font( $header_custom_btn_font_size, 'mobile' ),
						'padding-top'    => astra_responsive_spacing( $header_custom_trans_button_spacing, 'top', 'mobile' ),
						'padding-bottom' => astra_responsive_spacing( $header_custom_trans_button_spacing, 'bottom', 'mobile' ),
						'padding-left'   => astra_responsive_spacing( $header_custom_trans_button_spacing, 'left', 'mobile' ),
						'padding-right'  => astra_responsive_spacing( $header_custom_trans_button_spacing, 'right', 'mobile' ),
					),
				);

				/* Parse CSS from array()*/
				$parse_css .= astra_parse_css( array_merge( $custom_button, $custom_trans_button ), '', astra_get_mobile_breakpoint() );
			}

			if ( false === Astra_Builder_Helper::$is_header_footer_builder_active ) {
				// Foreground color.
				if ( ! empty( $footer_adv_link_color ) ) {
					$footer_adv_tagcloud = array(
						'.footer-adv .tagcloud a:hover, .footer-adv .tagcloud a.current-item' => array(
							'color' => astra_get_foreground_color( $footer_adv_link_color ),
						),
						'.footer-adv .calendar_wrap #today' => array(
							'color' => astra_get_foreground_color( $footer_adv_link_color ),
						),
					);
					$parse_css          .= astra_parse_css( $footer_adv_tagcloud );
				}
			}

			/* Width for Footer */
			if ( false === Astra_Builder_Helper::$is_header_footer_builder_active && 'content' !== $astra_footer_width ) {
				$genral_global_responsive = array(
					'.ast-small-footer .ast-container' => array(
						'max-width'     => '100%',
						'padding-left'  => '35px',
						'padding-right' => '35px',
					),
				);

				/* Parse CSS from array()*/
				$parse_css .= astra_parse_css( $genral_global_responsive, astra_get_tablet_breakpoint( '', 1 ) );
			}

			/* Preventing link redirection when the cart is clicked */
			if ( 'redirect' !== astra_get_option( 'responsive-cart-click-action' ) ) {
				$desktop_cart_link_event = array(
					' #ast-mobile-header .ast-site-header-cart-li a' => array(
						'pointer-events' => 'none',
					),
				);

				/* Parse CSS from array()*/
				$parse_css .= astra_parse_css( $desktop_cart_link_event );
			}

			/* Preventing link redirection when the cart is clicked */
			if ( is_customize_preview() && 'redirect' !== astra_get_option( 'woo-header-cart-click-action' ) ) {
				$responsive_cart_link_event = array(
					' #ast-desktop-header .ast-site-header-cart-li a' => array(
						'pointer-events' => 'none',
					),
				);

				/* Parse CSS from array()*/
				$parse_css .= astra_parse_css( $responsive_cart_link_event );
			}

			/* Width for Comments for Full Width / Stretched Template */
			if ( 'page-builder' === $container_layout ) {
				$page_builder_comment = array(
					'.ast-page-builder-template .comments-area, .single.ast-page-builder-template .entry-header, .single.ast-page-builder-template .post-navigation, .single.ast-page-builder-template .ast-single-related-posts-container' => array(
						'max-width'    => astra_get_css_value( $site_content_width + 40, 'px' ),
						'margin-left'  => 'auto',
						'margin-right' => 'auto',
					),
				);
				/* Parse CSS from array()*/
				$parse_css .= astra_parse_css( $page_builder_comment, astra_get_mobile_breakpoint( '', 1 ) );

			}

			$astra_spearate_container_selector = 'body, .ast-separate-container';
			if ( astra_has_gcp_typo_preset_compatibility() && true === astra_apply_content_background_fullwidth_layouts() ) {
				$astra_spearate_container_selector = '.ast-separate-container';
			}

			$separate_container_css = array(
				$astra_spearate_container_selector => astra_get_responsive_background_obj( $box_bg_obj, 'desktop' ),
			);
			$parse_css             .= astra_parse_css( $separate_container_css );

			if ( $block_editor_legacy_setup ) {
				/**
				 * Added new compatibility & layout designs for core block layouts.
				 * - Compatibility for alignwide, alignfull, default width.
				 *
				 * @since 3.7.4
				 */
				$entry_content_selector = '.entry-content';
				if ( true === $improve_gb_ui ) {
					$entry_content_selector           = '.entry-content >';
					$core_blocks_width_desktop_ui_css = array(
						'.entry-content > .wp-block-group, .entry-content > .wp-block-media-text, .entry-content > .wp-block-cover, .entry-content > .wp-block-columns' => array(
							'max-width'    => '58em',
							'width'        => 'calc(100% - 4em)',
							'margin-left'  => 'auto',
							'margin-right' => 'auto',
						),
						'.entry-content [class*="__inner-container"] > .alignfull' => array(
							'max-width'    => '100%',
							'margin-left'  => 0,
							'margin-right' => 0,
						),
						'.entry-content [class*="__inner-container"] > *:not(.alignwide):not(.alignfull):not(.alignleft):not(.alignright)' => array(
							'margin-left'  => 'auto',
							'margin-right' => 'auto',
						),
						'.entry-content [class*="__inner-container"] > *:not(.alignwide):not(p):not(.alignfull):not(.alignleft):not(.alignright):not(.is-style-wide):not(iframe)' => array(
							'max-width' => '50rem',
							'width'     => '100%',
						),
					);

					/* Parse CSS from array -> Desktop CSS. */
					$parse_css .= astra_parse_css( $core_blocks_width_desktop_ui_css );

					$core_blocks_min_width_tablet_ui_css = array(
						'.entry-content > .wp-block-group.alignwide.has-background, .entry-content > .wp-block-group.alignfull.has-background, .entry-content > .wp-block-cover.alignwide, .entry-content > .wp-block-cover.alignfull, .entry-content > .wp-block-columns.has-background.alignwide, .entry-content > .wp-block-columns.has-background.alignfull' => array(
							'margin-top'    => '0',
							'margin-bottom' => '0',
							'padding'       => '6em 4em',
						),
						'.entry-content > .wp-block-columns.has-background' => array(
							'margin-bottom' => '0',
						),
					);

					/* Parse CSS from array -> min-width(tablet-breakpoint) */
					$parse_css .= astra_parse_css( $core_blocks_min_width_tablet_ui_css, astra_get_tablet_breakpoint() );

					$core_blocks_min_width_1200_ui_css = array(
						'.entry-content .alignfull p' => array(
							'max-width' => astra_get_css_value( $site_content_width, 'px' ),
						),
						'.entry-content .alignfull'   => array(
							'max-width' => '100%',
							'width'     => '100%',
						),
						'.ast-page-builder-template .entry-content .alignwide, .entry-content [class*="__inner-container"] > .alignwide' => array(
							'max-width'    => astra_get_css_value( $site_content_width, 'px' ),
							'margin-left'  => '0',
							'margin-right' => '0',
						),
						'.entry-content .alignfull [class*="__inner-container"] > .alignwide' => array(
							'max-width' => '80rem',
						),
					);

					/* Parse CSS from array -> min-width( 1200px ) */
					$parse_css .= astra_parse_css( $core_blocks_min_width_1200_ui_css, '1200' );

					$core_blocks_min_width_mobile_ui_css = array(
						'.site-main .entry-content > .alignwide' => array(
							'margin' => '0 auto',
						),
						'.wp-block-group.has-background, .entry-content > .wp-block-cover, .entry-content > .wp-block-columns.has-background' => array(
							'padding'       => '4em',
							'margin-top'    => '0',
							'margin-bottom' => '0',
						),
						'.entry-content .wp-block-media-text.alignfull .wp-block-media-text__content, .entry-content .wp-block-media-text.has-background .wp-block-media-text__content' => array(
							'padding' => '0 8%',
						),
					);

					/* Parse CSS from array -> min-width(mobile-breakpoint + 1) */
					$parse_css .= astra_parse_css( $core_blocks_min_width_mobile_ui_css, astra_get_mobile_breakpoint( '', 1 ) );
				} else {
					$astra_no_sidebar_layout_css =
						'.ast-no-sidebar.ast-separate-container ' . $entry_content_selector . ' .alignfull {
							margin-left: -6.67em;
							margin-right: -6.67em;
							width: auto;
						}
						@media (max-width: 1200px) {
							.ast-no-sidebar.ast-separate-container ' . $entry_content_selector . ' .alignfull {
								margin-left: -2.4em;
								margin-right: -2.4em;
							}
						}
						@media (max-width: 768px) {
							.ast-no-sidebar.ast-separate-container ' . $entry_content_selector . ' .alignfull {
								margin-left: -2.14em;
								margin-right: -2.14em;
							}
						}
						@media (max-width: 544px) {
							.ast-no-sidebar.ast-separate-container ' . $entry_content_selector . ' .alignfull {
								margin-left: -1em;
								margin-right: -1em;
							}
						}
						.ast-no-sidebar.ast-separate-container ' . $entry_content_selector . ' .alignwide {
							margin-left: -20px;
							margin-right: -20px;
						}

						.ast-no-sidebar.ast-separate-container ' . $entry_content_selector . ' .wp-block-column .alignfull,
						.ast-no-sidebar.ast-separate-container ' . $entry_content_selector . ' .wp-block-column .alignwide {
							margin-left: auto;
							margin-right: auto;
							width: 100%;
						}
					';

					$parse_css .= Astra_Enqueue_Scripts::trim_css( $astra_no_sidebar_layout_css );
				}
			}

			$tablet_typo = array();

			if ( isset( $body_font_size['tablet'] ) && '' != $body_font_size['tablet'] ) {

					$tablet_typo = array(
						// Widget Title.
						'.widget-title' => array(
							'font-size' => astra_get_font_css_value( (int) $body_font_size['tablet'] * 1.428571429, 'px', 'tablet' ),
						),
					);
			}

			/* Tablet Typography */
			$tablet_typography = array(
				'body, button, input, select, textarea, .ast-button, .ast-custom-button' => array(
					'font-size' => astra_responsive_font( $body_font_size, 'tablet' ),
				),
				'#secondary, #secondary button, #secondary input, #secondary select, #secondary textarea' => array(
					'font-size' => astra_responsive_font( $body_font_size, 'tablet' ),
				),
				'.site-title'                    => array(
					'font-size' => astra_responsive_font( $site_title_font_size, 'tablet' ),
					'display'   => esc_attr( $tablet_title_visibility ),
				),
				'.site-header .site-description' => array(
					'font-size' => astra_responsive_font( $site_tagline_font_size, 'tablet' ),
					'display'   => esc_attr( $tablet_tagline_visibility ),
				),
				'.entry-title'                   => array(
					'font-size' => astra_responsive_font( $archive_post_title_font_size, 'tablet' ),
				),
				'.ast-blog-single-element.ast-taxonomy-container a' => array(
					'font-size' => astra_responsive_font( $archive_post_tax_font_size, 'tablet' ),
				),
				'.ast-blog-meta-container'       => array(
					'font-size' => astra_responsive_font( $archive_post_meta_font_size, 'tablet' ),
				),
				'blog-layout-4' === $blog_layout ? '.archive .ast-article-post .ast-article-inner, .blog .ast-article-post .ast-article-inner' : '.archive .ast-article-post, .ast-article-post .post-thumb-img-content, .ast-blog-layout-6-grid .ast-article-inner .post-thumb::after, .blog .ast-article-post' => array(
					'border-top-left-radius'     => astra_responsive_spacing( $archive_cards_radius, 'top', 'tablet' ),
					'border-top-right-radius'    => astra_responsive_spacing( $archive_cards_radius, 'right', 'tablet' ),
					'border-bottom-right-radius' => astra_responsive_spacing( $archive_cards_radius, 'bottom', 'tablet' ),
					'border-bottom-left-radius'  => astra_responsive_spacing( $archive_cards_radius, 'left', 'tablet' ),
				),

				// Conditionally select the css selectors with or without achors.
				self::conditional_headings_css_selectors(
					'h1, .entry-content h1, .entry-content h1 a',
					'h1, .entry-content h1'
				)                                => array(
					'font-size' => astra_responsive_font( $heading_h1_font_size, 'tablet', $heading_font_size_comp ? '' : 30 ),
				),

				// Conditionally select the css selectors with or without achors.
				self::conditional_headings_css_selectors(
					'h2, .entry-content h2, .entry-content h2 a',
					'h2, .entry-content h2'
				)                                => array(
					'font-size' => astra_responsive_font( $heading_h2_font_size, 'tablet', $heading_font_size_comp ? '' : 25 ),
				),

				// Conditionally select the css selectors with or without achors.
				self::conditional_headings_css_selectors(
					'h3, .entry-content h3, .entry-content h3 a',
					'h3, .entry-content h3'
				)                                => array(
					'font-size' => astra_responsive_font( $heading_h3_font_size, 'tablet', $heading_font_size_comp ? '' : 20 ),
				),

				// Conditionally select the css selectors with or without achors.
				self::conditional_headings_css_selectors(
					'h4, .entry-content h4, .entry-content h4 a',
					'h4, .entry-content h4'
				)                                => array(
					'font-size' => astra_responsive_font( $heading_h4_font_size, 'tablet' ),
				),

				// Conditionally select the css selectors with or without achors.
				self::conditional_headings_css_selectors(
					'h5, .entry-content h5, .entry-content h5 a',
					'h5, .entry-content h5'
				)                                => array(
					'font-size' => astra_responsive_font( $heading_h5_font_size, 'tablet' ),
				),

				// Conditionally select the css selectors with or without achors.
				self::conditional_headings_css_selectors(
					'h6, .entry-content h6, .entry-content h6 a',
					'h6, .entry-content h6'
				)                                => array(
					'font-size' => astra_responsive_font( $heading_h6_font_size, 'tablet' ),
				),
				'.astra-logo-svg'                => array(
					'width' => astra_get_css_value( $header_logo_width['tablet'], 'px' ),
				),
				'.astra-logo-svg:not(.sticky-custom-logo .astra-logo-svg, .transparent-custom-logo .astra-logo-svg, .advanced-header-logo .astra-logo-svg)' => array(
					'height' => astra_get_css_value( ! empty( $header_logo_width['tablet-svg-height'] ) && ! is_customize_preview() ? $header_logo_width['tablet-svg-height'] : '', 'px' ),
				),
				is_customize_preview() ? '.ast-sg-logo-section .custom-logo-link img, header .custom-logo-link img, .ast-header-break-point .site-logo-img .custom-mobile-logo-link img' : 'header .custom-logo-link img, .ast-header-break-point .site-logo-img .custom-mobile-logo-link img' => array(
					'max-width' => astra_get_css_value( $header_logo_width['tablet'], 'px' ),
					'width'     => astra_get_css_value( $header_logo_width['tablet'], 'px' ),
				),
				'body, .ast-separate-container'  => astra_get_responsive_background_obj( $box_bg_obj, 'tablet' ),
			);

			/* Parse CSS from array()*/
			$parse_css .= astra_parse_css( array_merge( $tablet_typo, $tablet_typography ), '', astra_get_tablet_breakpoint() );

			$mobile_typo = array();
			if ( isset( $body_font_size['mobile'] ) && '' !== $body_font_size['mobile'] ) {
				$mobile_typo = array(
					// Widget Title.
					'.widget-title' => array(
						'font-size' => astra_get_font_css_value( (int) $body_font_size['mobile'] * 1.428571429, 'px', 'mobile' ),
					),
				);
			}

			/* Mobile Typography */
			$mobile_typography = array(
				'body, button, input, select, textarea, .ast-button, .ast-custom-button' => array(
					'font-size' => astra_responsive_font( $body_font_size, 'mobile' ),
				),
				'#secondary, #secondary button, #secondary input, #secondary select, #secondary textarea' => array(
					'font-size' => astra_responsive_font( $body_font_size, 'mobile' ),
				),
				'.site-title'                    => array(
					'font-size' => astra_responsive_font( $site_title_font_size, 'mobile' ),
					'display'   => esc_attr( $mobile_title_visibility ),
				),
				'.site-header .site-description' => array(
					'font-size' => astra_responsive_font( $site_tagline_font_size, 'mobile' ),
					'display'   => esc_attr( $mobile_tagline_visibility ),
				),
				'.entry-title'                   => array(
					'font-size' => astra_responsive_font( $archive_post_title_font_size, 'mobile' ),
				),
				'.ast-blog-single-element.ast-taxonomy-container a' => array(
					'font-size' => astra_responsive_font( $archive_post_tax_font_size, 'mobile' ),
				),
				'.ast-blog-meta-container'       => array(
					'font-size' => astra_responsive_font( $archive_post_meta_font_size, 'mobile' ),
				),
				'blog-layout-4' === $blog_layout ? '.archive .ast-article-post .ast-article-inner, .blog .ast-article-post .ast-article-inner' : '.archive .ast-article-post, .ast-article-post .post-thumb-img-content, .ast-blog-layout-6-grid .ast-article-inner .post-thumb::after, .blog .ast-article-post' => array(
					'border-top-left-radius'     => astra_responsive_spacing( $archive_cards_radius, 'top', 'mobile' ),
					'border-top-right-radius'    => astra_responsive_spacing( $archive_cards_radius, 'right', 'mobile' ),
					'border-bottom-right-radius' => astra_responsive_spacing( $archive_cards_radius, 'bottom', 'mobile' ),
					'border-bottom-left-radius'  => astra_responsive_spacing( $archive_cards_radius, 'left', 'mobile' ),
				),

				// Conditionally select the css selectors with or without achors.
				self::conditional_headings_css_selectors(
					'h1, .entry-content h1, .entry-content h1 a',
					'h1, .entry-content h1'
				)                                => array(
					'font-size' => astra_responsive_font( $heading_h1_font_size, 'mobile', $heading_font_size_comp ? '' : 30 ),
				),

				// Conditionally select the css selectors with or without achors.
				self::conditional_headings_css_selectors(
					'h2, .entry-content h2, .entry-content h2 a',
					'h2, .entry-content h2'
				)                                => array(
					'font-size' => astra_responsive_font( $heading_h2_font_size, 'mobile', $heading_font_size_comp ? '' : 25 ),
				),

				// Conditionally select the css selectors with or without achors.
				self::conditional_headings_css_selectors(
					'h3, .entry-content h3, .entry-content h3 a',
					'h3, .entry-content h3'
				)                                => array(
					'font-size' => astra_responsive_font( $heading_h3_font_size, 'mobile', $heading_font_size_comp ? '' : 20 ),
				),

				// Conditionally select the css selectors with or without achors.
				self::conditional_headings_css_selectors(
					'h4, .entry-content h4, .entry-content h4 a',
					'h4, .entry-content h4'
				)                                => array(
					'font-size' => astra_responsive_font( $heading_h4_font_size, 'mobile' ),
				),

				// Conditionally select the css selectors with or without achors.
				self::conditional_headings_css_selectors(
					'h5, .entry-content h5, .entry-content h5 a',
					'h5, .entry-content h5'
				)                                => array(
					'font-size' => astra_responsive_font( $heading_h5_font_size, 'mobile' ),
				),

				// Conditionally select the css selectors with or without achors.
				self::conditional_headings_css_selectors(
					'h6, .entry-content h6, .entry-content h6 a',
					'h6, .entry-content h6'
				)                                => array(
					'font-size' => astra_responsive_font( $heading_h6_font_size, 'mobile' ),
				),
				is_customize_preview() ? '.ast-sg-logo-section .custom-logo-link img, header .custom-logo-link img, .ast-header-break-point .site-branding img, .ast-header-break-point .custom-logo-link img' : 'header .custom-logo-link img, .ast-header-break-point .site-branding img, .ast-header-break-point .custom-logo-link img' => array(
					'max-width' => astra_get_css_value( $header_logo_width['mobile'], 'px' ),
					'width'     => astra_get_css_value( $header_logo_width['mobile'], 'px' ),
				),
				'.astra-logo-svg'                => array(
					'width' => astra_get_css_value( $header_logo_width['mobile'], 'px' ),
				),
				'.astra-logo-svg:not(.sticky-custom-logo .astra-logo-svg, .transparent-custom-logo .astra-logo-svg, .advanced-header-logo .astra-logo-svg)' => array(
					'height' => astra_get_css_value( ! empty( $header_logo_width['mobile-svg-height'] ) && ! is_customize_preview() ? $header_logo_width['mobile-svg-height'] : '', 'px' ),
				),
				'.ast-header-break-point .site-logo-img .custom-mobile-logo-link img' => array(
					'max-width' => astra_get_css_value( $header_logo_width['mobile'], 'px' ),
				),
				'body, .ast-separate-container'  => astra_get_responsive_background_obj( $box_bg_obj, 'mobile' ),
			);

			/* Parse CSS from array()*/
			$parse_css .= astra_parse_css( array_merge( $mobile_typo, $mobile_typography ), '', astra_get_mobile_breakpoint() );

			/*
			 *  Responsive Font Size for Tablet & Mobile to the root HTML element
			 */

			// Tablet Font Size for HTML tag.
			if ( '' == $body_font_size['tablet'] ) {
				$html_tablet_typography = array(
					'html' => array(
						'font-size' => astra_get_font_css_value( (int) $body_font_size_desktop * 5.7, '%' ),
					),
				);
				$parse_css             .= astra_parse_css( $html_tablet_typography, '', astra_get_tablet_breakpoint() );
			}
			// Mobile Font Size for HTML tag.
			if ( '' == $body_font_size['mobile'] ) {
				$html_mobile_typography = array(
					'html' => array(
						'font-size' => astra_get_font_css_value( (int) $body_font_size_desktop * 5.7, '%' ),
					),
				);
			} else {
				$html_mobile_typography = array(
					'html' => array(
						'font-size' => astra_get_font_css_value( (int) $body_font_size_desktop * 6.25, '%' ),
					),
				);
			}
			/* Parse CSS from array()*/
			$parse_css .= astra_parse_css( $html_mobile_typography, '', astra_get_mobile_breakpoint() );

			/* Site width Responsive */
			$site_width = array(
				'.ast-container' => array(
					'max-width' => astra_get_css_value( $site_content_width + 40, 'px' ),
				),
			);

			/* Parse CSS from array()*/
			$parse_css .= astra_parse_css( $site_width, astra_get_tablet_breakpoint( '', 1 ) );

			/* Narrow width container layout dynamic css */
			$parse_css .= astra_narrow_container_width( astra_get_content_layout(), $narrow_container_max_width );

			// Page Meta.
			$parse_css .= astra_narrow_container_width( astra_get_content_layout(), $narrow_container_max_width );

			if ( Astra_Builder_Helper::apply_flex_based_css() ) {
				$max_site_container_css = array(
					'.site-content .ast-container' => array(
						'display' => 'flex',
					),
				);
				$parse_css             .= astra_parse_css( $max_site_container_css, astra_get_tablet_breakpoint( '', 1 ) );

				$min_site_container_css = array(
					'.site-content .ast-container' => array(
						'flex-direction' => 'column',
					),
				);
				$parse_css             .= astra_parse_css( $min_site_container_css, '', astra_get_tablet_breakpoint() );
			}

			/**
			 * Astra Fonts
			 */
			if ( apply_filters( 'astra_enable_default_fonts', true ) ) {
				$astra_fonts          = '@font-face {';
					$astra_fonts     .= 'font-family: "Astra";';
					$astra_fonts     .= 'src: url(' . ASTRA_THEME_URI . 'assets/fonts/astra.woff) format("woff"),';
						$astra_fonts .= 'url(' . ASTRA_THEME_URI . 'assets/fonts/astra.ttf) format("truetype"),';
						$astra_fonts .= 'url(' . ASTRA_THEME_URI . 'assets/fonts/astra.svg#astra) format("svg");';
					$astra_fonts     .= 'font-weight: normal;';
					$astra_fonts     .= 'font-style: normal;';
					$astra_fonts     .= 'font-display: ' . astra_get_fonts_display_property() . ';';
				$astra_fonts         .= '}';
				$parse_css           .= $astra_fonts;
			}

			if ( false === Astra_Builder_Helper::$is_header_footer_builder_active ) {
				/**
				 * Hide the default naviagtion markup for responsive devices.
				 * Once class .ast-header-break-point is added to the body below CSS will be override by the
				 * .ast-header-break-point class
				 */
				$astra_navigation  = '@media (max-width:' . $header_break_point . 'px) {';
				$astra_navigation .= '.main-header-bar .main-header-bar-navigation{';
				$astra_navigation .= 'display:none;';
				$astra_navigation .= '}';
				$astra_navigation .= '}';
				$parse_css        .= $astra_navigation;
			}

			/* Blog */
			if ( 'custom' === $blog_width ) {

				/* Site width Responsive */
				$blog_css   = array(
					'.blog .site-content > .ast-container, .archive .site-content > .ast-container, .search .site-content > .ast-container' => array(
						'max-width' => astra_get_css_value( $blog_max_width, 'px' ),
					),
				);
				$parse_css .= astra_parse_css( $blog_css, astra_get_tablet_breakpoint( '', 1 ) );
			}

			/* Single Blog */
			if ( 'custom' === $single_post_max ) {

				/* Site width Responsive */
				$single_blog_css = array(
					'.single-post .site-content > .ast-container' => array(
						'max-width' => astra_get_css_value( $single_post_max_width, 'px' ),
					),
				);
				$parse_css      .= astra_parse_css( $single_blog_css, astra_get_tablet_breakpoint( '', 1 ) );
			}

			/* Single Page */
			if ( 'custom' === $single_page_max ) {

				/* Site width Responsive */
				$single_page_css = array(
					' .page .site-content > .ast-container' => array(
						'max-width' => astra_get_css_value( $single_page_max_width, 'px' ),
					),
				);
				$parse_css      .= astra_parse_css( $single_page_css, astra_get_tablet_breakpoint( '', 1 ) );
			}

			if ( self::astra_headings_clear_compatibility() && is_singular() ) {
				/**
				 * Fix with backward compatibility for single blogs heading text wrap with image issue.
				 */
				$parse_css .= astra_parse_css(
					array(
						'.entry-content h1, .entry-content h2, .entry-content h3, .entry-content h4, .entry-content h5, .entry-content h6' => array(
							'clear' => 'none',
						),
					)
				);
			}

			/** @psalm-suppress UndefinedClass */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
			$blog_addon_condition = defined( 'ASTRA_EXT_VER' ) && Astra_Ext_Extension::is_active( 'blog-pro' );
			/** @psalm-suppress UndefinedClass */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort

			if ( is_search() || is_archive() || is_home() ) {
				if ( ! $blog_addon_condition ) {
					// If a old pro user has used blog-layout-1 to 3 and disabled astra addon then moved layout to 'blog-layout-4'.
					if ( 'blog-layout-1' === $blog_layout || 'blog-layout-2' === $blog_layout || 'blog-layout-3' === $blog_layout ) {
						$blog_layout = 'blog-layout-4';
					}
				}

				$bl_selector = '.ast-' . esc_attr( $blog_layout ) . '-grid';
				$blog_grid   = astra_get_option( 'blog-grid' );

				$blog_layout_css = array();

				if ( 'blog-layout-4' === $blog_layout || 'blog-layout-6' === $blog_layout ) {

					$blog_layout_css = array(

						$bl_selector . ' .ast-article-post' => array(
							'border' => '0',
						),

						$bl_selector . ' .ast-article-inner .wp-post-image' => array(
							'width' => '100%',
						),
					);

					if ( $blog_addon_condition && 1 === $blog_grid ) {
						$blog_layout_css['.ast-separate-container .ast-article-post'] = array(
							'padding' => '1.5em',
						);
					}

					/** @psalm-suppress UndefinedClass */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
					if ( ! ( defined( 'ASTRA_EXT_VER' ) && Astra_Ext_Extension::is_active( 'blog-pro' ) ) || ( $blog_addon_condition && 1 !== $blog_grid ) ) {
						/** @psalm-suppress UndefinedClass */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
						$blog_layout_css['.ast-article-inner'] = array(
							'padding' => '1.5em',
						);
					}

					$blog_layout_css[ $bl_selector . ' .ast-row' ] = array(
						'display'     => 'flex',
						'flex-wrap'   => 'wrap',
						'flex-flow'   => 'row wrap',
						'align-items' => 'stretch',
					);
				}
				/** @psalm-suppress UndefinedClass */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
				if ( ! ( defined( 'ASTRA_EXT_VER' ) && Astra_Ext_Extension::is_active( 'blog-pro' ) ) ) {
					/** @psalm-suppress UndefinedClass */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
					if ( 'blog-layout-4' === $blog_layout || 'blog-layout-6' === $blog_layout ) {
						$blog_layout_css[ $bl_selector . ' .ast-article-post' ] = array(
							'width'            => '33.33%',
							'margin-bottom'    => '2em',
							'border-bottom'    => '0',
							'background-color' => 'transparent',
						);

						$blog_layout_css[ '.ast-separate-container ' . $bl_selector . ' .ast-article-post' ]     = array(
							'padding' => '0 1em 0',
						);
						$blog_layout_css['.ast-separate-container.ast-desktop .ast-blog-layout-4-grid .ast-row'] = array(
							'margin-left'  => '-1em',
							'margin-right' => '-1em',
						);
					}
					$blog_layout_css[ $bl_selector . ' .ast-article-inner' ] = array(
						'box-shadow' => '0px 6px 15px -2px rgba(16, 24, 40, 0.05)',
					);

					$blog_layout_css[ '.ast-separate-container ' . $bl_selector . ' .ast-article-inner, .ast-plain-container ' . $bl_selector . ' .ast-article-inner' ] = array(
						'height' => '100%',
					);
				}

				$parse_css .= astra_parse_css( $blog_layout_css );

				if ( 'blog-layout-4' === $blog_layout ) {

					$blog_layout_grid_css = array(

						'.ast-row .blog-layout-4 .post-content, .blog-layout-4 .post-thumb' => array(
							'padding-' . $rtl_left . ''  => '0',
							'padding-' . $rtl_right . '' => '0',
						),

						'.ast-article-post.remove-featured-img-padding .blog-layout-4 .post-content .ast-blog-featured-section:first-child .post-thumb-img-content' => array(
							'margin-top' => '-1.5em',
						),

						'.ast-article-post.remove-featured-img-padding .blog-layout-4 .post-content .ast-blog-featured-section .post-thumb-img-content' => array(
							'margin-' . $rtl_left . ''  => '-1.5em',
							'margin-' . $rtl_right . '' => '-1.5em',
						),
					);

					$parse_css .= astra_parse_css( $blog_layout_grid_css );
				}

				if ( 'blog-layout-5' === $blog_layout ) {

					$blog_layout_list_css = array(

						$bl_selector . ' .ast-row'       => array(
							'margin-' . $rtl_left . ''  => '0',
							'margin-' . $rtl_right . '' => '0',
						),

						$bl_selector . ' .ast-article-inner' => array(
							'width' => '100%',
						),

						$bl_selector . ' .blog-layout-5' => array(
							'display'        => 'flex',
							'flex-wrap'      => 'wrap',
							'vertical-align' => 'middle',
						),

						$bl_selector . ' .ast-blog-featured-section' => array(
							'width'         => '25%',
							'margin-bottom' => '0',
						),

						$bl_selector . ' .post-thumb-img-content' => array(
							'height' => '100%',
						),

						$bl_selector . ' .ast-blog-featured-section img' => array(
							'width'      => '100%',
							'height'     => '100%',
							'object-fit' => 'cover',
						),

						$bl_selector . ' .post-content'  => array(
							'width'                     => '75%',
							'padding-' . $rtl_left . '' => '1.5em',
						),

						$bl_selector . ' .ast-no-thumb .ast-blog-featured-section' => array(
							'width' => 'unset',
						),

						$bl_selector . ' .ast-no-thumb .post-content' => array(
							'width' => '100%',
						),

						'.ast-separate-container ' . $bl_selector . ' .post-content' => array(
							'padding-' . $rtl_right . '' => '1.5em',
							'padding-top'                => '1.5em',
							'padding-bottom'             => '1.5em',
						),

					);

					/** @psalm-suppress UndefinedClass */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
					if ( ! ( defined( 'ASTRA_EXT_VER' ) && Astra_Ext_Extension::is_active( 'blog-pro' ) ) ) {
						/** @psalm-suppress UndefinedClass */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
						$blog_layout_list_css[ $bl_selector . ' .ast-article-post' ] = array(
							'margin-bottom' => '2em',
							'padding'       => '0',
							'border-bottom' => '0',
						);
					} else {
						$blog_layout_list_css[ $bl_selector . ' .ast-article-post' ] = array(
							'padding'       => '0',
							'border-bottom' => '0',
						);
					}

					$parse_css .= astra_parse_css( $blog_layout_list_css );

					$blog_layout_list_css_responsive = array();

					$blog_layout_list_css_responsive[ '.ast-separate-container ' . $bl_selector . ' .post-content' ] = array(
						'padding' => '0',
					);

					$blog_layout_list_css_responsive[ $bl_selector . ' .ast-blog-featured-section' ] = array(
						'margin-bottom' => '1.5em',
					);

					$parse_css .= astra_parse_css( $blog_layout_list_css_responsive, '', astra_get_tablet_breakpoint() );
				}

				if ( 'blog-layout-6' === $blog_layout ) {

					$blog_layout_cover_css = array(

						$bl_selector . ' .blog-layout-6 .post-content' => array(
							'position'      => 'static',
							'padding-left'  => '0',
							'padding-right' => '0',
						),

						$bl_selector . ' .blog-layout-6 .ast-blog-featured-section' => array(
							'position' => 'absolute',
							'top'      => '0',
							'left'     => '0',
							'right'    => '0',
							'bottom'   => '0',
							'left'     => '0',
							'width'    => '100%',
							'height'   => '100%',
						),

						$bl_selector . ' .blog-layout-6 .post-thumb-img-content,' . $bl_selector . ' .blog-layout-6 .post-thumb-img-content img' => array(
							'width'  => '100%',
							'height' => '100%',
						),

						$bl_selector . ' .blog-layout-6 .post-thumb-img-content img' => array(
							'object-fit'    => 'cover',
							'border-radius' => '4px',
						),

						$bl_selector . ' .blog-layout-6 .ast-blog-single-element:not(.ast-blog-featured-section)' => array(
							'position' => 'relative',
							'z-index'  => '1',
						),

						$bl_selector . ' .blog-layout-6 .ast-blog-single-element, ' . $bl_selector . ' .blog-layout-6 .ast-blog-single-element *, ' . $bl_selector . ' .blog-layout-6 .ast-blog-single-element *:hover' => array(
							'color' => '#fff',
						),

						$bl_selector . ' .badge .ast-button,' . $bl_selector . ' .badge .ast-button:hover' => array(
							'border'           => '1px solid #fff',
							'background-color' => 'transparent',
						),

						$bl_selector . ' .blog-layout-6 .ast-blog-featured-section:before' => array(
							'position'         => 'absolute',
							'top'              => '0',
							'left'             => '0',
							'right'            => '0',
							'bottom'           => '0',
							'left'             => '0',
							'width'            => '100%',
							'height'           => '100%',
							'background-color' => 'rgba(30, 41, 59, 0.65)',
							'border-radius'    => '4px',
						),
					);

					if ( ( defined( 'ASTRA_EXT_VER' ) && Astra_Ext_Extension::is_active( 'blog-pro' ) ) && ( 1 === astra_get_option( 'blog-grid' ) ) ) {
						$blog_layout_cover_css[ $bl_selector . ' .ast-archive-post' ] = array(
							'position' => 'relative',
						);
					} else {
						$blog_layout_cover_css[ $bl_selector . ' .blog-layout-6' ] = array(
							'position' => 'relative',
						);
					}

					if ( 1 === $blog_grid ) {
						$blog_layout_cover_css['.ast-plain-container .ast-article-post'] = array(
							'padding' => '1.5em',
						);
					}

					if ( 1 !== $blog_grid ) {
						$blog_layout_cover_css['.ast-plain-container .ast-article-inner'] = array(
							'padding' => '1.5em',
						);
					}

					$parse_css .= astra_parse_css( $blog_layout_cover_css );
				}

				$blog_layout_css_responsive = array();

				if ( 'blog-layout-4' === $blog_layout || 'blog-layout-6' === $blog_layout ) {
					$blog_layout_css_responsive = array(
						$bl_selector . ' .ast-article-post' => array(
							'width' => '100%',
						),
					);
				}

				if ( 'blog-layout-5' === $blog_layout ) {
					$blog_layout_css_responsive[ $bl_selector . ' .ast-blog-featured-section,' . $bl_selector . ' .post-content' ] = array(
						'width' => '100%',
					);
				}

				$parse_css .= astra_parse_css( $blog_layout_css_responsive, '', astra_get_tablet_breakpoint() );

				$parse_css .= Astra_Enqueue_Scripts::trim_css( self::blog_layout_static_css() );

				// Blog Archive Featured Image.
				if ( $aspect_ratio && $with_aspect_img_width ) {
						$blog_featured_image = array(
							'.ast-article-post .post-thumb-img-content img' => array(
								'aspect-ratio' => $aspect_ratio,
								'width'        => $with_aspect_img_width,
							),
						);
						$parse_css          .= astra_parse_css( $blog_featured_image );
				}

				// Added cover styling for Custom image ratio.
				if ( 'custom' === $aspect_ratio_type ) {
					$cover_style_image = array(
						'.ast-article-post .post-thumb-img-content img' => array(
							'object-fit' => 'cover',
						),
					);
					$parse_css        .= astra_parse_css( $cover_style_image );
				}

				$author_avatar = astra_get_option( 'blog-meta-author-avatar' );

				if ( $author_avatar ) {
					$blog_author_css = array(
						'.ast-author-image' => array(
							'aspect-ratio'              => '1/1',
							'border-radius'             => '100%',
							'margin-' . $rtl_right . '' => '.5em',
						),
					);
					$parse_css      .= astra_parse_css( $blog_author_css );
				}

				$blog_archive_hover_effect = astra_get_option( 'blog-hover-effect' );

				if ( 'none' !== $blog_archive_hover_effect ) {

					$blog_archive_hover_effect_css = array(
						'.ast-article-post .post-thumb-img-content' => array(
							'overflow' => 'hidden',
						),
					);

					if ( 'zoom-in' === $blog_archive_hover_effect ) {
						$blog_archive_hover_effect_css['.ast-article-post .post-thumb-img-content img']       = array(
							'transform'  => 'scale(1)',
							'transition' => 'transform .5s ease',
						);
						$blog_archive_hover_effect_css['.ast-article-post:hover .post-thumb-img-content img'] = array(
							'transform' => 'scale(1.1)',
						);
					}

					if ( 'zoom-out' === $blog_archive_hover_effect ) {
						$blog_archive_hover_effect_css['.ast-article-post .post-thumb-img-content img']       = array(
							'transform'  => 'scale(1.1)',
							'transition' => 'transform .5s ease',
						);
						$blog_archive_hover_effect_css['.ast-article-post:hover .post-thumb-img-content img'] = array(
							'transform' => 'scale(1)',
						);
					}

					$parse_css .= astra_parse_css( $blog_archive_hover_effect_css );
				}

				// Post elements.
				$categories_styles      = astra_get_option( 'blog-category-style' );
				$tag_styles             = astra_get_option( 'blog-tag-style' );
				$categories_meta_styles = astra_get_option( 'blog-meta-category-style' );
				$tag_meta_styles        = astra_get_option( 'blog-meta-tag-style' );

				if ( $categories_styles || $tag_styles || $categories_meta_styles || $tag_meta_styles ) {
					$post_tax_style  = '
						.cat-links.badge a, .tags-links.badge a {
							padding: 4px 8px;
							border-radius: 3px;
							font-weight: 400;
						}
					';
					$post_tax_style .= '
						.cat-links.underline a, .tags-links.underline a{
							text-decoration: underline;
						}
					';
					$parse_css      .= Astra_Enqueue_Scripts::trim_css( $post_tax_style );
				}
			}

			// Primary Submenu Border Width & Color.
			$submenu_border_style = array(
				'.ast-desktop .main-header-menu.submenu-with-border .sub-menu, .ast-desktop .main-header-menu.submenu-with-border .astra-full-megamenu-wrapper' => array(
					'border-color' => esc_attr( $primary_submenu_b_color ),
				),

				'.ast-desktop .main-header-menu.submenu-with-border .sub-menu' => array(
					'border-top-width'    => ! empty( $submenu_border['top'] ) ? astra_get_css_value( $submenu_border['top'], 'px' ) : '',
					'border-right-width'  => ! empty( $submenu_border['right'] ) ? astra_get_css_value( $submenu_border['right'], 'px' ) : '',
					'border-left-width'   => ! empty( $submenu_border['left'] ) ? astra_get_css_value( $submenu_border['left'], 'px' ) : '',
					'border-bottom-width' => ! empty( $submenu_border['bottom'] ) ? astra_get_css_value( $submenu_border['bottom'], 'px' ) : '',
					'border-style'        => 'solid',
				),
				'.ast-desktop .main-header-menu.submenu-with-border .sub-menu .sub-menu' => array(
					'top' => isset( $submenu_border['top'] ) && '' != $submenu_border['top'] ? astra_get_css_value( '-' . $submenu_border['top'], 'px' ) : '',
				),
				'.ast-desktop .main-header-menu.submenu-with-border .sub-menu .menu-link, .ast-desktop .main-header-menu.submenu-with-border .children .menu-link' => array(
					'border-bottom-width' => $primary_submenu_item_border ? '1px' : '0px',
					'border-style'        => 'solid',
					'border-color'        => esc_attr( $primary_submenu_item_b_color ),
				),
			);

			// Submenu items goes outside?
			$submenu_border_for_left_align_menu = array(
				'.main-header-menu .sub-menu .menu-item.ast-left-align-sub-menu:hover > .sub-menu, .main-header-menu .sub-menu .menu-item.ast-left-align-sub-menu.focus > .sub-menu' => array(
					'margin-left' => ( isset( $submenu_border['left'] ) && '' != $submenu_border['left'] ) || isset( $submenu_border['right'] ) && '' != $submenu_border['right'] ? astra_get_css_value( '-' . ( (int) $submenu_border['left'] + (int) $submenu_border['right'] ), 'px' ) : '',
				),
			);

			if ( false === Astra_Builder_Helper::$is_header_footer_builder_active ) {
				$parse_css .= astra_parse_css( $submenu_border_style );
			}

			// Submenu items goes outside?
			$parse_css .= astra_parse_css( $submenu_border_for_left_align_menu, astra_get_tablet_breakpoint( '', 1 ) );

			/* Small Footer CSS */
			if ( false === Astra_Builder_Helper::$is_header_footer_builder_active && 'disabled' !== $small_footer_layout ) {
				$sml_footer_css = array(
					'.ast-small-footer' => array(
						'border-top-style' => 'solid',
						'border-top-width' => astra_get_css_value( $small_footer_divider, 'px' ),
						'border-top-color' => esc_attr( $small_footer_divider_color ),
					),
				);
				$parse_css     .= astra_parse_css( $sml_footer_css );

				if ( 'footer-sml-layout-2' !== $small_footer_layout ) {
					$sml_footer_css = array(
						'.ast-small-footer-wrap' => array(
							'text-align' => 'center',
						),
					);
					$parse_css     .= astra_parse_css( $sml_footer_css );
				}
			}

			/* Transparent Header - Comonent header specific CSS compatibility */
			if ( true === Astra_Builder_Helper::$is_header_footer_builder_active && Astra_Ext_Transparent_Header_Markup::is_transparent_header() ) {

				$html_text_color   = astra_get_option( 'transparent-header-html-text-color' );
				$html_link_color   = astra_get_option( 'transparent-header-html-link-color' );
				$html_link_h_color = astra_get_option( 'transparent-header-html-link-h-color' );

				$search_icon_color = astra_get_option( 'transparent-header-search-icon-color' );
				$search_text_color = astra_get_option( 'transparent-header-search-box-placeholder-color' );

				$search_box_bg_color = astra_get_option( 'transparent-header-search-box-background-color' );

				$social_color          = astra_get_option( 'transparent-header-social-icons-color' );
				$social_hover_color    = astra_get_option( 'transparent-header-social-icons-h-color' );
				$social_bg_color       = astra_get_option( 'transparent-header-social-icons-bg-color' );
				$social_bg_hover_color = astra_get_option( 'transparent-header-social-icons-bg-h-color' );

				$button_color          = astra_get_option( 'transparent-header-button-text-color' );
				$button_h_color        = astra_get_option( 'transparent-header-button-text-h-color' );
				$button_bg_color       = astra_get_option( 'transparent-header-button-bg-color' );
				$button_bg_h_color     = astra_get_option( 'transparent-header-button-bg-h-color' );
				$button_border_color   = astra_get_option( 'transparent-header-button-border-color' );
				$button_h_border_color = astra_get_option( 'transparent-header-button-border-h-color' );

				$divider_color                = astra_get_option( 'transparent-header-divider-color' );
				$account_icon_color           = astra_get_option( 'transparent-account-icon-color' );
				$account_loggedout_text_color = astra_get_option( 'transparent-account-type-text-color' );

				// Menu colors.
				$account_menu_color           = astra_get_option( 'transparent-account-menu-color' );
				$account_menu_bg_color        = astra_get_option( 'transparent-account-menu-bg-obj' );
				$account_menu_color_hover     = astra_get_option( 'transparent-account-menu-h-color' );
				$account_menu_bg_color_hover  = astra_get_option( 'transparent-account-menu-h-bg-color' );
				$account_menu_color_active    = astra_get_option( 'transparent-account-menu-a-color' );
				$account_menu_bg_color_active = astra_get_option( 'transparent-account-menu-a-bg-color' );

				$transparent_header_builder_desktop_css = array(
					'.ast-theme-transparent-header [CLASS*="ast-header-html-"] .ast-builder-html-element' => array(
						'color' => esc_attr( $html_text_color ),
					),
					'.ast-theme-transparent-header [CLASS*="ast-header-html-"] .ast-builder-html-element a' => array(
						'color' => esc_attr( $html_link_color ),
					),
					'.ast-theme-transparent-header [CLASS*="ast-header-html-"] .ast-builder-html-element a:hover' => array(
						'color' => esc_attr( $html_link_h_color ),
					),
					'.ast-theme-transparent-header .ast-header-search .astra-search-icon, .ast-theme-transparent-header .ast-header-search .search-field::placeholder, .ast-theme-transparent-header .ast-header-search .ast-icon'         => array(
						'color' => esc_attr( $search_icon_color ),
					),
					'.ast-theme-transparent-header .ast-header-search .ast-search-menu-icon .search-field, .ast-theme-transparent-header .ast-header-search .ast-search-menu-icon .search-field::placeholder'         => array(
						'color' => esc_attr( $search_text_color ),
					),
					'.ast-theme-transparent-header .ast-header-search .ast-search-menu-icon .search-field, .ast-theme-transparent-header .ast-header-search .ast-search-menu-icon .search-form, .ast-theme-transparent-header .ast-header-search .ast-search-menu-icon .search-submit'         => array(
						'background-color' => esc_attr( $search_box_bg_color ),
					),
					'.ast-theme-transparent-header .ast-header-social-wrap .ast-social-color-type-custom .ast-builder-social-element' => array(
						'background' => esc_attr( $social_bg_color['desktop'] ),
					),
					'.ast-theme-transparent-header .ast-header-social-wrap .ast-social-color-type-custom .ast-builder-social-element svg' => array(
						'fill' => esc_attr( $social_color['desktop'] ),
					),
					'.ast-theme-transparent-header .ast-header-social-wrap .ast-social-color-type-custom .ast-builder-social-element:hover' => array(
						'background' => esc_attr( $social_bg_hover_color['desktop'] ),
					),
					'.ast-theme-transparent-header .ast-header-social-wrap .ast-social-color-type-custom .ast-builder-social-element:hover svg' => array(
						'fill' => esc_attr( $social_hover_color['desktop'] ),
					),
					'.ast-theme-transparent-header .ast-header-social-wrap .ast-social-color-type-custom .ast-builder-social-element .social-item-label' => array(
						'color' => esc_attr( $social_color['desktop'] ),
					),
					'.ast-theme-transparent-header .ast-header-social-wrap .ast-social-color-type-custom .ast-builder-social-element:hover .social-item-label' => array(
						'color' => esc_attr( $social_hover_color['desktop'] ),
					),
					'.ast-theme-transparent-header [CLASS*="ast-header-button-"] .ast-custom-button' => array(
						'color'        => esc_attr( $button_color ),
						'background'   => esc_attr( $button_bg_color ),
						'border-color' => esc_attr( $button_border_color ),
					),
					'.ast-theme-transparent-header [CLASS*="ast-header-button-"] .ast-custom-button:hover' => array(
						'color'        => esc_attr( $button_h_color ),
						'background'   => esc_attr( $button_bg_h_color ),
						'border-color' => esc_attr( $button_h_border_color ),
					),
					'.ast-theme-transparent-header .ast-header-divider-element .ast-divider-wrapper'         => array(
						'border-color' => esc_attr( $divider_color ),
					),
					'.ast-theme-transparent-header .ast-header-account-wrap .ast-header-account-type-icon .ahfb-svg-iconset svg path:not(.ast-hf-account-unfill), .ast-theme-transparent-header .ast-header-account-wrap .ast-header-account-type-icon .ahfb-svg-iconset svg circle' => array(
						'fill' => esc_attr( $account_icon_color ),
					),
					'.ast-theme-transparent-header .ast-header-account-wrap .ast-account-nav-menu .menu-item .menu-link'         => array(
						'color' => esc_attr( $account_menu_color ),
					),
					'.ast-theme-transparent-header .ast-header-account-wrap .ast-account-nav-menu .menu-item:hover > .menu-link'    => array(
						'color'      => $account_menu_color_hover,
						'background' => $account_menu_bg_color_hover,
					),
					'.ast-theme-transparent-header .ast-header-account-wrap .ast-account-nav-menu .menu-item.current-menu-item > .menu-link' => array(
						'color'      => $account_menu_color_active,
						'background' => $account_menu_bg_color_active,
					),
					'.ast-theme-transparent-header .ast-header-account-wrap .account-main-navigation ul' => array(
						'background' => $account_menu_bg_color,
					),
					'.ast-theme-transparent-header .ast-header-account-wrap .ast-header-account-text' => array(
						'color' => $account_loggedout_text_color,
					),
				);

					$widget_title_color      = astra_get_option( 'transparent-header-widget-title-color' );
					$widget_content_color    = astra_get_option( 'transparent-header-widget-content-color' );
					$widget_link_color       = astra_get_option( 'transparent-header-widget-link-color' );
					$widget_link_hover_color = astra_get_option( 'transparent-header-widget-link-h-color' );

					$transparent_header_builder_desktop_css['.ast-theme-transparent-header .widget-area.header-widget-area .widget-title']                     = array(
						'color' => esc_attr( $widget_title_color ),
					);
					$transparent_header_builder_desktop_css['.ast-theme-transparent-header .widget-area.header-widget-area .header-widget-area-inner']         = array(
						'color' => esc_attr( $widget_content_color ),
					);
					$transparent_header_builder_desktop_css['.ast-theme-transparent-header .widget-area.header-widget-area .header-widget-area-inner a']       = array(
						'color' => esc_attr( $widget_link_color ),
					);
					$transparent_header_builder_desktop_css['.ast-theme-transparent-header .widget-area.header-widget-area .header-widget-area-inner a:hover'] = array(
						'color' => esc_attr( $widget_link_hover_color ),
					);

					if ( Astra_Builder_Helper::apply_flex_based_css() ) {
						$transparent_header_widget_selector = '.ast-theme-transparent-header .widget-area.header-widget-area.header-widget-area-inner';
					} else {
						$transparent_header_widget_selector = '.ast-theme-transparent-header .widget-area.header-widget-area. header-widget-area-inner';
					}

					$transparent_header_builder_desktop_css[ $transparent_header_widget_selector ]              = array(
						'color' => esc_attr( $widget_content_color ),
					);
					$transparent_header_builder_desktop_css[ $transparent_header_widget_selector . ' a' ]       = array(
						'color' => esc_attr( $widget_link_color ),
					);
					$transparent_header_builder_desktop_css[ $transparent_header_widget_selector . ' a:hover' ] = array(
						'color' => esc_attr( $widget_link_hover_color ),
					);

					if ( Astra_Builder_Helper::is_component_loaded( 'mobile-trigger', 'header', 'mobile' ) ) {

						$transparent_toggle_selector = '.ast-theme-transparent-header [data-section="section-header-mobile-trigger"]';

						$trigger_bg           = astra_get_option( 'transparent-header-toggle-btn-bg-color' );
						$trigger_border_color = astra_get_option( 'transparent-header-toggle-border-color', $trigger_bg );
						$style                = astra_get_option( 'mobile-header-toggle-btn-style' );

						$icon_color = astra_get_option( 'transparent-header-toggle-btn-color' );

						/**
						 * Off-Canvas CSS.
						 */
						$transparent_header_builder_desktop_css[ $transparent_toggle_selector . ' .ast-button-wrap .mobile-menu-toggle-icon .ast-mobile-svg' ] = array(
							'fill' => $icon_color,
						);

						$transparent_header_builder_desktop_css[ $transparent_toggle_selector . ' .ast-button-wrap .mobile-menu-wrap .mobile-menu' ] = array(
							// Color.
							'color' => $icon_color,
						);

						if ( 'fill' === $style ) {
							$transparent_header_builder_desktop_css[ $transparent_toggle_selector . ' .ast-button-wrap .ast-mobile-menu-trigger-fill' ] = array(
								'background' => esc_attr( $trigger_bg ),
							);
							$transparent_header_builder_desktop_css[ $transparent_toggle_selector . ' .ast-button-wrap .ast-mobile-menu-trigger-fill, ' . $transparent_toggle_selector . ' .ast-button-wrap .ast-mobile-menu-trigger-minimal' ] = array(
								// Color & Border.
								'color'  => esc_attr( $icon_color ),
								'border' => 'none',
							);
						} elseif ( 'outline' === $style ) {
							$transparent_header_builder_desktop_css[ $transparent_toggle_selector . ' .ast-button-wrap .ast-mobile-menu-trigger-outline' ] = array(
								// Background.
								'background'   => 'transparent',
								'color'        => esc_attr( $icon_color ),
								'border-color' => $trigger_border_color,
							);
						} else {
							$transparent_header_builder_desktop_css[ $transparent_toggle_selector . ' .ast-button-wrap .ast-mobile-menu-trigger-minimal' ] = array(
								'background' => 'transparent',
							);
						}
					}

					$parse_css .= astra_parse_css( $transparent_header_builder_desktop_css );

					/**
					 * Max-width: Tablet Breakpoint CSS.
					 */
					$transparent_header_builder_tablet_css = array(
						'.ast-theme-transparent-header .ast-header-social-wrap .ast-social-color-type-custom .ast-builder-social-element' => array(
							'background' => esc_attr( $social_bg_color['tablet'] ),
						),
						'.ast-theme-transparent-header .ast-header-social-wrap .ast-social-color-type-custom .ast-builder-social-element svg' => array(
							'fill' => esc_attr( $social_color['tablet'] ),
						),
						'.ast-theme-transparent-header .ast-header-social-wrap .ast-social-color-type-custom .ast-builder-social-element:hover' => array(
							'background' => esc_attr( $social_bg_hover_color['tablet'] ),
						),
						'.ast-theme-transparent-header .ast-header-social-wrap .ast-social-color-type-custom .ast-builder-social-element:hover svg' => array(
							'fill' => esc_attr( $social_hover_color['tablet'] ),
						),
						'.ast-theme-transparent-header .ast-header-social-wrap .ast-social-color-type-custom .ast-builder-social-element .social-item-label' => array(
							'color' => esc_attr( $social_color['tablet'] ),
						),
						'.ast-theme-transparent-header .ast-header-social-wrap .ast-social-color-type-custom .ast-builder-social-element:hover .social-item-label' => array(
							'color' => esc_attr( $social_hover_color['tablet'] ),
						),
					);

					$parse_css .= astra_parse_css( $transparent_header_builder_tablet_css, '', astra_get_tablet_breakpoint() );

					/**
					 * Max-width: Mobile Breakpoint CSS.
					 */
					$transparent_header_builder_mobile_css = array(
						'.ast-theme-transparent-header .ast-header-social-wrap .ast-social-color-type-custom .ast-builder-social-element' => array(
							'background' => esc_attr( $social_bg_color['mobile'] ),
						),
						'.ast-theme-transparent-header .ast-header-social-wrap .ast-social-color-type-custom .ast-builder-social-element svg' => array(
							'fill' => esc_attr( $social_color['mobile'] ),
						),
						'.ast-theme-transparent-header .ast-header-social-wrap .ast-social-color-type-custom .ast-builder-social-element:hover' => array(
							'background' => esc_attr( $social_bg_hover_color['mobile'] ),
						),
						'.ast-theme-transparent-header .ast-header-social-wrap .ast-social-color-type-custom .ast-builder-social-element:hover svg' => array(
							'fill' => esc_attr( $social_hover_color['mobile'] ),
						),
						'.ast-theme-transparent-header .ast-header-social-wrap .ast-social-color-type-custom .ast-builder-social-element .social-item-label' => array(
							'color' => esc_attr( $social_color['mobile'] ),
						),
						'.ast-theme-transparent-header .ast-header-social-wrap .ast-social-color-type-custom .ast-builder-social-element:hover .social-item-label' => array(
							'color' => esc_attr( $social_hover_color['mobile'] ),
						),
					);

					$parse_css .= astra_parse_css( $transparent_header_builder_mobile_css, '', astra_get_mobile_breakpoint() );
			}

			if ( self::astra_list_block_vertical_spacing() ) {
				$list_spacing_css = array(
					'.entry-content li > p' => array(
						'margin-bottom' => 0,
					),
				);
				$parse_css       .= astra_parse_css( $list_spacing_css );
			}

			if ( self::astra_fullwidth_sidebar_support() ) {
				if ( 'page-builder' === $ast_container_layout ) {
					add_filter(
						'astra_page_layout',
						static function() { // phpcs:ignore PHPCompatibility.FunctionDeclarations.NewClosure.Found
							return 'no-sidebar';
						}
					);
				}
			}

			if ( astra_get_option( 'enable-comments-area', true ) ) {
				$parse_css .= Astra_Extended_Base_Dynamic_CSS::prepare_inner_section_advanced_css( 'ast-sub-section-comments', '.site .comments-area' );

				$comments_radius = astra_get_option(
					'ast-sub-section-comments-border-radius',
					array(
						'top'    => '',
						'right'  => '',
						'bottom' => '',
						'left'   => '',
					)
				);

				$list_spacing_css = array(
					'.comments-area .comments-title, .comments-area .comment-respond' => array(
						'border-top-left-radius'     => ! empty( astra_get_css_value( $comments_radius['top'] ) ) ? astra_get_css_value( $comments_radius['top'], 'px' ) : '',
						'border-bottom-right-radius' => ! empty( astra_get_css_value( $comments_radius['bottom'] ) ) ? astra_get_css_value( $comments_radius['bottom'], 'px' ) : '',
						'border-bottom-left-radius'  => ! empty( astra_get_css_value( $comments_radius['left'] ) ) ? astra_get_css_value( $comments_radius['left'], 'px' ) : '',
						'border-top-right-radius'    => ! empty( astra_get_css_value( $comments_radius['right'] ) ) ? astra_get_css_value( $comments_radius['right'], 'px' ) : '',
					),
				);
				$parse_css       .= astra_parse_css( $list_spacing_css );
			}

			$parse_css .= $dynamic_css;
			$custom_css = astra_get_option( 'custom-css' );

			if ( '' != $custom_css ) {
				$parse_css .= $custom_css;
			}

			// trim white space for faster page loading.
			$parse_css = Astra_Enqueue_Scripts::trim_css( $parse_css );

			return apply_filters( 'astra_theme_dynamic_css', $parse_css );
		}

		/**
		 * Astra update default font size and font weight.
		 *
		 * @since 4.6.5
		 * @return bool
		 */
		public static function elementor_heading_margin_style_comp() {
			$astra_settings = astra_get_options();
			return apply_filters( 'elementor_heading_margin', isset( $astra_settings['elementor-headings-style'] ) ? false : true );
		}

		/**
		 * Heading font size fix in footer builder compatibility.
		 *
		 * @since 4.7.0
		 * @return bool
		 */
		public static function astra_heading_inside_widget_font_size_comp() {
			$astra_settings = astra_get_options();
			return apply_filters( 'astra_heading_inside_widget_font_size', isset( $astra_settings['heading-widget-font-size'] ) ? false : true );
		}

		/**
		 * Added Elementor post loop block padding support .
		 *
		 * @since 4.6.6
		 * @return bool
		 */
		public static function elementor_container_padding_style_comp() {
			$astra_settings = astra_get_options();
			return apply_filters( 'elementor_container_padding', isset( $astra_settings['elementor-container-padding-style'] ) ? false : true );
		}

		/**
		 * Added Elementor button styling support.
		 *
		 * @since 4.6.12
		 * @return bool
		 */
		public static function elementor_btn_styling_comp() {
			$astra_settings = astra_get_options();
			return apply_filters( 'astra_elementor_button_body_selector_compatibility', isset( $astra_settings['elementor-btn-styling'] ) && $astra_settings['elementor-btn-styling'] ? true : false );
		}

		/**
		 * PX to em conversion failed with default value set.
		 *
		 * @since 4.8.4
		 * @return bool
		 */
		public static function heading_font_size_comp() {
			$astra_settings = astra_get_options();
			return apply_filters( 'heading_font_size_compatibility', isset( $astra_settings['astra-heading-font-size-compatibility'] ) ? false : true );
		}

		/**
		 * Return post meta CSS
		 *
		 * @param  string $dynamic_css          Astra Dynamic CSS.
		 * @param  string $dynamic_css_filtered Astra Dynamic CSS Filters.
		 * @return mixed              Return the CSS.
		 */
		public static function return_meta_output( $dynamic_css, $dynamic_css_filtered = '' ) {

			/**
			 * - Page Layout
			 *
			 *   - Sidebar Positions CSS
			 */
			$secondary_width = absint( astra_get_option( 'site-sidebar-width' ) );
			$primary_width   = absint( 100 - $secondary_width );
			$meta_style      = '';

			// Header Separator.
			$header_separator       = astra_get_option( 'header-main-sep' );
			$header_separator_color = astra_get_option( 'header-main-sep-color' );

			$meta_style = array(
				'.ast-header-break-point .main-header-bar' => array(
					'border-bottom-width' => astra_get_css_value( $header_separator, 'px' ),
					'border-bottom-color' => esc_attr( $header_separator_color ),
				),
			);

			$parse_css = astra_parse_css( $meta_style );

			$meta_style = array(
				'.main-header-bar' => array(
					'border-bottom-width' => astra_get_css_value( $header_separator, 'px' ),
					'border-bottom-color' => esc_attr( $header_separator_color ),
				),
			);

			$parse_css .= astra_parse_css( $meta_style, astra_get_tablet_breakpoint( '', 1 ) );

			if ( 'no-sidebar' !== astra_page_layout() ) {

				$meta_style = array(
					'#primary'   => array(
						'width' => astra_get_css_value( $primary_width, '%' ),
					),
					'#secondary' => array(
						'width' => astra_get_css_value( strval( $secondary_width ), '%' ),
					),
				);

				$parse_css .= astra_parse_css( $meta_style, astra_get_tablet_breakpoint( '', 1 ) );

			}

			if ( false === self::astra_submenu_below_header_fix() ) {
				// If submenu below header fix is not to be loaded then add removed flex properties from class `ast-flex`.
				// Also restore the padding to class `main-header-bar`.
				$submenu_below_header = array(
					'.ast-flex'          => array(
						'-webkit-align-content' => 'center',
						'-ms-flex-line-pack'    => 'center',
						'align-content'         => 'center',
						'-webkit-box-align'     => 'center',
						'-webkit-align-items'   => 'center',
						'-moz-box-align'        => 'center',
						'-ms-flex-align'        => 'center',
						'align-items'           => 'center',
					),
					'.main-header-bar'   => array(
						'padding' => '1em 0',
					),
					'.ast-site-identity' => array(
						'padding' => '0',
					),
					// CSS to open submenu just below menu.
					'.header-main-layout-1 .ast-flex.main-header-container, .header-main-layout-3 .ast-flex.main-header-container' => array(
						'-webkit-align-content' => 'center',
						'-ms-flex-line-pack'    => 'center',
						'align-content'         => 'center',
						'-webkit-box-align'     => 'center',
						'-webkit-align-items'   => 'center',
						'-moz-box-align'        => 'center',
						'-ms-flex-align'        => 'center',
						'align-items'           => 'center',
					),
				);

				$parse_css .= astra_parse_css( $submenu_below_header );

			} else {
				// `.menu-item` required display:flex, although weight of this css increases because of which custom CSS added from child themes to be not working.
				// Hence this is added to dynamic CSS which will be applied only if this filter `astra_submenu_below_header_fix` is enabled.
				// @see https://github.com/brainstormforce/astra/pull/828
				$submenu_below_header = array(
					'.main-header-menu .menu-item, #astra-footer-menu .menu-item, .main-header-bar .ast-masthead-custom-menu-items' => array(
						'-js-display'             => 'flex',
						'display'                 => '-webkit-box',
						'display'                 => '-webkit-flex',
						'display'                 => '-moz-box',
						'display'                 => '-ms-flexbox',
						'display'                 => 'flex',
						'-webkit-box-pack'        => 'center',
						'-webkit-justify-content' => 'center',
						'-moz-box-pack'           => 'center',
						'-ms-flex-pack'           => 'center',
						'justify-content'         => 'center',
						'-webkit-box-orient'      => 'vertical',
						'-webkit-box-direction'   => 'normal',
						'-webkit-flex-direction'  => 'column',
						'-moz-box-orient'         => 'vertical',
						'-moz-box-direction'      => 'normal',
						'-ms-flex-direction'      => 'column',
						'flex-direction'          => 'column',
					),
					'.main-header-menu > .menu-item > .menu-link, #astra-footer-menu > .menu-item > .menu-link' => array(
						'height'              => '100%',
						'-webkit-box-align'   => 'center',
						'-webkit-align-items' => 'center',
						'-moz-box-align'      => 'center',
						'-ms-flex-align'      => 'center',
						'align-items'         => 'center',
						'-js-display'         => 'flex',
						'display'             => '-webkit-box',
						'display'             => '-webkit-flex',
						'display'             => '-moz-box',
						'display'             => '-ms-flexbox',
						'display'             => 'flex',
					),
				);

				if ( false === Astra_Builder_Helper::$is_header_footer_builder_active ) {
					$submenu_below_header['.ast-primary-menu-disabled .main-header-bar .ast-masthead-custom-menu-items'] = array(
						'flex' => 'unset',
					);
				}

				$parse_css .= astra_parse_css( $submenu_below_header );

			}

			if ( false === self::astra_submenu_open_below_header_fix() ) {
				// If submenu below header fix is not to be loaded then add removed flex properties from class `ast-flex`.
				// Also restore the padding to class `main-header-bar`.
				$submenu_below_header = array(
					// CSS to open submenu just below menu.
					'.header-main-layout-1 .ast-flex.main-header-container, .header-main-layout-3 .ast-flex.main-header-container' => array(
						'-webkit-align-content' => 'center',
						'-ms-flex-line-pack'    => 'center',
						'align-content'         => 'center',
						'-webkit-box-align'     => 'center',
						'-webkit-align-items'   => 'center',
						'-moz-box-align'        => 'center',
						'-ms-flex-align'        => 'center',
						'align-items'           => 'center',
					),
				);

				$parse_css .= astra_parse_css( $submenu_below_header );
			}

			$submenu_toggle = '';
			$is_site_rtl    = is_rtl();

			if ( false === Astra_Icons::is_svg_icons() ) {
				// Update styles depend on RTL sites.
				$transform_svg_style            = 'translate(0,-50%) rotate(270deg)';
				$transform_nested_svg_transform = 'translate(0, -2px) rotateZ(270deg)';
				$default_left_rtl_right         = 'left';
				$default_right_rtl_left         = 'right';
				if ( $is_site_rtl ) {
					$transform_svg_style            = 'translate(0,-50%) rotate(90deg)';
					$transform_nested_svg_transform = 'translate(0, -2px) rotateZ(90deg)';
					$default_left_rtl_right         = 'right';
					$default_right_rtl_left         = 'left';
				}
				$submenu_toggle = array(
					// HFB / Old Header Footer - CSS compatibility when SVGs are disabled.
					'.main-header-menu .sub-menu .menu-item.menu-item-has-children > .menu-link:after' => array(
						'position'              => 'absolute',
						$default_right_rtl_left => '1em',
						'top'                   => '50%',
						'transform'             => $transform_svg_style,
					),
					'.ast-header-break-point .main-header-bar .main-header-bar-navigation .page_item_has_children > .ast-menu-toggle::before, .ast-header-break-point .main-header-bar .main-header-bar-navigation .menu-item-has-children > .ast-menu-toggle::before, .ast-mobile-popup-drawer .main-header-bar-navigation .menu-item-has-children>.ast-menu-toggle::before, .ast-header-break-point .ast-mobile-header-wrap .main-header-bar-navigation .menu-item-has-children > .ast-menu-toggle::before' => array(
						'font-weight'     => 'bold',
						'content'         => '"\e900"',
						'font-family'     => 'Astra',
						'text-decoration' => 'inherit',
						'display'         => 'inline-block',
					),
					'.ast-header-break-point .main-navigation ul.sub-menu .menu-item .menu-link:before' => array(
						'content'         => '"\e900"',
						'font-family'     => 'Astra',
						'font-size'       => '.65em',
						'text-decoration' => 'inherit',
						'display'         => 'inline-block',
						'transform'       => $transform_nested_svg_transform,
						'margin-' . $default_right_rtl_left => '5px',
					),
					'.widget_search .search-form:after' => array(
						'font-family'           => 'Astra',
						'font-size'             => '1.2em',
						'font-weight'           => 'normal',
						'content'               => '"\e8b6"',
						'position'              => 'absolute',
						'top'                   => '50%',
						$default_right_rtl_left => '15px',
						'transform'             => 'translate(0, -50%)',
					),
					'.astra-search-icon::before'        => array(
						'content'                 => '"\e8b6"',
						'font-family'             => 'Astra',
						'font-style'              => 'normal',
						'font-weight'             => 'normal',
						'text-decoration'         => 'inherit',
						'text-align'              => 'center',
						'-webkit-font-smoothing'  => 'antialiased',
						'-moz-osx-font-smoothing' => 'grayscale',
						'z-index'                 => '3',
					),
					'.main-header-bar .main-header-bar-navigation .page_item_has_children > a:after, .main-header-bar .main-header-bar-navigation .menu-item-has-children > a:after, .menu-item-has-children .ast-header-navigation-arrow:after' => array(
						'content'                 => '"\e900"',
						'display'                 => 'inline-block',
						'font-family'             => 'Astra',
						'font-size'               => '9px',
						'font-size'               => '.6rem',
						'font-weight'             => 'bold',
						'text-rendering'          => 'auto',
						'-webkit-font-smoothing'  => 'antialiased',
						'-moz-osx-font-smoothing' => 'grayscale',
						'margin-' . $default_left_rtl_right => '10px',
						'line-height'             => 'normal',
					),

					'.menu-item-has-children .sub-menu .ast-header-navigation-arrow:after' => array(
						'margin-left' => '0',
					),

					'.ast-mobile-popup-drawer .main-header-bar-navigation .ast-submenu-expanded>.ast-menu-toggle::before' => array(
						'transform' => 'rotateX(180deg)',
					),
					'.ast-header-break-point .main-header-bar-navigation .menu-item-has-children > .menu-link:after' => array(
						'display' => 'none',
					),
				);
			} else {
				if ( ! Astra_Builder_Helper::$is_header_footer_builder_active ) {
					// Update styles depend on RTL sites.
					$transform_svg_style            = 'translate(0,-50%) rotate(270deg)';
					$transform_nested_svg_transform = 'translate(0, -2px) rotateZ(270deg)';
					$default_left_rtl_right         = 'left';
					$default_right_rtl_left         = 'right';
					if ( $is_site_rtl ) {
						$transform_svg_style            = 'translate(0,-50%) rotate(900deg)';
						$transform_nested_svg_transform = 'translate(0, -2px) rotateZ(90deg)';
						$default_left_rtl_right         = 'right';
						$default_right_rtl_left         = 'left';
					}
					$submenu_toggle = array(
						// Old Header Footer - SVG Support.
						'.ast-desktop .main-header-menu .sub-menu .menu-item.menu-item-has-children>.menu-link .icon-arrow svg' => array(
							'position'              => 'absolute',
							$default_right_rtl_left => '.6em',
							'top'                   => '50%',
							'transform'             => $transform_svg_style,
						),
						'.ast-header-break-point .main-navigation ul .menu-item .menu-link .icon-arrow:first-of-type svg' => array(
							$default_left_rtl_right => '.1em',
							'top'                   => '.1em',
							'transform'             => $transform_nested_svg_transform,
						),
					);
				} else {
					$transform_svg_style    = 'translate(0, -2px) rotateZ(270deg)';
					$default_left_rtl_right = 'left';
					if ( $is_site_rtl ) {
						$transform_svg_style    = 'translate(0, -2px) rotateZ(90deg)';
						$default_left_rtl_right = 'right';
					}
					$submenu_toggle = array(
						// New Header Footer - SVG Support.
						'.ast-header-break-point .main-navigation ul .menu-item .menu-link .icon-arrow:first-of-type svg' => array(
							'top'        => '.2em',
							'margin-top' => '0px',
							'margin-' . $default_left_rtl_right => '0px',
							'width'      => '.65em',
							'transform'  => $transform_svg_style,
						),
						'.ast-mobile-popup-content .ast-submenu-expanded > .ast-menu-toggle' => array(
							'transform'  => 'rotateX(180deg)',
							'overflow-y' => 'auto',
						),
					);
				}
			}

			$parse_css .= astra_parse_css( $submenu_toggle );

			$dynamic_css .= $parse_css;

			$ltr_right    = is_rtl() ? esc_attr( 'left' ) : esc_attr( 'right' );
			$dynamic_css .= astra_parse_css(
				array(
					'.ast-builder-menu .main-navigation > ul > li:last-child a' => array(
						'margin-' . $ltr_right => '0',
					),
				),
				astra_get_tablet_breakpoint( '', 1 )
			);

			return $dynamic_css;
		}

		/**
		 * Conditionally iclude CSS Selectors with anchors in the typography settings.
		 *
		 * Historically Astra adds Colors/Typography CSS for headings and anchors for headings but this causes irregularities with the expected output.
		 * For eg Link color does not work for the links inside headings.
		 *
		 * If filter `astra_include_achors_in_headings_typography` is set to true or Astra Option `include-headings-in-typography` is set to true, This will return selectors with anchors. Else This will return selectors without anchors.
		 *
		 * @since 1.4.9
		 * @param String $selectors_with_achors CSS Selectors with anchors.
		 * @param String $selectors_without_achors CSS Selectors withour annchors.
		 *
		 * @return String CSS Selectors based on the condition of filters.
		 */
		private static function conditional_headings_css_selectors( $selectors_with_achors, $selectors_without_achors ) {

			if ( true === self::anchors_in_css_selectors_heading() ) {
				return $selectors_with_achors;
			}

			return $selectors_without_achors;
		}

		/**
		 * Check if CSS selectors in Headings should use anchors.
		 *
		 * @since 1.4.9
		 * @return bool true if it should include anchors, False if not.
		 */
		public static function anchors_in_css_selectors_heading() {

			if ( true === astra_get_option( 'include-headings-in-typography' ) &&
				true === apply_filters(
					'astra_include_achors_in_headings_typography',
					true
				) ) {

					return true;
			}

			return false;
		}

		/**
		 * Check backwards compatibility CSS for loading submenu below the header needs to be added.
		 *
		 * @since 1.5.0
		 * @return bool true if CSS should be included, False if not.
		 */
		public static function astra_submenu_below_header_fix() {

			if ( false === astra_get_option( 'submenu-below-header', true ) &&
				false === apply_filters(
					'astra_submenu_below_header_fix',
					false
				) ) {

					return false;
			}
			return true;
		}

		/**
		 * Check backwards compatibility CSS for loading submenu below the header needs to be added.
		 *
		 * @since 2.1.3
		 * @return bool true if submenu below header fix is to be loaded, False if not.
		 */
		public static function astra_submenu_open_below_header_fix() {

			if ( false === astra_get_option( 'submenu-open-below-header', true ) &&
				false === apply_filters(
					'astra_submenu_open_below_header_fix',
					false
				) ) {

					return false;
			}
			return true;
		}

		/**
		 * Check backwards compatibility to not load default CSS for the button styling of Page Builders.
		 *
		 * @since 2.2.0
		 * @return bool true if button style CSS should be loaded, False if not.
		 */
		public static function page_builder_button_style_css() {
			$astra_settings = astra_get_options();
			return apply_filters( 'astra_page_builder_button_style_css', isset( $astra_settings['pb-button-color-compatibility'] ) && false === $astra_settings['pb-button-color-compatibility'] ? false : true );
		}

		/**
		 * Elementor Theme Style - Button Text Color compatibility. This should be looked in the future for proper solution.
		 *
		 * Reference: https://github.com/elementor/elementor/issues/10733
		 * Reference: https://github.com/elementor/elementor/issues/10739
		 *
		 * @since 2.3.3
		 *
		 * @return mixed
		 */
		public static function is_elementor_kit_button_color_set() {
			$ele_btn_global_text_color = false;
			$ele_kit_id                = get_option( 'elementor_active_kit', false );
			if ( false !== $ele_kit_id ) {
				$ele_global_btn_data = get_post_meta( $ele_kit_id, '_elementor_page_settings' );
				// Elementor Global theme style button text color fetch value from database.
				$ele_btn_global_text_color = isset( $ele_global_btn_data[0]['button_text_color'] ) ? $ele_global_btn_data[0]['button_text_color'] : $ele_btn_global_text_color;
			}
			return $ele_btn_global_text_color;
		}

		/**
		 * Check if Elementor - Disable Default Colors or Disable Default Fonts checked or unchecked.
		 *
		 * @since  2.3.3
		 *
		 * @return mixed String if any of the settings are enabled. False if no settings are enabled.
		 */
		public static function elementor_default_color_font_setting() {
			$ele_default_color_setting = get_option( 'elementor_disable_color_schemes' );
			$ele_default_typo_setting  = get_option( 'elementor_disable_typography_schemes' );

			if ( ( 'yes' === $ele_default_color_setting && 'yes' === $ele_default_typo_setting ) || ( false === self::is_elementor_default_color_font_comp() ) ) {
				return 'color-typo';
			}

			if ( 'yes' === $ele_default_color_setting ) {
				return 'color';
			}

			if ( 'yes' === $ele_default_typo_setting ) {
				return 'typo';
			}

			return false;
		}

		/**
		 * For existing users, do not reflect direct change.
		 *
		 * @since 3.6.5
		 * @return bool true if WordPress-5.8 compatibility enabled, False if not.
		 */
		public static function is_block_editor_support_enabled() {
			$astra_settings = astra_get_options();
			return apply_filters( 'astra_has_block_editor_support', isset( $astra_settings['support-block-editor'] ) && false === $astra_settings['support-block-editor'] ? false : true );
		}

		/**
		 * For existing users, do not provide Elementor Default Color Typo settings compatibility by default.
		 *
		 * @since 2.3.3
		 * @return bool true if elementor default color and typo setting should work with theme, False if not.
		 */
		public static function is_elementor_default_color_font_comp() {
			$astra_settings = astra_get_options();
			return apply_filters( 'astra_elementor_default_color_font_comp', isset( $astra_settings['ele-default-color-typo-setting-comp'] ) && false === $astra_settings['ele-default-color-typo-setting-comp'] ? false : true );
		}

		/**
		 * For existing users, do not provide list vertical spacing.
		 *
		 * @since 4.1.6
		 * @return bool true for new users, false for old users.
		 */
		public static function astra_list_block_vertical_spacing() {
			$astra_settings = astra_get_options();
			return apply_filters( 'astra_list_block_vertical_spacing', isset( $astra_settings['list-block-vertical-spacing'] ) ? false : true );
		}

		/**
		 * For existing users, do not load the wide/full width image CSS by default.
		 *
		 * @since 2.4.4
		 * @return bool false if it is an existing user , true if not.
		 */
		public static function gtn_image_group_css_comp() {
			$astra_settings = astra_get_options();
			return apply_filters( 'astra_gutenberg_image_group_style_support', isset( $astra_settings['gtn-full-wide-image-grp-css'] ) ? false : true );
		}

		/**
		 * Do not apply new wide/full Group and Cover block CSS for existing users.
		 *
		 * @since 2.5.0
		 * @return bool false if it is an existing user , true if not.
		 */
		public static function gtn_group_cover_css_comp() {
			$astra_settings = astra_get_options();
			return apply_filters( 'astra_gtn_group_cover_css_comp', isset( $astra_settings['gtn-full-wide-grp-cover-css'] ) ? false : true );
		}

		/**
		 * Do not apply new Group, Column and Media & Text block CSS for existing users.
		 *
		 * @since 2.6.0
		 * @return bool false if it is an existing user , true if not.
		 */
		public static function gutenberg_core_blocks_css_comp() {
			$astra_settings = astra_get_options();
			return apply_filters( 'astra_gutenberg_core_blocks_design_compatibility', isset( $astra_settings['guntenberg-core-blocks-comp-css'] ) ? false : true );
		}

		/**
		 * Do not apply new Group, Column and Media & Text block CSS for existing users.
		 *
		 * CSS for adding spacing|padding support to Gutenberg Media-&-Text Block
		 *
		 * @since 2.6.1
		 * @return bool false if it is an existing user , true if not.
		 */
		public static function gutenberg_media_text_block_css_compat() {
			$astra_settings = astra_get_options();
			return apply_filters( 'astra_gutenberg_media_text_block_spacing_compatibility', isset( $astra_settings['guntenberg-media-text-block-padding-css'] ) ? false : true );
		}

		/**
		 * Gutenberg pattern compatibility changes.
		 *
		 * @since 3.3.0
		 * @return bool false if it is an existing user , true if not.
		 */
		public static function gutenberg_core_patterns_compat() {
			$astra_settings = astra_get_options();
			return apply_filters( 'astra_gutenberg_patterns_compatibility', isset( $astra_settings['guntenberg-button-pattern-compat-css'] ) ? false : true );
		}

		/**
		 * Font CSS support for widget-title heading fonts & fonts which are not working in editor.
		 *
		 * 1. Adding Font-weight support to widget titles.
		 * 2. Customizer font CSS not supporting in editor.
		 *
		 * @since 3.6.0
		 * @return bool false if it is an existing user, true if not.
		 */
		public static function support_font_css_to_widget_and_in_editor() {
			$astra_settings = astra_get_options();
			return apply_filters( 'astra_heading_fonts_typo_support', isset( $astra_settings['can-support-widget-and-editor-fonts'] ) ? false : true );
		}

		/**
		 * Whether to remove or not following CSS which restricts logo size on responsive devices.
		 *
		 * @see https://github.com/brainstormforce/astra/commit/d09f63336b73d58c8f8951726edbc90671d7f419
		 *
		 * @since 3.6.0
		 * @return bool false if it is an existing user, true if not.
		 */
		public static function remove_logo_max_width_mobile_static_css() {
			$astra_settings = astra_get_options();
			return apply_filters( 'astra_remove_logo_max_width_css', isset( $astra_settings['can-remove-logo-max-width-css'] ) ? false : true );
		}

		/**
		 * Remove text-decoration: underline; CSS for builder specific elements to maintain their UI/UX better.
		 *
		 * 1. UAG : Marketing Button, Info Box CTA, MultiButtons, Tabs.
		 * 2. UABB : Button, Slide Box CTA, Flip box CTA, Info Banner, Posts, Info Circle, Call to Action, Subscribe Form.
		 *
		 * @since 3.6.9
		 */
		public static function unset_builder_elements_underline() {
			$astra_settings = astra_get_options();
			return apply_filters( 'astra_unset_builder_elements_underline', isset( $astra_settings['unset-builder-elements-underline'] ) ? false : true );
		}

		/**
		 * Block editor experience improvements css introduced with v4.0.0.
		 *
		 * @since 4.0.0
		 * @return bool false if it is an existing user , true if not.
		 */
		public static function v4_block_editor_compat() {
			$astra_settings = astra_get_options();
			return apply_filters( 'astra_v4_block_editor_compat', isset( $astra_settings['v4-block-editor-compat'] ) ? false : true );
		}

		/**
		 * Load sidebar static CSS when it is enabled.
		 *
		 * @since 3.0.0
		 */
		public static function load_sidebar_static_css() {

			$update_customizer_strctural_defaults = astra_check_is_structural_setup();
			$secondary_li_bottom_spacing          = true === $update_customizer_strctural_defaults ? '0.75em' : '0.25em';
			$is_site_rtl                          = is_rtl() ? true : false;
			$ltr_left                             = $is_site_rtl ? esc_attr( 'right' ) : esc_attr( 'left' );
			$ltr_right                            = $is_site_rtl ? esc_attr( 'left' ) : esc_attr( 'right' );

			$sidebar_static_css = '
			#secondary {
				margin: 4em 0 2.5em;
				word-break: break-word;
				line-height: 2;
			}
			#secondary li {
				margin-bottom: ' . esc_attr( $secondary_li_bottom_spacing ) . ';
			}
			#secondary li:last-child {
				margin-bottom: 0;
			}
			@media (max-width: 768px) {
				.js_active .ast-plain-container.ast-single-post #secondary {
				  margin-top: 1.5em;
				}
			}
			.ast-separate-container.ast-two-container #secondary .widget {
				background-color: #fff;
				padding: 2em;
				margin-bottom: 2em;
			}
			';

			if ( defined( 'CFVSW_VER' ) ) {
				$sidebar_static_css .= '
					#secondary .cfvsw-filters li{
						margin-bottom: 0;
						margin-top: 0;
					}
				';
			}

			$sidebar_static_css .= '
				@media (min-width: 993px) {
					.ast-left-sidebar #secondary {
						padding-' . $ltr_right . ': 60px;
					}
					.ast-right-sidebar #secondary {
						padding-' . $ltr_left . ': 60px;
					}
				}
				@media (max-width: 993px) {
					.ast-right-sidebar #secondary {
						padding-' . $ltr_left . ': 30px;
					}
					.ast-left-sidebar #secondary {
						padding-' . $ltr_right . ': 30px;
					}
				}
			';

			if ( $update_customizer_strctural_defaults ) {
				$sidebar_static_css .= '
					@media (min-width: 993px) {
						.ast-page-builder-template.ast-left-sidebar #secondary {
							padding-' . $ltr_left . ': 60px;
						}
						.ast-page-builder-template.ast-right-sidebar #secondary {
							padding-' . $ltr_right . ': 60px;
						}
					}
					@media (max-width: 993px) {
						.ast-page-builder-template.ast-right-sidebar #secondary {
							padding-' . $ltr_right . ': 30px;
						}
						.ast-page-builder-template.ast-left-sidebar #secondary {
							padding-' . $ltr_left . ': 30px;
						}

					}
				';
			}

			return $sidebar_static_css;
		}

		/**
		 * Astra Spectra Gutenberg Compatibility CSS.
		 *
		 * @since 3.9.4
		 * @return bool false if it is an existing user , true if not.
		 */
		public static function spectra_gutenberg_compat_css() {
			$astra_settings = astra_get_options();
			return apply_filters( 'astra_spectra_gutenberg_compat_css', isset( $astra_settings['spectra-gutenberg-compat-css'] ) ? false : true );
		}

		/**
		 * Load static card(EDD/Woo) CSS.
		 *
		 * @since 3.0.0
		 * @return string static css for Woocommerce and EDD card.
		 */
		public static function load_cart_static_css() {

			$theme_color        = astra_get_option( 'theme-color' );
			$btn_border_color   = astra_get_option( 'theme-button-border-group-border-color' );
			$btn_bg_color       = astra_get_option( 'button-bg-color', $theme_color );
			$btn_border_h_color = astra_get_option( 'theme-button-border-group-border-h-color' );
			$link_h_color       = astra_get_option( 'link-h-color' );
			$btn_bg_h_color     = astra_get_option( 'button-bg-h-color', '', $link_h_color );

			$normal_border_color = $btn_border_color ? $btn_border_color : $btn_bg_color;
			$hover_border_color  = $btn_border_h_color ? $btn_border_h_color : $btn_bg_h_color;
			$is_site_rtl         = is_rtl();
			$ltr_left            = $is_site_rtl ? 'right' : 'left';
			$ltr_right           = $is_site_rtl ? 'left' : 'right';

			$cart_static_css = '
			.ast-site-header-cart .cart-container,
			.ast-edd-site-header-cart .ast-edd-cart-container {
				transition: all 0.2s linear;
			}

			.ast-site-header-cart .ast-woo-header-cart-info-wrap,
			.ast-edd-site-header-cart .ast-edd-header-cart-info-wrap {
				padding: 0 6px 0 2px;
				font-weight: 600;
				line-height: 2.7;
				display: inline-block;
			}

			.ast-site-header-cart i.astra-icon {
				font-size: 20px;
				font-size: 1.3em;
				font-style: normal;
				font-weight: normal;
				position: relative;
				padding: 0 2px;
			}

			.ast-site-header-cart i.astra-icon.no-cart-total:after,
			.ast-header-break-point.ast-header-custom-item-outside .ast-edd-header-cart-info-wrap,
			.ast-header-break-point.ast-header-custom-item-outside .ast-woo-header-cart-info-wrap {
				display: none;
			}

			.ast-site-header-cart.ast-menu-cart-fill i.astra-icon,
			.ast-edd-site-header-cart.ast-edd-menu-cart-fill span.astra-icon {
				font-size: 1.1em;
			}

			.astra-cart-drawer {
				position: fixed;
				display: block;
				visibility: hidden;
				overflow: auto;
				-webkit-overflow-scrolling: touch;
				z-index: 10000;
				background-color: var(--ast-global-color-primary, var(--ast-global-color-5));
				transform: translate3d(0, 0, 0);
				opacity: 0;
				will-change: transform;
				transition: 0.25s ease;
			}

			.woocommerce-mini-cart {
				position: relative;
			}

			.woocommerce-mini-cart::before {
				content: "";
				transition: .3s;
			}

			.woocommerce-mini-cart.ajax-mini-cart-qty-loading::before {
				position: absolute;
				top: 0;
				left: 0;
				right: 0;
				width: 100%;
				height: 100%;
				z-index: 5;
				background-color: var(--ast-global-color-primary, var(--ast-global-color-5));
				opacity: .5;
			}

			.astra-cart-drawer {
				width: 460px;
				height: 100%;
				' . $ltr_left . ': 100%;
				top: 0px;
				opacity: 1;
				transform: translate3d(0%, 0, 0);
			}

			.astra-cart-drawer .astra-cart-drawer-header {
				position: absolute;
				width: 100%;
				text-align: ' . $ltr_left . ';
				text-transform: inherit;
				font-weight: 500;
				border-bottom: 1px solid var(--ast-border-color);
				padding: 1.34em;
				line-height: 1;
				z-index: 1;
				max-height: 3.5em;
			}

			.astra-cart-drawer .astra-cart-drawer-header .astra-cart-drawer-title {
				color: var(--ast-global-color-2);
			}

			.astra-cart-drawer .astra-cart-drawer-close .ast-close-svg {
				width: 22px;
				height: 22px;
			}

			.astra-cart-drawer .astra-cart-drawer-content,
			.astra-cart-drawer .astra-cart-drawer-content .widget_shopping_cart,
			.astra-cart-drawer .astra-cart-drawer-content .widget_shopping_cart_content {
				height: 100%;
			}

			.astra-cart-drawer .astra-cart-drawer-content {
				padding-top: 3.5em;
			}

			.astra-cart-drawer .ast-mini-cart-price-wrap .multiply-symbol{
				padding: 0 0.5em;
			}

			.astra-cart-drawer .astra-cart-drawer-content .woocommerce-mini-cart-item .ast-mini-cart-price-wrap {
				float: ' . $ltr_right . ';
				margin-top: 0.5em;
				max-width: 50%;
			}

			.astra-cart-drawer .astra-cart-drawer-content .woocommerce-mini-cart-item .variation {
				margin-top: 0.5em;
				margin-bottom: 0.5em;
			}

			.astra-cart-drawer .astra-cart-drawer-content .woocommerce-mini-cart-item .variation dt {
				font-weight: 500;
			}

			.astra-cart-drawer .astra-cart-drawer-content .widget_shopping_cart_content {
				display: flex;
				flex-direction: column;
				overflow: hidden;
			}

			.astra-cart-drawer .astra-cart-drawer-content .widget_shopping_cart_content ul li {
				min-height: 60px;
			}

			.woocommerce-js .astra-cart-drawer .astra-cart-drawer-content .woocommerce-mini-cart__total {
				display: flex;
				justify-content: space-between;
				padding: 0.7em 1.34em;
				margin-bottom: 0;
			}

			.woocommerce-js .astra-cart-drawer .astra-cart-drawer-content .woocommerce-mini-cart__total strong,
			.woocommerce-js .astra-cart-drawer .astra-cart-drawer-content .woocommerce-mini-cart__total .amount {
				width: 50%;
			}

			.astra-cart-drawer .astra-cart-drawer-content .woocommerce-mini-cart {
				padding: 1.3em;
				flex: 1;
				overflow: auto;
			}

			.astra-cart-drawer .astra-cart-drawer-content .woocommerce-mini-cart a.remove {
				width: 20px;
				height: 20px;
				line-height: 16px;
			}

			.astra-cart-drawer .astra-cart-drawer-content .woocommerce-mini-cart__total {
				padding: 1em 1.5em;
				margin: 0;
				text-align: center;
			}

			.astra-cart-drawer .astra-cart-drawer-content .woocommerce-mini-cart__buttons {
				padding: 1.34em;
				text-align: center;
				margin-bottom: 0;
			}

			.astra-cart-drawer .astra-cart-drawer-content .woocommerce-mini-cart__buttons .button.checkout {
				margin-' . $ltr_right . ': 0;
			}

			.astra-cart-drawer .astra-cart-drawer-content .woocommerce-mini-cart__buttons a{
				width: 100%;
			}

			.woocommerce-js .astra-cart-drawer .astra-cart-drawer-content .woocommerce-mini-cart__buttons a:nth-last-child(1) {
				margin-bottom: 0;
			}

			.astra-cart-drawer .astra-cart-drawer-content .edd-cart-item {
				padding: .5em 2.6em .5em 1.5em;
			}

			.astra-cart-drawer .astra-cart-drawer-content .edd-cart-item .edd-remove-from-cart::after {
				width: 20px;
				height: 20px;
				line-height: 16px;
			}

			.astra-cart-drawer .astra-cart-drawer-content .edd-cart-number-of-items {
				padding: 1em 1.5em 1em 1.5em;
				margin-bottom: 0;
				text-align: center;
			}

			.astra-cart-drawer .astra-cart-drawer-content .edd_total {
				padding: .5em 1.5em;
				margin: 0;
				text-align: center;
			}

			.astra-cart-drawer .astra-cart-drawer-content .cart_item.edd_checkout {
				padding: 1em 1.5em 0;
				text-align: center;
				margin-top: 0;
			}
			.astra-cart-drawer .widget_shopping_cart_content > .woocommerce-mini-cart__empty-message {
				display: none;
			}
			.astra-cart-drawer .woocommerce-mini-cart__empty-message,
			.astra-cart-drawer .cart_item.empty {
				text-align: center;
				margin-top: 10px;
			}

			body.admin-bar .astra-cart-drawer {
				padding-top: 32px;
			}
			@media (max-width: 782px) {
				body.admin-bar .astra-cart-drawer {
					padding-top: 46px;
				}
			}

			.ast-mobile-cart-active body.ast-hfb-header {
				overflow: hidden;
			}

			.ast-mobile-cart-active .astra-mobile-cart-overlay {
				opacity: 1;
				cursor: pointer;
				visibility: visible;
				z-index: 999;
			}

			.ast-mini-cart-empty-wrap {
				display: flex;
				flex-wrap: wrap;
				height: 100%;
				align-items: flex-end;
			}

			.ast-mini-cart-empty-wrap > * {
				width: 100%;
			}

			.astra-cart-drawer-content .ast-mini-cart-empty {
				height: 100%;
				display: flex;
				flex-direction: column;
				justify-content: space-between;
				text-align: center;
			}

			.astra-cart-drawer-content .ast-mini-cart-empty .ast-mini-cart-message {
				display: flex;
				align-items: center;
				justify-content: center;
				height: 100%;
				padding: 1.34em;
			}

			@media (min-width: 546px) {
				.astra-cart-drawer .astra-cart-drawer-content.ast-large-view .woocommerce-mini-cart__buttons {
					display: flex;
				}

				.woocommerce-js .astra-cart-drawer .astra-cart-drawer-content.ast-large-view .woocommerce-mini-cart__buttons a,
				.woocommerce-js .astra-cart-drawer .astra-cart-drawer-content.ast-large-view .woocommerce-mini-cart__buttons a.checkout {
					margin-top: 0;
					margin-bottom: 0;
				}
			}

			.ast-site-header-cart .cart-container:focus-visible {
				display: inline-block;
			}
			';
			if ( is_rtl() ) {
				$cart_static_css .= '
				.ast-site-header-cart i.astra-icon:after {
					content: attr(data-cart-total);
					position: absolute;
					font-family: ' . astra_get_font_family( astra_body_font_family() ) . ';
					font-style: normal;
					top: -10px;
					left: -12px;
					font-weight: bold;
					box-shadow: 1px 1px 3px 0px rgba(0, 0, 0, 0.3);
					font-size: 11px;
					padding-right: 0px;
					padding-left: 2px;
					line-height: 17px;
					letter-spacing: -.5px;
					height: 18px;
					min-width: 18px;
					border-radius: 99px;
					text-align: center;
					z-index: 3;
				}
				li.woocommerce-custom-menu-item .ast-site-header-cart i.astra-icon:after,
				li.edd-custom-menu-item .ast-edd-site-header-cart span.astra-icon:after {
					padding-right: 2px;
				}
				.astra-cart-drawer .astra-cart-drawer-close {
					position: absolute;
					top: 0.5em;
					left: 0;
					border: none;
					margin: 0;
					padding: .6em 1em .4em;
					color: var(--ast-global-color-2);
					background-color: transparent;
				}
				.astra-mobile-cart-overlay {
					background-color: rgba(0, 0, 0, 0.4);
					position: fixed;
					top: 0;
					left: 0;
					bottom: 0;
					right: 0;
					visibility: hidden;
					opacity: 0;
					transition: opacity 0.2s ease-in-out;
				}
				.astra-cart-drawer .astra-cart-drawer-content .edd-cart-item .edd-remove-from-cart {
					left: 1.2em;
				}
				.ast-header-break-point.ast-woocommerce-cart-menu.ast-hfb-header .ast-cart-menu-wrap, .ast-header-break-point.ast-hfb-header .ast-cart-menu-wrap,
				.ast-header-break-point .ast-edd-site-header-cart-wrap .ast-edd-cart-menu-wrap {
					width: auto;
					height: 2em;
					font-size: 1.4em;
					line-height: 2;
					vertical-align: middle;
					text-align: left;
				}

				.woocommerce-js .astra-cart-drawer .astra-cart-drawer-content .woocommerce-mini-cart__buttons .button:not(.checkout):not(.ast-continue-shopping) {
					margin-left: 10px;
					background-color: transparent;
					border: 2px solid var( --ast-global-color-0 );
					color: var( --ast-global-color-0 );
				}

				.woocommerce-js .astra-cart-drawer .astra-cart-drawer-content .woocommerce-mini-cart__buttons .button:not(.checkout):not(.ast-continue-shopping):hover {
					border-color: var( --ast-global-color-1 );
					color: var( --ast-global-color-1 );
				}

				.woocommerce-js .astra-cart-drawer .astra-cart-drawer-content .woocommerce-mini-cart__buttons a.checkout {
					margin-right: 0;
					margin-top: 10px;
				}

				.woocommerce-js .astra-cart-drawer .astra-cart-drawer-content .woocommerce-mini-cart__total strong{
					padding-left: .5em;
					text-align: right;
					font-weight: 500;
				}

				.woocommerce-js .astra-cart-drawer .astra-cart-drawer-content .woocommerce-mini-cart__total .amount{
					text-align: left;
				}

				.astra-cart-drawer.active {
					transform: translate3d(100%, 0, 0);
					visibility: visible;
				}

				';

			} else {
				$cart_static_css .= '
				.ast-site-header-cart i.astra-icon:after {
					content: attr(data-cart-total);
					position: absolute;
					font-family: ' . astra_get_font_family( astra_body_font_family() ) . ';
					font-style: normal;
					top: -10px;
					right: -12px;
					font-weight: bold;
					box-shadow: 1px 1px 3px 0px rgba(0, 0, 0, 0.3);
					font-size: 11px;
					padding-left: 0px;
					padding-right: 2px;
					line-height: 17px;
					letter-spacing: -.5px;
					height: 18px;
					min-width: 18px;
					border-radius: 99px;
					text-align: center;
					z-index: 3;
				}
				li.woocommerce-custom-menu-item .ast-site-header-cart i.astra-icon:after,
				li.edd-custom-menu-item .ast-edd-site-header-cart span.astra-icon:after {
					padding-left: 2px;
				}
				.astra-cart-drawer .astra-cart-drawer-close {
					position: absolute;
					top: 0.5em;
					right: 0;
					border: none;
					margin: 0;
					padding: .6em 1em .4em;
					color: var(--ast-global-color-2);
					background-color: transparent;
				}
				.astra-mobile-cart-overlay {
					background-color: rgba(0, 0, 0, 0.4);
					position: fixed;
					top: 0;
					right: 0;
					bottom: 0;
					left: 0;
					visibility: hidden;
					opacity: 0;
					transition: opacity 0.2s ease-in-out;
				}
				.astra-cart-drawer .astra-cart-drawer-content .edd-cart-item .edd-remove-from-cart {
					right: 1.2em;
				}
				.ast-header-break-point.ast-woocommerce-cart-menu.ast-hfb-header .ast-cart-menu-wrap, .ast-header-break-point.ast-hfb-header .ast-cart-menu-wrap,
				.ast-header-break-point .ast-edd-site-header-cart-wrap .ast-edd-cart-menu-wrap {
					width: auto;
					height: 2em;
					font-size: 1.4em;
					line-height: 2;
					vertical-align: middle;
					text-align: right;
				}

				.woocommerce-js .astra-cart-drawer .astra-cart-drawer-content .woocommerce-mini-cart__buttons .button:not(.checkout):not(.ast-continue-shopping) {
					margin-right: 10px;
				}

				.woocommerce-js .astra-cart-drawer .astra-cart-drawer-content .woocommerce-mini-cart__buttons .button:not(.checkout):not(.ast-continue-shopping),
				.ast-site-header-cart .widget_shopping_cart .buttons .button:not(.checkout),
				.ast-site-header-cart .ast-site-header-cart-data .ast-mini-cart-empty .woocommerce-mini-cart__buttons a.button {
					background-color: transparent;
					border-style: solid;
					border-width: 1px;
					border-color: ' . $normal_border_color . ';
					color: ' . esc_attr( $normal_border_color ) . ';
				}

				.woocommerce-js .astra-cart-drawer .astra-cart-drawer-content .woocommerce-mini-cart__buttons .button:not(.checkout):not(.ast-continue-shopping):hover,
				.ast-site-header-cart .widget_shopping_cart .buttons .button:not(.checkout):hover {
					border-color: ' . $hover_border_color . ';
					color: ' . esc_attr( $hover_border_color ) . ';
				}

				.woocommerce-js .astra-cart-drawer .astra-cart-drawer-content .woocommerce-mini-cart__buttons a.checkout {
					margin-left: 0;
					margin-top: 10px;
					border-style: solid;
					border-width: 2px;
					border-color: ' . $normal_border_color . ';
				}

				.woocommerce-js .astra-cart-drawer .astra-cart-drawer-content .woocommerce-mini-cart__buttons a.checkout:hover {
					border-color: ' . $hover_border_color . ';
				}

				.woocommerce-js .astra-cart-drawer .astra-cart-drawer-content .woocommerce-mini-cart__total strong{
					padding-right: .5em;
					text-align: left;
					font-weight: 500;
				}

				.woocommerce-js .astra-cart-drawer .astra-cart-drawer-content .woocommerce-mini-cart__total .amount{
					text-align: right;
				}

				.astra-cart-drawer.active {
					transform: translate3d(-100%, 0, 0);
					visibility: visible;
				}

				';
			}

			$cart_static_css .= '
				.ast-site-header-cart.ast-menu-cart-outline .ast-cart-menu-wrap, .ast-site-header-cart.ast-menu-cart-fill .ast-cart-menu-wrap,
				.ast-edd-site-header-cart.ast-edd-menu-cart-outline .ast-edd-cart-menu-wrap, .ast-edd-site-header-cart.ast-edd-menu-cart-fill .ast-edd-cart-menu-wrap {
					line-height: 1.8;
				}';
			// This CSS requires in case of :before Astra icons. But in case of SVGs this loads twice that's why removed this from static & loading conditionally.
			if ( false === Astra_Icons::is_svg_icons() ) {
				$cart_static_css .= '
				.ast-site-header-cart .cart-container *,
				.ast-edd-site-header-cart .ast-edd-cart-container * {
					transition: all 0s linear;
				}
				';
			}
			return $cart_static_css;
		}

		/**
		 * Check is new structural things are updated.
		 *
		 * @return bool true|false.
		 * @since 4.0.0
		 */
		public static function astra_check_default_color_typo() {
			$astra_settings = astra_get_options();
			return apply_filters( 'astra_get_option_update_default_color_typo', isset( $astra_settings['update-default-color-typo'] ) ? false : true );
		}

		/**
		 * Check is new structural things are updated.
		 *
		 * @return bool true|false.
		 * @since 4.1.0
		 */
		public static function astra_woo_support_global_settings() {
			$astra_settings = astra_get_options();
			return apply_filters( 'astra_get_option_woo_support_global_settings', isset( $astra_settings['woo_support_global_settings'] ) ? false : true );
		}

		/**
		 * Dynamic CSS to make Sidebar Sticky.
		 *
		 * @return string Sticky Sidebar CSS.
		 * @since 4.4.0
		 */
		public static function astra_sticky_sidebar_css() {
			$css = '';
			if ( astra_get_option( 'site-sticky-sidebar', false ) ) {
				$sidebar_sticky_css        = array(
					'.ast-sticky-sidebar .sidebar-main' => array(
						'top'        => '50px',
						'position'   => 'sticky',
						'overflow-y' => 'auto',
					),
				);
				$sidebar_webkit_sticky_css = array(
					'.ast-sticky-sidebar .sidebar-main' => array(
						'position' => '-webkit-sticky',
					),
				);

				$css .= astra_parse_css(
					$sidebar_sticky_css,
					astra_get_tablet_breakpoint( '', 1 )
				);

				$css .= astra_parse_css(
					$sidebar_webkit_sticky_css,
					astra_get_tablet_breakpoint( '', 1 )
				);
			}
			return $css;
		}

		/**
		 * Dynamic CSS for default forms styling improvements.
		 *
		 * @return string Dynamic CSS.
		 * @since 4.6.0
		 */
		public static function astra_default_forms_styling_dynamic_css() {
			$css                       = '';
			$enable_site_accessibility = astra_get_option( 'site-accessibility-toggle', false );
			$forms_default_styling_css = array(
				'input[type="text"], input[type="number"], input[type="email"], input[type="url"], input[type="password"], input[type="search"], input[type=reset], input[type=tel], input[type=date], select, textarea' => array(
					'font-size'     => '16px',
					'font-style'    => 'normal',
					'font-weight'   => '400',
					'line-height'   => '24px',
					'width'         => '100%',
					'padding'       => '12px 16px',
					'border-radius' => '4px',
					'box-shadow'    => '0px 1px 2px 0px rgba(0, 0, 0, 0.05)',
					'color'         => 'var(--ast-form-input-text, #475569)',
				),
				'input[type="text"], input[type="number"], input[type="email"], input[type="url"], input[type="password"], input[type="search"], input[type=reset], input[type=tel], input[type=date], select' => array(
					'height' => '40px',
				),
				'input[type="date"]'      => array(
					'border-width' => '1px',
					'border-style' => 'solid',
					'border-color' => 'var(--ast-border-color)',
				),
				'input[type="text"]:focus, input[type="number"]:focus, input[type="email"]:focus, input[type="url"]:focus, input[type="password"]:focus, input[type="search"]:focus, input[type=reset]:focus, input[type="tel"]:focus, input[type="date"]:focus, select:focus, textarea:focus' => array(
					'border-color' => 'var(--ast-global-color-0, #046BD2)',
					'box-shadow'   => 'none',
					'outline'      => 'none',
					'color'        => 'var(--ast-form-input-focus-text, #475569)',
				),
				'label, legend'           => array(
					'color'       => '#111827',
					'font-size'   => '14px',
					'font-style'  => 'normal',
					'font-weight' => '500',
					'line-height' => '20px',
				),
				'select'                  => array(
					'padding' => '6px 10px',
				),
				'fieldset'                => array(
					'padding'       => '30px',
					'border-radius' => '4px',
				),
				'button, .ast-button, .button, input[type="button"], input[type="reset"], input[type="submit"]' => array(
					'border-radius' => '4px',
					'box-shadow'    => '0px 1px 2px 0px rgba(0, 0, 0, 0.05)',
				),
				':root'                   => array(
					'--ast-comment-inputs-background' => '#FFF',
				),
				'::placeholder'           => array(
					'color' => 'var(--ast-form-field-color, #9CA3AF)',
				),
				'::-ms-input-placeholder' => array( /* Edge 12-18 */
					'color' => 'var(--ast-form-field-color, #9CA3AF)',
				),
			);

			if ( defined( 'WPCF7_VERSION' ) ) {
				$wpcf7_dynamic_css         = array(
					'.wpcf7 input.wpcf7-form-control:not([type=submit]), .wpcf7 textarea.wpcf7-form-control' => array(
						'padding' => '12px 16px',
					),
					'.wpcf7 select.wpcf7-form-control' => array(
						'padding' => '6px 10px',
					),
					'.wpcf7 input.wpcf7-form-control:not([type=submit]):focus, .wpcf7 select.wpcf7-form-control:focus, .wpcf7 textarea.wpcf7-form-control:focus' => array(
						'border-color' => 'var(--ast-global-color-0, #046BD2)',
						'box-shadow'   => 'none',
						'outline'      => 'none',
						'color'        => 'var(--ast-form-input-focus-text, #475569)',
					),
					'.wpcf7 .wpcf7-not-valid-tip'      => array(
						'color'       => '#DC2626',
						'font-size'   => '14px',
						'font-weight' => '400',
						'line-height' => '20px',
						'margin-top'  => '8px',
					),
					'.wpcf7 input[type=file].wpcf7-form-control' => array(
						'font-size'     => '16px',
						'font-style'    => 'normal',
						'font-weight'   => '400',
						'line-height'   => '24px',
						'width'         => '100%',
						'padding'       => '12px 16px',
						'border-radius' => '4px',
						'box-shadow'    => '0px 1px 2px 0px rgba(0, 0, 0, 0.05)',
						'color'         => 'var(--ast-form-input-text, #475569)',
					),
				);
				$forms_default_styling_css = array_merge( $forms_default_styling_css, $wpcf7_dynamic_css );
			}

			if ( class_exists( 'GFForms' ) ) {
				$gravity_forms_dynamic_css = array(
					'input[type="radio"].gfield-choice-input:checked, input[type="checkbox"].gfield-choice-input:checked, .ginput_container_consent input[type="checkbox"]:checked' => array(
						'border-color'     => 'inherit',
						'background-color' => 'inherit',
					),
					'input[type="radio"].gfield-choice-input:focus, input[type="checkbox"].gfield-choice-input:focus, .ginput_container_consent input[type="checkbox"]:focus' => array(
						'border-color' => 'var(--ast-global-color-0, #046BD2)',
						'box-shadow'   => 'none',
						'outline'      => 'none',
						'color'        => 'var(--ast-form-input-focus-text, #475569)',
					),
				);
				$forms_default_styling_css = array_merge( $forms_default_styling_css, $gravity_forms_dynamic_css );
			}

			// Default form styling accessibility options compatibility.
			if ( $enable_site_accessibility ) {
				$outline_style          = astra_get_option( 'site-accessibility-highlight-type' );
				$outline_color          = astra_get_option( 'site-accessibility-highlight-color' );
				$outline_input_style    = astra_get_option( 'site-accessibility-highlight-input-type' );
				$outline_input_color    = astra_get_option( 'site-accessibility-highlight-input-color' );
				$input_highlight        = ( 'unset' !== $outline_input_style );
				$selected_outline_style = $input_highlight ? $outline_input_style : $outline_style;
				$selected_outline_color = $input_highlight ? $outline_input_color : $outline_color;
				$forms_default_styling_css['input[type="text"]:focus, input[type="number"]:focus, input[type="email"]:focus, input[type="url"]:focus, input[type="password"]:focus, input[type="search"]:focus, input[type=reset]:focus, input[type="tel"]:focus, input[type="date"]:focus, select:focus, textarea:focus'] = array(
					'border-color' => $selected_outline_color ? $selected_outline_color : '#046BD2',
					'box-shadow'   => 'none',
					'outline'      => 'none',
					'color'        => 'var(--ast-form-input-focus-text, #475569)',
				);

				// Contact form 7 accessibility compatibility.
				if ( defined( 'WPCF7_VERSION' ) ) {
					$forms_default_styling_css['.wpcf7 input.wpcf7-form-control:not([type=submit]):focus, .wpcf7 select.wpcf7-form-control:focus, .wpcf7 textarea.wpcf7-form-control:focus'] = array(
						'border-style' => $selected_outline_style ? $selected_outline_style : 'inherit',
						'border-color' => $selected_outline_color ? $selected_outline_color : '#046BD2',
						'border-width' => 'thin',
						'box-shadow'   => 'none',
						'outline'      => 'none',
						'color'        => 'var(--ast-form-input-focus-text, #475569)',
					);
				}

				// Gravity forms accessibility compatibility.
				if ( class_exists( 'GFForms' ) ) {
					$forms_default_styling_css['input[type="radio"].gfield-choice-input:focus, input[type="checkbox"].gfield-choice-input:focus, .ginput_container_consent input[type="checkbox"]:focus'] = array(
						'border-style' => $selected_outline_style ? $selected_outline_style : 'inherit',
						'border-color' => $selected_outline_color ? $selected_outline_color : '#046BD2',
						'border-width' => 'thin',
						'box-shadow'   => 'none',
						'outline'      => 'none',
						'color'        => 'var(--ast-form-input-focus-text, #475569)',
					);
				}
			}

			return $css . astra_parse_css( $forms_default_styling_css );
		}

		/**
		 * Check if fullwidth layout with sidebar is supported.
		 * Old users - yes
		 * New users - no
		 *
		 * @return bool true|false.
		 * @since 4.2.0
		 */
		public static function astra_fullwidth_sidebar_support() {
			$astra_settings = astra_get_options();
			return apply_filters( 'astra_get_option_fullwidth_sidebar_support', isset( $astra_settings['fullwidth_sidebar_support'] ) ? false : true );
		}

		/**
		 * Core Comment & Search Button Styling Compatibility.
		 * Old Users - Will not reflect directly.
		 * New Users - Direct reflection
		 *
		 * @return bool true|false.
		 * @since 4.2.2
		 */
		public static function astra_core_form_btns_styling() {
			$astra_settings = astra_get_options();
			return apply_filters( 'astra_core_form_btns_styling', isset( $astra_settings['v4-2-2-core-form-btns-styling'] ) ? false : true );
		}

		/**
		 * Load Blog Layout static CSS when it is enabled.
		 *
		 * @since 4.6.0
		 */
		public static function blog_layout_static_css() {
			return '.ast-blog-layout-6-grid .ast-blog-featured-section:before { content: ""; }';
		}

		/**
		 * Improve full screen search Submit button style.
		 *
		 * @since 4.4.0
		 * @return bool false if it is an existing user, true if not.
		 */
		public static function astra_4_4_0_compatibility() {
			$astra_settings = astra_get_options();
			return apply_filters( 'astra_addon_upgrade_fullscreen_search_submit_style', isset( $astra_settings['v4-4-0-backward-option'] ) ? false : true );
		}

		/**
		 * Check version 4.5.0 backward compatibility.
		 *
		 * @since 4.5.0
		 * @return bool false if it is an existing user, true if not.
		 */
		public static function astra_4_5_0_compatibility() {
			$astra_settings = astra_get_options();
			return apply_filters( 'astra_upgrade_color_styles', isset( $astra_settings['v4-5-0-backward-option'] ) ? false : true );
		}

		/**
		 * In 4.6.0 version we are having new stylings.
		 * 1. Comments area refined.
		 * 2. Defaults improvement for single-blog layouts.
		 * 3. Form default UI improved.
		 *
		 * @return bool true|false.
		 * @since 4.6.0
		 */
		public static function astra_4_6_0_compatibility() {
			$astra_settings = astra_get_options();
			return apply_filters( 'astra_get_option_v4-6-0-backward-option', isset( $astra_settings['v4-6-0-backward-option'] ) ? false : true );
		}

		/**
		 * In 4.6.2 version we are having new stylings.
		 * 1. Keeping meta featured image disable option useless for old users.
		 *
		 * @return bool true|false.
		 * @since 4.6.2
		 */
		public static function astra_4_6_2_compatibility() {
			$astra_settings = astra_get_options();
			return apply_filters( 'astra_get_option_v4-6-2-backward-option', isset( $astra_settings['v4-6-2-backward-option'] ) ? false : true );
		}

		/**
		 * Upgrade Astra default button stylings & compatibility with Spectra buttons.
		 *
		 * @return bool true|false.
		 * @since 4.6.4
		 */
		public static function astra_4_6_4_compatibility() {
			$astra_settings = astra_get_options();
			return apply_filters( 'astra_get_option_btn-stylings-upgrade', isset( $astra_settings['btn-stylings-upgrade'] ) ? false : true );
		}

		/**
		 * Handle backward compatibility for heading `clear:both` css in single posts and pages.
		 *
		 * @return bool true|false If returns true then set `clear:none`.
		 * @since 4.6.12
		 */
		public static function astra_headings_clear_compatibility() {
			$astra_settings = astra_get_options();
			/**
			 * If `single_posts_pages_heading_clear_none` is set then this user is probably old user
			 * so in that case, we will not convert the "clear:both" to "clear:none" for old users.
			 */
			return apply_filters( 'astra_get_option_single_posts_pages_heading_clear_none', isset( $astra_settings['single_posts_pages_heading_clear_none'] ) ? false : true );
		}

		/**
		 * Single post outside padding was not working.
		 *
		 * @return bool true|false.
		 * @since 4.8.2
		 */
		public static function astra_4_8_2_compatibility() {
			$astra_settings = astra_get_options();
			return apply_filters( 'astra_get_option_v4-8-2-backward-option', isset( $astra_settings['v4-8-2-backward-option'] ) ? false : true );
		}

		/**
		 * Restrict unitless support to body font by default.
		 *
		 * 1. Unitless line-height support.
		 * 2. Font-size of h5-h6 default update.
		 *
		 * @since 4.6.14
		 * @return bool true|false.
		 */
		public static function astra_4_6_14_compatibility() {
			$astra_settings = astra_get_options();
			return apply_filters( 'astra_get_option_enable-4-6-14-compatibility', isset( $astra_settings['enable-4-6-14-compatibility'] ) ? false : true );
		}

		/**
		 * Upgrade Astra secondary button border to look style guide in sync.
		 *
		 * @return bool true|false.
		 * @since 4.8.0
		 */
		public static function astra_4_8_0_compatibility() {
			$astra_settings = astra_get_options();
			return apply_filters( 'astra_get_option_enable-4-8-0-compatibility', isset( $astra_settings['enable-4-8-0-compatibility'] ) ? false : true );
		}

		/**
		 * Added compatibility for alignwide Spectra container width.
		 *
		 * @return bool true|false.
		 * @since 4.8.4
		 */
		public static function astra_4_8_4_compatibility() {
			$astra_settings = astra_get_options();
			return apply_filters( 'astra_get_option_enable-4-8-4-compatibility', isset( $astra_settings['enable-4-8-4-compatibility'] ) ? false : true );
		}

		/**
		 * In 4.8.9 version we are having following compatibilities.
		 * 1. Color sequence & tooltips updated (AST-3809).
		 *
		 * @return bool true|false.
		 * @since 4.8.9
		 */
		public static function astra_4_8_9_compatibility() {
			$astra_settings = get_option( ASTRA_THEME_SETTINGS );
			return apply_filters( 'astra_get_option_enable-4-8-9-compatibility', isset( $astra_settings['enable-4-8-9-compatibility'] ) ? false : true );
		}
	}
}
