/**
* 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;
}
About – WSTERN IT SERVICES (WITS)
Skip to content
About Us
WITS Western IT Services stands out as a prominent IT services and support company, offering a comprehensive range of solutions tailored for both residential and business clients. With a steadfast commitment to delivering unparalleled IT services, WITS prides itself on providing the best quality services at competitive prices, setting itself apart as a leading Managed Service Provider (MSP) in the industry.
WITS
Western IT Services Certifications
We are proud to showcase multiple badges thatCertifications has certified our business
Empowering
Your IT, Every Step of the Way
WITS Western IT Services is a trusted Managed Service Provider offering tailored IT solutions for both residential and business clients. With a customer-first approach, WITS ensures top-notch support and expertise 24/7, helping clients with everything from technical troubleshooting to strategic IT consultation. Our dedicated team is committed to delivering quality, affordability, and lasting partnerships.
WITS Western IT Services distinguishes itself as a prominent IT services and support company, providing a comprehensive array of solutions customized for your business needs. With an unwavering dedication to delivering exceptional IT services, WITS emphasizes its commitment to delivering top-quality services at competitive prices, establishing itself as a premier Managed Service Provider (MSP) in the industry.
Our Story
At WITS, customer satisfaction is paramount, and the team goes above and beyond to ensure that clients receive the support they need, when they need it. Adopting a customer-centric approach, WITS views each client as part of their extended family, rather than just a customer. This personal touch fosters a sense of trust and reliability, underlining WITS’ dedication to building enduring relationships with those they serve.
Our Mission
WITS Western IT Services began with a simple yet powerful vision: to provide exceptional IT solutions with a personal touch. Founded by Oscar Gonzalez and Karen Marco, two industry
Our Vision
WITS
Our Leader
Oscar Perez
CIO & COO
Karen Marco
CFO
Nehebka Perez
CTO
Itzayanna Marco
CEO & Founder
Jose Perez
CBO
WITS
Latest From News
Your Common
Questions Answered
WITS Western IT Services stands out as a prominent IT services and support company, offering a comprehensive range of solutions tailored for both residential and business clients. With a steadfast commitment to delivering unparalleled IT services, WITS prides itself on providing the best quality services at competitive prices, setting itself apart as a leading Managed Service Provider (MSP) in the industry.
How Much is the Cost per Hour for IT Residential Services?
At WITS we are commited to offer you the best price based on your needs, our rates are competitive and affordable for all users, $125 an hour flat rate for Residential Users, Contact us for a discount or go to our Pricing webpage fro more information.
WITS offers Network Wiring Repair or Installation?
Any time throug our website or via Phone call we offer services 24/7 and we are ready for you!
What Area WITS Cover ?
WITS coverage is all the UTAH State and we can help you 24/7 hours, Contact us for more information.
When and How I can Contact WITS?
At WITS, we offer a range of services tailored to residential needs, including computer repair, network setup, video surveillance, and IT training. Our dedicated team is committed to resolving your tech issues quickly and efficiently, ensuring you stay connected and secure. Contact us today for reliable support!
WITS Offer on site survey's and free estimates ?
Yes No Charge for Survey on site, that is our policy, no matter how far you are or how long this take us, is NO Charge and free estimate
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