HEX
Server: Apache
System: Linux webd006.cluster128.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64
User: zwafgyp (177615)
PHP: 7.4.33
Disabled: _dyuweyrj4,_dyuweyrj4r,dl
Upload Files
File: /home/zwafgyp/lacalita/wp-content/plugins/rey-core/inc/critical-css.php
<?php
namespace ReyCore;

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

final class CriticalCSS
{

	/**
	 * Holds CSS styles
	 *
	 * @var array
	 */
	protected $_styles = [];

	/**
	 * Holds CSS display none selectors
	 *
	 * @var array
	 */
	protected $_dn_selectors = [];

	public function __construct()
	{
		add_action( 'init', [$this, 'init']);
	}

	function init(){
		add_action( 'wp_head', [$this, 'print_head_styles'], 5);
		add_action( 'wp_footer', [$this, 'remove_critical_css']);
	}

	function can_add(){

		if( ! get_theme_mod('perf__critical_css_v2', false) ){
			return;
		}

		if( 'inline' === REY_CORE_ASSETS_CSS_HEAD ){
			return;
		}

		$is_wc = class_exists('\WooCommerce') && (is_cart() || is_checkout());

		if( apply_filters('reycore/critical_css/disable', false) && ! $is_wc ){
			return;
		}

		return true;
	}

	public function get_css(){

		$this->default_css();

		do_action('reycore/critical_css/before_render', $this);

		$this->process_dn_selectors();

		$inlined_css = str_replace(
			[': ', ';  ', '; ', '  ', '{ ', ' {'],
			[':', ';', ';', ' ', '{', '{'],
			preg_replace( "/[\t\n\r]+/", '', implode('', apply_filters('reycore/critical_css/css', $this->_styles) ) )
		);

		return $inlined_css;
	}

	function print_head_styles(){

		if( ! $this->can_add() ){
			return;
		}

		printf('<style type="text/css" id="reycore-critical-css" %2$s>%1$s</style>', $this->get_css(), reycore__css_no_opt_attr() ) . "\n";
	}

	public function add_css($css = []){
		$this->_styles = array_merge($this->_styles, $css);
	}

	public function add_dn_selectors($css = []){
		$this->_dn_selectors = array_merge($this->_dn_selectors, $css);
	}

	public function process_dn_selectors(){

		$selectors = [
			'[data-lazy-hidden]',
			'.rey-mainNavigation.rey-mainNavigation--mobile',
			'.rey-mainNavigation-mobileBtn',
			'.rey-accountPanel-wrapper[data-layout="drop"]',
			'.rey-mega-gs,.depth--0>.sub-menu',
			'.rey-stickyContent',
			'.rey-header-dropPanel .rey-header-dropPanel-content',
			':not(.skip-ccss) .elementor-icon svg',
			'.single-product .rey-breadcrumbs-del:nth-last-of-type(1) + .rey-breadcrumbs-item',
		];

		$this->_styles[] = sprintf(':is(%s){display:none}', implode(',', array_merge($selectors, $this->_dn_selectors)));
	}

	public function default_css(){

		$this->_styles[] = 'html{font-size: var(--body-font-size, 16px);}';
		$this->_styles[] = 'body{overflow-y: scroll}';
		$this->_styles[] = '.--invisible{visibility: hidden;}';

		$this->_styles[] = '[data-container] .elementor-section.elementor-section-boxed > .elementor-container{max-width:var(--container-max-width,1440px)}';

		$this->_styles[] = '.btn, button, button[type=button], button[type=submit], input[type=button], input[type=reset], input[type=submit] { display: inline-flex; align-items: center; justify-content: center; text-align: center; vertical-align: middle; background-color: transparent; border: 1px solid transparent; padding: 0; font-size: 1rem; line-height: 1.5; }';

		if( 'default' === get_theme_mod('header_layout_type', 'default') ):
			$this->_styles[] = '.rey-siteHeader-container {
				padding-right: var(--half-gutter-size);
				padding-left: var(--half-gutter-size);
				width: 100%;
				max-width: var(--container-max-width);
				margin-right: auto;
				margin-left: auto
			}';
			$this->_styles[] = '@media (min-width: 1025px) {
				.rey-siteHeader-container {
					--justify: space-between;
					--v-spacing: 20px;
					max-width: var(--header-default--max-width, var(--container-max-width));
				}
			}';
			$this->_styles[] = '.rey-siteHeader-row {
				display: flex;
				padding-top: var(--v-spacing, 15px);
				padding-bottom: var(--v-spacing, 15px);
				align-items: center;
				justify-content: var(--justify, initial);
			}';
		endif;

		// desktop menu
		$this->_styles[] = '.rey-mainMenu {
			list-style: none;
			margin: 0;
			padding: 0;
		}';

		$this->_styles[] = '.rey-mainMenu > .menu-item > a {
			display: inline-block;
			font-size: 0.875rem;
			font-weight: 500;
		}';

		$this->_styles[] = '.rey-mainNavigation.rey-mainNavigation--desktop {
			display: var(--nav-breakpoint-desktop,flex);
		}';

		$this->_styles[] = '.rey-mainMenu--desktop {
			display: inline-flex;
			gap: calc(var(--header-nav-x-spacing, 1rem) * 2);
		}';

		$this->_styles[] = '@media (min-width: 1025px){
			.rey-mainMenu.--has-indicators .menu-item-has-children > a {
				padding-right: var(--indicator-distance, Max( var(--indicator-padding, 12px), 16px ) ) !important;
			}
		}';

		$this->_styles[] = '.rey-mainNavigation-mobileBtn {	position: relative; }';

		// Search

		$this->_styles[] = '.rey-headerSearch--inline form {
			display: flex;
		}';

		$this->_styles[] = '@media (min-width: 1025px){
			.rey-headerSearch--inline :is(.rey-headerSearch-toggle, .rey-inlineSearch-mobileClose) {
				display: none;
			}
		}';

		$this->_styles[] = '.rey-headerSearch--inline input[type="search"] {
			border: 0;
			height: 100%;
			font-size: 16px;
			position: relative;
			background: none;
		}';

		$this->_styles[] = '.reyajfilter-updater {
			position: absolute;
			opacity: 0;
			visibility: hidden;
			left: -350vw;
		}';

		// Sticky Social Icons
		$this->_styles[] = '.rey-stickySocial.--position-left{left:-150vw}.rey-stickySocial.--position-right{right:150vw;}';

		// Header panels
		$this->_styles[] = '.rey-compareNotice-wrapper,.rey-scrollTop,.rey-wishlist-notice-wrapper{left:-150vw;opacity:0;visibility:hidden;pointer-events:none;}';

		// dashed button
		$this->_styles[] = '.elementor-button-dashed.--large{--btn-dashed-p:50px;--btn-line-w: 35px}';

		// Cookie notice
		$this->_styles[] = '.rey-cookieNotice.--visible{left: var(--cookie-distance);opacity: 1;transform: translateY(0);}';

		// Helper classes
		$this->_styles[] = '.--hidden{display:none!important;}@media(max-width:767px){.--dnone-sm,.--dnone-sm{display:none!important;}}@media(min-width:768px) and (max-width:1025px){.--dnone-md,.--dnone-md{display:none!important;}} @media(min-width:1025px){.--dnone-lg,.--dnone-lg{display:none!important;}}';

		// Nest cover
		$this->_styles[] = '.rey-coverNest .cNest-slide{opacity: 0;}';

		// Section slideshow
		$this->_styles[] = '.elementor-element > .rey-section-slideshow { position: absolute; width: 100%; height: 100%; top: 0; left: 0; background-size: cover; background-position: center center; }';

		$this->_styles[] = '.is-animated-entry {opacity: 0;}';

		$this->_styles[] = '@media (min-width: 768px) {
			.el-reycore-cover-sideslide .rey-siteHeader > :is(.elementor, .rey-siteHeader-container) {
				opacity: 0;
			}
		}';

		$this->_styles[] = '.woocommerce div.product .woocommerce-product-gallery { opacity: 0; }';

		$this->_styles[] = '@media (min-width: 1025px) {
			.woocommerce div.product .woocommerce-product-gallery.--is-loading .woocommerce-product-gallery__wrapper {
				opacity:0;
			}
		}';

		$this->_styles[] = '.rey-coverSplit.--mainSlide .cSplit-slide--mainBg{opacity:0}';

		$this->_styles[] = '.rey-breadcrumbs { font-size: var(--breadcrumbs-fz, 0.875rem); margin: var(--breadcrumbs-m, 1.25rem 0); }';
		$this->_styles[] = '.single-product .rey-breadcrumbs { --breadcrumbs-fz: 0.75rem; --breadcrumbs-m: 0 0 2rem; }';
		$this->_styles[] = '.rey-breadcrumbs-item, .rey-breadcrumbs-del { display: inline-block; margin: 0 5px; }';


	}

	function remove_critical_css(){

		if( ! $this->can_add() ){
			return;
		} ?>
		<script type="text/javascript" id="reycore-critical-css-js" <?php echo reycore__js_no_opt_attr(); ?>>
			document.addEventListener("DOMContentLoaded", function() {
				var CCSS = document.getElementById('reycore-critical-css');
				CCSS && CCSS.remove();
			});
		</script>
		<?php
	}

}