/**
* Post Structures - Dynamic CSS
*
* @package Astra
* @since 4.0.0
*/
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
/**
* Post Structures
*/
add_filter( 'astra_dynamic_theme_css', 'astra_post_single_structure_dynamic_css' );
/**
* Dynamic CSS
*
* @param string $dynamic_css Astra Dynamic CSS.
* @param string $dynamic_css_filtered Astra Dynamic CSS Filters.
* @return String Generated dynamic CSS for Post Structures.
*
* @since 4.0.0
*/
function astra_post_single_structure_dynamic_css( $dynamic_css, $dynamic_css_filtered = '' ) {
$current_post_type = strval( get_post_type() );
$supported_post_types = Astra_Posts_Structure_Loader::get_supported_post_types();
if ( ! is_singular( $current_post_type ) ) {
return $dynamic_css;
}
if ( ! in_array( $current_post_type, $supported_post_types ) ) {
return $dynamic_css;
}
if ( 'product' === $current_post_type ) {
$single_section_id = 'section-woo-shop-single';
} elseif ( 'page' === $current_post_type ) {
$single_section_id = 'section-single-page';
} elseif ( 'download' === $current_post_type ) {
$single_section_id = 'section-edd-single';
} else {
$single_section_id = 'single-posttype-' . $current_post_type;
}
$margin_option = 'post' === $current_post_type ? 'single-post-outside-spacing' : $single_section_id . '-margin';
$padding_option = 'post' === $current_post_type ? 'single-post-inside-spacing' : $single_section_id . '-padding';
$padding = astra_get_option( $padding_option );
$margin = astra_get_option( $margin_option );
$margin_selector = '.site .site-content #primary';
$padding_selector = '.site .site-content #primary .ast-article-single, .ast-separate-container .site-content #secondary .widget';
if ( class_exists( 'WooCommerce' ) && 'product' === $current_post_type ) {
$padding_selector = '.site .site-content #primary .ast-woocommerce-container';
}
// Desktop CSS.
$css_output_desktop = array(
$margin_selector => array(
// Margin CSS.
'margin-top' => astra_responsive_spacing( $margin, 'top', 'desktop' ),
'margin-bottom' => astra_responsive_spacing( $margin, 'bottom', 'desktop' ),
'margin-left' => astra_responsive_spacing( $margin, 'left', 'desktop' ),
'margin-right' => astra_responsive_spacing( $margin, 'right', 'desktop' ),
),
$padding_selector => array(
// Padding CSS.
'padding-top' => astra_responsive_spacing( $padding, 'top', 'desktop' ),
'padding-bottom' => astra_responsive_spacing( $padding, 'bottom', 'desktop' ),
'padding-left' => astra_responsive_spacing( $padding, 'left', 'desktop' ),
'padding-right' => astra_responsive_spacing( $padding, 'right', 'desktop' ),
),
);
// Tablet CSS.
$css_output_tablet = array(
$margin_selector => array(
// Margin CSS.
'margin-top' => astra_responsive_spacing( $margin, 'top', 'tablet' ),
'margin-bottom' => astra_responsive_spacing( $margin, 'bottom', 'tablet' ),
'margin-left' => astra_responsive_spacing( $margin, 'left', 'tablet' ),
'margin-right' => astra_responsive_spacing( $margin, 'right', 'tablet' ),
),
$padding_selector => array(
// Padding CSS.
'padding-top' => astra_responsive_spacing( $padding, 'top', 'tablet' ),
'padding-bottom' => astra_responsive_spacing( $padding, 'bottom', 'tablet' ),
'padding-left' => astra_responsive_spacing( $padding, 'left', 'tablet' ),
'padding-right' => astra_responsive_spacing( $padding, 'right', 'tablet' ),
),
);
// Mobile CSS.
$css_output_mobile = array(
$margin_selector => array(
// Margin CSS.
'margin-top' => astra_responsive_spacing( $margin, 'top', 'mobile' ),
'margin-bottom' => astra_responsive_spacing( $margin, 'bottom', 'mobile' ),
'margin-left' => astra_responsive_spacing( $margin, 'left', 'mobile' ),
'margin-right' => astra_responsive_spacing( $margin, 'right', 'mobile' ),
),
$padding_selector => array(
// Padding CSS.
'padding-top' => astra_responsive_spacing( $padding, 'top', 'mobile' ),
'padding-bottom' => astra_responsive_spacing( $padding, 'bottom', 'mobile' ),
'padding-left' => astra_responsive_spacing( $padding, 'left', 'mobile' ),
'padding-right' => astra_responsive_spacing( $padding, 'right', 'mobile' ),
),
);
$css_output = astra_parse_css( $css_output_desktop );
$css_output .= astra_parse_css( $css_output_tablet, '', astra_get_tablet_breakpoint() );
$css_output .= astra_parse_css( $css_output_mobile, '', astra_get_mobile_breakpoint() );
$dynamic_css .= $css_output;
if ( false === astra_get_option( 'ast-single-' . $current_post_type . '-title', ( class_exists( 'WooCommerce' ) && 'product' === $current_post_type ) ? false : true ) ) {
return $dynamic_css;
}
$layout_type = astra_get_option( 'ast-dynamic-single-' . $current_post_type . '-layout', 'layout-1' );
$layout_2_active = ( 'layout-2' === $layout_type ) ? true : false;
$exclude_attr = astra_get_option( 'enable-related-posts', false ) ? ':not(.related-entry-header)' : '';
if ( $layout_2_active ) {
$selector = '.ast-single-entry-banner[data-post-type="' . $current_post_type . '"]';
} else {
$selector = 'header.entry-header' . $exclude_attr;
}
$site_content_width = astra_get_option( 'site-content-width', 1200 );
$horz_alignment = astra_get_option( 'ast-dynamic-single-' . $current_post_type . '-horizontal-alignment' );
$desk_h_alignment = ( isset( $horz_alignment['desktop'] ) ) ? $horz_alignment['desktop'] : '';
$tab_h_alignment = ( isset( $horz_alignment['tablet'] ) ) ? $horz_alignment['tablet'] : '';
$mob_h_alignment = ( isset( $horz_alignment['mobile'] ) ) ? $horz_alignment['mobile'] : '';
$banner_padding = astra_get_option( 'ast-dynamic-single-' . $current_post_type . '-banner-padding', Astra_Posts_Structure_Loader::get_customizer_default( 'responsive-padding' ) );
$banner_margin = astra_get_option( 'ast-dynamic-single-' . $current_post_type . '-banner-margin' );
$text_color = astra_get_option( 'ast-dynamic-single-' . $current_post_type . '-banner-text-color' );
$title_color = astra_get_option( 'ast-dynamic-single-' . $current_post_type . '-banner-title-color' );
$link_color = astra_get_option( 'ast-dynamic-single-' . $current_post_type . '-banner-link-color' );
$link_hover_color = astra_get_option( 'ast-dynamic-single-' . $current_post_type . '-banner-link-hover-color' );
$elements_gap = astra_get_option( 'ast-dynamic-single-' . $current_post_type . '-elements-gap', 10 );
$banner_height = astra_get_option( 'ast-dynamic-single-' . $current_post_type . '-banner-height' );
$desk_banner_height = ( $layout_2_active && isset( $banner_height['desktop'] ) ) ? astra_get_css_value( $banner_height['desktop'], 'px' ) : '';
$tab_banner_height = ( $layout_2_active && isset( $banner_height['tablet'] ) ) ? astra_get_css_value( $banner_height['tablet'], 'px' ) : '';
$mob_banner_height = ( $layout_2_active && isset( $banner_height['mobile'] ) ) ? astra_get_css_value( $banner_height['mobile'], 'px' ) : '';
$vert_alignment = ( $layout_2_active ) ? astra_get_option( 'ast-dynamic-single-' . $current_post_type . '-vertical-alignment', 'center' ) : 'center';
$width_type = astra_get_option( 'ast-dynamic-single-' . $current_post_type . '-banner-width-type', 'fullwidth' );
$custom_width = astra_get_option( 'ast-dynamic-single-' . $current_post_type . '-banner-custom-width', 1200 );
$single_structure = astra_get_option( 'ast-dynamic-single-' . $current_post_type . '-structure', 'page' === $current_post_type ? array( 'ast-dynamic-single-' . $current_post_type . '-image', 'ast-dynamic-single-' . $current_post_type . '-title' ) : array( 'ast-dynamic-single-' . $current_post_type . '-title', 'ast-dynamic-single-' . $current_post_type . '-meta' ) );
// Banner Text typography dynamic stylings.
$banner_text_font_size = astra_get_option( 'ast-dynamic-single-' . $current_post_type . '-text-font-size' );
// Banner Title typography dynamic stylings.
$banner_title_font_size = astra_get_option( 'ast-dynamic-single-' . $current_post_type . '-title-font-size', Astra_Posts_Structure_Loader::get_customizer_default( 'title-font-size' ) );
// Banner Meta typography dynamic stylings.
$banner_meta_font_size = astra_get_option( 'ast-dynamic-single-' . $current_post_type . '-meta-font-size' );
$css_output_min_tablet = array();
$narrow_container_width = astra_get_option( 'narrow-container-max-width', apply_filters( 'astra_narrow_container_width', 750 ) );
$author_avatar_size = astra_get_option( 'ast-dynamic-single-' . $current_post_type . '-author-avatar-size' );
// Aspect ratio.
$aspect_ratio_type = astra_get_option( 'ast-dynamic-single-' . $current_post_type . '-article-featured-image-ratio-type', 'predefined' );
$predefined_scale = astra_get_option( 'ast-dynamic-single-' . $current_post_type . '-article-featured-image-ratio-pre-scale', '16/9' );
$custom_scale_width = astra_get_option( 'ast-dynamic-single-' . $current_post_type . '-article-featured-image-custom-scale-width', 16 );
$custom_scale_height = astra_get_option( 'ast-dynamic-single-' . $current_post_type . '-article-featured-image-custom-scale-height', 9 );
$aspect_ratio = astra_get_dynamic_image_aspect_ratio( $aspect_ratio_type, $predefined_scale, $custom_scale_width, $custom_scale_height );
$object_fit_style = 'custom' === $aspect_ratio_type ? 'cover' : '';
// Remove featured image padding.
$remove_featured_image_padding = astra_get_option( 'ast-dynamic-single-' . $current_post_type . '-remove-featured-padding', false ) && 'layout-1' === $layout_type && 'none' === astra_get_option( 'ast-dynamic-single-' . $current_post_type . '-article-featured-image-position-layout-1' ) ? true : false;
// Few settings from banner section are also applicable to 'layout-1' so adding this condition & compatibility.
if ( 'layout-1' === $layout_type ) {
$image_wrap_alignment = Astra_Dynamic_CSS::astra_4_4_0_compatibility() ? 'center' : '';
/**
* Desktop CSS.
*/
$css_output_desktop = array(
$selector => array(
'text-align' => $desk_h_alignment,
),
$selector . ' *' => astra_get_font_array_css( astra_get_option( 'ast-dynamic-single-' . $current_post_type . '-text-font-family' ), astra_get_option( 'ast-dynamic-single-' . $current_post_type . '-text-font-weight' ), $banner_text_font_size, 'ast-dynamic-single-' . $current_post_type . '-text-font-extras', $text_color ),
$selector . ' .entry-title' => astra_get_font_array_css( astra_get_option( 'ast-dynamic-single-' . $current_post_type . '-title-font-family' ), astra_get_option( 'ast-dynamic-single-' . $current_post_type . '-title-font-weight', Astra_Posts_Structure_Loader::get_customizer_default( 'title-font-weight' ) ), $banner_title_font_size, 'ast-dynamic-single-' . $current_post_type . '-title-font-extras', $title_color ),
$selector . ' .entry-meta, ' . $selector . ' .entry-meta *' => astra_get_font_array_css( astra_get_option( 'ast-dynamic-single-' . $current_post_type . '-meta-font-family' ), astra_get_option( 'ast-dynamic-single-' . $current_post_type . '-meta-font-weight' ), $banner_meta_font_size, 'ast-dynamic-single-' . $current_post_type . '-meta-font-extras' ),
$selector . ' a, ' . $selector . ' a *' => array(
'color' => esc_attr( $link_color ),
),
$selector . ' a:hover, ' . $selector . ' a:hover *' => array(
'color' => esc_attr( $link_hover_color ),
),
$selector . ' > *:not(:last-child)' => array(
'margin-bottom' => $elements_gap . 'px',
),
$selector . ' .post-thumb-img-content' => array(
'text-align' => $image_wrap_alignment,
),
$selector . ' .post-thumb img, .ast-single-post-featured-section.post-thumb img' => array(
'aspect-ratio' => $aspect_ratio,
'width' => Astra_Dynamic_CSS::astra_4_6_0_compatibility() && 'default' !== $aspect_ratio_type ? '100%' : '',
'height' => Astra_Dynamic_CSS::astra_4_6_0_compatibility() && 'default' !== $aspect_ratio_type ? '100%' : '',
'object-fit' => $object_fit_style,
),
);
/**
* Tablet CSS.
*/
$css_output_tablet = array(
$selector => array(
'text-align' => $tab_h_alignment,
),
$selector . ' .entry-title' => array(
'font-size' => astra_responsive_font( $banner_title_font_size, 'tablet' ),
),
$selector . ' *' => array(
'font-size' => astra_responsive_font( $banner_text_font_size, 'tablet' ),
),
$selector . ' .entry-meta, ' . $selector . ' .entry-meta *' => array(
'font-size' => astra_responsive_font( $banner_meta_font_size, 'tablet' ),
),
);
/**
* Mobile CSS.
*/
$css_output_mobile = array(
$selector => array(
'text-align' => $mob_h_alignment,
),
$selector . ' .entry-title' => array(
'font-size' => astra_responsive_font( $banner_title_font_size, 'mobile' ),
),
$selector . ' *' => array(
'font-size' => astra_responsive_font( $banner_text_font_size, 'mobile' ),
),
$selector . ' .entry-meta, ' . $selector . ' .entry-meta *' => array(
'font-size' => astra_responsive_font( $banner_meta_font_size, 'mobile' ),
),
);
if ( $remove_featured_image_padding ) {
$single_post_container_spacing = astra_get_option( 'single-post-inside-spacing' );
$container_padding_defaults = Astra_Dynamic_CSS::astra_4_6_0_compatibility() && is_single() ? '2.5em' : '3em';
$container_lg_horz_spacing = ( true === astra_check_is_structural_setup() ) ? $container_padding_defaults : '6.67';
$container_lg_vert_spacing = ( true === astra_check_is_structural_setup() ) ? $container_padding_defaults : '5.34';
$astra_desktop_container_left_spacing = defined( 'ASTRA_EXT_VER' ) && astra_responsive_spacing( $single_post_container_spacing, 'left', 'desktop' ) ? astra_responsive_spacing( $single_post_container_spacing, 'left', 'desktop', $container_lg_horz_spacing ) : 'var(--ast-container-default-xlg-padding)';
$astra_desktop_container_right_spacing = defined( 'ASTRA_EXT_VER' ) && astra_responsive_spacing( $single_post_container_spacing, 'right', 'desktop' ) ? astra_responsive_spacing( $single_post_container_spacing, 'right', 'desktop', $container_lg_horz_spacing ) : 'var(--ast-container-default-xlg-padding)';
$astra_desktop_container_top_spacing = defined( 'ASTRA_EXT_VER' ) && astra_responsive_spacing( $single_post_container_spacing, 'right', 'desktop' ) ? astra_responsive_spacing( $single_post_container_spacing, 'right', 'desktop', $container_lg_vert_spacing ) : 'var(--ast-container-default-xlg-padding)';
$astra_tablet_container_left_spacing = defined( 'ASTRA_EXT_VER' ) && astra_responsive_spacing( $single_post_container_spacing, 'left', 'tablet' ) ? astra_responsive_spacing( $single_post_container_spacing, 'left', 'tablet', $container_lg_horz_spacing ) : 'var(--ast-container-default-xlg-padding)';
$astra_tablet_container_right_spacing = defined( 'ASTRA_EXT_VER' ) && astra_responsive_spacing( $single_post_container_spacing, 'right', 'tablet' ) ? astra_responsive_spacing( $single_post_container_spacing, 'right', 'tablet', $container_lg_horz_spacing ) : 'var(--ast-container-default-xlg-padding)';
$astra_tablet_container_top_spacing = defined( 'ASTRA_EXT_VER' ) && astra_responsive_spacing( $single_post_container_spacing, 'right', 'tablet' ) ? astra_responsive_spacing( $single_post_container_spacing, 'right', 'tablet', $container_lg_vert_spacing ) : 'var(--ast-container-default-xlg-padding)';
$astra_mobile_container_left_spacing = defined( 'ASTRA_EXT_VER' ) && astra_responsive_spacing( $single_post_container_spacing, 'left', 'mobile' ) ? astra_responsive_spacing( $single_post_container_spacing, 'left', 'mobile', $container_lg_horz_spacing ) : '1em';
$astra_mobile_container_right_spacing = defined( 'ASTRA_EXT_VER' ) && astra_responsive_spacing( $single_post_container_spacing, 'right', 'mobile' ) ? astra_responsive_spacing( $single_post_container_spacing, 'right', 'mobile', $container_lg_horz_spacing ) : '1em';
$astra_mobile_container_top_spacing = defined( 'ASTRA_EXT_VER' ) && astra_responsive_spacing( $single_post_container_spacing, 'right', 'mobile' ) ? astra_responsive_spacing( $single_post_container_spacing, 'right', 'mobile', $container_lg_vert_spacing ) : '1.5em';
$css_output_desktop[ '.ast-separate-container ' . $selector . ' .post-thumb' ]['margin-left'] = $astra_desktop_container_left_spacing ? 'calc( -1 * ' . $astra_desktop_container_left_spacing . ' )' : '';
$css_output_desktop[ '.ast-separate-container ' . $selector . ' > *:first-child.post-thumb' ]['margin-top'] = $astra_desktop_container_top_spacing ? 'calc( -1 * ' . $astra_desktop_container_top_spacing . ' )' : '';
$css_output_desktop[ '.ast-separate-container ' . $selector . ' .post-thumb' ]['margin-right'] = $astra_desktop_container_right_spacing ? 'calc( -1 * ' . $astra_desktop_container_right_spacing . ' )' : '';
$css_output_tablet[ '.ast-separate-container ' . $selector . ' .post-thumb' ]['margin-left'] = $astra_tablet_container_left_spacing ? 'calc( -1 * ' . $astra_tablet_container_left_spacing . ' )' : '';
$css_output_tablet[ '.ast-separate-container ' . $selector . ' > *:first-child.post-thumb' ]['margin-top'] = $astra_tablet_container_top_spacing ? 'calc( -1 * ' . $astra_tablet_container_top_spacing . ' )' : '';
$css_output_tablet[ '.ast-separate-container ' . $selector . ' .post-thumb' ]['margin-right'] = $astra_tablet_container_right_spacing ? 'calc( -1 * ' . $astra_tablet_container_right_spacing . ' )' : '';
$css_output_mobile[ '.ast-separate-container ' . $selector . ' .post-thumb' ]['margin-left'] = $astra_mobile_container_left_spacing ? 'calc( -1 * ' . $astra_mobile_container_left_spacing . ' )' : '';
$css_output_mobile[ '.ast-separate-container ' . $selector . ' > *:first-child.post-thumb' ]['margin-top'] = $astra_mobile_container_top_spacing ? 'calc( -1 * ' . $astra_mobile_container_top_spacing . ' )' : '';
$css_output_mobile[ '.ast-separate-container ' . $selector . ' .post-thumb' ]['margin-right'] = $astra_mobile_container_right_spacing ? 'calc( -1 * ' . $astra_mobile_container_right_spacing . ' )' : '';
}
} else {
$entry_title_selector = is_customize_preview() ? $selector . ' .ast-container .entry-title' : $selector . ' .entry-title';
$image_position = astra_get_option( 'ast-dynamic-single-' . $current_post_type . '-image-position', 'inside' );
$use_featured_background = astra_get_option( 'ast-dynamic-single-' . $current_post_type . '-featured-as-background', false );
$custom_background = astra_get_option(
'ast-dynamic-single-' . $current_post_type . '-banner-background',
Astra_Posts_Structure_Loader::get_customizer_default( 'responsive-background' )
);
/**
* Desktop CSS.
*/
$css_output_desktop = array(
$selector => array(
'text-align' => $desk_h_alignment,
'justify-content' => $vert_alignment,
'min-height' => $desk_banner_height,
'margin-top' => astra_responsive_spacing( $banner_margin, 'top', 'desktop' ),
'margin-right' => astra_responsive_spacing( $banner_margin, 'right', 'desktop' ),
'margin-bottom' => astra_responsive_spacing( $banner_margin, 'bottom', 'desktop' ),
'margin-left' => astra_responsive_spacing( $banner_margin, 'left', 'desktop' ),
'width' => '100%',
'padding-top' => astra_responsive_spacing( $banner_padding, 'top', 'desktop' ),
'padding-right' => astra_responsive_spacing( $banner_padding, 'right', 'desktop' ),
'padding-bottom' => astra_responsive_spacing( $banner_padding, 'bottom', 'desktop' ),
'padding-left' => astra_responsive_spacing( $banner_padding, 'left', 'desktop' ),
),
$selector . '[data-banner-layout="layout-2"]' => astra_get_responsive_background_obj( $custom_background, 'desktop' ),
$selector . ' .ast-container *' => astra_get_font_array_css( astra_get_option( 'ast-dynamic-single-' . $current_post_type . '-text-font-family' ), astra_get_option( 'ast-dynamic-single-' . $current_post_type . '-text-font-weight' ), $banner_text_font_size, 'ast-dynamic-single-' . $current_post_type . '-text-font-extras', $text_color ),
$selector . ' .ast-container > *:not(:last-child), ' . $selector . ' .read-more' => array(
'margin-bottom' => $elements_gap . 'px',
),
$selector . ' .ast-container' => array(
'width' => '100%',
),
$entry_title_selector => astra_get_font_array_css( astra_get_option( 'ast-dynamic-single-' . $current_post_type . '-title-font-family' ), astra_get_option( 'ast-dynamic-single-' . $current_post_type . '-title-font-weight', Astra_Posts_Structure_Loader::get_customizer_default( 'title-font-weight' ) ), $banner_title_font_size, 'ast-dynamic-single-' . $current_post_type . '-title-font-extras', $title_color ),
$selector . ' > .entry-title' => array(
'margin-bottom' => '0',
),
$selector . ' .entry-meta, ' . $selector . ' .entry-meta *' => astra_get_font_array_css( astra_get_option( 'ast-dynamic-single-' . $current_post_type . '-meta-font-family' ), astra_get_option( 'ast-dynamic-single-' . $current_post_type . '-meta-font-weight' ), $banner_meta_font_size, 'ast-dynamic-single-' . $current_post_type . '-meta-font-extras' ),
$selector . ' .ast-container a, ' . $selector . ' .ast-container a *' => array(
'color' => esc_attr( $link_color ),
),
$selector . ' .ast-container a:hover, ' . $selector . ' .ast-container a:hover *' => array(
'color' => esc_attr( $link_hover_color ),
),
'.ast-single-entry-banner .read-more .ast-button' => array(
'margin-top' => '0.5em',
'display' => 'inline-block',
),
$selector . ' .post-thumb img, .ast-single-post-featured-section img' => array(
'aspect-ratio' => $aspect_ratio,
'width' => Astra_Dynamic_CSS::astra_4_6_0_compatibility() && 'default' !== $aspect_ratio_type ? '100%' : '',
'height' => Astra_Dynamic_CSS::astra_4_6_0_compatibility() && 'default' !== $aspect_ratio_type ? '100%' : '',
'object-fit' => $object_fit_style,
),
$selector . ' .ast-container > *:last-child' => array(
'margin-bottom' => '0',
),
);
/**
* Min tablet width CSS.
*/
$css_output_min_tablet = array(
'.ast-narrow-container ' . $selector . ' .ast-container' => array(
'max-width' => $narrow_container_width . 'px',
'padding-left' => '0',
'padding-right' => '0',
),
);
/**
* Tablet CSS.
*/
$css_output_tablet = array(
$selector => array(
'text-align' => $tab_h_alignment,
'min-height' => $tab_banner_height,
'padding-top' => astra_responsive_spacing( $banner_padding, 'top', 'tablet' ),
'padding-right' => astra_responsive_spacing( $banner_padding, 'right', 'tablet' ),
'padding-bottom' => astra_responsive_spacing( $banner_padding, 'bottom', 'tablet' ),
'padding-left' => astra_responsive_spacing( $banner_padding, 'left', 'tablet' ),
'margin-top' => astra_responsive_spacing( $banner_margin, 'top', 'tablet' ),
'margin-right' => astra_responsive_spacing( $banner_margin, 'right', 'tablet' ),
'margin-bottom' => astra_responsive_spacing( $banner_margin, 'bottom', 'tablet' ),
'margin-left' => astra_responsive_spacing( $banner_margin, 'left', 'tablet' ),
),
$selector . '[data-banner-layout="layout-2"]' => astra_get_responsive_background_obj( $custom_background, 'tablet' ),
$selector . ' .entry-title' => array(
'font-size' => astra_responsive_font( $banner_title_font_size, 'tablet' ),
),
$selector . ' .ast-container' => array(
'padding-left' => '0',
'padding-right' => '0',
),
$selector . ' *' => array(
'font-size' => astra_responsive_font( $banner_text_font_size, 'tablet' ),
),
$selector . ' .entry-meta, ' . $selector . ' .entry-meta *' => array(
'font-size' => astra_responsive_font( $banner_meta_font_size, 'tablet' ),
),
);
/**
* Mobile CSS.
*/
$css_output_mobile = array(
$selector => array(
'text-align' => $mob_h_alignment,
'min-height' => $mob_banner_height,
'padding-top' => astra_responsive_spacing( $banner_padding, 'top', 'mobile' ),
'padding-right' => astra_responsive_spacing( $banner_padding, 'right', 'mobile' ),
'padding-bottom' => astra_responsive_spacing( $banner_padding, 'bottom', 'mobile' ),
'padding-left' => astra_responsive_spacing( $banner_padding, 'left', 'mobile' ),
'margin-top' => astra_responsive_spacing( $banner_margin, 'top', 'mobile' ),
'margin-right' => astra_responsive_spacing( $banner_margin, 'right', 'mobile' ),
'margin-bottom' => astra_responsive_spacing( $banner_margin, 'bottom', 'mobile' ),
'margin-left' => astra_responsive_spacing( $banner_margin, 'left', 'mobile' ),
),
$selector . '[data-banner-layout="layout-2"]' => astra_get_responsive_background_obj( $custom_background, 'mobile' ),
$selector . ' .entry-title' => array(
'font-size' => astra_responsive_font( $banner_title_font_size, 'mobile' ),
),
$selector . ' *' => array(
'font-size' => astra_responsive_font( $banner_text_font_size, 'mobile' ),
),
$selector . ' .entry-meta, ' . $selector . ' .entry-meta *' => array(
'font-size' => astra_responsive_font( $banner_meta_font_size, 'mobile' ),
),
);
if ( ( $layout_2_active && 'custom' === $width_type ) || is_customize_preview() ) {
$css_output_desktop[ $selector . '[data-banner-width-type="custom"]' ]['max-width'] = $custom_width . 'px';
}
if ( 'outside' !== $image_position && in_array( 'ast-dynamic-single-' . $current_post_type . '-image', $single_structure ) && $use_featured_background ) {
/** @psalm-suppress PossiblyFalseArgument */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
$feat_image_src = wp_get_attachment_url( get_post_thumbnail_id( get_the_ID() ) );
/** @psalm-suppress PossiblyFalseArgument */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
if ( $feat_image_src ) {
$css_output_desktop[ $selector . '[data-banner-background-type="featured"]' ] = array(
'background' => 'url( ' . esc_url( $feat_image_src ) . ' )',
'background-repeat' => 'no-repeat',
'background-attachment' => 'scroll',
'background-position' => 'center center',
'background-size' => 'cover',
);
$overlay_color = astra_get_option( 'ast-dynamic-single-' . $current_post_type . '-banner-featured-overlay', '' );
if ( '' !== $overlay_color && 'unset' !== $overlay_color ) {
$css_output_desktop[ $selector . '[data-banner-background-type="featured"]' ]['background'] = 'url( ' . esc_url( $feat_image_src ) . ' ) ' . $overlay_color;
$css_output_desktop[ $selector . '[data-banner-background-type="featured"]' ]['background-blend-mode'] = 'multiply';
}
}
}
if ( 'outside' === $image_position ) {
$css_output_desktop['.single article .post-thumb'] = array(
'margin-bottom' => '2em',
);
}
}
$dynamic_css .= '
.ast-single-entry-banner {
-js-display: flex;
display: flex;
flex-direction: column;
justify-content: center;
text-align: center;
position: relative;
background: #eeeeee;
}
.ast-single-entry-banner[data-banner-layout="layout-1"] {
max-width: ' . astra_get_css_value( $site_content_width, 'px' ) . ';
background: inherit;
padding: 20px 0;
}
.ast-single-entry-banner[data-banner-width-type="custom"] {
margin: 0 auto;
width: 100%;
}
.ast-single-entry-banner + .site-content .entry-header {
margin-bottom: 0;
}
.site .ast-author-avatar {
--ast-author-avatar-size: ' . astra_get_css_value( $author_avatar_size, 'px' ) . ';
}
a.ast-underline-text {
text-decoration: underline;
}
.ast-container > .ast-terms-link {
position: relative;
display: block;
}
a.ast-button.ast-badge-tax {
padding: 4px 8px;
border-radius: 3px;
font-size: inherit;
}
';
if ( is_customize_preview() ) {
$dynamic_css .= '
.site-header-focus-item .ast-container div.customize-partial-edit-shortcut,
.site-header-focus-item .ast-container button.item-customizer-focus {
font-size: inherit;
}
';
}
$margin_top = astra_responsive_spacing( $margin, 'top', 'desktop' );
// To add top spacing for SureCart shop page default title.
if ( class_exists( 'SureCart' ) && $margin_top && 0 === intval( $margin_top ) && get_the_ID() === intval( get_option( 'surecart_shop_page_id' ) ) ) {
$dynamic_css .= '
.page .entry-header {
margin-top: 3em;
}
';
}
/* Parse CSS from array() */
$dynamic_css .= astra_parse_css( $css_output_desktop );
$dynamic_css .= astra_parse_css( $css_output_min_tablet, astra_get_tablet_breakpoint( '', 1 ) );
$dynamic_css .= astra_parse_css( $css_output_tablet, '', astra_get_tablet_breakpoint() );
$dynamic_css .= astra_parse_css( $css_output_mobile, '', astra_get_mobile_breakpoint() );
return $dynamic_css;
}
WSTERN IT SERVICES (WITS)
Skip to content
Unleashing
the Power of IT
for your Business and
Residential
Western IT Services provides Unparalleled IT Services , IT Consultant & IT Professional Services for your BUSINESS and HOME at all times Your Satisfaction is our MAIN PRIORITY
WITS
Unleashing 24/7
IT Power for Your Business and Home –
Anytime, Anywhere.
Western IT Services provides Unparalleled IT Services , IT Consultant & IT Professional Services for your BUSINESS and HOME at all times Your Satisfaction is our MAIN PRIORITY
IT Services & IT Consultant
WITS Western IT Consultants act as your trusted advisors to help organizations and home users leverage technology effectively. If you have specific needs or questions regarding IT consulting services, feel free to ask!
Cyber Security Services
WITS Western IT Consultants act as your trusted advisors to help organizations and home users leverage technology effectively. If you have specific needs or questions regarding IT consulting services, feel free to ask!
Structured Cabling & WiFI Services
WITS Western IT Consultants act as your trusted advisors to help organizations and home users leverage technology effectively. If you have specific needs or questions regarding IT consulting services, feel free to ask!
IT Services & IT Consultant
Cyber Security
Services
Structured Cabling & WiFI Services
Computer Repair Services
Audio and Video Solutions
Web Development & Business Intelligence
About WITS
Western IT Services
We are an IT Services and IT Support Company, we provide Unparalleled IT Services for your Home and Business, WITS is the best and only MSP who will provide you the best Price with the best quality of services, our Goal is your goal and we are here for help at any time in anywhere and 24/7.For WITS You are our Family not only a Customer!!
Learn More
WITS
Western IT Services
WITS (Western IT Services) stands out as a prominent IT services and support company, offering a comprehensive range of solutions tailored to your unique business needs with a steadfast commitment to quality.
Get Started
IT Residential Services
At WITS We prioritize your needs as a residential user, recognizing that they can arise at any time. Whether it’s remotely or on-site, we are committed to promptly resolving your issues .
Learn More
IT Services For Business
At WITS Western IT Services, IT Services for Business our clients can be confident in partnering with a reliable ally dedicated to supporting their IT requirements and facilitating their objectives. If you seek a dependable provider of IT services that prioritizes quality, affordability, and customer satisfaction, WITS Western IT Services is your optimal choice.
Learn More
IT Professiona Services WITSYNERGY
WITS Western IT Services provides tailored IT Professional Services designed for corporate and business clients. Our offerings include robust cybersecurity solutions, seamless ERP systems, and expert guidance to enhance operational efficiency and foster growth in a dynamic business environment.
Learn More
At WITS We prioritize your needs as a residential user, recognizing that they can arise at any time. Whether it’s remotely or on-site, we are committed to promptly resolving your issues .
Learn More
At WITS Western IT Services, IT Services for Business our clients can be confident in partnering with a reliable ally dedicated to supporting their IT requirements and facilitating their objectives. If you seek a dependable provider of IT services that prioritizes quality, affordability, and customer satisfaction, WITS Western IT Services is your optimal choice.
Learn More
WITS Western IT Services provides tailored IT Professional Services designed for corporate and business clients. Our offerings include robust cybersecurity solutions, seamless ERP systems, and expert guidance to enhance operational efficiency and foster growth in a dynamic business environment.
Learn More
WITS
Western IT Services Certifications
We are proud to showcase multiple badges thatCertifications has certified our business
Home Advisor Certifications
We are proud to showcase multiple badges that HomeAdvisor has certified our business
Elite Service Badge
We are proud to showcase multiple badges that have certified our business “Legitimate”
Elite Service Badge
We are proud to showcase multiple badges that have certified our business “Legitimate”
Elite Service Badge
We are proud to showcase multiple badges that have certified our business “Legitimate”
Hear from Our Clients
Discover how WITS has transformed businesses and homes with our reliable,24/7 IT solutions. See what our clients are saying about our exceptional service and unwavering support!
Sarah T.Home User Read More
“The level of service from WITS is unmatched. Anytime I have a tech issue at home, they’re just a call away and always fix it quickly. Their professionalism and dedication make them feel like part of the family!”
Emily RBusiness Owner Read More
“WITS transformed our business operations with their top-notch IT solutions. Their 24/7 support team is always responsive, ensuring minimal downtime. From cybersecurity to structured cabling, their expertise is unmatched. Highly recommend them for any IT needs!”
John D– John D., Remote Worker Read More
“Western IT Services has been a game-changer for our home office setup. Their team was professional, efficient, and incredibly knowledgeable. Thanks to WITS, our systems are now secure and running smoothly!”
Previous
Next