<?php
    
    // prevent direct file access
	if( !defined( 'ABSPATH' ) ) exit;
    
    function pixe_wc_single_product_template($content){
        global $product;
?>
<div id="product-<?php the_ID(); ?>" <?php wc_product_class( '', $product ); ?>>
<?php   
        echo '<main class="pixe-editor pixe-box-sizing" >';
        pixe_get_builder_content($content, true, true);
        echo '</main>';

        $wc = WC();
        $wc->structured_data->generate_product_data();  
?>
</div>
<?php
    }
        
    // notice box
    function pixe_wc_notice_style(){
?>
.pixe-item .woocommerce-notices-wrapper{ width: 100%; padding: 0; }
.pixe-item .woocommerce-error,
.pixe-item .woocommerce-info,
.pixe-item .woocommerce-message{ display: flex; flex-wrap: wrap; align-items: center; gap: 20px; padding: 17px 20px 17px 48px;
    margin: 0 0 40px; border: 0; color: #313131; background: #f9f9f9; }
.pixe-item .woocommerce-error:before, 
.pixe-item .woocommerce-info:before, 
.pixe-item .woocommerce-message:before{ line-height: 1; left: 20px; top: 26px; color: #b0aea4; }
.pixe-item .woocommerce-error:after, 
.pixe-item .woocommerce-info:after,
.pixe-item .woocommerce-message:after{ display: none; }
.pixe-item .woocommerce-notices-wrapper .button{ font-size: 1rem; font-weight: 400; margin-left: auto; padding: 11px 20px 11px 20px; 
    background: #000000; color: #ffffff; }
.pixe-item .woocommerce-no-products-found .woocommerce-info{ margin-bottom: 0; }
.pixe-item-wc-product-notice .woocommerce-error,
.pixe-item-wc-product-notice .woocommerce-info,
.pixe-item-wc-product-notice .woocommerce-message{ margin-bottom: 0; }
<?php pixe_device_css('mobile', 'media-tag', true); ?>
.pixe-item .woocommerce-notices-wrapper .button{ float: none; margin-left: 0; }
<?php echo '}' ?>
<?php
    }
    Pixe_Dependency::get()->register_style('wc-notice', 'pixe_wc_notice_style');

    // product list
    function pixe_product_layout_style(){
?>
.pixe-item h2 mark{ color: inherit; }
.pixe-item ul.products{ --pixe--gap: 20px; --pixe--col: 4; display: flex; flex-wrap: wrap; gap: var(--pixe--gap, 20px); margin-bottom: 0; }
.pixe-item ul.products li.product .woocommerce-loop-product__title{ padding: 0; margin-bottom: 10px; transition: color 300ms; }
.pixe-item ul.products li.product .price{ margin-bottom: 0; color: #888; }
.pixe-item ul.products li.product .price ins{ font-weight: inherit; text-decoration: inherit; }
.pixe-item ul.products li.product .price del{ opacity: 1; }
.pixe-item ul.products li.product .button{ text-align: center; margin-top: 0; }
.pixe-item ul.products li.product .button.loading:after{ left: 50%; right: auto; top: 50%; margin: -8px 0 0 -8px; }
.pixe-item ul.products li.product .star-rating{ display: inline-block; }
.pixe-item ul.products li.product .onsale{ box-sizing: content-box; }
.pixe-item ul.products li.product a.added_to_cart{ margin-left: 10px; }
.pixe-item nav.woocommerce-pagination{ line-height: 0; }
.pixe-item nav.woocommerce-pagination ul{ margin: 30px 0px 0px; }
.pixe-item nav.woocommerce-pagination ul li a{ transition: color 300ms, background 300ms; }
.pixe-item ul.products:before,
.pixe-item ul.products:after{ display: none; }
.pixe-editor .pixe-item ul.products li.product{ margin: 0; width: calc((100% - (var(--pixe--gap, 10px) * (var(--pixe--col, 4) - 1))) / var(--pixe--col, 4)); }
<?php
    }
    Pixe_Dependency::get()->register_style('wc-product-layout', 'pixe_product_layout_style');

    function pixe_product_rating_style(){
?>
.pixe-item .star-rating{ width: auto; }
.pixe-item .star-rating::before{ position: static; }
.pixe-item .star-rating,
.pixe-item p.stars a{ font-size: 17px; }
.pixe-item p.stars a,
.pixe-item p.stars a:hover{ color: #fdcc3b; }
<?php
    }
    Pixe_Dependency::get()->register_style('wc-rating', 'pixe_product_rating_style');

    // data tabs
    function pixe_product_data_tabs_style(){
?>
.pixe-item .comment-form-rating p.stars span{ display: flex; }
.pixe-item #review_form #respond p.form-submit{ margin-bottom: 0; }
.pixe-item #review_form #respond .form-submit input{ display: block; }
/* tab head */
.pixe-editor div.pixe-item-wc-product-data-tabs .woocommerce-tabs ul.tabs{ font-size: 15px; padding: 0; margin-bottom: 0; }
.pixe-editor div.pixe-item-wc-product-data-tabs .woocommerce-tabs ul.tabs li{ border: none; padding: 0; margin: 0; background: transparent; border-radius: 0; }
.pixe-editor div.pixe-item-wc-product-data-tabs .woocommerce-tabs ul.tabs:before,
.pixe-editor div.pixe-item-wc-product-data-tabs .woocommerce-tabs ul.tabs li:before,
.pixe-editor div.pixe-item-wc-product-data-tabs .woocommerce-tabs ul.tabs li:after{ display: none; }
.pixe-editor div.pixe-item-wc-product-data-tabs .woocommerce-tabs ul.tabs li a{ padding: 12px 25px; }
/* tab content */
.pixe-editor div.pixe-item-wc-product-data-tabs .wc-tab h2{ font-size: 21px; }
.pixe-editor div.pixe-item-wc-product-data-tabs .woocommerce-tabs .panel{ margin-bottom: 0; padding: 40px 35px; }
.pixe-editor div.pixe-item-wc-product-data-tabs .pixe-the-content{ padding: 0; }
.pixe-editor div.pixe-item-wc-product-data-tabs .pixe-the-content p:last-child{ margin-bottom: 0; }
/* shop attributes */
.pixe-item table.shop_attributes{ margin-bottom: 0; }
.pixe-item table.shop_attributes th,
.pixe-item table.shop_attributes td{ font-style: normal; padding: 18px 20px; border-width: 1px; border-style: solid; }
.pixe-item table.shop_attributes th{ text-align: left; font-weight: 600; }
.pixe-item table.shop_attributes td p{ padding: 0; }
/* review */
.pixe-item .woocommerce-noreviews{ display: none; }
.pixe-item #reviews #comments h2{ margin-bottom: 40px; }
.pixe-item #reviews #comments ol.commentlist li img.avatar{ width: auto; padding: 0; border: none; border-radius: 50%; }
.pixe-item #reviews #comments ol.commentlist li .comment-text{ margin-left: 60px; padding: 0 0 0 30px; border: none; }
.pixe-item #reviews .woocommerce-review__author{ display: block; font-size: 18px; margin-bottom: 2px; }
.pixe-item #reviews .woocommerce-review__dash{ display: none; }
.pixe-item #reviews .star-rating{ margin-top: 5px; }
.pixe-item #reviews .comment-reply-title{ display: block; font-size: 21px; font-weight: 600; margin-bottom: 8px; }
.pixe-item #reviews label{ margin-bottom: 8px; }
.pixe-item #review_form #respond{ max-width: none; }
.pixe-item #review_form #respond .form-submit input{ font-size: 16px; padding: 15px 30px; border-radius: 0; }
.pixe-item #review_form #respond p{ margin-bottom: 25px; }
.pixe-item #review_form #respond input, 
.pixe-item #review_form #respond textarea{ padding-left: 0; padding-right: 0; background: transparent; border-width: 0px 0px 1px; }
/* colors */
.pixe-item table.shop_attributes th{ color: #000; }
.pixe-editor div.pixe-item-wc-product-data-tabs .wc-tab h2{ color: #000; font-weight: 500; }
.pixe-editor div.pixe-item-wc-product-data-tabs .woocommerce-tabs ul.tabs li.active,
.pixe-editor div.pixe-item-wc-product-data-tabs .woocommerce-tabs .panel{ background: #f5f5f5; }
.pixe-editor div.pixe-item-wc-product-data-tabs .woocommerce-tabs .panel,
.pixe-editor div.pixe-item-wc-product-data-tabs .woocommerce-tabs label{ color: #767676; }
.pixe-item table.shop_attributes th,
.pixe-item table.shop_attributes td{ border-color: #d0d0d0; background: #fff;}
.pixe-item #review_form .woocommerce-review__author,
.pixe-item #review_form .comment-reply-title{ color: #000; font-weight: 500; }
.pixe-item #review_form #respond .form-submit input{ background: #000; color: #fff; }
<?php
    }
    Pixe_Dependency::get()->register_style('wc-data-tabs', 'pixe_product_data_tabs_style');

    function pixe_wc_login_style(){
?>
form.woocommerce-form-login{ position: relative; display: flex; flex-wrap: wrap; gap: 12px 20px; }
form.woocommerce-form-login p{ width: 100%; margin-bottom: 0; }
form.woocommerce-form-login label{ font-weight: 600; }
form.woocommerce-form-login .clear{ display: none; }
form.woocommerce-form-login .form-row{ padding: 0; margin: 0; }
form.woocommerce-form-login .form-row-first, 
form.woocommerce-form-login .form-row-last{ width: auto; flex-grow: 1; }
.woocommerce form.woocommerce-form-login .woocommerce-form-login__rememberme{ display: block; margin-bottom: 12px; }
form.woocommerce-form-login .lost_password{ position: absolute; width: auto; right: 30px; bottom: 25px; }
<?php
    }
    Pixe_Dependency::get()->register_style('wc-login', 'pixe_wc_login_style');

    function pixe_wc_coupon_style(){
?>
form.woocommerce-form-coupon{ position: relative; display: flex; flex-wrap: wrap; gap: 12px 20px; }
form.woocommerce-form-coupon:before,
form.woocommerce-form-coupon:after{ display: none; }
form.woocommerce-form-coupon .form-row{ padding: 0; margin: 0; }
form.woocommerce-form-coupon .form-row-first, 
form.woocommerce-form-coupon .form-row-last{ width: auto; flex-grow: 1; }
form.woocommerce-form-coupon .button{ padding-top: 14px; padding-bottom: 14px; }
<?php
    }
    Pixe_Dependency::get()->register_style('wc-coupon', 'pixe_wc_coupon_style');