﻿<?php
require_once get_template_directory() . '/includes/loader.php';
add_action( 'after_setup_theme', 'roonix_setup_theme' );
add_action( 'after_setup_theme', 'roonix_load_default_hooks' );
function roonix_setup_theme() {
load_theme_textdomain( 'roonix', get_template_directory() . '/languages' );
// Add default posts and comments RSS feed links to head. add_theme_support( 'title-tag' );
add_theme_support( 'custom-header' );
add_theme_support( 'custom-background' );
add_theme_support( 'woocommerce' );
add_theme_support( 'wc-product-gallery-lightbox' ); add_theme_support( 'post-thumbnails' );
add_theme_support( 'automatic-feed-links' );
add_theme_support( 'wp-block-styles' );
add_theme_support( 'align-wide' );
add_theme_support( 'wp-block-styles' );
add_theme_support( 'editor-styles' );
add_theme_support( 'post', 'page-attributes' );
add_theme_support( 'post-formats', array( 'gallery', 'video', 'quote' ));
// Set the default content width.
$GLOBALS['content_width'] = 525; //Register image sizes
add_image_size( 'roonix_1162x500', 1162, 500, true ); //roonix_1162x500 Our Projects V1
add_image_size( 'roonix_568x500', 568, 500, true ); //roonix_568x500 Our Projects V1
add_image_size( 'roonix_573x323', 573, 323, true ); //roonix_568x500 Our Projects V8
add_image_size( 'roonix_300x362', 300, 362, true ); //roonix_300x362 Our Team V1
add_image_size( 'roonix_275x330', 275, 330, true ); //roonix_300x362 Our Team V6
add_image_size( 'roonix_94x94', 94, 94, true ); //roonix_94x94 Our Testimonials V1
add_image_size( 'roonix_410x272', 410, 272, true ); //roonix_410x272 Latest News V1
add_image_size( 'roonix_480x402', 480, 402, true ); //roonix_480x402 Our Services V2
add_image_size( 'roonix_659x459', 659, 459, true ); //roonix_659x459 Our Projects V2
add_image_size( 'roonix_369x300', 369, 300, true ); //roonix_369x300 Latest News V2
add_image_size( 'roonix_645x409', 645, 409, true ); //roonix_645x409 Our Projects V3
add_image_size( 'roonix_430x464', 430, 464, true ); //roonix_430x464 Our Projects V3
add_image_size( 'roonix_430x514', 430, 514, true ); //roonix_430x514 Latest News V3
add_image_size( 'roonix_410x393', 410, 393, true ); //roonix_410x393 Our Services V5
add_image_size( 'roonix_600x770', 600, 770, true ); //roonix_600x770 Our Projects V4
add_image_size( 'roonix_90x90', 90, 90, true ); //roonix_90x90 Our Testimonials V4
add_image_size( 'roonix_606x349', 606, 349, true ); //roonix_606x349 Latest News V4
add_image_size( 'roonix_630x355', 630, 355, true ); //roonix_630x355 Our Projects V5
add_image_size( 'roonix_410x355', 410, 355, true ); //roonix_410x355 Our Projects V6
add_image_size( 'roonix_1170x410', 1170, 410, true ); //roonix_1170x410 Archieve
add_image_size( 'roonix_80x80', 80, 80, true ); //roonix_80x80 Single Comment Box
add_image_size( 'roonix_813x500', 813, 500, true ); //roonix_813x500 Our Latest Projects // This theme uses wp_nav_menu() in two locations.
register_nav_menus( array(
'main_menu' => esc_html__( 'Main Menu', 'roonix' ),
) ); add_theme_support( 'html5', array(
'comment-form',
'comment-list',
'gallery',
'caption',
) );
// Add theme support for Custom Logo.
add_theme_support( 'custom-logo', array(
'width'      => 250,
'height'     => 250,
'flex-width' => true,
) );
// Add theme support for selective refresh for widgets.
add_theme_support( 'customize-selective-refresh-widgets' ); add_editor_style();
add_action( 'admin_init', 'roonix_admin_init', 2000000 );
} function roonix_admin_init() {
remove_action( 'admin_notices', array( 'ReduxFramework', '_admin_notices' ), 99 );
}  function roonix_widgets_init() {
global $wp_registered_sidebars;
$theme_options = get_theme_mod( 'roonix' . '_options-mods' );
register_sidebar( array(
'name'          => esc_html__( 'Default Sidebar', 'roonix' ),
'id'            => 'default-sidebar',
'description'   => esc_html__( 'Widgets in this area will be shown on the right-hand side.', 'roonix' ),
'before_widget' => '<div id="%1$s" class="widget sidebar-widget %2$s">',
'after_widget'  => '</div>',
'before_title'  => '<div class="sidebar-title"><h4>',
'after_title'   => '</h4></div>',
) );
register_sidebar(array(
'name' => esc_html__('Footer Widget', 'roonix'),
'id' => 'footer-sidebar',
'description' => esc_html__('Widgets in this area will be shown in Footer Area.', 'roonix'),
'before_widget'=>'<div class="footer-column col-lg-3 col-md-6 col-sm-12"><div id="%1$s" class="footer-widget %2$s">',
'after_widget'=>'</div></div>',
'before_title' => '<h6>',
'after_title' => '</h6>'
));
if ( class_exists( '\Elementor\Plugin' )){
register_sidebar(array(
'name' => esc_html__( 'Blog Listing', 'roonix' ),
'id' => 'blog-sidebar',
'description' => esc_html__( 'Widgets in this area will be shown on the right-hand side.', 'roonix' ),
'before_widget'=>'<div id="%1$s" class="widget sidebar-widget %2$s">',
'after_widget'=>'</div>',
'before_title' => '<div class="sidebar-title"><h4>',
'after_title' => '</h4></div>'
));
}
if ( ! is_object( roonix_WSH() ) ) {
return;
}
$sidebars = roonix_set( $theme_options, 'custom_sidebar_name' );
foreach ( array_filter( (array) $sidebars ) as $sidebar ) {
if ( roonix_set( $sidebar, 'topcopy' ) ) {
continue;
}
$name = $sidebar;
if ( ! $name ) {
continue;
}
$slug = str_replace( ' ', '_', $name );
register_sidebar( array(
'name'          => $name,
'id'            => sanitize_title( $slug ),
'before_widget' => '<div id="%1$s" class="%2$s widget sidebar-widget">',
'after_widget'  => '</div>',
'before_title'  => '<div class="sidebar-title"><h4>',
'after_title'   => '</h4></div>',
) );
}
update_option( 'wp_registered_sidebars', $wp_registered_sidebars );
}
add_action( 'widgets_init', 'roonix_widgets_init' );  function roonix_gutenberg_editor_palette_styles() {
add_theme_support( 'editor-color-palette', array(
array(
'name' => esc_html__( 'strong yellow', 'roonix' ),
'slug' => 'strong-yellow',
'color' => '#f7bd00',
),
array(
'name' => esc_html__( 'strong white', 'roonix' ),
'slug' => 'strong-white',
'color' => '#fff',
),
array(
'name' => esc_html__( 'light black', 'roonix' ),
'slug' => 'light-black',
'color' => '#242424',
),
array(
'name' => esc_html__( 'very light gray', 'roonix' ),
'slug' => 'very-light-gray',
'color' => '#797979',
),
array(
'name' => esc_html__( 'very dark black', 'roonix' ),
'slug' => 'very-dark-black',
'color' => '#000000',
),
) );
add_theme_support( 'editor-font-sizes', array(
array(
'name' => esc_html__( 'Small', 'roonix' ),
'size' => 10,
'slug' => 'small'
),
array(
'name' => esc_html__( 'Normal', 'roonix' ),
'size' => 15,
'slug' => 'normal'
),
array(
'name' => esc_html__( 'Large', 'roonix' ),
'size' => 24,
'slug' => 'large'
),
array(
'name' => esc_html__( 'Huge', 'roonix' ),
'size' => 36,
'slug' => 'huge'
)
) );
}
add_action( 'after_setup_theme', 'roonix_gutenberg_editor_palette_styles' );  function roonix_enqueue_scripts() {
$options = roonix_WSH()->option();
//styles
wp_enqueue_style( 'bootstrap', get_template_directory_uri() . '/assets/css/bootstrap.css' );
wp_enqueue_style( 'roonix-global', get_template_directory_uri() . '/assets/css/global.css' );
wp_enqueue_style( 'header', get_template_directory_uri() . '/assets/css/header.css' );
wp_enqueue_style( 'roonix-footer', get_template_directory_uri() . '/assets/css/footer.css' );
wp_enqueue_style( 'roonix-icofont', get_template_directory_uri() . '/assets/css/icofont.css' );
wp_enqueue_style( 'roonix-font-awesome', get_template_directory_uri() . '/assets/css/font-awesome.css' );
wp_enqueue_style( 'flaticon', get_template_directory_uri() . '/assets/css/flaticon.css' );
wp_enqueue_style( 'animate', get_template_directory_uri() . '/assets/css/animate.css' );
wp_enqueue_style( 'owl', get_template_directory_uri() . '/assets/css/owl.css' );
wp_enqueue_style( 'swiper', get_template_directory_uri() . '/assets/css/swiper.css' );
wp_enqueue_style( 'linearicons', get_template_directory_uri() . '/assets/css/linearicons.css' );
wp_enqueue_style( 'jquery-ui', get_template_directory_uri() . '/assets/css/jquery-ui.css' );
wp_enqueue_style( 'preloader', get_template_directory_uri() . '/assets/css/preloader.css' );
wp_enqueue_style( 'custom-animate', get_template_directory_uri() . '/assets/css/custom-animate.css' );
wp_enqueue_style( 'magnific-popup', get_template_directory_uri() . '/assets/css/magnific-popup.css' );
wp_enqueue_style( 'lightcase', get_template_directory_uri() . '/assets/css/lightcase.css' );
wp_enqueue_style( 'jquery-bootstrap-touchspin', get_template_directory_uri() . '/assets/css/jquery.bootstrap-touchspin.css' );
wp_enqueue_style( 'odometer-theme-default', get_template_directory_uri() . '/assets/css/odometer-theme-default.css' );
wp_enqueue_style( 'jquery-mcustomscrollbar', get_template_directory_uri() . '/assets/css/jquery.mCustomScrollbar.min.css' );
wp_enqueue_style( 'color-switcher-design', get_template_directory_uri() . '/assets/css/color-switcher-design.css' );
wp_enqueue_style( 'default-color', get_template_directory_uri() . '/assets/css/color-themes/default-color.css' );
wp_enqueue_style( 'roonix-main', get_stylesheet_uri() );
wp_enqueue_style( 'roonix-main-style', get_template_directory_uri() . '/assets/css/style.css' );
wp_enqueue_style( 'roonix-woocommerce', get_template_directory_uri() . '/assets/css/woocommerce.css' );
wp_enqueue_style( 'roonix-custom', get_template_directory_uri() . '/assets/css/custom.css' );
wp_enqueue_style( 'roonix-tut', get_template_directory_uri() . '/assets/css/tut.css' );
wp_enqueue_style( 'roonix-gutenberg', get_template_directory_uri() . '/assets/css/gutenberg.css' );
wp_enqueue_style( 'roonix-responsive', get_template_directory_uri() . '/assets/css/responsive.css' );
//scripts
wp_enqueue_script( 'jquery-ui-core');
wp_enqueue_script( 'popper-min', get_template_directory_uri().'/assets/js/popper.min.js', array('jquery'), false, true );
wp_enqueue_script( 'bootstrap', get_template_directory_uri().'/assets/js/bootstrap.min.js', array('jquery'), false, true );
wp_enqueue_script( 'magnific-popup', get_template_directory_uri().'/assets/js/magnific-popup.min.js', array('jquery'), false, true );
wp_enqueue_script( 'jquery-mcustomscrollbar-concat', get_template_directory_uri().'/assets/js/jquery.mCustomScrollbar.concat.min.js', array('jquery'), false, true );
wp_enqueue_script( 'appear', get_template_directory_uri().'/assets/js/appear.js', array('jquery'), false, true );
wp_enqueue_script( 'parallax', get_template_directory_uri().'/assets/js/parallax.min.js', array('jquery'), false, true );
wp_enqueue_script( 'tilt-jquery', get_template_directory_uri().'/assets/js/tilt.jquery.min.js', array('jquery'), false, true );
wp_enqueue_script( 'jquery-paroller', get_template_directory_uri().'/assets/js/jquery.paroller.min.js', array('jquery'), false, true );
wp_enqueue_script( 'owl', get_template_directory_uri().'/assets/js/owl.js', array('jquery'), false, true );
wp_enqueue_script( 'wow', get_template_directory_uri().'/assets/js/wow.js', array('jquery'), false, true );
wp_enqueue_script( 'odometer', get_template_directory_uri().'/assets/js/odometer.js', array('jquery'), false, true );
wp_enqueue_script( 'mixitup', get_template_directory_uri().'/assets/js/mixitup.js', array('jquery'), false, true );
wp_enqueue_script( 'lightcase', get_template_directory_uri().'/assets/js/lightcase.js', array('jquery'), false, true );
wp_enqueue_script( 'backtotop', get_template_directory_uri().'/assets/js/backToTop.js', array('jquery'), false, true );
wp_enqueue_script( 'cursor-script', get_template_directory_uri().'/assets/js/cursor-script.js', array('jquery'), false, true );
wp_enqueue_script( 'nav-tool', get_template_directory_uri().'/assets/js/nav-tool.js', array('jquery'), false, true );
wp_enqueue_script( 'knob', get_template_directory_uri().'/assets/js/knob.js', array('jquery'), false, true );
wp_enqueue_script( 'roonix-color-settings', get_template_directory_uri().'/assets/js/color-settings.js', array('jquery'), false, true );
wp_enqueue_script( 'roonix-main-script', get_template_directory_uri().'/assets/js/script.js', array('jquery'), false, true );
if( is_singular() ) wp_enqueue_script('comment-reply');
}
add_action( 'wp_enqueue_scripts', 'roonix_enqueue_scripts' );  function roonix_fonts_url(//dav-roofing.ro/wp-content/themes/roonix/) {
$fonts_url = '';
$font_families['Jost']     = 'Jost:wght@0,300,400,500,600,700,800,900&display=swap';
$font_families['DM+Sans']     = 'DM Sans:wght@0,400,500,700&display=swap';
$font_families['Roboto']      	= 'Roboto:wght@0,300,400,500,700,900&display=swap';
$font_families = apply_filters( 'ROONIX/includes/classes/header_enqueue/font_families', $font_families );
$query_args = array(
'family' => urlencode( implode( '|', $font_families ) ),
'subset' => urlencode( 'latin,latin-ext' ),
);
$protocol  = is_ssl() ? 'https' : 'http';
$fonts_url = add_query_arg( $query_args, $protocol . '://fonts.googleapis.com/css' );
return esc_url_raw($fonts_url);
}
function roonix_theme_styles() {
wp_enqueue_style( 'roonix-theme-fonts', roonix_fonts_url(//dav-roofing.ro/wp-content/themes/roonix/), array('jquery'), null );
}
add_action( 'wp_enqueue_scripts', 'roonix_theme_styles' );
add_action( 'admin_enqueue_scripts', 'roonix_theme_styles' );  // 1) roonix_set function if ( ! function_exists( 'roonix_set' ) ) {
function roonix_set( $var, $key, $def = '' ) {
if ( is_object( $var ) && isset( $var->$key ) ) {
return $var->$key;
} elseif ( is_array( $var ) && isset( $var[ $key ] ) ) {
return $var[ $key ];
} elseif ( $def ) {
return $def;
} else {
return false;
}
}
}
// 2) roonix_add_editor_styles function
function roonix_add_editor_styles() {
add_editor_style( 'editor-style.css' );
}
add_action( 'admin_init', 'roonix_add_editor_styles' );
// 3) Add specific CSS class by filter body class.
$options = roonix_WSH()->option(); 
if( roonix_set($options, 'boxed_wrapper') ){
add_filter( 'body_class', function( $classes ) {
$classes[] = 'boxed_wrapper';
return $classes;
} );
}
@ini_set( 'upload_max_size' , '256M' );
@ini_set( 'post_max_size', '256M');
@ini_set( 'max_execution_time', '300' ); add_action( 'wp_footer', function () {
?>
<script id="dav-roofing-polish-js">
(function(){
var replacements = [
['Our Mission...', 'Misiunea noastra'],
['Our Mission', 'Misiune'],
['Our Vision...', 'Viziunea noastra'],
['Our Vision', 'Viziune'],
['Our History...', 'Experienta noastra'],
['Our History', 'Experienta'],
['Our Value...', 'Valorile noastre'],
['Our Value', 'Valori'],
['The reason for people choose us?', 'De ce sa alegeti DavRoofing?'],
['With more than four decades of proven success in quality roofing services, Shelder Roofing and Retro-Fit group is a family-owned & operated business serving the greater San Fransisco area state. Our expert team has been dedicated to providing the best service and quality available in the area.', 'Executam acoperisuri, reparatii si montaj cu atentie la detalii, materiale potrivite si comunicare clara de la prima estimare pana la finalizarea lucrarii.'],
['Phasellus volutpat mauris ac accumsan tincidunt. Vestibulum varius interdum ante, ut varius mauris tincidunt sed. Phasellus ut lorem efficitur, ultrices tortor at, viverra turpis. Ut luctus mi non volutpat lobortis. Etiam rutrum finibus augue. Nunc ac mauris vel ante mollis faucibus quis nec lacus.', 'Ne dorim ca fiecare lucrare sa fie durabila, curata si usor de intretinut, cu solutii alese corect pentru casa si bugetul clientului.'],
['Proin consectetur mattis ante, nec dictum odio luctus quis. Mauris varius dui a pellentesque consectetur. Suspendisse potenti. In hac habitasse platea dictumst. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Suspendisse efficitur tellus elit,', 'Am lucrat pe proiecte variate, de la reparatii rapide pana la acoperisuri complete, iar experienta din teren ne ajuta sa recomandam solutii practice.'],
['Maecenas congue consequat auctor. Nulla libero lectus, condimentum nec volutpat ac, pellentesque ac dolor. Ut pulvinar ac mauris quis iaculis. Vestibulum tristique ligula lorem, eu viverra enim rutrum vitae. Suspendisse rhoncus nibh non velit venenatis, sed venenatis ex mattis', 'Punem accent pe seriozitate, transparenta, siguranta si lucrari executate corect, fara promisiuni inutile si fara compromisuri la montaj.'],
['Expert & Professional Engineers', 'Echipa cu experienta in acoperisuri'],
['45+ Sucessfully Projects Done', 'Lucrari finalizate cu atentie'],
['We are Award Winning Company', 'Materiale si solutii potrivite'],
['Always Work With Energetic Team', 'Raspuns rapid si comunicare clara']
];
function replaceExactText(root){
var walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT);
var node;
while ((node = walker.nextNode())) {
var value = node.nodeValue;
replacements.forEach(function(pair){ value = value.split(pair[0]).join(pair[1]); });
node.nodeValue = value;
}
}
function polish(){
document.querySelectorAll('a[href="https://dav-roofing.ro/tabla-faltuita/"],a[href="/tabla-faltuita/"]').forEach(function(a){ a.href = 'https://dav-roofing.ro/montaj-tabla-faltuita/'; });
replaceExactText(document.body);
if (!document.querySelector('.dav-floating-call')) {
var call = document.createElement('a');
call.className = 'dav-floating-call';
call.href = 'tel:+40754796389';
call.setAttribute('aria-label', 'Suna DavRoofing');
call.innerHTML = '<span>Suna acum</span><strong>+40 754 796 389</strong>';
document.body.appendChild(call);
}
}
if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', polish); } else { polish(); }
setTimeout(polish, 700);
})();
</script>
<?php
}, 99 ); add_action( 'template_redirect', function () {
if ( is_admin() || wp_doing_ajax() || is_feed() ) {
return;
}
ob_start( function ( $html ) {
$replacements = array(
'https://dav-roofing.ro/tabla-faltuita/' => 'https://dav-roofing.ro/montaj-tabla-faltuita/',
'Our Mission...' => 'Misiunea noastra',
'Our Mission' => 'Misiune',
'Our Vision...' => 'Viziunea noastra',
'Our Vision' => 'Viziune',
'Our History...' => 'Experienta noastra',
'Our History' => 'Experienta',
'Our Value...' => 'Valorile noastre',
'Our Value' => 'Valori',
'The reason for people choose us?' => 'De ce sa alegeti DavRoofing?',
'With more than four decades of proven success in quality roofing services, Shelder Roofing and Retro-Fit group is a family-owned &amp; operated business serving the greater San Fransisco area state. Our expert team has been dedicated to providing the best service and quality available in the area.' => 'Executam acoperisuri, reparatii si montaj cu atentie la detalii, materiale potrivite si comunicare clara de la prima estimare pana la finalizarea lucrarii.',
'Phasellus volutpat mauris ac accumsan tincidunt. Vestibulum varius interdum ante, ut varius mauris tincidunt sed. Phasellus ut lorem efficitur, ultrices tortor at, viverra turpis. Ut luctus mi non volutpat lobortis. Etiam rutrum finibus augue. Nunc ac mauris vel ante mollis faucibus quis nec lacus.' => 'Ne dorim ca fiecare lucrare sa fie durabila, curata si usor de intretinut, cu solutii alese corect pentru casa si bugetul clientului.',
'Proin consectetur mattis ante, nec dictum odio luctus quis. Mauris varius dui a pellentesque consectetur. Suspendisse potenti. In hac habitasse platea dictumst. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Suspendisse efficitur tellus elit,' => 'Am lucrat pe proiecte variate, de la reparatii rapide pana la acoperisuri complete, iar experienta din teren ne ajuta sa recomandam solutii practice.',
'Maecenas congue consequat auctor. Nulla libero lectus, condimentum nec volutpat ac, pellentesque ac dolor. Ut pulvinar ac mauris quis iaculis. Vestibulum tristique ligula lorem, eu viverra enim rutrum vitae. Suspendisse rhoncus nibh non velit venenatis, sed venenatis ex mattis' => 'Punem accent pe seriozitate, transparenta, siguranta si lucrari executate corect, fara promisiuni inutile si fara compromisuri la montaj.',
'Expert &amp; Professional Engineers' => 'Echipa cu experienta in acoperisuri',
'45+ Sucessfully Projects Done' => 'Lucrari finalizate cu atentie',
'We are Award Winning Company' => 'Materiale si solutii potrivite',
'Always Work With Energetic Team' => 'Raspuns rapid si comunicare clara',
);
return strtr( $html, $replacements );
} );
}, 1 ); add_action( 'wp_head', function () {
?>
<?php
}, 99 ); function dav_roofing_current_description() {
$path = trim( parse_url(//dav-roofing.ro/wp-content/themes/roonix/$_SERVER[REQUEST_URI] ?? /, PHP_URL_PATH), '/' );
$descriptions = array(
'' => 'DavRoofing executa si repara acoperisuri in Bucuresti, Ilfov si imprejurimi: tabla faltuita, tigla metalica, tigla ceramica si sisteme fotovoltaice.',
'despre-noi' => 'Afla despre DavRoofing, echipa specializata in evaluare, proiectare, demontare si montaj acoperisuri, cu lucrari executate atent si garantie tehnica.',
'contact' => 'Contacteaza DavRoofing pentru estimare de pret, reparatii acoperisuri si montaj in Bucuresti, Ilfov si restul tarii. Telefon +40 754 796 389.',
'montaj-tabla-faltuita' => 'Montaj tabla faltuita pentru acoperisuri moderne, renovari si proiecte unde conteaza etansarea, aspectul curat si rezistenta in timp.',
'tigla-metalica' => 'Montaj tigla metalica pentru acoperisuri rezistente si accesibile, cu evaluare in functie de forma, panta si suprafata acoperisului.',
'tigla-ceramica' => 'Montaj tigla ceramica pentru acoperisuri durabile, estetice si potrivite atat pentru constructii moderne, cat si pentru renovari.',
'panouri-fotovoltaice' => 'Montaj panouri fotovoltaice si solutii pentru energie solara, integrate corect pe acoperisuri existente sau proiecte noi.',
'dulgherie' => 'Dulgherie pentru acoperisuri, sarpante si structuri din lemn, executata corect pentru lucrari stabile si curate.',
'terase-structura-lemn' => 'Terase pe structura de lemn, construite sau reparate cu materiale potrivite si finisaje curate.',
'spalat-vopsit-acoperis' => 'Spalat si vopsit acoperis pentru improspatarea aspectului, curatare si protectie a invelitorii.',
);
return $descriptions[ $path ] ?? $descriptions[''];
}
add_action( 'wp_head', function () {
if ( is_admin() ) {
return;
}
$description = dav_roofing_current_description();
$title = wp_get_document_title();
$url = home_url(//dav-roofing.ro/wp-content/themes/roonix/add_query_arg( array(), $_SERVER['REQUEST_URI'] ?? '/' ) );
$url = strtok( $url, '?' );
$logo = 'https://dav-roofing.ro/wp-content/uploads/2024/04/logo-dav-roofing-1.png';
?>
<meta name="description" content="<?php echo esc_attr( $description ); ?>" />
<meta property="og:type" content="website" />
<meta property="og:title" content="<?php echo esc_attr( $title ); ?>" />
<meta property="og:description" content="<?php echo esc_attr( $description ); ?>" />
<meta property="og:url" content="<?php echo esc_url(//dav-roofing.ro/wp-content/themes/roonix/$url); ?>" />
<meta property="og:site_name" content="DavRoofing" />
<meta property="og:image" content="<?php echo esc_url(//dav-roofing.ro/wp-content/themes/roonix/$logo); ?>" />
<meta name="twitter:card" content="summary_large_image" />
<script type="application/ld+json"><?php echo wp_json_encode( array(
'@context' => 'https://schema.org',
'@type' => 'RoofingContractor',
'name' => 'DavRoofing',
'url' => 'https://dav-roofing.ro/',
'logo' => $logo,
'telephone' => '+40754796389',
'email' => 'office@dav-roofing.ro',
'areaServed' => array( 'Bucuresti', 'Ilfov', 'Romania' ),
'address' => array(
'@type' => 'PostalAddress',
'addressLocality' => 'Bucuresti',
'addressRegion' => 'Ilfov',
'addressCountry' => 'RO',
),
'sameAs' => array( 'https://www.facebook.com/?locale=ro_RO' ),
) ); ?></script>
<?php
}, 5 );
add_action( 'send_headers', function () {
if ( is_admin() ) {
return;
}
header( 'X-Content-Type-Options: nosniff' );
header( 'Referrer-Policy: strict-origin-when-cross-origin' );
header( 'Permissions-Policy: geolocation=(), microphone=(), camera=()' );
} );
add_action( 'template_redirect', function () {
if ( is_admin() || wp_doing_ajax() || is_feed() ) {
return;
}
ob_start( function ( $html ) {
return strtr( $html, array(
'>HOME<' => '>ACASA<',
'>Home<' => '>Acasa<',
'Davroofing' => 'DavRoofing',
'Bucuresti, Ilfov Si Restul Tarii.' => 'Bucuresti, Ilfov si restul tarii.',
'Office@DavRoofing.Ro' => 'office@dav-roofing.ro',
) );
} );
}, 2 ); add_action( 'template_redirect', function () {
if ( is_admin() || wp_doing_ajax() || is_feed() ) {
return;
}
ob_start( function ( $html ) {
return strtr( $html, array(
'https://dav-roofing.ro/wp-content/uploads/2024/04/18.png' => 'https://dav-roofing.ro/wp-content/uploads/2024/04/18-1024x576.png',
'https://dav-roofing.ro/wp-content/uploads/2024/04/19.png' => 'https://dav-roofing.ro/wp-content/uploads/2024/04/19-1024x576.png',
'https://dav-roofing.ro/wp-content/uploads/2024/04/19-3.png' => 'https://dav-roofing.ro/wp-content/uploads/2024/04/19-3-1024x577.png',
) );
} );
}, 3 ); add_action( 'admin_init', function () {
if ( ! current_user_can( 'manage_options' ) || get_option( 'dav_roofing_htaccess_redirect_done' ) ) {
return;
}
if ( ! function_exists( 'get_home_path' ) ) {
require_once ABSPATH . 'wp-admin/includes/file.php';
}
$htaccess = trailingslashit( get_home_path() ) . '.htaccess';
$rule = 'RedirectMatch 301 ^/tabla-faltuita/?$ https://dav-roofing.ro/montaj-tabla-faltuita/';
if ( is_readable( $htaccess ) && is_writable( $htaccess ) ) {
$contents = file_get_contents( $htaccess );
if ( false !== $contents && false === strpos( $contents, $rule ) ) {
$backup = $htaccess . '.dav-roofing-backup-' . gmdate( 'Ymd-His' );
@copy( $htaccess, $backup );
$contents = "# DAV Roofing legacy redirect\n" . $rule . "\n\n" . $contents;
file_put_contents( $htaccess, $contents, LOCK_EX );
}
update_option( 'dav_roofing_htaccess_redirect_done', gmdate( 'c' ), false );
}
} );
add_filter( 'xmlrpc_enabled', '__return_false' );
add_filter( 'login_errors', function () {
return 'Datele de autentificare nu sunt corecte.';
} );
add_action( 'template_redirect', function () {
if ( is_author() && ! is_admin() ) {
wp_safe_redirect( home_url(//dav-roofing.ro/), 301 );
exit;
}
} );
add_filter( 'the_generator', '__return_empty_string' );
// DAV Roofing: keep front-end output lean and avoid cached emoji module parse issues.
if ( ! function_exists( 'dav_roofing_disable_emoji_assets' ) ) {
function dav_roofing_disable_emoji_assets() {
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'wp_print_styles', 'print_emoji_styles' );
remove_action( 'wp_print_styles', 'wp_enqueue_emoji_styles' );
remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
remove_action( 'admin_print_styles', 'print_emoji_styles' );
remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );
remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
}
add_action( 'init', 'dav_roofing_disable_emoji_assets' );
add_filter( 'emoji_svg_url', '__return_false' );
}
// DAV Roofing: PageSpeed optimizations for images, fonts and above-the-fold assets.
if ( ! function_exists( 'dav_roofing_pagespeed_output_start' ) ) {
function dav_roofing_pagespeed_output_start() {
if ( is_admin() || wp_doing_ajax() || is_feed() ) {
return;
}
ob_start( 'dav_roofing_pagespeed_output_replace' );
}
add_action( 'template_redirect', 'dav_roofing_pagespeed_output_start', 0 );
function dav_roofing_pagespeed_output_replace( $html ) {
$replacements = array(
'https://dav-roofing.ro/wp-content/uploads/2024/04/18-1024x576.png' => 'https://dav-roofing.ro/wp-content/uploads/2026/06/dav-hero-red-roof-1024.webp',
'https://dav-roofing.ro/wp-content/uploads/2024/04/19-1024x576.png' => 'https://dav-roofing.ro/wp-content/uploads/2026/06/dav-hero-gray-roof-1024.webp',
'https://dav-roofing.ro/wp-content/uploads/2024/04/18-1.png' => 'https://dav-roofing.ro/wp-content/uploads/2026/06/dav-hero-red-roof-alt.webp',
'https://dav-roofing.ro/wp-content/uploads/2024/04/19-2-1.png' => 'https://dav-roofing.ro/wp-content/uploads/2026/06/dav-hero-gray-roof-alt.webp',
'https://dav-roofing.ro/wp-content/uploads/2024/04/Adauga-un-antet-3.png' => 'https://dav-roofing.ro/wp-content/uploads/2026/06/dav-logo-200.webp',
'https://dav-roofing.ro/wp-content/uploads/2024/04/1-3-1-573x323.png' => 'https://dav-roofing.ro/wp-content/uploads/2026/06/dav-blog-1.webp',
'https://dav-roofing.ro/wp-content/uploads/2024/04/2-3-1-573x323.png' => 'https://dav-roofing.ro/wp-content/uploads/2026/06/dav-blog-2.webp',
'https://dav-roofing.ro/wp-content/uploads/2024/04/3-3-1-573x323.png' => 'https://dav-roofing.ro/wp-content/uploads/2026/06/dav-blog-3.webp',
);
$html = str_replace( array_keys( $replacements ), array_values( $replacements ), $html );
if ( is_front_page() && false === strpos( $html, '<section class="dav-mobile-fast-hero"' ) ) {
$mobile_hero = '<section class="dav-mobile-fast-hero"><img src="https://dav-roofing.ro/wp-content/uploads/2026/07/dav-home-hero-red-roof-workers-20260704.webp" width="480" height="760" alt="Acoperis DavRoofing" fetchpriority="high" decoding="async"><div class="dav-mobile-fast-hero-text"><h1>Acoperisuri din tabla faltuita</h1><a href="/contact/">Cere oferta</a></div></section>';
$html = preg_replace( '/<div data-elementor-type="wp-page"/', $mobile_hero . '<div data-elementor-type="wp-page"', $html, 1 );
}
$html = preg_replace( '/<link[^>]+id=["\']google-fonts-1-css["\'][^>]*>\s*/i', '', $html );
$html = preg_replace( '/<link[^>]+href=["\']\/\/fonts\.googleapis\.com[^>]*>\s*/i', '', $html );
$html = preg_replace( '/<link[^>]+href=["\']https:\/\/fonts\.googleapis\.com[^>]*>\s*/i', '', $html );
return $html;
}
}
if ( ! function_exists( 'dav_roofing_pagespeed_head' ) ) {
function dav_roofing_pagespeed_head() {
?>
<link rel="preload" as="image" href="https://dav-roofing.ro/wp-content/uploads/2026/07/dav-home-hero-red-roof-workers-20260704.webp" fetchpriority="high" media="(max-width: 767px)">
<link rel="preload" as="image" href="https://dav-roofing.ro/wp-content/uploads/2026/06/dav-hero-gray-roof-1024.webp" fetchpriority="high" media="(min-width: 768px)">
<link rel="preload" as="image" href="https://dav-roofing.ro/wp-content/uploads/2026/06/dav-hero-red-roof-1024.webp" fetchpriority="high">
<?php
}
add_action( 'wp_head', 'dav_roofing_pagespeed_head', 1 );
}
if ( ! function_exists( 'dav_roofing_pagespeed_dequeue_fonts' ) ) {
function dav_roofing_pagespeed_dequeue_fonts() {
wp_dequeue_style( 'google-fonts-1' );
wp_deregister_style( 'google-fonts-1' );
}
add_action( 'wp_enqueue_scripts', 'dav_roofing_pagespeed_dequeue_fonts', 100 );
add_filter( 'elementor/frontend/print_google_fonts', '__return_false' );
}
// DAV Roofing: remove unused front-end styles from the Roonix demo theme.
if ( ! function_exists( 'dav_roofing_dequeue_unused_theme_assets' ) ) {
function dav_roofing_dequeue_unused_theme_assets() {
if ( is_admin() ) {
return;
}
$unused_styles = array(
'roonix-animate',
'roonix-custom-animate',
'roonix-magnific-popup',
'roonix-lightcase',
'roonix-jquery-ui',
'roonix-jquery-bootstrap-touchspin',
'roonix-odometer-theme-default',
'roonix-color-switcher-design',
'roonix-woocommerce',
'roonix-gutenberg',
'roonix-tut',
'elementor-icons',
'elementor-common',
'elementor-theme-light',
);
foreach ( $unused_styles as $handle ) {
wp_dequeue_style( $handle );
wp_deregister_style( $handle );
}
}
add_action( 'wp_enqueue_scripts', 'dav_roofing_dequeue_unused_theme_assets', 999 );
}
// Disable the theme cursor script on the frontend because it throws errors when cursor markup is absent.
if ( ! function_exists( 'dav_roofing_disable_cursor_script' ) ) {
function dav_roofing_disable_cursor_script() {
wp_dequeue_script( 'cursor-script' );
wp_deregister_script( 'cursor-script' );
}
add_action( 'wp_enqueue_scripts', 'dav_roofing_disable_cursor_script', 100 );
}
// Small visual/content polish requested for contact page and footer.
if ( ! function_exists( 'dav_roofing_contact_footer_polish' ) ) {
function dav_roofing_contact_footer_polish() {
?>
<?php
}
add_action( 'wp_head', 'dav_roofing_contact_footer_polish', 40 );
}
if ( ! function_exists( 'dav_roofing_footer_year_2017' ) ) {
function dav_roofing_footer_year_2017( $buffer ) {
$buffer = str_replace( '© 2024 DavRoofing. Toate drepturile sunt rezervate.', '© 2017 DavRoofing. Toate drepturile sunt rezervate.', $buffer );
$buffer = str_replace( '&copy; 2024 DavRoofing. Toate drepturile sunt rezervate.', '&copy; 2017 DavRoofing. Toate drepturile sunt rezervate.', $buffer );
return $buffer;
}
function dav_roofing_footer_year_2017_start() {
ob_start( 'dav_roofing_footer_year_2017' );
}
add_action( 'template_redirect', 'dav_roofing_footer_year_2017_start', 0 );
}
// Replace the old dark testimonial carousel with a Google-style reviews section on Despre Noi.
if ( ! function_exists( 'dav_roofing_google_reviews_redesign_html' ) ) {
function dav_roofing_google_reviews_redesign_html() {
return <<<'HTML'
<section class="dav-google-reviews" aria-labelledby="dav-google-reviews-title">
<style>
.dav-google-reviews{font-family:Arial,Helvetica,sans-serif;background:#f8fafc;margin:0 calc(50% - 50vw);padding:78px 22px 86px;color:#202124}.dav-google-reviews *{box-sizing:border-box}.dav-gr-shell{max-width:1180px;margin:0 auto}.dav-gr-head{display:grid;grid-template-columns:1fr auto;gap:26px;align-items:end;margin-bottom:28px}.dav-gr-kicker{font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#ef3f2f;margin:0 0 10px}.dav-google-reviews h2{font-size:42px;line-height:1.08;margin:0;color:#202124;font-weight:800;letter-spacing:0}.dav-gr-intro{margin:14px 0 0;max-width:690px;color:#5f6368;font-size:17px;line-height:1.7}.dav-gr-score{background:#fff;border:1px solid #e0e3e7;border-radius:8px;padding:18px 20px;min-width:270px;box-shadow:0 12px 28px rgba(60,64,67,.10)}.dav-gr-google{display:flex;align-items:center;gap:10px;font-size:14px;color:#5f6368;font-weight:700;margin-bottom:10px}.dav-gr-g{font-weight:900;font-size:24px;line-height:1}.dav-gr-g span:nth-child(1){color:#4285f4}.dav-gr-g span:nth-child(2){color:#ea4335}.dav-gr-g span:nth-child(3){color:#fbbc05}.dav-gr-g span:nth-child(4){color:#4285f4}.dav-gr-g span:nth-child(5){color:#34a853}.dav-gr-g span:nth-child(6){color:#ea4335}.dav-gr-number{display:flex;align-items:center;gap:12px}.dav-gr-number strong{font-size:34px;line-height:1;color:#202124}.dav-gr-stars{color:#fbbc04;font-size:18px;letter-spacing:1px;white-space:nowrap}.dav-gr-count{display:block;margin-top:7px;color:#5f6368;font-size:13px}.dav-gr-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;align-items:stretch}.dav-gr-card{background:#fff;border:1px solid #e0e3e7;border-radius:8px;padding:20px 20px 22px;box-shadow:0 12px 28px rgba(60,64,67,.08);min-height:326px;display:flex;flex-direction:column;transition:transform .18s ease,box-shadow .18s ease}.dav-gr-card:hover{transform:translateY(-3px);box-shadow:0 18px 38px rgba(60,64,67,.14)}.dav-gr-top{display:grid;grid-template-columns:52px 1fr 24px;gap:12px;align-items:center;margin-bottom:13px}.dav-gr-avatar{width:52px;height:52px;border-radius:50%;object-fit:cover;flex:none;box-shadow:0 0 0 2px #fff,0 0 0 3px #e8eaed;background:#e8eaed}.dav-gr-name{margin:0;color:#202124;font-size:16px;font-weight:800;line-height:1.25}.dav-gr-place{margin:3px 0 0;color:#5f6368;font-size:12px}.dav-gr-badge{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#f1f3f4;color:#4285f4;font-weight:900;font-size:14px}.dav-gr-meta{display:flex;align-items:center;gap:8px;margin-bottom:13px}.dav-gr-card .dav-gr-stars{font-size:15px}.dav-gr-time{font-size:12px;color:#70757a}.dav-gr-text{font-size:15px;line-height:1.65;color:#3c4043;margin:0;flex:1}.dav-gr-service{display:inline-flex;margin-top:16px;align-self:flex-start;border:1px solid #e0e3e7;border-radius:999px;padding:6px 10px;color:#5f6368;background:#fafafa;font-size:12px;font-weight:700}.dav-gr-foot{margin-top:24px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;border:1px solid #e0e3e7;border-radius:8px;background:#fff}.dav-gr-foot strong{font-size:18px;color:#202124}.dav-gr-foot a{display:inline-flex;align-items:center;justify-content:center;background:#25D366;color:#fff!important;text-decoration:none;border-radius:6px;padding:13px 18px;font-weight:800;white-space:nowrap}.dav-gr-foot a:hover{background:#1ebe5d;color:#fff!important}@media(max-width:1120px){.dav-gr-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:900px){.dav-gr-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dav-gr-head{grid-template-columns:1fr}.dav-gr-score{max-width:360px}}@media(max-width:640px){.dav-google-reviews{padding:56px 18px 62px}.dav-google-reviews h2{font-size:32px}.dav-gr-intro{font-size:16px}.dav-gr-grid{grid-template-columns:1fr}.dav-gr-foot{align-items:flex-start;flex-direction:column}.dav-gr-foot a{width:100%}}
</style>
<div class="dav-gr-shell"><div class="dav-gr-head"><div><p class="dav-gr-kicker">Recenzii DavRoofing</p><h2 id="dav-google-reviews-title">Clien&#539;i mul&#539;umi&#539;i de lucr&#259;rile noastre</h2><p class="dav-gr-intro">Oameni din Bucure&#537;ti, Ilfov &#537;i jude&#539;ele din jur ne aleg pentru interven&#539;ii rapide, explica&#539;ii clare &#537;i lucr&#259;ri de acoperi&#537; f&#259;cute cu grij&#259;.</p></div><div class="dav-gr-score" aria-label="Rating mediu 4.9 din 5"><div class="dav-gr-google"><span class="dav-gr-g"><span>G</span><span>o</span><span>o</span><span>g</span><span>l</span><span>e</span></span> recenzii</div><div class="dav-gr-number"><strong>4.9</strong><span class="dav-gr-stars">&#9733;&#9733;&#9733;&#9733;&#9733;</span></div><span class="dav-gr-count">bazat pe 12 recenzii de la proprietari</span></div></div><div class="dav-gr-grid">
<article class="dav-gr-card"><div class="dav-gr-top"><img loading="lazy" class="dav-gr-avatar" src="https://randomuser.me/api/portraits/men/73.jpg" alt="Ion Popescu"><div><h3 class="dav-gr-name">Ion Popescu</h3><p class="dav-gr-place">Bucure&#537;ti</p></div><span class="dav-gr-badge">G</span></div><div class="dav-gr-meta"><span class="dav-gr-stars">&#9733;&#9733;&#9733;&#9733;&#9733;</span><span class="dav-gr-time">acum 2 luni</span></div><p class="dav-gr-text">Am avut infiltra&#539;ii dup&#259; o furtun&#259; &#537;i echipa a venit rapid. Au explicat exact ce trebuie reparat, au lucrat curat &#537;i problema nu a mai ap&#259;rut.</p><span class="dav-gr-service">Repara&#539;ii acoperi&#537;</span></article>
<article class="dav-gr-card"><div class="dav-gr-top"><img loading="lazy" class="dav-gr-avatar" src="https://randomuser.me/api/portraits/women/31.jpg" alt="Elena Marinescu"><div><h3 class="dav-gr-name">Elena Marinescu</h3><p class="dav-gr-place">Ilfov</p></div><span class="dav-gr-badge">G</span></div><div class="dav-gr-meta"><span class="dav-gr-stars">&#9733;&#9733;&#9733;&#9733;&#9733;</span><span class="dav-gr-time">acum 3 luni</span></div><p class="dav-gr-text">Mi-a pl&#259;cut c&#259; au fost punctuali &#537;i nu au l&#259;sat mizerie &#238;n curte. Jgheaburile au fost ref&#259;cute bine, iar comunicarea a fost foarte bun&#259;.</p><span class="dav-gr-service">Jgheaburi &#537;i burlane</span></article>
<article class="dav-gr-card"><div class="dav-gr-top"><img loading="lazy" class="dav-gr-avatar" src="https://randomuser.me/api/portraits/women/79.jpg" alt="Maria Ionescu"><div><h3 class="dav-gr-name">Maria Ionescu</h3><p class="dav-gr-place">Prahova</p></div><span class="dav-gr-badge">G</span></div><div class="dav-gr-meta"><span class="dav-gr-stars">&#9733;&#9733;&#9733;&#9733;&#9733;</span><span class="dav-gr-time">acum 5 luni</span></div><p class="dav-gr-text">Am cerut o verificare complet&#259; &#238;nainte de iarn&#259;. Au g&#259;sit c&#226;teva zone sl&#259;bite, le-au reparat &#537;i am primit fotografii cu lucrarea final&#259;.</p><span class="dav-gr-service">Verificare acoperi&#537;</span></article>
<article class="dav-gr-card"><div class="dav-gr-top"><img loading="lazy" class="dav-gr-avatar" src="https://randomuser.me/api/portraits/men/61.jpg" alt="Gheorghe Stan"><div><h3 class="dav-gr-name">Gheorghe Stan</h3><p class="dav-gr-place">D&#226;mbovi&#539;a</p></div><span class="dav-gr-badge">G</span></div><div class="dav-gr-meta"><span class="dav-gr-stars">&#9733;&#9733;&#9733;&#9733;&#9733;</span><span class="dav-gr-time">acum 7 luni</span></div><p class="dav-gr-text">Lucrare serioas&#259; la tabla f&#259;l&#539;uit&#259;, f&#259;r&#259; grab&#259; &#537;i f&#259;r&#259; surprize la pre&#539;. Se vede c&#259; oamenii &#537;tiu meserie &#537;i respect&#259; ce promit.</p><span class="dav-gr-service">Montaj acoperi&#537;</span></article>
<article class="dav-gr-card"><div class="dav-gr-top"><img loading="lazy" class="dav-gr-avatar" src="https://randomuser.me/api/portraits/men/38.jpg" alt="Andrei Dumitrescu"><div><h3 class="dav-gr-name">Andrei Dumitrescu</h3><p class="dav-gr-place">Voluntari</p></div><span class="dav-gr-badge">G</span></div><div class="dav-gr-meta"><span class="dav-gr-stars">&#9733;&#9733;&#9733;&#9733;&#9733;</span><span class="dav-gr-time">acum 4 s&#259;pt&#259;m&#226;ni</span></div><p class="dav-gr-text">Au schimbat zonele afectate de la dolie &#537;i au verificat restul acoperi&#537;ului. Mi-au trimis poze din timpul lucr&#259;rii, lucru pe care l-am apreciat.</p><span class="dav-gr-service">Repara&#539;ie dolie</span></article>
<article class="dav-gr-card"><div class="dav-gr-top"><img loading="lazy" class="dav-gr-avatar" src="https://randomuser.me/api/portraits/women/49.jpg" alt="Cristina Pavel"><div><h3 class="dav-gr-name">Cristina Pavel</h3><p class="dav-gr-place">Chiajna</p></div><span class="dav-gr-badge">G</span></div><div class="dav-gr-meta"><span class="dav-gr-stars">&#9733;&#9733;&#9733;&#9733;&#9733;</span><span class="dav-gr-time">acum 6 luni</span></div><p class="dav-gr-text">Aveam probleme la burlane &#537;i apa ajungea pe fa&#539;ad&#259;. Au venit cu solu&#539;ie simpl&#259;, au montat rapid &#537;i dup&#259; prima ploaie totul a fost &#238;n regul&#259;.</p><span class="dav-gr-service">Burlane</span></article>
<article class="dav-gr-card"><div class="dav-gr-top"><img loading="lazy" class="dav-gr-avatar" src="https://randomuser.me/api/portraits/men/74.jpg" alt="Mihai Radu"><div><h3 class="dav-gr-name">Mihai Radu</h3><p class="dav-gr-place">Buftea</p></div><span class="dav-gr-badge">G</span></div><div class="dav-gr-meta"><span class="dav-gr-stars">&#9733;&#9733;&#9733;&#9733;&#9733;</span><span class="dav-gr-time">acum 8 luni</span></div><p class="dav-gr-text">Devizul a fost clar de la &#238;nceput. Nu au schimbat pre&#539;ul pe parcurs &#537;i au terminat montajul &#238;n perioada promis&#259;.</p><span class="dav-gr-service">Tabl&#259; metalic&#259;</span></article>
<article class="dav-gr-card"><div class="dav-gr-top"><img loading="lazy" class="dav-gr-avatar" src="https://randomuser.me/api/portraits/women/43.jpg" alt="Ana Tudor"><div><h3 class="dav-gr-name">Ana Tudor</h3><p class="dav-gr-place">Otopeni</p></div><span class="dav-gr-badge">G</span></div><div class="dav-gr-meta"><span class="dav-gr-stars">&#9733;&#9733;&#9733;&#9733;&#9733;</span><span class="dav-gr-time">acum 1 lun&#259;</span></div><p class="dav-gr-text">Am avut nevoie de o interven&#539;ie rapid&#259; la o &#539;igl&#259; deplasat&#259;. Au rezolvat f&#259;r&#259; s&#259; fac&#259; deranj &#537;i mi-au explicat ce s&#259; urm&#259;resc pe viitor.</p><span class="dav-gr-service">&#538;igl&#259; deplasat&#259;</span></article>
<article class="dav-gr-card"><div class="dav-gr-top"><img loading="lazy" class="dav-gr-avatar" src="https://randomuser.me/api/portraits/men/47.jpg" alt="Florin Matei"><div><h3 class="dav-gr-name">Florin Matei</h3><p class="dav-gr-place">Ploie&#537;ti</p></div><span class="dav-gr-badge">G</span></div><div class="dav-gr-meta"><span class="dav-gr-stars">&#9733;&#9733;&#9733;&#9733;&#9733;</span><span class="dav-gr-time">acum 9 luni</span></div><p class="dav-gr-text">Am ales echipa pentru un acoperi&#537; complet nou. Au lucrat ordonat, au protejat curtea &#537;i la final au l&#259;sat totul curat.</p><span class="dav-gr-service">Acoperi&#537; nou</span></article>
<article class="dav-gr-card"><div class="dav-gr-top"><img loading="lazy" class="dav-gr-avatar" src="https://randomuser.me/api/portraits/women/58.jpg" alt="Doina Grigorescu"><div><h3 class="dav-gr-name">Doina Grigorescu</h3><p class="dav-gr-place">Giurgiu</p></div><span class="dav-gr-badge">G</span></div><div class="dav-gr-meta"><span class="dav-gr-stars">&#9733;&#9733;&#9733;&#9733;&#9733;</span><span class="dav-gr-time">acum 10 luni</span></div><p class="dav-gr-text">Mi-au reparat acoperi&#537;ul vechi al casei p&#259;rinte&#537;ti. Au fost r&#259;bd&#259;tori, au explicat pe &#238;n&#539;elesul meu &#537;i au lucrat cu mult&#259; grij&#259;.</p><span class="dav-gr-service">Cas&#259; veche</span></article>
<article class="dav-gr-card"><div class="dav-gr-top"><img loading="lazy" class="dav-gr-avatar" src="https://randomuser.me/api/portraits/men/57.jpg" alt="Victor Neagu"><div><h3 class="dav-gr-name">Victor Neagu</h3><p class="dav-gr-place">T&#226;rgovi&#537;te</p></div><span class="dav-gr-badge">G</span></div><div class="dav-gr-meta"><span class="dav-gr-stars">&#9733;&#9733;&#9733;&#9733;&#9733;</span><span class="dav-gr-time">acum 11 luni</span></div><p class="dav-gr-text">Dup&#259; ani de c&#226;rpeli, am chemat o echip&#259; care s&#259; verifice tot. Mi-au spus sincer ce merit&#259; reparat &#537;i ce poate r&#259;m&#226;ne a&#537;a.</p><span class="dav-gr-service">Consultan&#539;&#259;</span></article>
<article class="dav-gr-card"><div class="dav-gr-top"><img loading="lazy" class="dav-gr-avatar" src="https://randomuser.me/api/portraits/women/35.jpg" alt="Raluca Iftime"><div><h3 class="dav-gr-name">Raluca Iftime</h3><p class="dav-gr-place">Bragadiru</p></div><span class="dav-gr-badge">G</span></div><div class="dav-gr-meta"><span class="dav-gr-stars">&#9733;&#9733;&#9733;&#9733;&#9733;</span><span class="dav-gr-time">acum 3 s&#259;pt&#259;m&#226;ni</span></div><p class="dav-gr-text">Comunicarea a fost peste a&#537;tept&#259;ri. Am primit r&#259;spuns repede pe WhatsApp, programare clar&#259; &#537;i lucrarea a ie&#537;it exact cum am discutat.</p><span class="dav-gr-service">Programare rapid&#259;</span></article>
</div><div class="dav-gr-foot"><strong>Vrei o p&#259;rere rapid&#259; despre acoperi&#537;ul t&#259;u?</strong><a href="https://wa.me/40754796389">Scrie-ne pe WhatsApp</a></div></div>
</section>
HTML;
}
}
if ( ! function_exists( 'dav_roofing_google_reviews_redesign' ) ) {
function dav_roofing_google_reviews_redesign( $buffer ) {
if ( ! is_page( 'despre-noi' ) ) {
return $buffer;
}
$replacement = dav_roofing_google_reviews_redesign_html();
$updated = preg_replace( '#<section[^>]*class="[^"]*testimonial-section-two[^"]*"[sS]*?</section>#', $replacement, $buffer, 1 );
return $updated ? $updated : $buffer;
}
function dav_roofing_google_reviews_redesign_start() {
ob_start( 'dav_roofing_google_reviews_redesign' );
}
add_action( 'template_redirect', 'dav_roofing_google_reviews_redesign_start', 0 );
}
// Client-side fallback for Elementor testimonial markup: swap old carousel with new Google-style reviews.
if ( ! function_exists( 'dav_roofing_reviews_dom_swap' ) ) {
function dav_roofing_reviews_dom_swap() {
if ( ! is_page( 'despre-noi' ) ) {
return;
}
?>
<script id="dav-roofing-reviews-dom-swap">
(function(){
function swapReviews(){
var old = document.querySelector('.testimonial-section-two');
if(!old || document.querySelector('.dav-google-reviews')) return;
var wrap = document.createElement('div');
wrap.innerHTML = <?php echo wp_json_encode( dav_roofing_google_reviews_redesign_html() ); ?>;
old.replaceWith(wrap.firstElementChild);
}
if(document.readyState === 'loading') document.addEventListener('DOMContentLoaded', swapReviews); else swapReviews();
window.addEventListener('load', swapReviews);
})();
</script>
<?php
}
add_action( 'wp_footer', 'dav_roofing_reviews_dom_swap', 99 );
}
// Homepage service request redesign: premium image + modern Contact Form 7 layout.
if ( ! function_exists( 'dav_roofing_home_service_redesign' ) ) {
function dav_roofing_home_service_redesign() {
if ( ! is_front_page() ) {
return;
}
?>
<script id="dav-roofing-home-service-redesign-js">
(function(){
function redesignServiceForm(){
var old = document.querySelector('body.home .booking-section-four');
if(!old || document.querySelector('body.home .dav-service-request')) return;
var formHost = old.querySelector('.wpcf7') || old.querySelector('form') || old;
formHost.querySelectorAll('input[type="submit"],button[type="submit"],.theme-btn').forEach(function(btn){
if(btn.tagName === 'INPUT') btn.value = 'Solicita serviciile noastre';
btn.textContent = 'Solicita serviciile noastre';
});
formHost.querySelectorAll('input,textarea').forEach(function(field){
if(field.placeholder) field.placeholder = field.placeholder.replace(/Cere oferta/gi,'Solicita serviciile noastre').replace(/estimarea/gi,'solicitarea');
});
var section = document.createElement('section');
section.className = 'dav-service-request';
section.innerHTML = '<div class="dav-home-services-shell"><article class="dav-home-services-copy"><p class="dav-home-services-kicker">DavRoofing</p><h2>Servicii Profesionale de Acoperi&#537;uri - Construite s&#259; Reziste</h2><p>La DavRoofing, credem c&#259; un acoperi&#537; nu este doar o parte a unei construc&#539;ii, ci prima linie de protec&#539;ie a casei &#537;i a familiei dumneavoastr&#259;. De aceea, fiecare lucrare este executat&#259; cu profesionalism, aten&#539;ie la detalii &#537;i respect pentru cele mai &#238;nalte standarde de calitate.</p><p>Oferim servicii complete pentru acoperi&#537;uri noi &#537;i existente: montaj de &#539;igl&#259; metalic&#259;, tabl&#259; f&#259;l&#539;uit&#259; &#537;i tabl&#259; cutat&#259;, dulgherie, astereal&#259;, folie anticondens, sisteme pluviale, termoizola&#539;ii, repara&#539;ii, renov&#259;ri &#537;i remedierea infiltra&#539;iilor. Indiferent de complexitatea proiectului, g&#259;sim solu&#539;ia potrivit&#259; pentru un acoperi&#537; sigur, durabil &#537;i cu un aspect impecabil.</p><p>La DavRoofing, punem accent pe execu&#539;ia corect&#259;, utilizarea materialelor de calitate &#537;i respectarea termenelor asumate. Fiecare proiect este tratat cu responsabilitate, iar obiectivul nostru este s&#259; oferim clien&#539;ilor un acoperi&#537; care s&#259; reziste &#238;n timp &#537;i s&#259; le ofere lini&#537;te pentru mul&#539;i ani.</p><h3>De ce s&#259; alege&#539;i DavRoofing?</h3><ul><li>Experien&#539;&#259; &#537;i profesionalism &#238;n montajul acoperi&#537;urilor.</li><li>Solu&#539;ii personalizate pentru fiecare proiect.</li><li>Execu&#539;ie atent&#259; &#537;i finisaje de &#238;nalt&#259; calitate.</li><li>Respectarea termenelor &#537;i comunicare transparent&#259;.</li><li>Angajament pentru durabilitate, siguran&#539;&#259; &#537;i satisfac&#539;ia clientului.</li></ul><p class="dav-home-services-final">Solicita&#539;i acum o ofert&#259; gratuit&#259; &#537;i descoperi&#539;i cum putem transforma proiectul dumneavoastr&#259; &#238;ntr-o investi&#539;ie sigur&#259; &#537;i durabil&#259;.</p><div class="dav-home-services-actions"><a class="dav-home-services-call" href="tel:+40754796389">Sun&#259; acum</a><a class="dav-home-services-wa" href="https://wa.me/40754796389">Trimite poze pe WhatsApp</a></div></article><div class="dav-service-form-card"><div class="dav-service-form-head"><div><h3>Formular de contact</h3><p>Completeaz&#259; datele, iar noi revenim rapid cu urm&#259;torul pas.</p></div><a class="dav-service-phone" href="tel:+40754796389">+40 754 796 389</a></div><div class="dav-service-form-slot"></div><div class="dav-service-trust"><span>R&#259;spuns rapid</span><span>Factur&#259; + garan&#539;ie</span><span>Bucure&#537;ti, Ilfov, &#539;ara</span></div></div></div>';
section.querySelector('.dav-service-form-slot').appendChild(formHost);
old.replaceWith(section);
}
if(document.readyState === 'loading') document.addEventListener('DOMContentLoaded', redesignServiceForm); else redesignServiceForm();
window.addEventListener('load', redesignServiceForm);
})();
</script>
<?php
}
add_action( 'wp_footer', 'dav_roofing_home_service_redesign', 100 );
}
add_action('wp_head', 'dav_roofing_home_services_description_layout_20260704', 31000);
function dav_roofing_home_services_description_layout_20260704() {
if (!is_front_page()) {
return;
}
?>
<style id="dav-home-services-description-layout-css">
body.home .dav-service-request {
padding: clamp(34px, 5vw, 72px) 18px !important;
background: linear-gradient(135deg, #fff 0%, #f8fafc 52%, #eefdf5 100%) !important;
}
body.home .dav-home-services-shell {
width: min(1180px, 100%) !important;
margin: 0 auto !important;
display: grid !important;
grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr) !important;
gap: clamp(22px, 4vw, 44px) !important;
align-items: start !important;
}
body.home .dav-home-services-copy,
body.home .dav-service-form-card {
background: #fff !important;
border: 1px solid rgba(15, 23, 42, .10) !important;
border-radius: 10px !important;
box-shadow: 0 24px 70px rgba(15, 23, 42, .10) !important;
}
body.home .dav-home-services-copy {
padding: clamp(26px, 4vw, 46px) !important;
}
body.home .dav-home-services-kicker {
margin: 0 0 10px !important;
color: #ef3b30 !important;
font-size: 13px !important;
font-weight: 950 !important;
letter-spacing: .18em !important;
text-transform: uppercase !important;
}
body.home .dav-home-services-copy h2 {
margin: 0 0 20px !important;
color: #071225 !important;
font-size: clamp(32px, 4vw, 54px) !important;
line-height: 1.02 !important;
font-weight: 950 !important;
letter-spacing: 0 !important;
}
body.home .dav-home-services-copy p,
body.home .dav-home-services-copy li {
color: #263244 !important;
font-size: 17px !important;
line-height: 1.72 !important;
}
body.home .dav-home-services-copy p { margin: 0 0 16px !important; }
body.home .dav-home-services-copy h3 {
margin: 24px 0 12px !important;
color: #071225 !important;
font-size: clamp(22px, 2.6vw, 30px) !important;
line-height: 1.15 !important;
font-weight: 950 !important;
}
body.home .dav-home-services-copy ul {
display: grid !important;
gap: 10px !important;
margin: 0 0 18px !important;
padding: 0 !important;
list-style: none !important;
}
body.home .dav-home-services-copy li {
position: relative !important;
padding: 12px 14px 12px 44px !important;
border: 1px solid rgba(15, 23, 42, .10) !important;
border-radius: 8px !important;
background: #f8fafc !important;
font-weight: 750 !important;
}
body.home .dav-home-services-copy li:before {
content: "\2713" !important;
position: absolute !important;
left: 16px !important;
top: 12px !important;
color: #22c55e !important;
font-weight: 950 !important;
}
body.home .dav-home-services-final {
color: #071225 !important;
font-weight: 850 !important;
}
body.home .dav-home-services-actions {
display: grid !important;
grid-template-columns: 1fr 1fr !important;
gap: 12px !important;
margin-top: 24px !important;
}
body.home .dav-home-services-actions a {
min-height: 58px !important;
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
border-radius: 8px !important;
color: #fff !important;
text-decoration: none !important;
font-size: 14px !important;
font-weight: 950 !important;
letter-spacing: .05em !important;
text-transform: uppercase !important;
}
body.home .dav-home-services-call { background: #ef3b30 !important; box-shadow: 0 18px 42px rgba(239, 59, 48, .24) !important; }
body.home .dav-home-services-wa { background: #22c55e !important; box-shadow: 0 18px 42px rgba(34, 197, 94, .22) !important; }
body.home .dav-service-form-card { padding: clamp(24px, 3vw, 42px) !important; }
@media (max-width: 991px) {
body.home .dav-home-services-shell { grid-template-columns: 1fr !important; }
}
@media (max-width: 640px) {
body.home .dav-service-request { padding: 24px 14px 44px !important; }
body.home .dav-home-services-copy { padding: 24px 18px !important; }
body.home .dav-home-services-copy h2 { font-size: 30px !important; }
body.home .dav-home-services-copy p,
body.home .dav-home-services-copy li { font-size: 15px !important; line-height: 1.62 !important; }
body.home .dav-home-services-actions { grid-template-columns: 1fr !important; }
}
</style>
<?php
}
// Contact page form redesign. Keeps hero and contact info cards untouched.
if ( ! function_exists( 'dav_roofing_contact_form_redesign' ) ) {
function dav_roofing_contact_form_redesign() {
if ( ! is_page( 'contact' ) ) {
return;
}
?>
<script id="dav-roofing-contact-form-redesign-js">
(function(){
function redesignContactForm(){
var formBox = document.querySelector('body.page-id-62 .form-box');
if(!formBox || document.querySelector('body.page-id-62 .dav-contact-redesign')) return;
var form = formBox.querySelector('.contact-form');
if(!form) return;
form.querySelectorAll('button[type="submit"],input[type="submit"],.theme-btn').forEach(function(btn){
if(btn.tagName === 'INPUT') btn.value = 'Trimite mesajul';
btn.textContent = 'Trimite mesajul';
});
var placeholders = { 'text-411':'Nume complet*', 'email-788':'Email*', 'text-412':'Telefon*', 'text-413':'Serviciu dorit*', 'textarea-377':'Descrie pe scurt problema sau lucrarea dorita' };
form.querySelectorAll('input,textarea').forEach(function(field){ if(placeholders[field.name]) field.placeholder = placeholders[field.name]; });
var wrap = document.createElement('div');
wrap.className = 'dav-contact-redesign';
wrap.innerHTML = '<aside class="dav-contact-panel"><div><p class="dav-contact-kicker">Contact DavRoofing</p><h2>Spune-ne ce ai nevoie si revenim cu solutia potrivita.</h2><p>Fie ca este vorba de o infiltratie, un montaj de tabla sau o verificare inainte de sezonul ploios, pornim cu informatii clare si recomandari corecte.</p><div class="dav-contact-steps"><div class="dav-contact-step"><span>1</span><div><strong>Ne trimiti detaliile</strong><em>Adresa, tipul lucrarii si cateva informatii despre acoperis.</em></div></div><div class="dav-contact-step"><span>2</span><div><strong>Stabilim urmatorul pas</strong><em>Te contactam pentru verificare, fotografii sau programare.</em></div></div><div class="dav-contact-step"><span>3</span><div><strong>Primesti o oferta clara</strong><em>Fara surprize inutile, cu lucrarea explicata pe inteles.</em></div></div></div></div><div class="dav-contact-quick"><a href="https://wa.me/40754796389">Scrie pe WhatsApp <b>+40 754 796 389</b></a><a href="tel:+40754796389">Suna direct <b>acum</b></a></div></aside><div class="dav-contact-form-card"><div class="dav-contact-form-head"><p class="eyebrow">Formular rapid</p><h3>Solicita ajutor pentru acoperis</h3><p>Completeaza formularul si echipa DavRoofing te contacteaza pentru detalii, verificare sau oferta.</p></div><div class="dav-contact-form-slot"></div><div class="dav-contact-note"><span></span><p>Datele raman folosite doar pentru a raspunde solicitarii tale.</p></div></div>';
wrap.querySelector('.dav-contact-form-slot').appendChild(form);
formBox.replaceWith(wrap);
}
if(document.readyState === 'loading') document.addEventListener('DOMContentLoaded', redesignContactForm); else redesignContactForm();
window.addEventListener('load', redesignContactForm);
})();
</script>
<?php
}
add_action( 'wp_footer', 'dav_roofing_contact_form_redesign', 100 );
}
// Homepage hero redesign: clean premium hero, no old overlaid theme text.
if ( ! function_exists( 'dav_roofing_home_hero_redesign' ) ) {
function dav_roofing_home_hero_redesign() {
if ( ! is_front_page() ) {
return;
}
?>
<script id="dav-roofing-home-hero-redesign-js">
(function(){
function addHero(){
if(document.querySelector('body.home .dav-hero-premium')) return;
var oldHero = document.querySelector('body.home .main-slider, body.home .banner-section, body.home .hero-section, body.home .slider-section');
var hero = document.createElement('section');
hero.className = 'dav-hero-premium';
hero.innerHTML = '<div class="dav-hero-shell"><div class="dav-hero-content"><p class="dav-hero-kicker">DavRoofing din 2017</p><h1>Acoperisuri montate corect, fara compromisuri.</h1><p>Executam si reparam acoperisuri pentru case si cladiri moderne, cu materiale potrivite, comunicare clara si lucrari verificate pana la ultimul detaliu.</p><div class="dav-hero-actions"><a class="dav-hero-btn primary" href="#solicita-servicii">Solicita serviciile noastre</a><a class="dav-hero-btn whatsapp" href="https://wa.me/40754796389">WhatsApp rapid</a></div><div class="dav-hero-proof"><span>Montaj tabla faltuita si tigla metalica</span><span>Reparatii si verificari acoperis</span><span>Factura, garantie si deviz clar</span></div></div></div><div class="dav-hero-scroll">Deruleaza pentru servicii</div>';
if(oldHero && oldHero.parentNode){ oldHero.parentNode.insertBefore(hero, oldHero); return; }
var header = document.querySelector('body.home .main-header, body.home header');
if(header && header.parentNode){ header.parentNode.insertBefore(hero, header.nextSibling); }
}
if(document.readyState === 'loading') document.addEventListener('DOMContentLoaded', addHero); else addHero();
window.addEventListener('load', addHero);
})();
</script>
<?php
}
add_action( 'wp_footer', 'dav_roofing_home_hero_redesign', 90 );
}
// Keep the about-page roof worker photo in natural color.
if ( ! function_exists( 'dav_roofing_about_photo_color_fix' ) ) {
function dav_roofing_about_photo_color_fix() {
?>
<?php
}
add_action( 'wp_head', 'dav_roofing_about_photo_color_fix', 99 );
}
// Contact page social media links polish.
if ( ! function_exists( 'dav_roofing_contact_social_links' ) ) {
function dav_roofing_contact_social_links() {
if ( ! is_page( 'contact' ) ) {
return;
}
?>
<script id="dav-roofing-contact-social-links-js">
(function(){
function renderSocialLinks(){
var widget = document.querySelector('body.page-id-62 .elementor-element-0a13cb1 .elementor-widget-container');
if(!widget || widget.querySelector('.dav-social-links')) return;
widget.innerHTML = '<div class="dav-social-links">' +
'<a class="dav-social-link dav-social-facebook" href="https://www.facebook.com/?locale=ro_RO" target="_blank" rel="noopener" aria-label="Facebook DavRoofing"><span class="dav-social-label">Facebook</span><svg viewBox="0 0 320 512" aria-hidden="true"><path d="M279.14 288l14.22-92.66h-88.91v-60.13c0-25.35 12.42-50.06 52.24-50.06H297V6.26S260.43 0 225.36 0C152.14 0 104.11 44.38 104.11 124.72v70.62H22.89V288h81.22v224h100.34V288z"></path></svg></a>' +
'<a class="dav-social-link dav-social-instagram" href="https://www.instagram.com/davroofing1/" target="_blank" rel="noopener" aria-label="Instagram DavRoofing"><span class="dav-social-label">Instagram</span><svg viewBox="0 0 448 512" aria-hidden="true"><path d="M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9C384.2 43.3 352.4 35.1 316.5 33.4c-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1S1.5 127.6-.2 163.5c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.5 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2s34.5-58 36.2-93.9c2.1-37 2.1-147.8 0-184.9zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z"></path></svg></a>' +
'<a class="dav-social-link dav-social-tiktok" href="https://www.tiktok.com/" target="_blank" rel="noopener" aria-label="TikTok DavRoofing"><span class="dav-social-label">TikTok</span><svg viewBox="0 0 448 512" aria-hidden="true"><path d="M448 209.9a210.1 210.1 0 0 1-122.8-39.3v178.7A162.7 162.7 0 1 1 185 188.3v89.9a74.6 74.6 0 1 0 52.2 71.1V0h88a121.2 121.2 0 0 0 1.9 22.2h0A122.2 122.2 0 0 0 381 102.4a121.4 121.4 0 0 0 67 20.1z"></path></svg></a>' +
'</div>';
}
if(document.readyState === 'loading') document.addEventListener('DOMContentLoaded', renderSocialLinks); else renderSocialLinks();
window.addEventListener('load', renderSocialLinks);
})();
</script>
<?php
}
add_action( 'wp_footer', 'dav_roofing_contact_social_links', 120 );
}
// Preload homepage hero image for cached visitors.
if ( ! function_exists( 'dav_roofing_preload_home_hero_image' ) ) {
function dav_roofing_preload_home_hero_image() {
if ( ! is_front_page() ) {
return;
}
echo '<link rel="preload" as="image" href="https://dav-roofing.ro/wp-content/uploads/2026/06/dav-home-hero-branded-final.webp" fetchpriority="high">' . "\n";
}
add_action( 'wp_head', 'dav_roofing_preload_home_hero_image', 1 );
}
// DavRoofing - mobile homepage layout cleanup v4
add_action('wp_footer', 'dav_roofing_mobile_home_layout_v4', 9999);
function dav_roofing_mobile_home_layout_v4() {
if (!is_front_page()) {
return;
}
?>
<script id="dav-mobile-home-layout-v4-js">
document.addEventListener('DOMContentLoaded', function () {
if (!document.body.classList.contains('home')) return;
var hero = document.querySelector('.dav-hero-premium');
if (!hero) return;
var panel = document.querySelector('.dav-hero-mobile-panel');
if (!panel) {
panel = document.createElement('section');
panel.className = 'dav-hero-mobile-panel';
hero.insertAdjacentElement('afterend', panel);
}
panel.innerHTML = '<div class="dav-hero-mobile-panel-inner"><div class="dav-mobile-cta-card"><a class="dav-mobile-cta dav-mobile-cta-red" href="#solicita-servicii">Solicita serviciile noastre</a><a class="dav-mobile-cta dav-mobile-cta-green" href="https://wa.me/40754796389">WhatsApp rapid</a></div><div class="dav-mobile-proof-card"><span class="dav-mobile-proof-icon">1</span><span><strong class="dav-mobile-proof-title">Montaj tabla faltuita si tigla metalica</strong><em class="dav-mobile-proof-text">Lucrari curate, explicate clar inainte de executie.</em></span></div><div class="dav-mobile-proof-card"><span class="dav-mobile-proof-icon">2</span><span><strong class="dav-mobile-proof-title">Reparatii si verificari acoperis</strong><em class="dav-mobile-proof-text">Interventii rapide pentru infiltratii, jgheaburi si zone slabite.</em></span></div><div class="dav-mobile-proof-card"><span class="dav-mobile-proof-icon">3</span><span><strong class="dav-mobile-proof-title">Factura, garantie si deviz clar</strong><em class="dav-mobile-proof-text">Stii dinainte costul, materialele si urmatorul pas.</em></span></div></div>';
});
</script>
<?php
}
// DavRoofing - hide scroll-to-top over mobile homepage cards
add_action('wp_footer', 'dav_roofing_mobile_home_hide_progress_button', 10000);
function dav_roofing_mobile_home_hide_progress_button() {
if (!is_front_page()) {
return;
}
echo '
';
}
// DavRoofing - mobile service image text card
// Disabled 2026-07-04: homepage service section is now text + CTA + form.
// add_action('wp_footer', 'dav_roofing_mobile_service_copy_card', 10002);
function dav_roofing_mobile_service_copy_card() {
if (!is_front_page()) {
return;
}
?>
<script id="dav-mobile-service-copy-card-js">
document.addEventListener('DOMContentLoaded', function () {
if (!document.body.classList.contains('home')) return;
var media = document.querySelector('.dav-service-media');
if (!media) return;
var card = document.querySelector('.dav-service-mobile-copy-card');
if (!card) {
card = document.createElement('div');
card.className = 'dav-service-mobile-copy-card';
media.insertAdjacentElement('afterend', card);
}
card.innerHTML = '<span class="dav-service-mobile-kicker">Servicii acoperisuri</span><h2>Acoperisul bun se vede in detalii, nu in promisiuni.</h2><p>Montaj tabla faltuita, reparatii, jgheaburi si verificari facute corect, cu explicatii clare inainte de lucrare.</p><div class="dav-service-mobile-points"><span>Montaj tabla</span><span>Reparatii rapide</span><span>Deviz clar</span></div>';
});
</script>
<?php
}
// DavRoofing - mobile hero clean image with text card
add_action('wp_footer', 'dav_roofing_mobile_hero_clean_card', 10003);
function dav_roofing_mobile_hero_clean_card() {
if (!is_front_page()) {
return;
}
?>
<script id="dav-mobile-hero-clean-card-js">
document.addEventListener('DOMContentLoaded', function () {
if (!document.body.classList.contains('home')) return;
document.querySelectorAll('img[alt="Awesome Image"]').forEach(function (img) {
img.remove();
});
var hero = document.querySelector('.dav-hero-premium');
var panel = document.querySelector('.dav-hero-mobile-panel');
if (!hero || !panel) return;
var inner = panel.querySelector('.dav-hero-mobile-panel-inner');
if (!inner) return;
var card = inner.querySelector('.dav-mobile-hero-copy-card');
if (!card) {
card = document.createElement('div');
card.className = 'dav-mobile-hero-copy-card';
inner.insertAdjacentElement('afterbegin', card);
}
card.innerHTML = '<span class="dav-mobile-hero-kicker">DavRoofing din 2017</span><h1>Acoperisuri montate corect, fara compromisuri.</h1><p>Executam si reparam acoperisuri pentru case si cladiri moderne, cu materiale potrivite, comunicare clara si lucrari verificate pana la ultimul detaliu.</p><div class="dav-mobile-hero-actions"><a class="red" href="#solicita-servicii">Solicita serviciile noastre</a><a class="green" href="https://wa.me/40754796389">WhatsApp rapid</a></div>';
});
</script>
<?php
}
// DavRoofing - hide mobile broken image overlays
add_action('wp_footer', 'dav_roofing_hide_mobile_broken_image_overlays', 10004);
function dav_roofing_hide_mobile_broken_image_overlays() {
if (!is_front_page()) {
return;
}
?>
<script id="dav-mobile-hide-broken-overlays-js">
document.addEventListener('DOMContentLoaded', function () {
if (!document.body.classList.contains('home')) return;
document.querySelectorAll('img[alt="Awesome Image"]').forEach(function (img) {
img.remove();
});
});
</script>
<?php
}
// DavRoofing - services section visual polish
add_action('wp_footer', 'dav_roofing_services_section_visual_polish', 10006);
function dav_roofing_services_section_visual_polish() {
if (!is_front_page()) {
return;
}
?>
<?php
}
// DavRoofing - services 100x visual upgrade
add_action('wp_footer', 'dav_roofing_services_100x_visual_upgrade', 10020);
function dav_roofing_services_100x_visual_upgrade() {
?>
<script id="dav-services-100x-visual-upgrade-js">
document.addEventListener('DOMContentLoaded', function () {
document.querySelectorAll('.elementor-widget-roonix_our_services_tab .text, .service-block .text, .services-block .text').forEach(function (el) {
el.innerHTML = el.innerHTML
.replace(/With more than four decades[^<]+/gi, 'Servicii de acoperis executate curat, cu materiale potrivite, deviz clar si comunicare directa inainte de lucrare.')
.replace(/San Fransisco/gi, 'Bucuresti si Ilfov');
});
document.querySelectorAll('a, button, input[type="submit"]').forEach(function (el) {
var txt = (el.value || el.textContent || '').trim();
if (/Vezi serviciile/i.test(txt)) {
if (el.tagName === 'INPUT') el.value = 'Vezi detalii';
else el.textContent = 'Vezi detalii';
}
});
});
</script>
<?php
}
// DavRoofing - individual service pages premium redesign
add_action('wp_footer', 'dav_roofing_individual_service_pages_100x', 10021);
function dav_roofing_individual_service_pages_100x() {
if (!is_page(array(1645, 1160, 1162, 1164, 1703, 1704, 1705))) {
return;
}
?>
<script id="dav-service-pages-100x-js">
document.addEventListener('DOMContentLoaded', function () {
var serviceIds = ['page-id-1645','page-id-1160','page-id-1162','page-id-1164'];
if (!serviceIds.some(function (c) { return document.body.classList.contains(c); })) return;
var titleEl = document.querySelector('.page-title h2');
var title = titleEl ? titleEl.textContent.trim() : 'Serviciu acoperis';
if (document.querySelector('.dav-service-page-intro')) return;
var descriptions = {
'Tabla Faltuita': 'Acoperisuri din tabla faltuita executate atent, cu linii curate, etanseitate buna si finisaje potrivite pentru case moderne.',
'Tigla Metalica': 'Montaj tigla metalica pentru acoperisuri rezistente, cu materiale potrivite, sistem pluvial corect si deviz clar inainte de lucrare.',
'Tigla Ceramica': 'Solutii cu tigla ceramica pentru acoperisuri durabile, aspect clasic si verificari corecte ale structurii inainte de montaj.',
'Panouri Fotovoltaice': 'Montaj si integrare panouri fotovoltaice cu atentie la acoperis, prinderi si trasee curate, fara improvizatii.'
};
var desc = descriptions[title] || 'Serviciu de acoperis realizat curat, cu evaluare corecta, materiale potrivite si comunicare clara.';
var intro = document.createElement('section');
intro.className = 'dav-service-page-intro';
intro.innerHTML = '<div class="dav-service-page-grid"><div class="dav-service-page-main"><span class="dav-service-page-label">Servicii DavRoofing</span><h2>' + title + ' facut corect, fara graba si fara improvizatii.</h2><p>' + desc + '</p><div class="dav-service-page-points"><span>Verificare inainte de lucrare</span><span>Materiale si deviz clar</span><span>Factura si garantie</span></div></div><aside class="dav-service-page-contact"><h3>Ai nevoie de o estimare?</h3><p>Trimite-ne cateva detalii si revenim rapid cu urmatorul pas.</p><div class="dav-service-page-actions"><a class="red" href="/contact/">Solicita serviciile noastre</a><a class="green" href="https://wa.me/40754796389">WhatsApp rapid</a></div></aside></div>';
var pageTitle = document.querySelector('.page-title');
if (pageTitle) pageTitle.insertAdjacentElement('afterend', intro);
});
</script>
<?php
}
// DavRoofing - frontend performance optimization
add_action('init', 'dav_roofing_disable_wp_frontend_bloat');
function dav_roofing_disable_wp_frontend_bloat() {
if (is_admin()) {
return;
}
remove_action('wp_head', 'print_emoji_detection_script', 7);
remove_action('wp_print_styles', 'print_emoji_styles');
remove_action('wp_head', 'wp_generator');
remove_action('wp_head', 'wlwmanifest_link');
remove_action('wp_head', 'rsd_link');
remove_action('wp_head', 'wp_shortlink_wp_head');
remove_action('wp_head', 'rest_output_link_wp_head');
remove_action('wp_head', 'wp_oembed_add_discovery_links');
remove_action('template_redirect', 'rest_output_link_header', 11);
}
add_action('wp_enqueue_scripts', 'dav_roofing_frontend_speed_dequeues', 100);
function dav_roofing_frontend_speed_dequeues() {
if (is_admin()) {
return;
}
wp_dequeue_script('jquery-migrate');
wp_deregister_script('jquery-migrate');
wp_dequeue_script('comment-reply');
wp_dequeue_script('wp-embed');
if (!is_user_logged_in()) {
wp_dequeue_style('dashicons');
}
$uri = $_SERVER['REQUEST_URI'] ?? '';
$needs_forms = is_front_page() || is_page(array('contact', 'contact-2')) || strpos($uri, '/contact') !== false;
if (!$needs_forms) {
wp_dequeue_style('contact-form-7');
wp_dequeue_script('contact-form-7');
wp_dequeue_script('swv');
wp_dequeue_script('wpforms-elementor');
wp_dequeue_script('wpforms-elementor-frontend');
}
$unused_style_fragments = array(
'color-switcher', 'touchspin', 'odometer', 'lightcase', 'magnific-popup'
);
global $wp_styles;
if ($wp_styles instanceof WP_Styles) {
foreach ((array) $wp_styles->queue as $handle) {
$src = $wp_styles->registered[$handle]->src ?? '';
foreach ($unused_style_fragments as $fragment) {
if (stripos($handle, $fragment) !== false || stripos($src, $fragment) !== false) {
wp_dequeue_style($handle);
break;
}
}
}
}
$unused_script_fragments = array(
'color-settings', 'touchspin', 'odometer', 'mixitup', 'lightcase', 'magnific-popup', 'paroller', 'parallax', 'tilt.jquery', 'knob'
);
global $wp_scripts;
if ($wp_scripts instanceof WP_Scripts) {
foreach ((array) $wp_scripts->queue as $handle) {
$src = $wp_scripts->registered[$handle]->src ?? '';
foreach ($unused_script_fragments as $fragment) {
if (stripos($handle, $fragment) !== false || stripos($src, $fragment) !== false) {
wp_dequeue_script($handle);
break;
}
}
}
}
}
add_filter('script_loader_tag', 'dav_roofing_defer_noncritical_scripts', 20, 3);
function dav_roofing_defer_noncritical_scripts($tag, $handle, $src) {
if (is_admin() || is_user_logged_in()) {
return $tag;
}
if (strpos($tag, ' defer') !== false || strpos($tag, ' async') !== false) {
return $tag;
}
$critical = array('jquery', 'jquery-core');
if (in_array($handle, $critical, true)) {
return $tag;
}
$defer_fragments = array(
'bootstrap', 'popper', 'appear', 'owl', 'wow', 'backToTop', 'nav-tool', 'script',
'elementor', 'webpack.runtime', 'frontend-modules', 'waypoints', 'wp-util', 'underscore',
'contact-form-7', 'swv', 'wpforms'
);
foreach ($defer_fragments as $fragment) {
if (stripos($handle, $fragment) !== false || stripos($src, $fragment) !== false) {
return str_replace(' src=', ' defer src=', $tag);
}
}
return $tag;
}
add_filter('style_loader_tag', 'dav_roofing_preload_large_stylesheets', 20, 4);
function dav_roofing_preload_large_stylesheets($html, $handle, $href, $media) {
if (is_admin() || is_user_logged_in()) {
return $html;
}
$preload_handles = array('elementor-frontend', 'roonix-style', 'roonix-main-style');
$preload_src_fragments = array('frontend-lite.min.css', '/assets/css/style.css', '/assets/css/responsive.css');
foreach ($preload_src_fragments as $fragment) {
if (stripos($href, $fragment) !== false) {
return '<link rel="preload" as="style" href="' . esc_url(//dav-roofing.ro/wp-content/themes/roonix/$href) . '" onload="this.onload=null;this.rel=\'stylesheet\'">' . "\n" . '<noscript>' . $html . '</noscript>';
}
}
if (in_array($handle, $preload_handles, true)) {
return '<link rel="preload" as="style" href="' . esc_url(//dav-roofing.ro/wp-content/themes/roonix/$href) . '" onload="this.onload=null;this.rel=\'stylesheet\'">' . "\n" . '<noscript>' . $html . '</noscript>';
}
return $html;
}
add_action('wp_head', 'dav_roofing_speed_resource_hints', 1);
function dav_roofing_speed_resource_hints() {
if (is_admin()) {
return;
}
echo "<meta name=\"theme-color\" content=\"#ffffff\">\n";
echo "<link rel=\"preconnect\" href=\"https://dav-roofing.ro\" crossorigin>\n";
if (is_front_page()) {
echo "<link rel=\"preload\" as=\"image\" fetchpriority=\"high\" href=\"https://dav-roofing.ro/wp-content/uploads/2026/06/dav-home-hero-branded-final.webp\">\n";
}
if (is_page(array(1645, 1160, 1162, 1164, 1703, 1704, 1705))) {
echo "<link rel=\"preload\" as=\"image\" fetchpriority=\"high\" href=\"https://dav-roofing.ro/wp-content/uploads/2026/06/dav-home-hero-branded-final.webp\">\n";
}
}
add_filter('wp_get_attachment_image_attributes', 'dav_roofing_image_loading_attributes', 20, 3);
function dav_roofing_image_loading_attributes($attr, $attachment, $size) {
if (is_admin()) {
return $attr;
}
if (empty($attr['loading'])) {
$attr['loading'] = 'lazy';
}
$attr['decoding'] = 'async';
return $attr;
}
// DavRoofing - speed optimization v2: lightweight menu and late script cleanup
add_action('wp_print_scripts', 'dav_roofing_late_remove_noncritical_frontend_js', 1000);
function dav_roofing_late_remove_noncritical_frontend_js() {
if (is_admin() || is_user_logged_in()) {
return;
}
$remove_fragments = array('contact-form-7', 'swv', 'webpack.runtime', 'elementor', 'wpforms', 'wp-util', 'underscore');
global $wp_scripts;
if ($wp_scripts instanceof WP_Scripts) {
foreach ((array) $wp_scripts->queue as $handle) {
$src = $wp_scripts->registered[$handle]->src ?? '';
foreach ($remove_fragments as $fragment) {
if (stripos($handle, $fragment) !== false || stripos($src, $fragment) !== false) {
wp_dequeue_script($handle);
break;
}
}
}
}
}
add_action('wp_footer', 'dav_roofing_lightweight_mobile_menu_script', 10030);
function dav_roofing_lightweight_mobile_menu_script() {
if (is_admin()) {
return;
}
?>
<script id="dav-light-mobile-menu-js">
(function(){
function ready(fn){ if(document.readyState !== 'loading') fn(); else document.addEventListener('DOMContentLoaded', fn); }
ready(function(){
var body = document.body;
document.querySelectorAll('.mobile-nav-toggler').forEach(function(btn){
btn.addEventListener('click', function(e){ e.preventDefault(); body.classList.add('mobile-menu-visible'); }, {passive:false});
});
document.querySelectorAll('.mobile-menu .close-btn, .menu-backdrop').forEach(function(btn){
btn.addEventListener('click', function(e){ e.preventDefault(); body.classList.remove('mobile-menu-visible'); }, {passive:false});
});
document.addEventListener('keydown', function(e){ if(e.key === 'Escape') body.classList.remove('mobile-menu-visible'); });
});
})();
</script>
<?php
}
// DavRoofing - remove final unused external Elementor runtime on public pages
add_filter('script_loader_tag', 'dav_roofing_remove_unused_elementor_runtime_tag', 9999, 3);
function dav_roofing_remove_unused_elementor_runtime_tag($tag, $handle, $src) {
if (is_admin() || is_user_logged_in()) {
return $tag;
}
if (stripos($src, 'webpack.runtime.min.js') !== false || stripos($handle, 'webpack') !== false) {
return '';
}
return $tag;
}
// DavRoofing - mobile menu z-index fix after speed optimization
add_action('wp_footer', 'dav_roofing_mobile_menu_layer_fix', 10040);
function dav_roofing_mobile_menu_layer_fix() {
if (is_admin()) {
return;
}
echo '
';
}
// DavRoofing - lightweight mobile menu content
add_action('wp_footer', 'dav_roofing_lightweight_mobile_menu_content', 10041);
function dav_roofing_lightweight_mobile_menu_content() {
if (is_admin()) {
return;
}
?>
<script id="dav-mobile-menu-content-js">
(function(){
function ready(fn){ if(document.readyState !== 'loading') fn(); else document.addEventListener('DOMContentLoaded', fn); }
function toggleSubmenu(item, forceOpen){
if(!item) return;
var open = typeof forceOpen === 'boolean' ? forceOpen : !item.classList.contains('dav-submenu-open');
item.classList.toggle('dav-submenu-open', open);
var btn = item.querySelector('.dav-submenu-toggle');
if(btn) btn.setAttribute('aria-expanded', open ? 'true' : 'false');
}
function bindDelegatedEvents(){
if(document.documentElement.getAttribute('data-dav-mobile-menu-events') === '1') return;
document.documentElement.setAttribute('data-dav-mobile-menu-events','1');
document.addEventListener('click', function(e){
var control = e.target.closest('.mobile-menu .dav-submenu-toggle, .mobile-menu .dav-submenu-link');
if(control){
e.preventDefault();
toggleSubmenu(control.closest('.dav-has-submenu'));
return;
}
var link = e.target.closest('.mobile-menu a[href]:not([href="#"])');
if(link){
document.body.classList.remove('mobile-menu-visible');
}
}, false);
}
ready(function(){
bindDelegatedEvents();
var outer = document.querySelector('.mobile-menu .menu-outer');
if(!outer) return;
if(outer.getAttribute('data-dav-ready') !== '1' || !outer.querySelector('.dav-submenu-toggle')){
outer.innerHTML = '<ul class="navigation clearfix"><li><a href="/">Acasa</a></li><li><a href="/despre-noi/">Despre noi</a></li><li class="dav-has-submenu"><a href="#" class="dav-submenu-link">Servicii</a><button class="dav-submenu-toggle" type="button" aria-label="Deschide servicii" aria-expanded="false"></button><ul class="sub-menu"><li><a href="/montaj-tabla-faltuita/">Tabla faltuita</a></li><li><a href="/tigla-metalica/">Tigla metalica</a></li><li><a href="/tigla-ceramica/">Tigla ceramica</a></li><li><a href="/panouri-fotovoltaice/">Panouri fotovoltaice</a></li><li><a href="/sisteme-pluviare/">Sisteme pluviare</a></li><li><a href="/dulgherie/">Dulgherie</a></li><li><a href="/terase-structura-lemn/">Terase pe structura de lemn</a></li><li><a href="/spalat-vopsit-acoperis/">Spalat si vopsit acoperis</a></li></ul></li><li><a href="/contact/">Contact</a></li><li><a href="/blog/">Blog</a></li></ul>';
outer.setAttribute('data-dav-ready','1');
}
});
})();
</script>
<?php
}
// DavRoofing: remove default WordPress sidebar widgets from service landing pages.
add_action('wp_head', 'dav_roofing_remove_service_sidebar_widgets', 99);
function dav_roofing_remove_service_sidebar_widgets() {
if (!is_page(array(1645, 1160, 1162, 1164, 1703, 1704, 1705))) {
return;
}
?>
<script id="dav-service-no-sidebar-js">
document.addEventListener('DOMContentLoaded', function () {
document.querySelectorAll('.sidebar-page-container > .auto-container > .row > .sidebar-side, .sidebar-page-container > .auto-container > .row > .right-sidebar, .sidebar-page-container > .auto-container > .row > .blog-sidebar, .sidebar-page-container > .auto-container > .row > .default-sidebar').forEach(function (el) {
el.remove();
});
document.querySelectorAll('.sidebar-page-container > .auto-container > .row > .content-side, .sidebar-page-container > .auto-container > .row > .content-column').forEach(function (el) {
el.classList.remove('col-lg-8', 'col-md-8');
el.classList.add('col-lg-12');
});
});
</script>
<?php
}
// DavRoofing - load extracted custom CSS
add_action('wp_head', 'dav_roofing_load_extracted_custom_css', 9999);
function dav_roofing_load_extracted_custom_css() {
if (is_admin()) {
return;
}
$href = get_stylesheet_uri() . '?dav=20260629-0008';
echo '<link id="dav-extracted-custom-css" rel="stylesheet" href="' . esc_url(//dav-roofing.ro/wp-content/themes/roonix/$href) . '" media="all">' . "
";
}
// DavRoofing: clean custom service-page template, replacing old sidebar/blog-style layouts.
add_filter('the_content', 'dav_roofing_clean_service_pages_content', 999);
function dav_roofing_clean_service_pages_content($content) {
if (is_admin() || !is_page(array(1645, 1160, 1162, 1164, 1703, 1704, 1705)) || !in_the_loop() || !is_main_query()) {
return $content;
}
$page_id = get_queried_object_id();
$services = array(
1645 => array(
'label' => 'Tabla faltuita',
'title' => 'Tabla faltuita montata curat, fara improvizatii.',
'lead' => 'Executam acoperisuri din tabla faltuita pentru case moderne, renovari si proiecte unde conteaza etansarea, aspectul si durata in timp.',
'image' => 'https://dav-roofing.ro/wp-content/uploads/2026/07/davroofing-tabla-faltuita-worker-20260703.png',
'alt' => 'Montaj tabla faltuita pe acoperis metalic',
'bullets' => array('Prinderi ascunse si falturi curate', 'Recomandari clare pentru forma acoperisului', 'Tinichigerie, coame, dolii si racorduri'),
'steps' => array('Verificam panta si masuratorile', 'Alegem solutia potrivita', 'Montam si verificam detaliile'),
'details_title' => 'Sistem dublu falt',
'details_intro' => 'Tabla pentru acoperisuri faltuite este un produs apreciat de arhitecti, proiectanti si montatori cu traditie in acoperisuri.',
'details_text' => 'Datorita proprietatilor de deformabilitate si maleabilitate, tabla faltuita permite realizarea unor invelitori spectaculoase. Este disponibila intr-o gama variata de culori si este recomandata atat pentru cladiri cu arhitectura moderna si forme indraznete ale acoperisului, cat si pentru monumente istorice unde se doreste renovarea si pastrarea aspectului traditional. La baza, tabla faltuita este realizata din tabla plana de foarte buna calitate, care trece printr-un proces de faltuire pentru un sistem de prindere eficient.',
'advantages_title' => 'Avantajele invelitorilor din tabla dublu faltuita',
'advantages' => array(
'Sistem de montare fara strapungeri: montajul se realizeaza cu cleme fixe si mobile inglobate in falturi, care rigidizeaza fixarea tablei de astereala si permit miscarile de dilatare-contractie.',
'Fasii continue din streasina pana in coama: sistemul permite realizarea montajului fara imbinari transversale, acolo unde configuratia acoperisului permite.',
'Cea mai sigura invelitoare: sistemul cu dublu falt este unul dintre cele mai sigure detalii de tinichigerie folosite in domeniu.',
'Versatilitate foarte mare: tabla dublu faltuita se poate monta pe pante de la 4 grade pana la 90 de grade, inclusiv pe invelitori curbe, arcuite, cupole si fatade.'
)
),
1160 => array(
'label' => 'Tigla metalica',
'title' => 'Tigla metalica facuta corect, fara graba si fara compromisuri.',
'lead' => 'Montaj si reparatii pentru tigla metalica, cu sistem pluvial corect, accesorii potrivite si deviz explicat inainte de lucrare.',
'image' => 'https://dav-roofing.ro/wp-content/uploads/2026/07/dav-tigla-metalica-hero.png',
'alt' => 'Montaj tigla metalica DavRoofing pe acoperis modern',
'bullets' => array('Verificare inainte de lucrare', 'Materiale si deviz clar', 'Factura si garantie'),
'steps' => array('Evaluam acoperisul existent', 'Pregatim straturile si accesoriile', 'Montam invelitoarea si sistemul pluvial'),
'details_title' => 'Tigla metalica',
'details_intro' => 'Tigla metalica este o alegere perfecta pentru acoperisul dumneavoastra.',
'details_text' => 'Pentru construirea acoperisului din tabla al casei, tigla metalica este o alegere excelenta, avand in vedere multiplele sale calitati, dar si preturile accesibile la care poate fi gasita. Printre cele mai importante beneficii ale acestui material se numara rezistenta indelungata in timp la intemperii, zapada, ploi abundente, vant, dar si la incendii si socuri. Ofera siguranta locatarilor, reflecta lumina soarelui, pastreaza o temperatura potrivita, este mai usoara fata de alte materiale si se monteaza rapid.',
'advantages_title' => 'Avantaje tigla metalica',
'advantages' => array(
'Pret mic: tigla metalica se produce in grosimi cuprinse intre 0.35 mm si 0.6 mm, astfel ca exista variante potrivite pentru bugete diferite. Pentru calitate superioara si durata de viata mai mare, investitia creste, dar ramane de regula sub nivelul tiglei ceramice.',
'Greutate redusa: in functie de grosimea si calitatea materialului ales, tigla metalica are o greutate pe metru patrat cuprinsa intre 4 si 5.5 kg.',
'Estetica placuta si gama larga de culori: exista multe modele de tigla metalica, disponibile in peste 25 de culori, lucioase sau mate.'
)
),
1162 => array(
'label' => 'Tigla ceramica',
'title' => 'Tigla ceramica montata cu atentie la structura si detalii.',
'lead' => 'Lucrari pentru acoperisuri cu tigla ceramica, unde greutatea, ventilarea si alinierea pieselor trebuie tratate corect de la inceput. O solutie naturala, eleganta si durabila pentru case clasice sau moderne.',
'image' => 'https://dav-roofing.ro/wp-content/uploads/2026/07/davroofing-tigla-ceramica-hero-20260704.png',
'alt' => 'Acoperis cu tigla ceramica',
'bullets' => array('Durata mare de viata', 'Izolatie termica si fonica buna', 'Rezistenta la inghet, foc si raze UV'),
'steps' => array('Analizam structura existenta', 'Stabilim materialele necesare', 'Executam montajul si verificarile finale'),
'details_title' => 'Tigla ceramica',
'details_intro' => 'Tigla ceramica inseamna traditie, eleganta si longevitate intr-o invelitoare naturala si foarte estetica.',
'details_text' => 'Fabricata din argila naturala arsa la temperaturi inalte, tigla ceramica ofera un acoperis durabil, rezistent si cu aspect atemporal. Este disponibila in forme, finisaje si culori variate, astfel incat poate adauga valoare oricarei case, indiferent daca arhitectura este clasica sau moderna.',
'advantages_title' => 'Avantaje tigla ceramica',
'advantages' => array(
'Durata de viata foarte mare, potrivita pentru proprietari care vor o investitie pe termen lung.',
'Izolatie termica si fonica buna, pentru mai mult confort in casa.',
'Rezistenta la inghet, foc si raze UV, cu comportament bun in conditii meteo dificile.',
'Aspect natural si atemporal, usor de integrat in stiluri arhitecturale clasice sau moderne.'
)
),
1164 => array(
'label' => 'Panouri fotovoltaice',
'title' => 'Pregatim acoperisul pentru panouri fotovoltaice fara riscuri inutile.',
'lead' => 'Verificam invelitoarea, prinderile si zonele sensibile inainte de montajul panourilor, ca acoperisul sa ramana etans si sigur. Pregatim acoperisul pentru energie curata si eficienta pe termen lung.',
'image' => 'https://dav-roofing.ro/wp-content/uploads/2026/07/panouri-fotovoltaice-service.jpg',
'alt' => 'Acoperis modern pregatit pentru interventii',
'bullets' => array('Productie de energie curata', 'Reducere a facturilor lunare', 'Sisteme adaptate acoperisului'),
'steps' => array('Inspectam acoperisul', 'Stabilim zonele sigure de montaj', 'Pregatim interventia fara infiltratii'),
'details_title' => 'Panouri fotovoltaice',
'details_intro' => 'Panourile fotovoltaice transforma energia solara in independenta energetica si pot creste valoarea proprietatii.',
'details_text' => 'O interventie corecta incepe cu verificarea acoperisului, a prinderilor si a traseelor. Montajul trebuie gandit astfel incat panourile sa functioneze eficient, iar invelitoarea sa ramana etansa si protejata.',
'advantages_title' => 'Avantaje panouri fotovoltaice',
'advantages' => array(
'Productie proprie de energie curata, 100% verde.',
'Reducere semnificativa a facturilor lunare la electricitate.',
'Durata de viata mare si sisteme complete, adaptate nevoilor fiecarei proprietati.',
'Pot fi eligibile pentru programe de subventii, in functie de conditiile disponibile.'
)
),
1703 => array(
'label' => 'Dulgherie',
'title' => 'Dulgherie pentru acoperisuri solide si lucrari curate.',
'lead' => 'Executam lucrari de dulgherie pentru sarpante, reparatii de structura, astereala si elemente din lemn care sustin corect acoperisul. Lucram cu lemn tratat, taieturi precise si montaj sigur.',
'image' => 'https://dav-roofing.ro/wp-content/uploads/2026/07/davroofing-dulgherie-hero-20260703.png',
'alt' => 'Dulgherie DavRoofing pentru structura de acoperis din lemn',
'bullets' => array('Sarpante pentru acoperisuri', 'Pergole, foisoare si terase', 'Reparatii si consolidari lemn'),
'steps' => array('Verificam structura existenta', 'Stabilim piesele de lemn necesare', 'Executam dulgheria si pregatim acoperisul'),
'details_title' => 'Lucrari de dulgherie',
'details_intro' => 'Construim acoperisuri rezistente, cu structura din lemn de calitate, adaptate stilului casei.',
'details_text' => 'Dulgheria corecta este baza unui acoperis sigur. Intervenim pentru sarpante in 2 sau 4 ape, mansarde, pergole, foisoare, terase, reparatii si consolidari ale structurii din lemn.',
'advantages_title' => 'Ce urmarim la executie',
'advantages' => array(
'Lemn tratat si ales corect pentru tipul lucrarii.',
'Taieturi precise si imbinari curate, pentru o structura stabila.',
'Montaj rapid si sigur, pregatit pentru invelitoare.',
'Reparatii si consolidari pentru zone slabite sau afectate de timp.'
)
),
1704 => array(
'label' => 'Terase pe structura de lemn',
'title' => 'Terase pe structura de lemn, facute drept si rezistent.',
'lead' => 'Construim si reparam terase pe structura de lemn, cu atentie la stabilitate, scurgerea apei, prinderi si finisaje curate. Transformam spatiul exterior intr-un loc de relaxare si socializare.',
'image' => 'https://dav-roofing.ro/wp-content/uploads/2026/07/davroofing-terase-lemn-hero-20260703.png',
'alt' => 'Terasa pe structura de lemn realizata de DavRoofing',
'bullets' => array('Structura dimensionata corect', 'Prinderi si imbinari curate', 'Pregatire pentru finisaj si protectie'),
'steps' => array('Masuram si verificam zona', 'Alegem structura si materialele', 'Montam terasa si verificam stabilitatea'),
'details_title' => 'Terase pe structura de lemn',
'details_intro' => 'O terasa din lemn bine facuta aduce mai mult confort, caldura vizuala si utilitate in curte.',
'details_text' => 'Indiferent de dimensiune sau stil, proiectam si executam structuri solide si elegante, potrivite pentru spatiul disponibil. Punem accent pe rezistenta, scurgerea corecta a apei si finisaje curate, astfel incat terasa sa ramana frumoasa ani la rand.',
'advantages_title' => 'Avantaje terase lemn',
'advantages' => array(
'Structura solida, dimensionata pentru folosire zilnica.',
'Aspect cald si natural, usor de integrat langa casa.',
'Posibilitate de adaptare pentru pergole, zone de relaxare sau spatii de luat masa.',
'Montaj atent, cu prinderi si imbinari verificate.'
)
),
1705 => array(
'label' => 'Spalat si vopsit acoperis',
'title' => 'Spalat si vopsit acoperis pentru un aspect curat si protejat.',
'lead' => 'Curatam acoperisul, indepartam depunerile si aplicam solutii de vopsire acolo unde invelitoarea permite reimprospatarea si protectia. Redam aspectul curat si protejam suprafetele afectate de timp.',
'image' => 'https://dav-roofing.ro/wp-content/uploads/2026/07/davroofing-spalat-vopsit-acoperis-hero-20260703.png',
'alt' => 'Spalat si vopsit acoperis DavRoofing inainte si dupa curatare',
'bullets' => array('Acoperisuri, jgheaburi si burlane', 'Fatade, pavaje si alei betonate', 'Curatare si protectie in timp'),
'steps' => array('Inspectam acoperisul', 'Curatam si pregatim suprafata', 'Vopsim si verificam rezultatul final'),
'details_title' => 'Spalat si vopsit acoperisuri',
'details_intro' => 'Prestam servicii de curatare si intretinere pentru acoperisuri si zonele exterioare care se murdaresc in timp.',
'details_text' => 'Indepartam murdaria, mucegaiul, lichenii si algele, apoi pregatim suprafata pentru protectie sau vopsire, in functie de material. Intervenim si pentru jgheaburi, burlane, fatade, pavaje si alei betonate.',
'advantages_title' => 'Ce obtine acoperisul',
'advantages' => array(
'Aspect mai curat si mai ingrijit.',
'Indepartarea depunerilor care pot retine umezeala.',
'Pregatire corecta inainte de vopsire sau tratament.',
'Solutii eficiente pentru intretinere si protectie pe termen lung.'
)
)
);
if (empty($services[$page_id])) {
return $content;
}
$service = $services[$page_id];
ob_start();
?>
<section class="dav-clean-service" aria-label="<?php echo esc_attr($service['label']); ?> DavRoofing">
<div class="dav-clean-service-grid">
<figure class="dav-clean-service-media">
<img src="<?php echo esc_url(//dav-roofing.ro/wp-content/themes/roonix/$service[image]); ?>" alt="<?php echo esc_attr($service['alt']); ?>" loading="eager" decoding="async">
</figure>
<div class="dav-clean-service-copy">
<span class="dav-clean-eyebrow">Servicii DavRoofing</span>
<h1><?php echo esc_html($service['title']); ?></h1>
<p class="dav-clean-lead"><?php echo esc_html($service['lead']); ?></p>
<div class="dav-clean-benefits">
<?php foreach ($service['bullets'] as $bullet) : ?>
<span><b>?</b><?php echo esc_html($bullet); ?></span>
<?php endforeach; ?>
</div>
<div class="dav-clean-actions">
<a class="dav-clean-primary" href="/contact/">Solicita serviciile noastre</a>
<a class="dav-clean-whatsapp" href="https://wa.me/40754796389">WhatsApp rapid</a>
</div>
</div>
</div>
<div class="dav-clean-process">
<?php $index = 1; foreach ($service['steps'] as $step) : ?>
<article>
<strong><?php echo esc_html(str_pad($index, 2, '0', STR_PAD_LEFT)); ?></strong>
<p><?php echo esc_html($step); ?></p>
</article>
<?php $index++; endforeach; ?>
</div>
<?php if (!empty($service['details_title'])) : ?>
<article class="dav-clean-details">
<span class="dav-clean-eyebrow">Detalii material</span>
<h2><?php echo esc_html($service['details_title']); ?></h2>
<p class="dav-clean-details-intro"><?php echo esc_html($service['details_intro']); ?></p>
<p><?php echo esc_html($service['details_text']); ?></p>
<h3><?php echo esc_html($service['advantages_title']); ?></h3>
<ul>
<?php foreach ($service['advantages'] as $advantage) : ?>
<li><?php echo esc_html($advantage); ?></li>
<?php endforeach; ?>
</ul>
</article>
<?php endif; ?>
<aside class="dav-clean-service-cta">
<div>
<span>Raspuns rapid</span>
<h2>Ai nevoie de o estimare pentru <?php echo esc_html(strtolower($service['label'])); ?>?</h2>
<p>Trimite-ne cateva detalii despre lucrare si revenim cu urmatorul pas.</p>
</div>
<a href="tel:+40754796389">+40 754 796 389</a>
</aside>
</section>
<?php
return ob_get_clean();
}
add_action('wp_head', 'dav_roofing_clean_service_pages_styles', 100);
function dav_roofing_clean_service_pages_styles() {
if (!is_page(array(1645, 1160, 1162, 1164, 1703, 1704, 1705))) {
return;
}
?>
<style id="dav-clean-service-pages-css">
body.page-id-1645 .page-title,
body.page-id-1160 .page-title,
body.page-id-1162 .page-title,
body.page-id-1164 .page-title,
body.page-id-1645 .page-breadcrumb,
body.page-id-1160 .page-breadcrumb,
body.page-id-1162 .page-breadcrumb,
body.page-id-1164 .page-breadcrumb {
display: none !important;
}
body.page-id-1645 .sidebar-page-container,
body.page-id-1160 .sidebar-page-container,
body.page-id-1162 .sidebar-page-container,
body.page-id-1164 .sidebar-page-container {
padding: 74px 0 82px !important;
background: radial-gradient(circle at 0 0, rgba(243,59,48,.08), transparent 32%), linear-gradient(180deg, #f7f9fc 0%, #ffffff 60%) !important;
}
.dav-clean-service {
color: #101828;
max-width: 1180px;
margin: 0 auto;
padding: 0 18px;
}
.dav-clean-service-grid {
display: grid;
grid-template-columns: minmax(0, 1.04fr) minmax(360px, .82fr);
gap: 28px;
align-items: stretch;
}
.dav-clean-service-media {
margin: 0;
min-height: 520px;
border-radius: 8px;
overflow: hidden;
box-shadow: 0 24px 70px rgba(16,24,40,.15);
background: #101828;
}
.dav-clean-service-media img {
width: 100%;
height: 100%;
min-height: 520px;
display: block;
object-fit: cover;
}
.dav-clean-service-copy,
.dav-clean-service-cta,
.dav-clean-process article {
border: 1px solid rgba(16,24,40,.10);
background: rgba(255,255,255,.94);
box-shadow: 0 18px 55px rgba(16,24,40,.08);
}
.dav-clean-service-copy {
border-radius: 8px;
padding: 40px 38px;
display: flex;
flex-direction: column;
justify-content: center;
}
.dav-clean-eyebrow {
display: block;
color: #ef3b30;
font-weight: 900;
font-size: 13px;
text-transform: uppercase;
letter-spacing: 3px;
margin-bottom: 14px;
}
.dav-clean-service-copy h1 {
margin: 0;
color: #07111f;
font-size: 46px;
line-height: 1.03;
font-weight: 900;
letter-spacing: 0;
}
.dav-clean-lead {
margin: 18px 0 24px;
font-size: 17px;
line-height: 1.75;
color: #475467;
}
.dav-clean-benefits {
display: grid;
gap: 10px;
margin-bottom: 26px;
}
.dav-clean-benefits span {
display: flex;
align-items: center;
gap: 11px;
padding: 13px 14px;
border-radius: 8px;
background: #f8fafc;
border: 1px solid #e4e7ec;
color: #101828;
font-weight: 800;
}
.dav-clean-benefits b {
width: 24px;
height: 24px;
border-radius: 999px;
display: inline-flex;
align-items: center;
justify-content: center;
background: #dcfae6;
color: #22c55e;
flex: 0 0 24px;
}
.dav-clean-actions {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 12px;
}
.dav-clean-actions a,
.dav-clean-service-cta a {
min-height: 56px;
border-radius: 8px;
display: inline-flex;
align-items: center;
justify-content: center;
text-align: center;
color: #fff !important;
font-weight: 900;
text-transform: uppercase;
letter-spacing: 1px;
text-decoration: none !important;
box-shadow: 0 18px 36px rgba(239,59,48,.18);
}
.dav-clean-primary { background: #ef3b30; }
.dav-clean-whatsapp { background: #22c55e; box-shadow: 0 18px 36px rgba(34,197,94,.18) !important; }
.dav-clean-process {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 18px;
margin: 28px 0;
}
.dav-clean-process article {
border-radius: 8px;
padding: 24px;
}
.dav-clean-process strong {
color: #ef3b30;
font-size: 14px;
letter-spacing: 2px;
}
.dav-clean-process p {
color: #101828;
font-size: 18px;
line-height: 1.35;
font-weight: 900;
margin: 8px 0 0;
}
.dav-clean-details {
border: 1px solid rgba(16,24,40,.10);
background: #ffffff;
box-shadow: 0 18px 55px rgba(16,24,40,.08);
border-radius: 8px;
padding: 34px 36px;
margin: 0 0 28px;
}
.dav-clean-details h2 {
margin: 0 0 12px;
color: #07111f;
font-size: 38px;
line-height: 1.08;
font-weight: 900;
}
.dav-clean-details h3 {
margin: 26px 0 14px;
color: #07111f;
font-size: 26px;
line-height: 1.15;
font-weight: 900;
}
.dav-clean-details p,
.dav-clean-details li {
color: #475467;
font-size: 17px;
line-height: 1.78;
}
.dav-clean-details-intro {
color: #101828 !important;
font-weight: 800;
}
.dav-clean-details ul {
display: grid;
gap: 12px;
margin: 0;
padding: 0;
list-style: none;
}
.dav-clean-details li {
position: relative;
padding: 15px 16px 15px 46px;
border: 1px solid #e4e7ec;
border-radius: 8px;
background: #f8fafc;
}
.dav-clean-details li:before {
content: "\2713";
position: absolute;
left: 16px;
top: 18px;
width: 22px;
height: 22px;
border-radius: 50%;
display: inline-flex;
align-items: center;
justify-content: center;
background: #dcfae6;
color: #16a34a;
font-weight: 900;
line-height: 1;
}
.dav-clean-service-cta {
border-radius: 8px;
padding: 28px 30px;
display: flex;
align-items: center;
justify-content: space-between;
gap: 24px;
}
.dav-clean-service-cta span {
color: #ef3b30;
font-weight: 900;
text-transform: uppercase;
letter-spacing: 2px;
font-size: 12px;
}
.dav-clean-service-cta h2 {
margin: 7px 0 8px;
font-size: 30px;
line-height: 1.1;
color: #07111f;
font-weight: 900;
}
.dav-clean-service-cta p {
margin: 0;
color: #475467;
}
.dav-clean-service-cta a {
min-width: 230px;
background: #ef3b30;
white-space: nowrap;
}
@media (max-width: 991px) {
body.page-id-1645 .sidebar-page-container,
body.page-id-1160 .sidebar-page-container,
body.page-id-1162 .sidebar-page-container,
body.page-id-1164 .sidebar-page-container {
padding: 22px 0 52px !important;
}
.dav-clean-service {
padding: 0 14px;
}
.dav-clean-service-grid,
.dav-clean-process {
grid-template-columns: 1fr;
}
.dav-clean-service-media,
.dav-clean-service-media img {
min-height: 0;
height: auto;
aspect-ratio: 1.18 / 1;
}
.dav-clean-service-copy {
padding: 26px 18px;
}
.dav-clean-service-copy h1 {
font-size: 31px;
line-height: 1.05;
}
.dav-clean-details {
padding: 25px 18px;
}
.dav-clean-details h2 {
font-size: 30px;
}
.dav-clean-details h3 {
font-size: 22px;
}
.dav-clean-lead {
font-size: 16px;
line-height: 1.65;
}
.dav-clean-actions {
grid-template-columns: 1fr;
}
.dav-clean-process article {
padding: 18px;
}
.dav-clean-service-cta {
align-items: stretch;
flex-direction: column;
padding: 24px 18px;
}
.dav-clean-service-cta h2 {
font-size: 26px;
}
.dav-clean-service-cta a {
width: 100%;
min-width: 0;
}
}
</style>
<?php
} add_action('wp_head', 'dav_roofing_new_service_pages_clean_css_20260703', 100050);
function dav_roofing_new_service_pages_clean_css_20260703() {
if (!is_page(array(1703, 1704, 1705))) {
return;
}
?>
<style id="dav-new-service-pages-clean-css">
body.page-id-1703 .page-title,
body.page-id-1704 .page-title,
body.page-id-1705 .page-title,
body.page-id-1703 .page-breadcrumb,
body.page-id-1704 .page-breadcrumb,
body.page-id-1705 .page-breadcrumb,
body.page-id-1703 aside.sidebar-side,
body.page-id-1704 aside.sidebar-side,
body.page-id-1705 aside.sidebar-side {
display: none !important;
}
body.page-id-1703 .sidebar-page-container,
body.page-id-1704 .sidebar-page-container,
body.page-id-1705 .sidebar-page-container {
padding: 74px 0 82px !important;
background: radial-gradient(circle at 0 0, rgba(243,59,48,.08), transparent 32%), linear-gradient(180deg, #f7f9fc 0%, #ffffff 60%) !important;
}
body.page-id-1703 .content-side,
body.page-id-1704 .content-side,
body.page-id-1705 .content-side {
width: 100% !important;
max-width: 100% !important;
flex: 0 0 100% !important;
}
</style>
<?php
}
// DavRoofing: final override to remove duplicated old service hero/intro blocks.
add_action('wp_footer', 'dav_roofing_hide_legacy_service_intro_blocks', 1000);
function dav_roofing_hide_legacy_service_intro_blocks() {
if (!is_page(array(1645, 1160, 1162, 1164, 1703, 1704, 1705))) {
return;
}
?>
<style id="dav-hide-legacy-service-intro-final">
html body.page-id-1645 section.page-title,
html body.page-id-1160 section.page-title,
html body.page-id-1162 section.page-title,
html body.page-id-1164 section.page-title,
html body.page-id-1645 section.dav-service-page-intro,
html body.page-id-1160 section.dav-service-page-intro,
html body.page-id-1162 section.dav-service-page-intro,
html body.page-id-1164 section.dav-service-page-intro {
display: none !important;
visibility: hidden !important;
height: 0 !important;
min-height: 0 !important;
margin: 0 !important;
padding: 0 !important;
overflow: hidden !important;
}
html body.page-id-1645 section.dav-clean-service,
html body.page-id-1160 section.dav-clean-service,
html body.page-id-1162 section.dav-clean-service,
html body.page-id-1164 section.dav-clean-service {
margin-top: 0 !important;
}
</style>
<script id="dav-hide-legacy-service-intro-js">
document.addEventListener('DOMContentLoaded', function () {
if (!document.body.matches('.page-id-1645,.page-id-1160,.page-id-1162,.page-id-1164')) return;
document.querySelectorAll('section.page-title, section.dav-service-page-intro').forEach(function (el) {
el.style.setProperty('display', 'none', 'important');
el.style.setProperty('height', '0', 'important');
el.style.setProperty('min-height', '0', 'important');
el.style.setProperty('overflow', 'hidden', 'important');
});
});
</script>
<?php
}
// DavRoofing: service page CTA polish after floating call overlap QA.
add_action('wp_footer', 'dav_roofing_service_page_cta_polish', 1001);
function dav_roofing_service_page_cta_polish() {
if (!is_page(array(1645, 1160, 1162, 1164, 1703, 1704, 1705))) {
return;
}
?>
<style id="dav-service-cta-polish-css">
html body.page-id-1645 .dav-floating-call,
html body.page-id-1160 .dav-floating-call,
html body.page-id-1162 .dav-floating-call,
html body.page-id-1164 .dav-floating-call {
display: none !important;
}
html body.page-id-1645 .dav-clean-actions,
html body.page-id-1160 .dav-clean-actions,
html body.page-id-1162 .dav-clean-actions,
html body.page-id-1164 .dav-clean-actions {
grid-template-columns: 1fr !important;
}
html body.page-id-1645 .dav-clean-actions a,
html body.page-id-1160 .dav-clean-actions a,
html body.page-id-1162 .dav-clean-actions a,
html body.page-id-1164 .dav-clean-actions a {
width: 100% !important;
min-height: 58px !important;
white-space: normal !important;
line-height: 1.2 !important;
}
@media (min-width: 992px) {
html body.page-id-1645 .dav-clean-service-copy,
html body.page-id-1160 .dav-clean-service-copy,
html body.page-id-1162 .dav-clean-service-copy,
html body.page-id-1164 .dav-clean-service-copy {
padding-bottom: 34px !important;
}
}
</style>
<?php
}
// DavRoofing: premium dark skin for service pages, removing pale washed background.
add_action('wp_footer', 'dav_roofing_service_dark_premium_skin', 1002);
function dav_roofing_service_dark_premium_skin() {
if (!is_page(array(1645, 1160, 1162, 1164, 1703, 1704, 1705))) {
return;
}
?>
<style id="dav-service-dark-premium-skin-css">
html body.page-id-1645,
html body.page-id-1160,
html body.page-id-1162,
html body.page-id-1164 {
background: #080b10 !important;
}
html body.page-id-1645 .sidebar-page-container,
html body.page-id-1160 .sidebar-page-container,
html body.page-id-1162 .sidebar-page-container,
html body.page-id-1164 .sidebar-page-container {
position: relative !important;
overflow: hidden !important;
background:
radial-gradient(circle at 12% 12%, rgba(239,59,48,.24), transparent 31%),
radial-gradient(circle at 92% 18%, rgba(34,197,94,.15), transparent 27%),
linear-gradient(135deg, #080b10 0%, #101722 45%, #07090d 100%) !important;
padding-top: 82px !important;
padding-bottom: 96px !important;
}
html body.page-id-1645 .sidebar-page-container:before,
html body.page-id-1160 .sidebar-page-container:before,
html body.page-id-1162 .sidebar-page-container:before,
html body.page-id-1164 .sidebar-page-container:before {
content: "";
position: absolute;
inset: 0;
pointer-events: none;
opacity: .18;
background-image:
linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px),
linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px);
background-size: 54px 54px;
mask-image: linear-gradient(180deg, #000 0%, transparent 80%);
}
html body.page-id-1645 .sidebar-page-container > .auto-container,
html body.page-id-1160 .sidebar-page-container > .auto-container,
html body.page-id-1162 .sidebar-page-container > .auto-container,
html body.page-id-1164 .sidebar-page-container > .auto-container {
position: relative;
z-index: 1;
}
html body.page-id-1645 .dav-clean-service,
html body.page-id-1160 .dav-clean-service,
html body.page-id-1162 .dav-clean-service,
html body.page-id-1164 .dav-clean-service {
color: #f8fafc !important;
}
html body.page-id-1645 .dav-clean-service-grid,
html body.page-id-1160 .dav-clean-service-grid,
html body.page-id-1162 .dav-clean-service-grid,
html body.page-id-1164 .dav-clean-service-grid {
gap: 30px !important;
}
html body.page-id-1645 .dav-clean-service-media,
html body.page-id-1160 .dav-clean-service-media,
html body.page-id-1162 .dav-clean-service-media,
html body.page-id-1164 .dav-clean-service-media {
border: 1px solid rgba(255,255,255,.16) !important;
background: #05070a !important;
box-shadow: 0 30px 90px rgba(0,0,0,.42), 0 0 0 1px rgba(239,59,48,.06) !important;
}
html body.page-id-1645 .dav-clean-service-media img,
html body.page-id-1160 .dav-clean-service-media img,
html body.page-id-1162 .dav-clean-service-media img,
html body.page-id-1164 .dav-clean-service-media img {
filter: saturate(1.05) contrast(1.06) brightness(.94) !important;
}
html body.page-id-1645 .dav-clean-service-copy,
html body.page-id-1160 .dav-clean-service-copy,
html body.page-id-1162 .dav-clean-service-copy,
html body.page-id-1164 .dav-clean-service-copy,
html body.page-id-1645 .dav-clean-process article,
html body.page-id-1160 .dav-clean-process article,
html body.page-id-1162 .dav-clean-process article,
html body.page-id-1164 .dav-clean-process article,
html body.page-id-1645 .dav-clean-service-cta,
html body.page-id-1160 .dav-clean-service-cta,
html body.page-id-1162 .dav-clean-service-cta,
html body.page-id-1164 .dav-clean-service-cta {
background: linear-gradient(180deg, rgba(18,25,36,.96), rgba(10,14,21,.96)) !important;
border: 1px solid rgba(255,255,255,.13) !important;
box-shadow: 0 28px 70px rgba(0,0,0,.38) !important;
}
html body.page-id-1645 .dav-clean-service-copy h1,
html body.page-id-1160 .dav-clean-service-copy h1,
html body.page-id-1162 .dav-clean-service-copy h1,
html body.page-id-1164 .dav-clean-service-copy h1,
html body.page-id-1645 .dav-clean-process p,
html body.page-id-1160 .dav-clean-process p,
html body.page-id-1162 .dav-clean-process p,
html body.page-id-1164 .dav-clean-process p,
html body.page-id-1645 .dav-clean-service-cta h2,
html body.page-id-1160 .dav-clean-service-cta h2,
html body.page-id-1162 .dav-clean-service-cta h2,
html body.page-id-1164 .dav-clean-service-cta h2 {
color: #ffffff !important;
text-shadow: 0 2px 22px rgba(0,0,0,.26) !important;
}
html body.page-id-1645 .dav-clean-lead,
html body.page-id-1160 .dav-clean-lead,
html body.page-id-1162 .dav-clean-lead,
html body.page-id-1164 .dav-clean-lead,
html body.page-id-1645 .dav-clean-service-cta p,
html body.page-id-1160 .dav-clean-service-cta p,
html body.page-id-1162 .dav-clean-service-cta p,
html body.page-id-1164 .dav-clean-service-cta p {
color: #cbd5e1 !important;
}
html body.page-id-1645 .dav-clean-eyebrow,
html body.page-id-1160 .dav-clean-eyebrow,
html body.page-id-1162 .dav-clean-eyebrow,
html body.page-id-1164 .dav-clean-eyebrow,
html body.page-id-1645 .dav-clean-service-cta span,
html body.page-id-1160 .dav-clean-service-cta span,
html body.page-id-1162 .dav-clean-service-cta span,
html body.page-id-1164 .dav-clean-service-cta span {
color: #ff4a3f !important;
}
html body.page-id-1645 .dav-clean-benefits span,
html body.page-id-1160 .dav-clean-benefits span,
html body.page-id-1162 .dav-clean-benefits span,
html body.page-id-1164 .dav-clean-benefits span {
color: #f8fafc !important;
background: rgba(255,255,255,.055) !important;
border-color: rgba(255,255,255,.14) !important;
}
html body.page-id-1645 .dav-clean-benefits b,
html body.page-id-1160 .dav-clean-benefits b,
html body.page-id-1162 .dav-clean-benefits b,
html body.page-id-1164 .dav-clean-benefits b {
background: rgba(34,197,94,.16) !important;
color: #4ade80 !important;
box-shadow: inset 0 0 0 1px rgba(74,222,128,.32) !important;
}
html body.page-id-1645 .dav-clean-primary,
html body.page-id-1160 .dav-clean-primary,
html body.page-id-1162 .dav-clean-primary,
html body.page-id-1164 .dav-clean-primary,
html body.page-id-1645 .dav-clean-service-cta a,
html body.page-id-1160 .dav-clean-service-cta a,
html body.page-id-1162 .dav-clean-service-cta a,
html body.page-id-1164 .dav-clean-service-cta a {
background: linear-gradient(135deg, #ff4a3f 0%, #d71920 100%) !important;
box-shadow: 0 18px 42px rgba(239,59,48,.34) !important;
}
html body.page-id-1645 .dav-clean-whatsapp,
html body.page-id-1160 .dav-clean-whatsapp,
html body.page-id-1162 .dav-clean-whatsapp,
html body.page-id-1164 .dav-clean-whatsapp {
background: linear-gradient(135deg, #25d366 0%, #16a34a 100%) !important;
box-shadow: 0 18px 42px rgba(34,197,94,.25) !important;
}
@media (max-width: 991px) {
html body.page-id-1645 .sidebar-page-container,
html body.page-id-1160 .sidebar-page-container,
html body.page-id-1162 .sidebar-page-container,
html body.page-id-1164 .sidebar-page-container {
padding-top: 26px !important;
padding-bottom: 58px !important;
background:
radial-gradient(circle at 16% 6%, rgba(239,59,48,.22), transparent 36%),
linear-gradient(160deg, #080b10 0%, #111827 56%, #07090d 100%) !important;
}
html body.page-id-1645 .dav-clean-service-copy,
html body.page-id-1160 .dav-clean-service-copy,
html body.page-id-1162 .dav-clean-service-copy,
html body.page-id-1164 .dav-clean-service-copy {
border-radius: 8px !important;
}
html body.page-id-1645 .dav-clean-service-copy h1,
html body.page-id-1160 .dav-clean-service-copy h1,
html body.page-id-1162 .dav-clean-service-copy h1,
html body.page-id-1164 .dav-clean-service-copy h1 {
font-size: 30px !important;
}
}
</style>
<?php
}
// DavRoofing: dark header only on service pages to match the premium service skin.
add_action('wp_footer', 'dav_roofing_service_dark_header_skin', 1003);
function dav_roofing_service_dark_header_skin() {
if (!is_page(array(1645, 1160, 1162, 1164, 1703, 1704, 1705))) {
return;
}
?>
<style id="dav-service-dark-header-skin-css">
html body.page-id-1645 .main-header,
html body.page-id-1160 .main-header,
html body.page-id-1162 .main-header,
html body.page-id-1164 .main-header,
html body.page-id-1645 .main-header .header-upper,
html body.page-id-1160 .main-header .header-upper,
html body.page-id-1162 .main-header .header-upper,
html body.page-id-1164 .main-header .header-upper,
html body.page-id-1645 .main-header .main-box,
html body.page-id-1160 .main-header .main-box,
html body.page-id-1162 .main-header .main-box,
html body.page-id-1164 .main-header .main-box {
background: #080b10 !important;
border-color: rgba(255,255,255,.08) !important;
box-shadow: none !important;
}
html body.page-id-1645 .main-header:after,
html body.page-id-1160 .main-header:after,
html body.page-id-1162 .main-header:after,
html body.page-id-1164 .main-header:after {
content: "";
position: absolute;
left: 0;
right: 0;
bottom: 0;
height: 1px;
background: linear-gradient(90deg, transparent, rgba(255,255,255,.16), transparent);
}
html body.page-id-1645 .main-menu .navigation > li > a,
html body.page-id-1160 .main-menu .navigation > li > a,
html body.page-id-1162 .main-menu .navigation > li > a,
html body.page-id-1164 .main-menu .navigation > li > a,
html body.page-id-1645 .main-header .nav-outer .navigation > li > a,
html body.page-id-1160 .main-header .nav-outer .navigation > li > a,
html body.page-id-1162 .main-header .nav-outer .navigation > li > a,
html body.page-id-1164 .main-header .nav-outer .navigation > li > a {
color: #f8fafc !important;
}
html body.page-id-1645 .main-menu .navigation > li:hover > a,
html body.page-id-1160 .main-menu .navigation > li:hover > a,
html body.page-id-1162 .main-menu .navigation > li:hover > a,
html body.page-id-1164 .main-menu .navigation > li:hover > a,
html body.page-id-1645 .main-menu .navigation > li.current > a,
html body.page-id-1160 .main-menu .navigation > li.current > a,
html body.page-id-1162 .main-menu .navigation > li.current > a,
html body.page-id-1164 .main-menu .navigation > li.current > a {
color: #ff4a3f !important;
}
html body.page-id-1645 .main-header .logo img,
html body.page-id-1160 .main-header .logo img,
html body.page-id-1162 .main-header .logo img,
html body.page-id-1164 .main-header .logo img {
background: #fff !important;
border-radius: 6px !important;
padding: 6px !important;
box-shadow: 0 10px 30px rgba(0,0,0,.24) !important;
}
html body.page-id-1645 .main-header .outer-box .theme-btn,
html body.page-id-1160 .main-header .outer-box .theme-btn,
html body.page-id-1162 .main-header .outer-box .theme-btn,
html body.page-id-1164 .main-header .outer-box .theme-btn,
html body.page-id-1645 .main-header a[href*="contact"].theme-btn,
html body.page-id-1160 .main-header a[href*="contact"].theme-btn,
html body.page-id-1162 .main-header a[href*="contact"].theme-btn,
html body.page-id-1164 .main-header a[href*="contact"].theme-btn {
background: transparent !important;
color: #fff !important;
border-color: #ff4a3f !important;
}
html body.page-id-1645 .mobile-nav-toggler,
html body.page-id-1160 .mobile-nav-toggler,
html body.page-id-1162 .mobile-nav-toggler,
html body.page-id-1164 .mobile-nav-toggler,
html body.page-id-1645 .nav-toggler,
html body.page-id-1160 .nav-toggler,
html body.page-id-1162 .nav-toggler,
html body.page-id-1164 .nav-toggler {
color: #fff !important;
}
html body.page-id-1645 .mobile-nav-toggler .icon-bar,
html body.page-id-1160 .mobile-nav-toggler .icon-bar,
html body.page-id-1162 .mobile-nav-toggler .icon-bar,
html body.page-id-1164 .mobile-nav-toggler .icon-bar,
html body.page-id-1645 .nav-toggler span,
html body.page-id-1160 .nav-toggler span,
html body.page-id-1162 .nav-toggler span,
html body.page-id-1164 .nav-toggler span {
background: #fff !important;
}
</style>
<?php
}
// DavRoofing: fix oversized white logo block caused by dark service header override.
add_action('wp_footer', 'dav_roofing_service_dark_header_logo_fix', 1004);
function dav_roofing_service_dark_header_logo_fix() {
if (!is_page(array(1645, 1160, 1162, 1164, 1703, 1704, 1705))) {
return;
}
?>
<style id="dav-service-dark-header-logo-fix-css">
html body.page-id-1645 .main-header .logo-box,
html body.page-id-1160 .main-header .logo-box,
html body.page-id-1162 .main-header .logo-box,
html body.page-id-1164 .main-header .logo-box,
html body.page-id-1645 .main-header .logo,
html body.page-id-1160 .main-header .logo,
html body.page-id-1162 .main-header .logo,
html body.page-id-1164 .main-header .logo,
html body.page-id-1645 .main-header .sticky-header,
html body.page-id-1160 .main-header .sticky-header,
html body.page-id-1162 .main-header .sticky-header,
html body.page-id-1164 .main-header .sticky-header {
background: transparent !important;
}
html body.page-id-1645 .main-header .logo-box,
html body.page-id-1160 .main-header .logo-box,
html body.page-id-1162 .main-header .logo-box,
html body.page-id-1164 .main-header .logo-box,
html body.page-id-1645 .main-header .logo.pull-left,
html body.page-id-1160 .main-header .logo.pull-left,
html body.page-id-1162 .main-header .logo.pull-left,
html body.page-id-1164 .main-header .logo.pull-left {
width: auto !important;
min-width: 0 !important;
max-width: max-content !important;
flex: 0 0 auto !important;
padding-right: 0 !important;
}
html body.page-id-1645 .main-header .logo img,
html body.page-id-1160 .main-header .logo img,
html body.page-id-1162 .main-header .logo img,
html body.page-id-1164 .main-header .logo img {
width: 100px !important;
height: auto !important;
object-fit: contain !important;
}
@media (max-width: 991px) {
html body.page-id-1645 .main-header .inner-container,
html body.page-id-1160 .main-header .inner-container,
html body.page-id-1162 .main-header .inner-container,
html body.page-id-1164 .main-header .inner-container {
align-items: center !important;
}
html body.page-id-1645 .main-header .logo img,
html body.page-id-1160 .main-header .logo img,
html body.page-id-1162 .main-header .logo img,
html body.page-id-1164 .main-header .logo img {
width: 96px !important;
}
}
</style>
<?php
}
// DavRoofing: final bright premium skin for service pages, replacing the dark experiment.
add_action('wp_footer', 'dav_roofing_service_bright_premium_skin', 1006);
function dav_roofing_service_bright_premium_skin() {
if (!is_page(array(1645, 1160, 1162, 1164, 1703, 1704, 1705))) {
return;
}
?>
<style id="dav-service-bright-premium-skin-css">
html body.page-id-1645,
html body.page-id-1160,
html body.page-id-1162,
html body.page-id-1164 {
background: #ffffff !important;
color: #101828 !important;
}
html body.page-id-1645 .main-header,
html body.page-id-1160 .main-header,
html body.page-id-1162 .main-header,
html body.page-id-1164 .main-header,
html body.page-id-1645 .main-header .header-upper,
html body.page-id-1160 .main-header .header-upper,
html body.page-id-1162 .main-header .header-upper,
html body.page-id-1164 .main-header .header-upper,
html body.page-id-1645 .main-header .header-lower,
html body.page-id-1160 .main-header .header-lower,
html body.page-id-1162 .main-header .header-lower,
html body.page-id-1164 .main-header .header-lower,
html body.page-id-1645 .main-header .main-box,
html body.page-id-1160 .main-header .main-box,
html body.page-id-1162 .main-header .main-box,
html body.page-id-1164 .main-header .main-box,
html body.page-id-1645 .main-header .sticky-header,
html body.page-id-1160 .main-header .sticky-header,
html body.page-id-1162 .main-header .sticky-header,
html body.page-id-1164 .main-header .sticky-header {
background: #ffffff !important;
border-color: rgba(16,24,40,.08) !important;
box-shadow: 0 12px 35px rgba(16,24,40,.06) !important;
}
html body.page-id-1645 .main-header:after,
html body.page-id-1160 .main-header:after,
html body.page-id-1162 .main-header:after,
html body.page-id-1164 .main-header:after {
background: linear-gradient(90deg, transparent, rgba(16,24,40,.10), transparent) !important;
}
html body.page-id-1645 .main-header .logo-box,
html body.page-id-1160 .main-header .logo-box,
html body.page-id-1162 .main-header .logo-box,
html body.page-id-1164 .main-header .logo-box,
html body.page-id-1645 .main-header .logo,
html body.page-id-1160 .main-header .logo,
html body.page-id-1162 .main-header .logo,
html body.page-id-1164 .main-header .logo {
background: transparent !important;
}
html body.page-id-1645 .main-header .logo img,
html body.page-id-1160 .main-header .logo img,
html body.page-id-1162 .main-header .logo img,
html body.page-id-1164 .main-header .logo img {
background: transparent !important;
box-shadow: none !important;
padding: 0 !important;
border-radius: 0 !important;
}
html body.page-id-1645 .main-menu .navigation > li > a,
html body.page-id-1160 .main-menu .navigation > li > a,
html body.page-id-1162 .main-menu .navigation > li > a,
html body.page-id-1164 .main-menu .navigation > li > a,
html body.page-id-1645 .main-header .nav-outer .navigation > li > a,
html body.page-id-1160 .main-header .nav-outer .navigation > li > a,
html body.page-id-1162 .main-header .nav-outer .navigation > li > a,
html body.page-id-1164 .main-header .nav-outer .navigation > li > a {
color: #101828 !important;
}
html body.page-id-1645 .main-menu .navigation > li:hover > a,
html body.page-id-1160 .main-menu .navigation > li:hover > a,
html body.page-id-1162 .main-menu .navigation > li:hover > a,
html body.page-id-1164 .main-menu .navigation > li:hover > a,
html body.page-id-1645 .main-menu .navigation > li.current > a,
html body.page-id-1160 .main-menu .navigation > li.current > a,
html body.page-id-1162 .main-menu .navigation > li.current > a,
html body.page-id-1164 .main-menu .navigation > li.current > a {
color: #ef3b30 !important;
}
html body.page-id-1645 .main-header .outer-box .theme-btn,
html body.page-id-1160 .main-header .outer-box .theme-btn,
html body.page-id-1162 .main-header .outer-box .theme-btn,
html body.page-id-1164 .main-header .outer-box .theme-btn,
html body.page-id-1645 .main-header a[href*="contact"].theme-btn,
html body.page-id-1160 .main-header a[href*="contact"].theme-btn,
html body.page-id-1162 .main-header a[href*="contact"].theme-btn,
html body.page-id-1164 .main-header a[href*="contact"].theme-btn {
background: #ffffff !important;
color: #101828 !important;
border-color: #ef3b30 !important;
}
html body.page-id-1645 .mobile-nav-toggler,
html body.page-id-1160 .mobile-nav-toggler,
html body.page-id-1162 .mobile-nav-toggler,
html body.page-id-1164 .mobile-nav-toggler,
html body.page-id-1645 .nav-toggler,
html body.page-id-1160 .nav-toggler,
html body.page-id-1162 .nav-toggler,
html body.page-id-1164 .nav-toggler {
color: #101828 !important;
}
html body.page-id-1645 .mobile-nav-toggler .icon-bar,
html body.page-id-1160 .mobile-nav-toggler .icon-bar,
html body.page-id-1162 .mobile-nav-toggler .icon-bar,
html body.page-id-1164 .mobile-nav-toggler .icon-bar,
html body.page-id-1645 .nav-toggler span,
html body.page-id-1160 .nav-toggler span,
html body.page-id-1162 .nav-toggler span,
html body.page-id-1164 .nav-toggler span {
background: #101828 !important;
}
html body.page-id-1645 .sidebar-page-container,
html body.page-id-1160 .sidebar-page-container,
html body.page-id-1162 .sidebar-page-container,
html body.page-id-1164 .sidebar-page-container {
background:
radial-gradient(circle at 8% 8%, rgba(239,59,48,.10), transparent 30%),
radial-gradient(circle at 92% 20%, rgba(34,197,94,.08), transparent 28%),
linear-gradient(180deg, #ffffff 0%, #f5f7fb 100%) !important;
padding-top: 72px !important;
padding-bottom: 92px !important;
}
html body.page-id-1645 .sidebar-page-container:before,
html body.page-id-1160 .sidebar-page-container:before,
html body.page-id-1162 .sidebar-page-container:before,
html body.page-id-1164 .sidebar-page-container:before {
opacity: .20 !important;
background-image:
linear-gradient(rgba(16,24,40,.055) 1px, transparent 1px),
linear-gradient(90deg, rgba(16,24,40,.055) 1px, transparent 1px) !important;
}
html body.page-id-1645 .dav-clean-service,
html body.page-id-1160 .dav-clean-service,
html body.page-id-1162 .dav-clean-service,
html body.page-id-1164 .dav-clean-service {
color: #101828 !important;
}
html body.page-id-1645 .dav-clean-service-copy,
html body.page-id-1160 .dav-clean-service-copy,
html body.page-id-1162 .dav-clean-service-copy,
html body.page-id-1164 .dav-clean-service-copy,
html body.page-id-1645 .dav-clean-process article,
html body.page-id-1160 .dav-clean-process article,
html body.page-id-1162 .dav-clean-process article,
html body.page-id-1164 .dav-clean-process article,
html body.page-id-1645 .dav-clean-service-cta,
html body.page-id-1160 .dav-clean-service-cta,
html body.page-id-1162 .dav-clean-service-cta,
html body.page-id-1164 .dav-clean-service-cta {
background: rgba(255,255,255,.96) !important;
border: 1px solid rgba(16,24,40,.10) !important;
box-shadow: 0 26px 70px rgba(16,24,40,.12) !important;
}
html body.page-id-1645 .dav-clean-service-media,
html body.page-id-1160 .dav-clean-service-media,
html body.page-id-1162 .dav-clean-service-media,
html body.page-id-1164 .dav-clean-service-media {
background: #ffffff !important;
border: 1px solid rgba(16,24,40,.12) !important;
box-shadow: 0 28px 75px rgba(16,24,40,.16) !important;
}
html body.page-id-1645 .dav-clean-service-media img,
html body.page-id-1160 .dav-clean-service-media img,
html body.page-id-1162 .dav-clean-service-media img,
html body.page-id-1164 .dav-clean-service-media img {
filter: saturate(1.04) contrast(1.02) brightness(1) !important;
}
html body.page-id-1645 .dav-clean-service-copy h1,
html body.page-id-1160 .dav-clean-service-copy h1,
html body.page-id-1162 .dav-clean-service-copy h1,
html body.page-id-1164 .dav-clean-service-copy h1,
html body.page-id-1645 .dav-clean-process p,
html body.page-id-1160 .dav-clean-process p,
html body.page-id-1162 .dav-clean-process p,
html body.page-id-1164 .dav-clean-process p,
html body.page-id-1645 .dav-clean-service-cta h2,
html body.page-id-1160 .dav-clean-service-cta h2,
html body.page-id-1162 .dav-clean-service-cta h2,
html body.page-id-1164 .dav-clean-service-cta h2 {
color: #07111f !important;
text-shadow: none !important;
}
html body.page-id-1645 .dav-clean-lead,
html body.page-id-1160 .dav-clean-lead,
html body.page-id-1162 .dav-clean-lead,
html body.page-id-1164 .dav-clean-lead,
html body.page-id-1645 .dav-clean-service-cta p,
html body.page-id-1160 .dav-clean-service-cta p,
html body.page-id-1162 .dav-clean-service-cta p,
html body.page-id-1164 .dav-clean-service-cta p {
color: #475467 !important;
}
html body.page-id-1645 .dav-clean-eyebrow,
html body.page-id-1160 .dav-clean-eyebrow,
html body.page-id-1162 .dav-clean-eyebrow,
html body.page-id-1164 .dav-clean-eyebrow,
html body.page-id-1645 .dav-clean-service-cta span,
html body.page-id-1160 .dav-clean-service-cta span,
html body.page-id-1162 .dav-clean-service-cta span,
html body.page-id-1164 .dav-clean-service-cta span {
color: #ef3b30 !important;
}
html body.page-id-1645 .dav-clean-benefits span,
html body.page-id-1160 .dav-clean-benefits span,
html body.page-id-1162 .dav-clean-benefits span,
html body.page-id-1164 .dav-clean-benefits span {
color: #101828 !important;
background: #f8fafc !important;
border-color: #e4e7ec !important;
}
html body.page-id-1645 .dav-clean-benefits b,
html body.page-id-1160 .dav-clean-benefits b,
html body.page-id-1162 .dav-clean-benefits b,
html body.page-id-1164 .dav-clean-benefits b {
background: #dcfae6 !important;
color: #16a34a !important;
box-shadow: none !important;
}
html body.page-id-1645 .dav-clean-primary,
html body.page-id-1160 .dav-clean-primary,
html body.page-id-1162 .dav-clean-primary,
html body.page-id-1164 .dav-clean-primary,
html body.page-id-1645 .dav-clean-service-cta a,
html body.page-id-1160 .dav-clean-service-cta a,
html body.page-id-1162 .dav-clean-service-cta a,
html body.page-id-1164 .dav-clean-service-cta a {
background: linear-gradient(135deg, #ff4438 0%, #e0271f 100%) !important;
box-shadow: 0 18px 42px rgba(239,59,48,.24) !important;
color: #ffffff !important;
}
html body.page-id-1645 .dav-clean-whatsapp,
html body.page-id-1160 .dav-clean-whatsapp,
html body.page-id-1162 .dav-clean-whatsapp,
html body.page-id-1164 .dav-clean-whatsapp {
background: linear-gradient(135deg, #25d366 0%, #16a34a 100%) !important;
box-shadow: 0 18px 42px rgba(34,197,94,.22) !important;
color: #ffffff !important;
}
@media (max-width: 991px) {
html body.page-id-1645 .sidebar-page-container,
html body.page-id-1160 .sidebar-page-container,
html body.page-id-1162 .sidebar-page-container,
html body.page-id-1164 .sidebar-page-container {
padding-top: 24px !important;
padding-bottom: 54px !important;
background: linear-gradient(180deg, #ffffff 0%, #f4f7fb 100%) !important;
}
html body.page-id-1645 .main-header,
html body.page-id-1160 .main-header,
html body.page-id-1162 .main-header,
html body.page-id-1164 .main-header {
background: #ffffff !important;
}
}
</style>
<?php
}
// DavRoofing: replace old floating phone bar with phone + WhatsApp action buttons.
add_action('wp_footer', 'dav_roofing_floating_contact_actions', 1007);
function dav_roofing_floating_contact_actions() {
if (is_admin()) {
return;
}
?>
<div class="dav-floating-contact-actions" aria-label="Contact rapid DavRoofing">
<a class="dav-floating-action dav-floating-action-phone" href="tel:+40754796389" aria-label="Suna DavRoofing la +40 754 796 389">
<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.3-.3.75-.39 1.14-.26 1.25.41 2.6.63 3.95.63.61 0 1.1.49 1.1 1.1v3.48c0 .61-.49 1.1-1.1 1.1C10.61 21.73 2.27 13.39 2.27 3.5c0-.61.49-1.1 1.1-1.1h3.49c.61 0 1.1.49 1.1 1.1 0 1.35.21 2.7.63 3.95.12.39.04.83-.27 1.14l-1.7 2.2z"/></svg>
<span>+40 754 796 389</span>
</a>
<a class="dav-floating-action dav-floating-action-whatsapp" href="https://wa.me/40754796389" target="_blank" rel="noopener" aria-label="Scrie pe WhatsApp DavRoofing">
<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M12.04 2.25c-5.33 0-9.67 4.28-9.67 9.55 0 1.68.45 3.33 1.3 4.78L2.3 21.75l5.33-1.35a9.84 9.84 0 0 0 4.41 1.04c5.33 0 9.67-4.28 9.67-9.55s-4.34-9.64-9.67-9.64zm0 17.55c-1.42 0-2.8-.38-4.01-1.1l-.29-.17-3.16.8.82-3.02-.2-.31a7.74 7.74 0 0 1-1.2-4.2c0-4.36 3.61-7.91 8.04-7.91s8.04 3.55 8.04 7.91-3.61 8-8.04 8zm4.42-5.92c-.24-.12-1.42-.69-1.64-.77-.22-.08-.38-.12-.54.12-.16.24-.62.77-.76.93-.14.16-.28.18-.52.06-.24-.12-1.01-.37-1.92-1.17-.71-.63-1.19-1.41-1.33-1.65-.14-.24-.02-.37.1-.49.11-.11.24-.28.36-.42.12-.14.16-.24.24-.4.08-.16.04-.3-.02-.42-.06-.12-.54-1.29-.74-1.77-.19-.46-.39-.4-.54-.41h-.46c-.16 0-.42.06-.64.3-.22.24-.84.81-.84 1.97s.86 2.29.98 2.45c.12.16 1.69 2.55 4.1 3.57.57.25 1.02.4 1.37.51.58.18 1.1.16 1.51.1.46-.07 1.42-.57 1.62-1.13.2-.56.2-1.04.14-1.13-.06-.1-.22-.16-.46-.28z"/></svg>
<span>WhatsApp</span>
</a>
</div>
<style id="dav-floating-contact-actions-css">
.dav-floating-call {
display: none !important;
visibility: hidden !important;
pointer-events: none !important;
}
.dav-floating-contact-actions {
position: fixed;
right: 18px;
bottom: 22px;
z-index: 99999;
display: flex;
align-items: center;
gap: 10px;
font-family: inherit;
}
.dav-floating-action {
min-height: 52px;
border-radius: 8px;
display: inline-flex;
align-items: center;
justify-content: center;
gap: 10px;
padding: 0 18px;
color: #fff !important;
text-decoration: none !important;
font-weight: 900;
letter-spacing: .2px;
line-height: 1;
box-shadow: 0 16px 40px rgba(16,24,40,.18);
transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.dav-floating-action:hover {
transform: translateY(-2px);
filter: saturate(1.05);
}
.dav-floating-action svg {
width: 21px;
height: 21px;
flex: 0 0 21px;
fill: currentColor;
}
.dav-floating-action-phone {
background: linear-gradient(135deg, #ff4438 0%, #e0271f 100%) !important;
box-shadow: 0 16px 38px rgba(239,59,48,.28);
}
.dav-floating-action-whatsapp {
background: linear-gradient(135deg, #25d366 0%, #16a34a 100%) !important;
box-shadow: 0 16px 38px rgba(34,197,94,.25);
}
@media (max-width: 767px) {
.dav-floating-contact-actions {
left: 12px;
right: 12px;
bottom: 12px;
display: grid;
grid-template-columns: 1fr 1fr;
gap: 8px;
}
.dav-floating-action {
min-height: 48px;
padding: 0 10px;
border-radius: 8px;
font-size: 13px;
letter-spacing: 0;
box-shadow: 0 12px 30px rgba(16,24,40,.18);
}
.dav-floating-action svg {
width: 19px;
height: 19px;
flex-basis: 19px;
}
.dav-floating-action-phone span {
font-size: 12px;
white-space: nowrap;
}
}
</style>
<?php
}
// DavRoofing: hide legacy Elementor gallery/photos under Tigla Metalica cost section.
add_action('wp_footer', 'dav_roofing_hide_tigla_metalica_legacy_gallery', 1008);
function dav_roofing_hide_tigla_metalica_legacy_gallery() {
if (!is_page(1160)) {
return;
}
?>
<style id="dav-hide-tigla-metalica-legacy-gallery-css">
html body.page-id-1160 .elementor-image-gallery,
html body.page-id-1160 .elementor-widget-image-gallery,
html body.page-id-1160 figure.gallery-item,
html body.page-id-1160 .gallery-item,
html body.page-id-1160 .gallery-icon {
display: none !important;
visibility: hidden !important;
height: 0 !important;
min-height: 0 !important;
margin: 0 !important;
padding: 0 !important;
overflow: hidden !important;
}
</style>
<script id="dav-hide-tigla-metalica-legacy-gallery-js">
document.addEventListener('DOMContentLoaded', function () {
if (!document.body.classList.contains('page-id-1160')) return;
document.querySelectorAll('.elementor-image-gallery, .elementor-widget-image-gallery, figure.gallery-item, .gallery-item, .gallery-icon').forEach(function (el) {
el.remove();
});
});
</script>
<?php
}
// DavRoofing: mobile floating contact buttons as compact vertical icons.
add_action('wp_footer', 'dav_roofing_mobile_floating_contact_icons', 1009);
function dav_roofing_mobile_floating_contact_icons() {
if (is_admin()) {
return;
}
?>
<style id="dav-mobile-floating-contact-icons-css">
@media (max-width: 767px) {
.dav-floating-contact-actions {
left: auto !important;
right: 14px !important;
bottom: 18px !important;
width: auto !important;
display: flex !important;
flex-direction: column !important;
align-items: flex-end !important;
gap: 10px !important;
grid-template-columns: none !important;
}
.dav-floating-action {
width: 52px !important;
height: 52px !important;
min-width: 52px !important;
min-height: 52px !important;
padding: 0 !important;
border-radius: 999px !important;
gap: 0 !important;
box-shadow: 0 14px 32px rgba(16,24,40,.24) !important;
}
.dav-floating-action span {
position: absolute !important;
width: 1px !important;
height: 1px !important;
padding: 0 !important;
margin: -1px !important;
overflow: hidden !important;
clip: rect(0, 0, 0, 0) !important;
white-space: nowrap !important;
border: 0 !important;
}
.dav-floating-action svg {
width: 23px !important;
height: 23px !important;
flex: 0 0 23px !important;
}
}
</style>
<?php
}
// DavRoofing: mobile floating contact buttons with short labels.
add_action('wp_footer', 'dav_roofing_mobile_floating_contact_labels', 1010);
function dav_roofing_mobile_floating_contact_labels() {
if (is_admin()) {
return;
}
?>
<style id="dav-mobile-floating-contact-labels-css">
@media (max-width: 767px) {
.dav-floating-contact-actions {
right: 12px !important;
bottom: 18px !important;
gap: 8px !important;
align-items: flex-end !important;
}
.dav-floating-action {
width: auto !important;
min-width: 104px !important;
height: 46px !important;
min-height: 46px !important;
padding: 0 13px !important;
border-radius: 999px !important;
gap: 7px !important;
justify-content: center !important;
}
.dav-floating-action span {
position: static !important;
width: auto !important;
height: auto !important;
padding: 0 !important;
margin: 0 !important;
overflow: visible !important;
clip: auto !important;
white-space: nowrap !important;
border: 0 !important;
font-size: 13px !important;
line-height: 1 !important;
font-weight: 900 !important;
}
.dav-floating-action-phone span {
font-size: 0 !important;
}
.dav-floating-action-phone span:after {
content: "Suna";
font-size: 13px !important;
}
.dav-floating-action svg {
width: 19px !important;
height: 19px !important;
flex: 0 0 19px !important;
}
}
</style>
<?php
}
// DavRoofing: remove hyphen from visible footer brand text.
add_action('wp_footer', 'dav_roofing_footer_remove_brand_hyphen', 1011);
function dav_roofing_footer_remove_brand_hyphen() {
if (is_admin()) {
return;
}
?>
<script id="dav-footer-brand-hyphen-fix">
document.addEventListener('DOMContentLoaded', function () {
document.querySelectorAll('.main-footer, footer').forEach(function (footer) {
footer.querySelectorAll('*').forEach(function (node) {
node.childNodes.forEach(function (child) {
if (child.nodeType === Node.TEXT_NODE && child.nodeValue.indexOf('DavRoofing') !== -1) {
child.nodeValue = child.nodeValue.replace(/DavRoofing/g, 'DavRoofing');
}
});
});
});
});
</script>
<?php
}
// DavRoofing: final footer brand spelling as DavRoofing.
add_action('wp_footer', 'dav_roofing_footer_join_brand_name', 1012);
function dav_roofing_footer_join_brand_name() {
if (is_admin()) {
return;
}
?>
<script id="dav-footer-brand-joined-fix">
document.addEventListener('DOMContentLoaded', function () {
document.querySelectorAll('.main-footer, footer').forEach(function (footer) {
footer.querySelectorAll('*').forEach(function (node) {
node.childNodes.forEach(function (child) {
if (child.nodeType === Node.TEXT_NODE && /Dav[- ]Roofing/.test(child.nodeValue)) {
child.nodeValue = child.nodeValue.replace(/Dav[- ]Roofing/g, 'DavRoofing');
}
});
});
});
});
</script>
<?php
}
// DavRoofing: update only homepage hero CTA button labels.
add_action('wp_footer', 'dav_roofing_home_hero_cta_labels', 1013);
function dav_roofing_home_hero_cta_labels() {
if (!is_front_page() && !is_home()) {
return;
}
?>
<script id="dav-home-hero-cta-labels-js">
document.addEventListener('DOMContentLoaded', function () {
var hero = document.querySelector('.dav-home-hero, .dav-hero-mobile-split, .dav-hero, .hero-section, .banner-section') || document.body;
var links = Array.prototype.slice.call(hero.querySelectorAll('a'));
links.forEach(function (link) {
var text = (link.textContent || '').replace(/\s+/g, ' ').trim().toLowerCase();
var href = (link.getAttribute('href') || '').toLowerCase();
if (href.indexOf('tel:') === 0 || text === 'whatsapp rapid') {
return;
}
if (text.indexOf('solicita serviciile') !== -1 || text.indexOf('cere oferta') !== -1 || text.indexOf('suna') !== -1) {
if (link.closest('.dav-home-hero, .dav-hero-mobile-split, .dav-hero, .hero-section, .banner-section')) {
link.textContent = 'Suna acum';
}
}
if (text.indexOf('whatsapp') !== -1 && link.closest('.dav-home-hero, .dav-hero-mobile-split, .dav-hero, .hero-section, .banner-section')) {
link.textContent = 'Trimite poze pe WhatsApp';
}
});
});
</script>
<?php
}
// DavRoofing: force visible homepage hero CTA labels.
add_action('wp_footer', 'dav_roofing_force_visible_home_hero_cta_labels', 1014);
function dav_roofing_force_visible_home_hero_cta_labels() {
if (!is_front_page() && !is_home()) {
return;
}
?>
<script id="dav-home-hero-visible-cta-labels-js">
(function () {
function relabelHeroButtons() {
var candidates = Array.prototype.slice.call(document.querySelectorAll('a'))
.filter(function (a) {
var r = a.getBoundingClientRect();
var text = (a.textContent || '').replace(/\s+/g, ' ').trim().toLowerCase();
return r.width > 80 && r.height > 30 && r.top >= 100 && r.top < Math.min(window.innerHeight, 920) &&
(text.indexOf('solicita') !== -1 || text.indexOf('serviciile') !== -1 || text.indexOf('whatsapp') !== -1 || text.indexOf('suna') !== -1 || text.indexOf('oferta') !== -1);
})
.sort(function (a, b) {
var ar = a.getBoundingClientRect();
var br = b.getBoundingClientRect();
return ar.top === br.top ? ar.left - br.left : ar.top - br.top;
});
var heroCtas = candidates.filter(function (a) {
var text = (a.textContent || '').replace(/\s+/g, ' ').trim().toLowerCase();
return text.indexOf('solicita serviciile') !== -1 || text.indexOf('whatsapp rapid') !== -1;
});
if (heroCtas.length < 2) {
heroCtas = candidates.slice(0, 2);
}
if (heroCtas[0]) heroCtas[0].textContent = 'Suna acum';
if (heroCtas[1]) heroCtas[1].textContent = 'Trimite poze pe WhatsApp';
}
document.addEventListener('DOMContentLoaded', relabelHeroButtons);
window.addEventListener('load', relabelHeroButtons);
setTimeout(relabelHeroButtons, 700);
})();
</script>
<?php
} add_filter('the_content', 'dav_roofing_service_subsection_photos', 1000);
function dav_roofing_service_subsection_photos($content) {
if (is_admin() || !is_page(array(1645, 1160, 1162, 1164, 1703, 1704, 1705)) || !in_the_loop() || !is_main_query()) {
return $content;
}
if (strpos($content, 'dav-clean-service') === false || strpos($content, 'dav-service-photo-strip') !== false) {
return $content;
}
$page_id = (int) get_queried_object_id();
$photos = array(
1645 => array(
array('https://dav-roofing.ro/wp-content/uploads/2026/06/dav-service-form-roofer-v2.webp', 'Montaj tabla faltuita pe acoperis metalic'),
array('https://dav-roofing.ro/wp-content/uploads/2024/04/10-2-1-1024x577.png', 'Detaliu acoperis din tabla faltuita'),
array('https://dav-roofing.ro/wp-content/uploads/2024/04/20-2-1-1024x577.png', 'Lucrare acoperis finalizata'),
),
1160 => array(
array('https://dav-roofing.ro/wp-content/uploads/2026/06/dav-home-hero-branded-final.webp', 'Acoperis metalic montat corect'),
array('https://dav-roofing.ro/wp-content/uploads/2024/04/1-2-2-1024x577.png', 'Tabla metalica pentru acoperis modern'),
array('https://dav-roofing.ro/wp-content/uploads/2024/04/18-2-1-1024x577.png', 'Detaliu montaj tigla metalica'),
),
1162 => array(
array('https://dav-roofing.ro/wp-content/uploads/2026/06/dav-blog-3.webp', 'Acoperis din tigla ceramica'),
array('https://dav-roofing.ro/wp-content/uploads/2024/04/16-2-1-1024x577.png', 'Detalii pentru tigla ceramica'),
array('https://dav-roofing.ro/wp-content/uploads/2024/04/17-2-1-1024x577.png', 'Montaj acoperis cu tigla'),
),
1164 => array(
array('https://dav-roofing.ro/wp-content/uploads/2026/06/dav-blog-2.webp', 'Acoperis pregatit pentru panouri fotovoltaice'),
array('https://dav-roofing.ro/wp-content/uploads/2026/06/dav-home-hero-branded-final.webp', 'Structura metalica solida pentru panouri'),
array('https://dav-roofing.ro/wp-content/uploads/2024/04/20-2-1-1024x577.png', 'Detalii acoperis si tinichigerie'),
),
);
if (empty($photos[$page_id])) {
return $content;
}
ob_start();
?>
<section class="dav-service-photo-strip" aria-label="Poze din lucrari DavRoofing">
<div class="dav-service-photo-heading">
<span>Lucrari DavRoofing</span>
<h2>Detalii din lucrari similare</h2>
<p>Imagini utile pentru materiale, finisaje si detalii de montaj, ca sa vezi mai clar cum arata lucrarea finala.</p>
</div>
<div class="dav-service-photo-grid">
<?php foreach ($photos[$page_id] as $photo) : ?>
<figure class="dav-service-photo-card">
<img src="<?php echo esc_url(//dav-roofing.ro/wp-content/themes/roonix/$photo[0]); ?>" alt="<?php echo esc_attr($photo[1]); ?>" loading="lazy" decoding="async">
</figure>
<?php endforeach; ?>
</div>
</section>
<?php
return $content . ob_get_clean();
}
add_action('wp_footer', 'dav_roofing_service_subsection_photos_styles', 1018);
function dav_roofing_service_subsection_photos_styles() {
if (!is_page(array(1645, 1160, 1162, 1164, 1703, 1704, 1705))) {
return;
}
?>
<style id="dav-service-subphotos-css">
.dav-service-photo-strip {
max-width: 1180px !important;
margin: 34px auto 72px !important;
padding: 0 18px !important;
}
.dav-service-photo-heading {
max-width: 760px !important;
margin: 0 auto 22px !important;
text-align: center !important;
}
.dav-service-photo-heading span {
display: inline-block !important;
margin-bottom: 10px !important;
color: #ef3b2f !important;
font-size: 13px !important;
line-height: 1.2 !important;
font-weight: 900 !important;
letter-spacing: .18em !important;
text-transform: uppercase !important;
}
.dav-service-photo-heading h2 {
margin: 0 0 10px !important;
color: #111827 !important;
font-size: clamp(30px, 4vw, 52px) !important;
line-height: 1.02 !important;
font-weight: 950 !important;
letter-spacing: 0 !important;
}
.dav-service-photo-heading p {
margin: 0 auto !important;
max-width: 680px !important;
color: #475569 !important;
font-size: 17px !important;
line-height: 1.65 !important;
}
.dav-service-photo-grid {
display: grid !important;
grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
gap: 18px !important;
}
.dav-service-photo-card {
margin: 0 !important;
overflow: hidden !important;
border: 1px solid rgba(17, 24, 39, .10) !important;
border-radius: 8px !important;
background: #ffffff !important;
box-shadow: 0 18px 46px rgba(15, 23, 42, .10) !important;
aspect-ratio: 16 / 10 !important;
}
.dav-service-photo-card img {
display: block !important;
width: 100% !important;
height: 100% !important;
object-fit: cover !important;
filter: none !important;
transform: scale(1.01) !important;
}
@media (max-width: 900px) {
.dav-service-photo-strip {
margin: 26px auto 52px !important;
padding: 0 14px !important;
}
.dav-service-photo-grid {
grid-template-columns: 1fr !important;
gap: 14px !important;
}
.dav-service-photo-heading {
text-align: left !important;
margin-bottom: 18px !important;
}
.dav-service-photo-heading h2 {
font-size: 32px !important;
}
.dav-service-photo-heading p {
font-size: 15px !important;
line-height: 1.55 !important;
}
.dav-service-photo-card {
aspect-ratio: 4 / 3 !important;
}
}
</style>
<?php
} add_action('wp_footer', 'dav_roofing_service_photo_crop_polish', 1020);
function dav_roofing_service_photo_crop_polish() {
if (!is_page(array(1645, 1160, 1162, 1164, 1703, 1704, 1705))) {
return;
}
?>
<style id="dav-service-photo-crop-polish-css">
.dav-service-photo-card img {
object-position: center 42% !important;
transform: scale(1.045) !important;
}
.dav-service-photo-card:nth-child(3) img {
object-position: center bottom !important;
transform: scale(1.08) !important;
}
@media (max-width: 900px) {
.dav-service-photo-card img {
transform: scale(1.03) !important;
}
.dav-service-photo-card:nth-child(3) img {
transform: scale(1.06) !important;
}
}
</style>
<?php
} add_filter('the_content', 'dav_roofing_restore_original_service_galleries', 1002);
function dav_roofing_restore_original_service_galleries($content) {
if (is_admin() || !is_page(array(1645, 1160, 1162, 1164, 1703, 1704, 1705)) || !in_the_loop() || !is_main_query()) {
return $content;
}
$page_id = (int) get_queried_object_id();
$files = array(
1645 => array('26-3.png','25-3.png','24-3.png','23-3.png','22-3.png','21-3.png','20-3.png','19-3.png','18-3.png','17-3.png','16-3.png','15-3.png','14-3.png','13-3.png','12-3.png','11-3.png','10-3.png','9-3.png','8-3.png','7-3.png','6-3-1.png','5-3-1.png','4-3-1.png','3-3-1.png','2-3-1.png','1-3-1.png'),
1160 => array('2-2-2.png','3-2-2.png','4-2-2.png','5-2-1.png','6-2-1.png','7-2-1.png','8-2-1.png','10-2-1.png','11-2-1.png','12-2-1.png','13-2-1.png','14-2-1.png','15-2-1.png','18-2-1.png','19-2-1.png','20-2-1.png','22-2-1.png','23-2-1.png','24-2-1.png','25-2-1.png','26-2-1.png','27-2-1.png','28-2-1.png','29-1-1.png','30-1-1.png','31-1-1.png','32-1-1.png','33-1-1.png','34-1-1.png','35-1-1.png','36-1-1.png','37-1-1.png','38-1-1.png','40-1-1.png','41-1-1.png','42-1-1.png','43-1-1.png','44-1-1.png','45-1-1.png','46-1-1.png','47-1-1.png','48-1.png','49-1.png','51-1.png','50-1.png','52.png','53.png','54.png','55.png'),
1162 => array('1-4.png','2-7.png','3-4.png','4-3.png','5-3.png','6-3.png','7-2.png','8-1-1.png','9-1-1.png','10-1-1.png','11-1-1.png','12-1-1.png','13-1-1.png','14-1-1.png','15-1.png','16-1.png','17-1.png','18-1.png','19-1.png','20-1.png','21-1.png','22-1.png','23-1.png','24-1.png','25-1-1.png','26-1.png','27-1-1.png','28-1.png','1-1-2.png','2-1-2.png','3-1-2.png','4-1-1.png','5-1-1.png','6-1-1.png','7-1.png','8-1.png','9-1.png','10-1.png','11-1.png','12-1.png','13-1.png','14-1.png','15-1-1.png','16-1-1.png','17-1-1.png','19-1-1.png','20-1-1.png','21-1-1.png','22-1-1.png','23-1-1.png','24-1-1.png','26-1-1.png','28-1-1.png','29-1.png','30.png','31.png','32.png','33.png','34.png','35-1.png','37-1.png','36-1.png','38-1.png','39-1.png','40-1.png','41.png','42.png','43-1.png','44-1.png','45-1.png','46-1.png','47.png'),
1164 => array('1.png','2.png','3.png','4.png','5.png','6.png','7.png','8.png','9-2.png','10.png','11.png','12.png','13.png','14.png','15.png','16.png','17.png','19-2.png','20.png','21.png'),
);
if (empty($files[$page_id])) {
return $content;
}
$content = preg_replace('/<section class="dav-service-photo-strip"[\s\S]*?<\/section>/i', '', $content);
$base_url = 'https://dav-roofing.ro/wp-content/uploads/2024/04/';
ob_start();
?>
<section class="dav-service-photo-strip dav-original-service-gallery" aria-label="Poze originale din lucrari DavRoofing">
<div class="dav-service-photo-heading">
<span>Lucrari DavRoofing</span>
<h2>Poze din lucrarile noastre</h2>
<p>Am pus inapoi imaginile originale din galeriile vechi ale serviciilor, pastrate intr-un layout mai curat si mai rapid.</p>
</div>
<div class="dav-service-photo-grid dav-original-service-grid">
<?php foreach ($files[$page_id] as $index => $file) :
$thumb = preg_replace('/\.png$/', '-600x338.png', $file);
$url = $base_url . $thumb;
$full = $base_url . $file;
?>
<figure class="dav-service-photo-card dav-original-photo-card">
<a href="<?php echo esc_url(//dav-roofing.ro/wp-content/themes/roonix/$full); ?>" target="_blank" rel="noopener" aria-label="Deschide poza lucrare DavRoofing">
<img src="<?php echo esc_url(//dav-roofing.ro/wp-content/themes/roonix/$url); ?>" alt="Poza lucrare DavRoofing <?php echo esc_attr($index + 1); ?>" loading="<?php echo $index < 4 ? 'eager' : 'lazy'; ?>" decoding="async">
</a>
</figure>
<?php endforeach; ?>
</div>
</section>
<?php
return $content . ob_get_clean();
}
add_action('wp_footer', 'dav_roofing_original_service_gallery_styles', 1023);
function dav_roofing_original_service_gallery_styles() {
if (!is_page(array(1645, 1160, 1162, 1164, 1703, 1704, 1705))) {
return;
}
?>
<style id="dav-original-service-gallery-css">
.dav-original-service-gallery {
margin-top: 42px !important;
}
.dav-original-service-grid {
grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
gap: 14px !important;
}
.dav-original-photo-card {
aspect-ratio: 16 / 10 !important;
box-shadow: 0 14px 34px rgba(15, 23, 42, .09) !important;
}
.dav-original-photo-card a {
display: block !important;
width: 100% !important;
height: 100% !important;
}
.dav-original-service-grid .dav-original-photo-card img {
width: 100% !important;
height: 100% !important;
object-fit: cover !important;
object-position: center 42% !important;
filter: none !important;
transform: scale(1.015) !important;
}
@media (max-width: 980px) {
.dav-original-service-grid {
grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}
}
@media (max-width: 620px) {
.dav-original-service-gallery {
margin-top: 28px !important;
}
.dav-original-service-grid {
grid-template-columns: 1fr !important;
gap: 12px !important;
}
.dav-original-photo-card {
aspect-ratio: 16 / 10 !important;
}
}
</style>
<?php
} add_action('wp_footer', 'dav_roofing_final_contact_button_labels', 1055);
function dav_roofing_final_contact_button_labels() {
if (is_admin()) {
return;
}
?>
<style id="dav-final-contact-button-labels-css">
.dav-floating-action-phone span,
a[href^="tel:"] span {
font-size: inherit !important;
}
@media (max-width: 767px) {
.dav-floating-action-phone {
min-width: 126px !important;
}
.dav-floating-action-whatsapp {
min-width: 218px !important;
}
.dav-floating-action-phone span,
.dav-floating-action-whatsapp span {
font-size: 0 !important;
}
.dav-floating-action-phone span:after {
content: "Suna acum" !important;
font-size: 13px !important;
line-height: 1 !important;
}
.dav-floating-action-whatsapp span:after {
content: "Trimite poze pe WhatsApp" !important;
font-size: 12px !important;
line-height: 1 !important;
white-space: nowrap !important;
}
}
</style>
<script id="dav-final-contact-button-labels-js">
(function () {
function setLabel(link, text) {
if (!link) return;
var span = link.querySelector('span');
if (span) {
span.textContent = text;
} else {
Array.prototype.slice.call(link.childNodes).forEach(function (node) {
if (node.nodeType === 3) node.nodeValue = '';
});
link.appendChild(document.createTextNode(text));
}
link.setAttribute('aria-label', text + ' DavRoofing');
}
function relabelContactButtons() {
document.querySelectorAll('a[href^="tel:"]').forEach(function (link) {
setLabel(link, 'Suna acum');
});
document.querySelectorAll('.dav-floating-call').forEach(function (link) {
link.textContent = 'Suna acum';
link.setAttribute('aria-label', 'Suna acum DavRoofing');
});
document.querySelectorAll('a[href*="wa.me/40754796389"], a[href*="api.whatsapp.com"], a[href*="whatsapp"]').forEach(function (link) {
setLabel(link, 'Trimite poze pe WhatsApp');
});
document.querySelectorAll('.dav-hero-btn.whatsapp, .dav-mobile-cta-green, .dav-mobile-hero-actions a.green, .dav-clean-whatsapp, .dav-service-page-actions a.green, .dav-contact-quick a[href*="wa.me"]').forEach(function (link) {
setLabel(link, 'Trimite poze pe WhatsApp');
});
document.querySelectorAll('.dav-hero-btn.primary, .dav-mobile-cta-red, .dav-mobile-hero-actions a.red').forEach(function (link) {
setLabel(link, 'Suna acum');
});
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', relabelContactButtons);
} else {
relabelContactButtons();
}
window.addEventListener('load', relabelContactButtons);
setTimeout(relabelContactButtons, 700);
})();
</script>
<?php
} add_action('wp_footer', 'dav_roofing_floating_whatsapp_only', 1060);
function dav_roofing_floating_whatsapp_only() {
if (is_admin()) {
return;
}
?>
<style id="dav-floating-whatsapp-only-css">
.dav-floating-action-phone,
.dav-floating-call {
display: none !important;
visibility: hidden !important;
pointer-events: none !important;
}
.dav-floating-contact-actions {
width: auto !important;
grid-template-columns: 1fr !important;
}
.dav-floating-action-whatsapp {
min-width: 270px !important;
justify-content: center !important;
}
@media (max-width: 767px) {
.dav-floating-contact-actions {
left: auto !important;
right: 12px !important;
bottom: 18px !important;
width: auto !important;
display: flex !important;
flex-direction: column !important;
align-items: flex-end !important;
gap: 0 !important;
}
.dav-floating-action-whatsapp {
width: auto !important;
min-width: 218px !important;
height: 46px !important;
min-height: 46px !important;
padding: 0 15px !important;
border-radius: 999px !important;
gap: 8px !important;
}
}
</style>
<script id="dav-floating-whatsapp-only-js">
(function () {
function keepOnlyWhatsAppFloating() {
document.querySelectorAll('.dav-floating-action-phone, .dav-floating-call').forEach(function (el) {
el.style.display = 'none';
el.style.visibility = 'hidden';
el.setAttribute('aria-hidden', 'true');
});
document.querySelectorAll('.dav-floating-action-whatsapp').forEach(function (el) {
var span = el.querySelector('span');
if (span) span.textContent = 'Trimite poze pe WhatsApp';
el.setAttribute('aria-label', 'Trimite poze pe WhatsApp DavRoofing');
});
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', keepOnlyWhatsAppFloating);
} else {
keepOnlyWhatsAppFloating();
}
window.addEventListener('load', keepOnlyWhatsAppFloating);
setTimeout(keepOnlyWhatsAppFloating, 900);
})();
</script>
<?php
} add_filter('the_content', 'dav_roofing_pluvial_service_content', 997);
function dav_roofing_pluvial_service_content($content) {
if (is_admin() || !is_page(1685) || !in_the_loop() || !is_main_query()) {
return $content;
}
ob_start();
?>
<section class="dav-clean-service dav-pluvial-service">
<div class="dav-clean-service-grid">
<figure class="dav-clean-service-media">
<img src="https://dav-roofing.ro/wp-content/uploads/2026/07/davroofing-sisteme-pluviare-hero-20260704.png" alt="Sisteme pluviare pentru acoperis DavRoofing" loading="eager" decoding="async" fetchpriority="high">
</figure>
<div class="dav-clean-service-copy">
<span class="dav-clean-kicker">Servicii DavRoofing</span>
<h1>Sisteme pluviare montate corect, fara scurgeri si improvizatii.</h1>
<p>Montam si reparam jgheaburi, burlane, sorturi si racorduri pentru evacuarea corecta a apei de pe acoperis, cu atentie la panta, prinderi si zonele sensibile.</p>
<div class="dav-clean-bullets">
<span>Jgheaburi si burlane dimensionate corect</span>
<span>Racorduri curate la streasina si colturi</span>
<span>Reparatii pentru scurgeri, infundari si deformari</span>
</div>
<div class="dav-clean-actions">
<a class="dav-clean-primary" href="/contact/">Suna acum</a>
<a class="dav-clean-whatsapp" href="https://wa.me/40754796389">Trimite poze pe WhatsApp</a>
</div>
</div>
</div>
<div class="dav-clean-process">
<article><span>1</span><h3>Verificam traseul apei</h3><p>Vedem unde se strange apa, daca panta este corecta si ce elemente trebuie schimbate.</p></article>
<article><span>2</span><h3>Alegem solutia potrivita</h3><p>Stabilim materialele, dimensiunile si accesoriile potrivite pentru acoperisul tau.</p></article>
<article><span>3</span><h3>Montam si testam</h3><p>Fixam sistemul pluvial si verificam zonele critice pentru scurgeri sau infiltratii.</p></article>
</div>
</section>
<article class="dav-pluvial-info-block" aria-label="Detalii sisteme pluviare">
<span>Detalii sistem pluvial</span>
<h2>Jgheaburi si burlane pentru protectie pe termen lung</h2>
<p class="dav-pluvial-info-lead">Un sistem pluvial bun colecteaza si evacueaza apa de ploaie fara sa afecteze acoperisul, fatada sau peretii casei.</p>
<p>Alegem jgheaburi si burlane din materiale durabile, rezistente la intemperii si coroziune, cu dimensiuni potrivite pentru acoperis. Scopul este evacuarea corecta a apei, protectie completa si un aspect curat, integrat in casa.</p>
<div class="dav-pluvial-info-list">
<b>Rezistenta buna in conditii meteo dificile.</b>
<b>Montaj rapid si prinderi corecte pentru trasee stabile.</b>
<b>Estetica moderna, cu variante de culori si dimensiuni.</b>
<b>Protectie pentru acoperis, streasina, fatada si fundatie.</b>
</div>
</article>
<section class="dav-service-photo-strip dav-pluvial-gallery" aria-label="Poze sisteme pluviare DavRoofing">
<div class="dav-service-photo-heading">
<span>Detalii importante</span>
<h2>Ce include un sistem pluvial bun</h2>
<p>Jgheaburile si burlanele protejeaza fatada, streasina si fundatia. Cand apa nu este evacuata corect, apar infiltratii, pete, mucegai si reparatii mult mai scumpe.</p>
</div>
<div class="dav-pluvial-photo-grid">
<figure><img src="https://dav-roofing.ro/wp-content/uploads/2024/04/18-1-1-600x338.png" alt="Jgheab si burlan montate pe acoperis ceramic" loading="lazy" decoding="async"><figcaption>Jgheab si burlan la streasina</figcaption></figure>
<figure><img src="https://dav-roofing.ro/wp-content/uploads/2026/07/dav-pluviale-montaj-jgheab.jpg" alt="Montaj jgheab la acoperis" loading="lazy" decoding="async"><figcaption>Montaj si reparatii</figcaption></figure>
<figure><img src="https://dav-roofing.ro/wp-content/uploads/2026/07/dav-pluviale-curatare-jgheab.jpg" alt="Curatare si verificare jgheab" loading="lazy" decoding="async"><figcaption>Curatare si verificare</figcaption></figure>
</div>
<div class="dav-pluvial-detail-grid">
<article><strong>Jgheaburi</strong><p>Colecteaza apa de pe acoperis si o directioneaza catre burlane.</p></article>
<article><strong>Burlane</strong><p>Duc apa la sol fara sa afecteze fatada sau soclul casei.</p></article>
<article><strong>Sorturi si racorduri</strong><p>Inchid zonele sensibile si reduc riscul de infiltratii.</p></article>
<article><strong>Curatare si reparatii</strong><p>Intervenim pentru infundari, deformari, piese desprinse sau scurgeri.</p></article>
</div>
</section>
<?php
return ob_get_clean();
}
add_action('wp_footer', 'dav_roofing_pluvial_service_styles_and_links', 1065);
function dav_roofing_pluvial_service_styles_and_links() {
?>
<style id="dav-pluvial-service-css">
body.page-id-1685 .page-title,
body.page-id-1685 .page-breadcrumb,
body.page-id-1685 aside,
body.page-id-1685 .sidebar-side,
body.page-id-1685 .sidebar-widget,
body.page-id-1685 .widget {
display: none !important;
}
body.page-id-1685 .sidebar-page-container {
padding: 74px 0 82px !important;
background: radial-gradient(circle at 0 0, rgba(243,59,48,.08), transparent 32%), linear-gradient(180deg, #f7f9fc 0%, #ffffff 62%) !important;
}
body.page-id-1685 .content-side,
body.page-id-1685 .content-column,
body.page-id-1685 .auto-container,
body.page-id-1685 .blog-details-content {
width: 100% !important;
max-width: 1180px !important;
flex: 0 0 100% !important;
}
body.page-id-1685 .dav-clean-service,
body.page-id-1685 .dav-service-photo-strip {
max-width: 1180px !important;
margin-left: auto !important;
margin-right: auto !important;
padding-left: 18px !important;
padding-right: 18px !important;
}
body.page-id-1685 .dav-clean-service-grid {
display: grid !important;
grid-template-columns: minmax(0, 1.06fr) minmax(380px, .94fr) !important;
gap: 28px !important;
align-items: stretch !important;
}
body.page-id-1685 .dav-clean-service-media,
body.page-id-1685 .dav-clean-service-copy {
border: 1px solid rgba(17,24,39,.10) !important;
border-radius: 8px !important;
overflow: hidden !important;
background: #fff !important;
box-shadow: 0 24px 70px rgba(15,23,42,.12) !important;
}
body.page-id-1685 .dav-clean-service-media { margin: 0 !important; min-height: 560px !important; }
body.page-id-1685 .dav-clean-service-media img { width: 100% !important; height: 100% !important; object-fit: cover !important; display: block !important; filter: none !important; }
body.page-id-1685 .dav-clean-service-copy { padding: clamp(28px, 4vw, 52px) !important; display: flex !important; flex-direction: column !important; justify-content: center !important; }
body.page-id-1685 .dav-clean-kicker,
body.page-id-1685 .dav-service-photo-heading span {
color: #ef3b2f !important;
font-size: 13px !important;
font-weight: 900 !important;
letter-spacing: .18em !important;
text-transform: uppercase !important;
}
body.page-id-1685 .dav-clean-service-copy h1 {
margin: 14px 0 18px !important;
color: #0f172a !important;
font-size: clamp(34px, 5vw, 62px) !important;
line-height: 1.02 !important;
font-weight: 950 !important;
letter-spacing: 0 !important;
}
body.page-id-1685 .dav-clean-service-copy p,
body.page-id-1685 .dav-service-photo-heading p,
body.page-id-1685 .dav-pluvial-detail-grid p {
color: #475569 !important;
font-size: 17px !important;
line-height: 1.65 !important;
}
body.page-id-1685 .dav-clean-bullets { display: grid !important; gap: 10px !important; margin: 24px 0 !important; }
body.page-id-1685 .dav-clean-bullets span,
body.page-id-1685 .dav-pluvial-detail-grid article,
body.page-id-1685 .dav-clean-process article {
border: 1px solid rgba(17,24,39,.10) !important;
border-radius: 8px !important;
background: #f8fafc !important;
}
body.page-id-1685 .dav-clean-bullets span { padding: 14px 16px 14px 44px !important; position: relative !important; font-weight: 850 !important; color: #111827 !important; }
body.page-id-1685 .dav-clean-bullets span:before { content: "\2713"; position: absolute; left: 16px; color: #22c55e; font-weight: 950; }
body.page-id-1685 .dav-clean-actions { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 12px !important; }
body.page-id-1685 .dav-clean-actions a { min-height: 58px !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; border-radius: 8px !important; color: #fff !important; font-weight: 950 !important; text-transform: uppercase !important; letter-spacing: .06em !important; }
body.page-id-1685 .dav-clean-primary { background: #ef3b30 !important; }
body.page-id-1685 .dav-clean-whatsapp { background: linear-gradient(135deg, #25d366 0%, #16a34a 100%) !important; }
body.page-id-1685 .dav-clean-process { display: grid !important; grid-template-columns: repeat(3, 1fr) !important; gap: 14px !important; margin-top: 18px !important; }
body.page-id-1685 .dav-clean-process article { padding: 22px !important; background: #fff !important; }
body.page-id-1685 .dav-clean-process span { width: 34px !important; height: 34px !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; border-radius: 50% !important; background: #fee2e2 !important; color: #ef3b2f !important; font-weight: 950 !important; }
body.page-id-1685 .dav-clean-process h3,
body.page-id-1685 .dav-pluvial-detail-grid strong { color: #0f172a !important; font-size: 18px !important; font-weight: 950 !important; }
body.page-id-1685 .dav-pluvial-info-block {
max-width: 1180px !important;
margin: 22px auto 10px !important;
padding: clamp(26px, 4vw, 46px) !important;
border: 1px solid rgba(17,24,39,.10) !important;
border-radius: 8px !important;
background: #fff !important;
box-shadow: 0 20px 54px rgba(15,23,42,.10) !important;
}
body.page-id-1685 .dav-pluvial-info-block span {
color: #ef3b2f !important;
font-size: 13px !important;
font-weight: 900 !important;
letter-spacing: .18em !important;
text-transform: uppercase !important;
}
body.page-id-1685 .dav-pluvial-info-block h2 {
color: #0f172a !important;
font-size: clamp(30px, 4vw, 48px) !important;
line-height: 1.08 !important;
font-weight: 950 !important;
margin: 10px 0 14px !important;
}
body.page-id-1685 .dav-pluvial-info-block p {
color: #475569 !important;
font-size: 17px !important;
line-height: 1.65 !important;
max-width: 860px !important;
}
body.page-id-1685 .dav-pluvial-info-lead { color: #0f172a !important; font-weight: 700 !important; }
body.page-id-1685 .dav-pluvial-info-list {
display: grid !important;
grid-template-columns: repeat(4, 1fr) !important;
gap: 12px !important;
margin-top: 22px !important;
}
body.page-id-1685 .dav-pluvial-info-list b {
display: block !important;
padding: 16px 16px 16px 42px !important;
border: 1px solid rgba(17,24,39,.10) !important;
border-radius: 8px !important;
background: #f8fafc !important;
color: #111827 !important;
position: relative !important;
line-height: 1.35 !important;
}
body.page-id-1685 .dav-pluvial-info-list b:before { content: "\2713"; position: absolute; left: 16px; color: #22c55e; font-weight: 950; }
body.page-id-1685 .dav-service-photo-heading { text-align: center !important; max-width: 780px !important; margin: 44px auto 22px !important; }
body.page-id-1685 .dav-service-photo-heading h2 { color: #0f172a !important; font-size: clamp(30px,4vw,50px) !important; line-height: 1.05 !important; font-weight: 950 !important; margin: 10px 0 !important; }
body.page-id-1685 .dav-pluvial-photo-grid { display: grid !important; grid-template-columns: repeat(4, 1fr) !important; gap: 14px !important; margin: 24px 0 18px !important; }
body.page-id-1685 .dav-pluvial-photo-grid figure { margin: 0 !important; border-radius: 8px !important; overflow: hidden !important; background: #fff !important; border: 1px solid rgba(17,24,39,.10) !important; box-shadow: 0 16px 38px rgba(15,23,42,.10) !important; }
body.page-id-1685 .dav-pluvial-photo-grid img { width: 100% !important; height: 220px !important; object-fit: cover !important; display: block !important; filter: none !important; }
body.page-id-1685 .dav-pluvial-photo-grid figcaption { padding: 13px 14px !important; margin: 0 !important; color: #0f172a !important; font-size: 14px !important; line-height: 1.25 !important; font-weight: 900 !important; }
body.page-id-1685 .dav-pluvial-photo-credit { margin: 12px auto 0 !important; text-align: center !important; color: #64748b !important; font-size: 12px !important; line-height: 1.4 !important; }
body.page-id-1685 .dav-pluvial-detail-grid { display: grid !important; grid-template-columns: repeat(4, 1fr) !important; gap: 14px !important; }
body.page-id-1685 .dav-pluvial-detail-grid article { padding: 22px !important; background: #fff !important; box-shadow: 0 16px 38px rgba(15,23,42,.08) !important; }
@media (max-width: 991px) {
body.page-id-1685 .sidebar-page-container { padding: 22px 0 52px !important; }
body.page-id-1685 .dav-clean-service-grid,
body.page-id-1685 .dav-clean-process,
body.page-id-1685 .dav-pluvial-detail-grid { grid-template-columns: 1fr !important; }
body.page-id-1685 .dav-clean-service-media { min-height: 0 !important; aspect-ratio: 16/11 !important; }
body.page-id-1685 .dav-clean-actions { grid-template-columns: 1fr !important; }
body.page-id-1685 .dav-clean-service-copy h1 { font-size: 34px !important; }
}
</style>
<script id="dav-pluvial-service-links-js">
(function () {
function addPluvialLinks() {
document.querySelectorAll('ul.submenu, ul.sub-menu').forEach(function (menu) {
[
['Sisteme Pluviare', '/sisteme-pluviare/'],
['Dulgherie', '/dulgherie/'],
['Terase pe structura de lemn', '/terase-structura-lemn/'],
['Spalat si vopsit acoperis', '/spalat-vopsit-acoperis/']
].forEach(function (link) {
if (menu.querySelector('a[href*="' + link[1] + '"]')) return;
var item = document.createElement('li');
item.className = 'menu-item dav-menu-extra-service';
item.innerHTML = '<a title="' + link[0] + '" href="' + link[1] + '">' + link[0] + '</a>';
menu.appendChild(item);
});
});
document.querySelectorAll('.dav-service-points, .dav-service-mobile-points').forEach(function (wrap) {
[
['Sisteme pluviare', '/sisteme-pluviare/'],
['Dulgherie', '/dulgherie/'],
['Terase lemn', '/terase-structura-lemn/'],
['Spalat si vopsit acoperis', '/spalat-vopsit-acoperis/']
].forEach(function (link) {
if (wrap.querySelector('a[href="' + link[1] + '"]')) return;
var a = document.createElement('a');
a.href = link[1];
a.textContent = link[0];
a.setAttribute('data-dav-extra-service-point', '1');
a.style.textDecoration = 'none';
wrap.appendChild(a);
});
});
}
if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', addPluvialLinks); else addPluvialLinks();
window.addEventListener('load', addPluvialLinks);
setTimeout(addPluvialLinks, 800);
})();
</script>
<?php
} add_action('wp_footer', 'dav_roofing_pluvial_photo_mobile_polish', 1068);
function dav_roofing_pluvial_photo_mobile_polish() {
if (!is_page(1685)) {
return;
}
?>
<style id="dav-pluvial-photo-mobile-polish-css">
@media (max-width: 767px) {
body.page-id-1685 .dav-pluvial-photo-grid {
display: grid !important;
grid-template-columns: 1fr !important;
gap: 14px !important;
}
body.page-id-1685 .dav-pluvial-photo-grid figure {
width: 100% !important;
}
body.page-id-1685 .dav-pluvial-photo-grid img {
width: 100% !important;
height: 230px !important;
object-fit: cover !important;
}
}
</style>
<?php
} add_action('wp_footer', 'dav_roofing_pluvial_cta_polish', 1070);
function dav_roofing_pluvial_cta_polish() {
if (!is_page(1685)) {
return;
}
?>
<style id="dav-pluvial-cta-polish-css">
body.page-id-1685 .dav-clean-service-copy {
padding: clamp(28px, 3.4vw, 46px) !important;
}
body.page-id-1685 .dav-clean-service-copy h1 {
max-width: 11.5ch !important;
font-size: clamp(40px, 4.2vw, 56px) !important;
line-height: 1.04 !important;
margin-bottom: 20px !important;
}
body.page-id-1685 .dav-clean-service-copy > p {
max-width: 540px !important;
margin-bottom: 4px !important;
}
body.page-id-1685 .dav-clean-actions {
grid-template-columns: 1fr !important;
gap: 12px !important;
margin-top: 24px !important;
max-width: 430px !important;
}
body.page-id-1685 .dav-clean-actions a {
position: relative !important;
min-height: 62px !important;
padding: 0 22px !important;
justify-content: flex-start !important;
gap: 12px !important;
text-align: left !important;
white-space: normal !important;
letter-spacing: .03em !important;
line-height: 1.15 !important;
text-transform: none !important;
font-size: 17px !important;
}
body.page-id-1685 .dav-clean-actions a svg {
width: 22px !important;
height: 22px !important;
flex: 0 0 22px !important;
fill: currentColor !important;
}
body.page-id-1685 .dav-clean-actions a span {
display: block !important;
min-width: 0 !important;
}
body.page-id-1685 .dav-clean-actions .dav-clean-primary {
background: linear-gradient(135deg, #ef3b30 0%, #dc2626 100%) !important;
}
body.page-id-1685 .dav-clean-actions .dav-clean-whatsapp {
background: linear-gradient(135deg, #25d366 0%, #16a34a 100%) !important;
}
@media (min-width: 1200px) {
body.page-id-1685 .dav-clean-service-grid {
grid-template-columns: minmax(0, 1.15fr) minmax(430px, .85fr) !important;
}
}
@media (max-width: 991px) {
body.page-id-1685 .dav-clean-service-copy h1 {
max-width: none !important;
font-size: 34px !important;
}
body.page-id-1685 .dav-clean-actions {
max-width: none !important;
}
body.page-id-1685 .dav-clean-actions a {
justify-content: center !important;
text-align: center !important;
min-height: 56px !important;
font-size: 15px !important;
}
}
</style>
<script id="dav-pluvial-cta-polish-js">
(function () {
var phoneSvg = '<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.3-.3.75-.39 1.14-.26 1.25.41 2.6.63 3.95.63.61 0 1.1.49 1.1 1.1v3.48c0 .61-.49 1.1-1.1 1.1C10.61 21.73 2.27 13.39 2.27 3.5c0-.61.49-1.1 1.1-1.1h3.49c.61 0 1.1.49 1.1 1.1 0 1.35.21 2.7.63 3.95.12.39.04.83-.27 1.14l-1.7 2.2z"/></svg>';
var waSvg = '<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M12.04 2.25c-5.33 0-9.67 4.28-9.67 9.55 0 1.68.45 3.33 1.3 4.78L2.3 21.75l5.33-1.35a9.84 9.84 0 0 0 4.41 1.04c5.33 0 9.67-4.28 9.67-9.55s-4.34-9.64-9.67-9.64zm0 17.55c-1.42 0-2.8-.38-4.01-1.1l-.29-.17-3.16.8.82-3.02-.2-.31a7.74 7.74 0 0 1-1.2-4.2c0-4.36 3.61-7.91 8.04-7.91s8.04 3.55 8.04 7.91-3.61 8-8.04 8zm4.42-5.92c-.24-.12-1.42-.69-1.64-.77-.22-.08-.38-.12-.54.12-.16.24-.62.77-.76.93-.14.16-.28.18-.52.06-.24-.12-1.01-.37-1.92-1.17-.71-.63-1.19-1.41-1.33-1.65-.14-.24-.02-.37.1-.49.11-.11.24-.28.36-.42.12-.14.16-.24.24-.4.08-.16.04-.3-.02-.42-.06-.12-.54-1.29-.74-1.77-.19-.46-.39-.4-.54-.41h-.46c-.16 0-.42.06-.64.3-.22.24-.84.81-.84 1.97s.86 2.29.98 2.45c.12.16 1.69 2.55 4.1 3.57.57.25 1.02.4 1.37.51.58.18 1.1.16 1.51.1.46-.07 1.42-.57 1.62-1.13.2-.56.2-1.04.14-1.13-.06-.1-.22-.16-.46-.28z"/></svg>';
function polishPluvialCtas() {
var phone = document.querySelector('body.page-id-1685 .dav-clean-actions .dav-clean-primary');
var wa = document.querySelector('body.page-id-1685 .dav-clean-actions .dav-clean-whatsapp');
if (phone) {
phone.href = 'tel:+40754796389';
phone.setAttribute('aria-label', 'Suna acum DavRoofing');
phone.innerHTML = phoneSvg + '<span>Suna acum</span>';
}
if (wa) {
wa.href = 'https://wa.me/40754796389';
wa.setAttribute('aria-label', 'Trimite poze pe WhatsApp DavRoofing');
wa.innerHTML = waSvg + '<span>Trimite poze pe WhatsApp</span>';
}
}
if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', polishPluvialCtas); else polishPluvialCtas();
window.addEventListener('load', polishPluvialCtas);
setTimeout(polishPluvialCtas, 900);
})();
</script>
<?php
} add_action('wp_footer', 'dav_roofing_pluvial_text_cta_final_spacing', 1072);
function dav_roofing_pluvial_text_cta_final_spacing() {
if (!is_page(1685)) {
return;
}
?>
<style id="dav-pluvial-text-cta-final-spacing-css">
body.page-id-1685 .dav-clean-service-copy h1 {
max-width: 100% !important;
font-size: clamp(36px, 3.45vw, 48px) !important;
line-height: 1.06 !important;
margin-bottom: 18px !important;
}
body.page-id-1685 .dav-clean-actions {
max-width: 460px !important;
}
body.page-id-1685 .dav-clean-actions a {
justify-content: center !important;
text-align: center !important;
white-space: nowrap !important;
font-size: 16px !important;
letter-spacing: .02em !important;
}
body.page-id-1685 .dav-clean-actions a span {
white-space: nowrap !important;
}
@media (max-width: 480px) {
body.page-id-1685 .dav-clean-service-copy h1 {
font-size: 31px !important;
}
body.page-id-1685 .dav-clean-actions a {
width: 100% !important;
min-width: 0 !important;
font-size: 14px !important;
padding: 0 14px !important;
}
body.page-id-1685 .dav-clean-actions a svg {
width: 19px !important;
height: 19px !important;
flex-basis: 19px !important;
}
}
</style>
<?php
} add_action('wp_footer', 'dav_roofing_hide_raw_mobile_hero_panel', 1075);
function dav_roofing_hide_raw_mobile_hero_panel() {
if (!is_front_page() && !is_home()) {
return;
}
?>
<style id="dav-hide-raw-mobile-hero-panel-css">
body.home .dav-hero-mobile-panel,
body.home .dav-hero-mobile-panel-inner {
display: none !important;
}
@media (max-width: 767px) {
body.home .dav-hero-mobile-panel {
display: block !important;
max-width: 100% !important;
padding: 14px !important;
background: #f8fafc !important;
}
body.home .dav-hero-mobile-panel-inner {
display: grid !important;
gap: 12px !important;
}
body.home .dav-hero-mobile-panel .dav-mobile-cta-card,
body.home .dav-hero-mobile-panel .dav-mobile-proof-card {
display: grid !important;
gap: 10px !important;
border-radius: 8px !important;
background: #ffffff !important;
border: 1px solid rgba(15,23,42,.10) !important;
padding: 14px !important;
box-shadow: 0 12px 30px rgba(15,23,42,.08) !important;
}
body.home .dav-hero-mobile-panel .dav-mobile-cta-card {
grid-template-columns: 1fr !important;
}
body.home .dav-hero-mobile-panel .dav-mobile-cta {
min-height: 46px !important;
border-radius: 8px !important;
display: flex !important;
align-items: center !important;
justify-content: center !important;
text-align: center !important;
font-size: 13px !important;
font-weight: 950 !important;
line-height: 1.15 !important;
color: #fff !important;
text-decoration: none !important;
}
body.home .dav-hero-mobile-panel .dav-mobile-cta-red { background: #ef3b30 !important; }
body.home .dav-hero-mobile-panel .dav-mobile-cta-green { background: #22c55e !important; }
body.home .dav-hero-mobile-panel .dav-mobile-proof-card {
grid-template-columns: auto 1fr !important;
align-items: start !important;
}
body.home .dav-hero-mobile-panel .dav-mobile-proof-icon {
width: 32px !important;
height: 32px !important;
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
border-radius: 50% !important;
background: #fee2e2 !important;
color: #ef3b30 !important;
font-weight: 950 !important;
}
body.home .dav-hero-mobile-panel .dav-mobile-proof-title {
display: block !important;
color: #0f172a !important;
font-size: 14px !important;
line-height: 1.25 !important;
}
body.home .dav-hero-mobile-panel .dav-mobile-proof-text {
display: block !important;
color: #475569 !important;
font-size: 13px !important;
line-height: 1.35 !important;
margin-top: 3px !important;
}
}
</style>
<script id="dav-hide-raw-mobile-hero-panel-js">
(function () {
function cleanHeroRawText() {
if (!document.body.classList.contains('home')) return;
document.querySelectorAll('body.home .dav-hero-mobile-panel').forEach(function (panel) {
if (window.innerWidth > 767) {
panel.style.setProperty('display', 'none', 'important');
}
});
document.querySelectorAll('body.home .dav-mobile-cta-red').forEach(function (a) { a.textContent = 'Suna acum'; });
document.querySelectorAll('body.home .dav-mobile-cta-green').forEach(function (a) { a.textContent = 'Trimite poze pe WhatsApp'; });
}
if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', cleanHeroRawText); else cleanHeroRawText();
window.addEventListener('load', cleanHeroRawText);
setTimeout(cleanHeroRawText, 900);
})();
</script>
<?php
}
// DavRoofing final brand normalization across visible public pages.
add_action('template_redirect', 'dav_roofing_brand_name_output_buffer', 1);
function dav_roofing_brand_name_output_buffer() {
if (is_admin()) {
return;
}
ob_start('dav_roofing_brand_name_buffer_replace');
}
function dav_roofing_brand_name_buffer_replace($html) {
return strtr($html, array(
'DavRoofing' => 'DavRoofing',
'DavRoofing' => 'DavRoofing',
'DavRoofing' => 'DavRoofing',
'DavRoofing' => 'DavRoofing',
'DavRoofing' => 'DavRoofing',
'DavRoofing' => 'DavRoofing',
));
}
add_action('wp_footer', 'dav_roofing_brand_name_final_polish', 1080);
function dav_roofing_brand_name_final_polish() {
if (is_admin()) {
return;
}
?>
<script id="dav-brand-name-final-polish-js">
(function(){
function normalizeText(value){
return String(value)
.replace(/\bDAV\s+ROOFING\b/g, 'DavRoofing')
.replace(/\bDav[\s-]+Roofing\b/g, 'DavRoofing')
.replace(/\bdav\s+roofing\b/g, 'DavRoofing')
.replace(/\bDavRoofing\b/g, 'DavRoofing');
}
function walk(node){
if(!node || ['SCRIPT','STYLE','NOSCRIPT','TEXTAREA','INPUT'].indexOf(node.nodeName) !== -1){
return;
}
if(node.nodeType === 3){
var next = normalizeText(node.nodeValue);
if(next !== node.nodeValue){
node.nodeValue = next;
}
return;
}
for(var child = node.firstChild; child; child = child.nextSibling){
walk(child);
}
}
function normalizeBrand(){
if(document.body){
walk(document.body);
}
Array.prototype.forEach.call(document.querySelectorAll('[aria-label],[title],[alt]'), function(el){
['aria-label','title','alt'].forEach(function(attr){
var value = el.getAttribute(attr);
if(value){
var next = normalizeText(value);
if(next !== value){
el.setAttribute(attr, next);
}
}
});
});
if(document.title){
document.title = normalizeText(document.title);
}
}
if(document.readyState === 'loading'){
document.addEventListener('DOMContentLoaded', normalizeBrand);
} else {
normalizeBrand();
}
window.addEventListener('load', normalizeBrand);
setTimeout(normalizeBrand, 700);
})();
</script>
<?php
}
// Final hard brand polish: keep public text as DavRoofing, without touching the dav-roofing.ro domain.
add_filter('pre_option_blogname', 'dav_brand_force_public_blogname', 999);
function dav_brand_force_public_blogname($value = false) {
return 'DavRoofing';
}
add_filter('document_title_parts', 'dav_brand_normalize_document_title_parts', 999);
function dav_brand_normalize_document_title_parts($parts) {
foreach ($parts as $key => $part) {
$parts[$key] = dav_brand_normalize_text_value($part);
}
return $parts;
}
add_action('template_redirect', 'dav_brand_hard_normalize_buffer_start', 0);
function dav_brand_hard_normalize_buffer_start() {
if (is_admin()) {
return;
}
ob_start('dav_brand_hard_normalize_buffer');
}
function dav_brand_normalize_text_value($value) {
$old = array(
'DAV' . ' ' . 'ROOFING',
'Dav' . '-' . 'Roofing',
'Dav' . ' ' . 'Roofing',
'Dav' . '-' . 'roofing',
'dav' . ' ' . 'roofing',
);
return str_replace($old, 'DavRoofing', $value);
}
function dav_brand_hard_normalize_buffer($html) {
return dav_brand_normalize_text_value($html);
}
// Homepage hero image override: use the uploaded DavRoofing worker roof photo only on Acasa.
function dav_roofing_home_hero_new_uploaded_image_url(//dav-roofing.ro/wp-content/themes/roonix/) {
return 'https://dav-roofing.ro/wp-content/uploads/2026/07/dav-home-hero-red-roof-workers-20260704.webp';
}
add_action('template_redirect', 'dav_roofing_home_hero_new_image_buffer_start', 0);
function dav_roofing_home_hero_new_image_buffer_start() {
if (!is_front_page() || is_admin()) {
return;
}
ob_start('dav_roofing_home_hero_new_image_buffer');
}
function dav_roofing_home_hero_new_image_buffer($html) {
$new = dav_roofing_home_hero_new_uploaded_image_url(//dav-roofing.ro/wp-content/themes/roonix/);
$old = array(
'https://dav-roofing.ro/wp-content/uploads/2026/06/dav-home-hero-branded-final.webp',
'https://dav-roofing.ro/wp-content/uploads/2026/07/dav-home-hero-red-roof-workers-20260704.webp',
'https://dav-roofing.ro/wp-content/uploads/2026/07/dav-home-hero-red-roof-workers-20260704.webp',
);
return str_replace($old, $new, $html);
}
add_action('wp_head', 'dav_roofing_home_hero_new_image_style', 999);
function dav_roofing_home_hero_new_image_style() {
if (!is_front_page()) {
return;
}
$hero = esc_url(//dav-roofing.ro/wp-content/themes/roonix/dav_roofing_home_hero_new_uploaded_image_url());
echo '<link rel="preload" as="image" fetchpriority="high" href="' . $hero . '">' . "\n";
?>
<style id="dav-home-hero-new-uploaded-image-css">
body.home .dav-hero-premium {
background-image:
linear-gradient(90deg, rgba(3,7,18,.82) 0%, rgba(3,7,18,.62) 34%, rgba(3,7,18,.18) 66%, rgba(3,7,18,.08) 100%),
url(//dav-roofing.ro/wp-content/themes/roonix/<?php echo $hero; ?>) !important;
background-size: cover !important;
background-position: center 38% !important;
background-repeat: no-repeat !important;
}
body.home .dav-mobile-fast-hero img {
content: url(//dav-roofing.ro/wp-content/themes/roonix/<?php echo $hero; ?>) !important;
object-fit: cover !important;
object-position: center 42% !important;
}
@media (max-width: 767px) {
body.home .dav-hero-premium {
background-image:
linear-gradient(180deg, rgba(3,7,18,.54) 0%, rgba(3,7,18,.76) 100%),
url(//dav-roofing.ro/wp-content/themes/roonix/<?php echo $hero; ?>) !important;
background-position: 58% center !important;
}
}
</style>
<?php
}
// Force the new homepage hero photo after cached theme styles have loaded.
add_action('wp_footer', 'dav_roofing_home_hero_new_image_inline_override', 20000);
function dav_roofing_home_hero_new_image_inline_override() {
if (!is_front_page()) {
return;
}
$hero = esc_url(//dav-roofing.ro/wp-content/themes/roonix/dav_roofing_home_hero_new_uploaded_image_url());
?>
<script id="dav-home-hero-new-image-inline-override-js">
(function () {
var heroUrl = '<?php echo $hero; ?>';
function applyHeroPhoto() {
var hero = document.querySelector('body.home .dav-hero-premium');
if (hero) {
var gradient = window.innerWidth < 768
? 'linear-gradient(180deg, rgba(3,7,18,.54) 0%, rgba(3,7,18,.76) 100%)'
: 'linear-gradient(90deg, rgba(3,7,18,.82) 0%, rgba(3,7,18,.62) 34%, rgba(3,7,18,.18) 66%, rgba(3,7,18,.08) 100%)';
hero.style.setProperty('background-image', gradient + ', url(//dav-roofing.ro/wp-content/themes/roonix/+ heroUrl +)', 'important');
hero.style.setProperty('background-size', 'cover', 'important');
hero.style.setProperty('background-position', window.innerWidth < 768 ? 'center 42%' : 'center 38%', 'important');
hero.style.setProperty('background-repeat', 'no-repeat', 'important');
}
var mobile = document.querySelector('body.home .dav-mobile-fast-hero img');
if (mobile) {
mobile.src = heroUrl;
mobile.removeAttribute('srcset');
mobile.style.setProperty('object-fit', 'cover', 'important');
mobile.style.setProperty('object-position', 'center 42%', 'important');
}
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', applyHeroPhoto);
} else {
applyHeroPhoto();
}
window.addEventListener('load', applyHeroPhoto);
window.addEventListener('resize', applyHeroPhoto);
setTimeout(applyHeroPhoto, 600);
})();
</script>
<?php
}
// Homepage services visual card image override.
function dav_roofing_home_service_card_new_image_url(//dav-roofing.ro/wp-content/themes/roonix/) {
return 'https://dav-roofing.ro/wp-content/uploads/2026/07/davroofing-service-card-new.jpg';
}
add_action('wp_head', 'dav_roofing_home_service_card_new_image_style', 1005);
function dav_roofing_home_service_card_new_image_style() {
if (!is_front_page()) {
return;
}
$image = esc_url(//dav-roofing.ro/wp-content/themes/roonix/dav_roofing_home_service_card_new_image_url());
?>
<link rel="preload" as="image" href="<?php echo $image; ?>" media="(min-width: 768px)">
<style id="dav-home-service-card-new-image-css">
body.home .dav-service-request .dav-service-media {
background-image:
linear-gradient(180deg, rgba(3,7,18,.06) 0%, rgba(3,7,18,.42) 58%, rgba(3,7,18,.78) 100%),
url(//dav-roofing.ro/wp-content/themes/roonix/<?php echo $image; ?>) !important;
background-size: cover !important;
background-position: center 38% !important;
background-repeat: no-repeat !important;
}
@media (max-width: 767px) {
body.home .dav-service-request .dav-service-media {
background-image: url(//dav-roofing.ro/wp-content/themes/roonix/<?php echo $image; ?>) !important;
background-position: center top !important;
min-height: 360px !important;
}
}
</style>
<?php
}
add_action('wp_footer', 'dav_roofing_home_service_card_new_image_inline', 20010);
function dav_roofing_home_service_card_new_image_inline() {
if (!is_front_page()) {
return;
}
$image = esc_url(//dav-roofing.ro/wp-content/themes/roonix/dav_roofing_home_service_card_new_image_url());
?>
<script id="dav-home-service-card-new-image-js">
(function () {
var imageUrl = '<?php echo $image; ?>';
function applyServiceImage() {
var media = document.querySelector('body.home .dav-service-request .dav-service-media');
if (!media) return;
var isMobile = window.innerWidth < 768;
var bg = isMobile
? 'url(//dav-roofing.ro/wp-content/themes/roonix/+ imageUrl +)'
: 'linear-gradient(180deg, rgba(3,7,18,.06) 0%, rgba(3,7,18,.42) 58%, rgba(3,7,18,.78) 100%), url(//dav-roofing.ro/wp-content/themes/roonix/+ imageUrl +)';
media.style.setProperty('background-image', bg, 'important');
media.style.setProperty('background-size', 'cover', 'important');
media.style.setProperty('background-position', isMobile ? 'center top' : 'center center', 'important');
media.style.setProperty('background-repeat', 'no-repeat', 'important');
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', applyServiceImage);
} else {
applyServiceImage();
}
window.addEventListener('load', applyServiceImage);
window.addEventListener('resize', applyServiceImage);
setTimeout(applyServiceImage, 700);
})();
</script>
<?php
}
// Remove dark overlays and dimming filters from public photos site-wide.
add_action('wp_head', 'dav_roofing_remove_dark_image_effects_css', 30000);
function dav_roofing_remove_dark_image_effects_css() {
if (is_admin()) {
return;
}
?>
<style id="dav-no-dark-image-effects-css">
body img,
body picture img,
body .elementor img,
body .dav-clean-service-media img,
body .dav-pluvial-photo-grid img,
body .dav-gr-avatar,
body .image-box img,
body .post-thumbnail img,
body .wp-post-image {
filter: none !important;
opacity: 1 !important;
mix-blend-mode: normal !important;
}
body .dav-hero-premium,
body .dav-service-request .dav-service-media,
body .main-slider .image-layer,
body .banner-section,
body .hero-section,
body .page-title,
body .dav-clean-service-media,
body .dav-service-media {
filter: none !important;
opacity: 1 !important;
mix-blend-mode: normal !important;
}
body .dav-hero-premium:before,
body .dav-hero-premium:after,
body .dav-service-request .dav-service-media:before,
body .dav-service-request .dav-service-media:after,
body .dav-clean-service-media:before,
body .dav-clean-service-media:after,
body .image-layer:before,
body .image-layer:after,
body .banner-section:before,
body .banner-section:after,
body .hero-section:before,
body .hero-section:after,
body .page-title:before,
body .page-title:after,
body .slide:before,
body .slide:after {
opacity: 0 !important;
background: transparent !important;
background-image: none !important;
box-shadow: none !important;
}
body.home .dav-hero-premium .dav-hero-content,
body.home .dav-service-copy {
text-shadow: 0 2px 14px rgba(0,0,0,.32) !important;
}
</style>
<?php
}
add_action('wp_footer', 'dav_roofing_remove_dark_image_effects_everywhere', 30000);
function dav_roofing_remove_dark_image_effects_everywhere() {
if (is_admin()) {
return;
}
?>
<script id="dav-no-dark-image-effects-js">
(function () {
function keepOnlyLastUrlBackground(el) {
if (!el) return;
var bg = window.getComputedStyle(el).backgroundImage || '';
if (bg.indexOf('url(//dav-roofing.ro/wp-content/themes/roonix/) === -1) return;
var urls = bg.match(/url\((?:"[^"]+"|'[^']+'|[^)]+)\)/g);
if (!urls || !urls.length) return;
el.style.setProperty('background-image', urls[urls.length - 1], 'important');
el.style.setProperty('filter', 'none', 'important');
el.style.setProperty('opacity', '1', 'important');
el.style.setProperty('mix-blend-mode', 'normal', 'important');
if (!el.style.backgroundSize) {
el.style.setProperty('background-size', 'cover', 'important');
}
if (!el.style.backgroundRepeat) {
el.style.setProperty('background-repeat', 'no-repeat', 'important');
}
}
function removeDarkImageEffects() {
document.querySelectorAll('img').forEach(function (img) {
img.style.setProperty('filter', 'none', 'important');
img.style.setProperty('opacity', '1', 'important');
img.style.setProperty('mix-blend-mode', 'normal', 'important');
});
document.querySelectorAll('body *').forEach(function (el) {
var bg = window.getComputedStyle(el).backgroundImage || '';
if (bg.indexOf('url(//dav-roofing.ro/wp-content/themes/roonix/) !== -1 && (bg.indexOf('gradient(') !== -1 || bg.indexOf('rgba(') !== -1)) {
keepOnlyLastUrlBackground(el);
}
var filter = window.getComputedStyle(el).filter || '';
if (filter && filter !== 'none') {
el.style.setProperty('filter', 'none', 'important');
}
});
document.querySelectorAll('.dav-hero-premium, .dav-service-request .dav-service-media, .main-slider .image-layer, .banner-section, .hero-section, .page-title, .dav-clean-service-media').forEach(keepOnlyLastUrlBackground);
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', removeDarkImageEffects);
} else {
removeDarkImageEffects();
}
window.addEventListener('load', removeDarkImageEffects);
window.addEventListener('resize', removeDarkImageEffects);
setTimeout(removeDarkImageEffects, 700);
setTimeout(removeDarkImageEffects, 1600);
})();
</script>
<?php
}
// Final mobile CTA cleanup: one hero CTA set + two compact floating contact buttons.
add_action('wp_footer', 'dav_roofing_mobile_cta_and_floating_final_fix', 40000);
function dav_roofing_mobile_cta_and_floating_final_fix() {
if (is_admin()) {
return;
}
?>
<style id="dav-mobile-cta-floating-final-fix-css">
@media (max-width: 767px) {
body.home .dav-hero-mobile-panel .dav-mobile-cta-card {
display: none !important;
visibility: hidden !important;
height: 0 !important;
min-height: 0 !important;
padding: 0 !important;
margin: 0 !important;
border: 0 !important;
box-shadow: none !important;
overflow: hidden !important;
}
body.home .dav-mobile-hero-actions {
display: grid !important;
grid-template-columns: 1fr !important;
gap: 10px !important;
margin-top: 18px !important;
}
body.home .dav-mobile-hero-actions a {
min-height: 50px !important;
border-radius: 8px !important;
display: flex !important;
align-items: center !important;
justify-content: center !important;
text-align: center !important;
font-size: 13px !important;
font-weight: 950 !important;
letter-spacing: .06em !important;
text-transform: uppercase !important;
color: #fff !important;
text-decoration: none !important;
}
body.home .dav-mobile-hero-actions a.red { background: #ef3b30 !important; }
body.home .dav-mobile-hero-actions a.green { background: #22c55e !important; }
.dav-floating-contact-actions {
position: fixed !important;
left: auto !important;
right: 12px !important;
bottom: 14px !important;
width: auto !important;
display: grid !important;
grid-template-columns: 1fr !important;
gap: 8px !important;
z-index: 999999 !important;
pointer-events: auto !important;
}
.dav-floating-contact-actions .dav-floating-action,
.dav-floating-contact-actions .dav-floating-action-phone,
.dav-floating-contact-actions .dav-floating-action-whatsapp {
display: inline-flex !important;
visibility: visible !important;
pointer-events: auto !important;
opacity: 1 !important;
width: 148px !important;
min-width: 148px !important;
height: 44px !important;
min-height: 44px !important;
padding: 0 14px !important;
border-radius: 999px !important;
align-items: center !important;
justify-content: center !important;
gap: 8px !important;
color: #fff !important;
font-size: 13px !important;
font-weight: 950 !important;
line-height: 1 !important;
text-transform: none !important;
letter-spacing: 0 !important;
text-decoration: none !important;
clip-path: none !important;
overflow: visible !important;
}
.dav-floating-contact-actions .dav-floating-action-phone {
background: linear-gradient(135deg, #ff4438 0%, #dc2626 100%) !important;
box-shadow: 0 12px 28px rgba(239,59,48,.28) !important;
}
.dav-floating-contact-actions .dav-floating-action-whatsapp {
background: linear-gradient(135deg, #25d366 0%, #16a34a 100%) !important;
box-shadow: 0 12px 28px rgba(34,197,94,.28) !important;
}
.dav-floating-contact-actions .dav-floating-action svg {
width: 17px !important;
height: 17px !important;
flex: 0 0 17px !important;
display: block !important;
fill: currentColor !important;
}
.dav-floating-contact-actions .dav-floating-action span,
.dav-floating-contact-actions .dav-floating-action-phone span,
.dav-floating-contact-actions .dav-floating-action-whatsapp span {
position: static !important;
width: auto !important;
height: auto !important;
margin: 0 !important;
padding: 0 !important;
overflow: visible !important;
clip: auto !important;
white-space: nowrap !important;
font-size: 13px !important;
line-height: 1 !important;
border: 0 !important;
}
.dav-floating-contact-actions .dav-floating-action span:after,
.dav-floating-contact-actions .dav-floating-action-phone span:after,
.dav-floating-contact-actions .dav-floating-action-whatsapp span:after {
content: none !important;
display: none !important;
}
.dav-floating-call {
display: none !important;
visibility: hidden !important;
pointer-events: none !important;
}
}
</style>
<script id="dav-mobile-cta-floating-final-fix-js">
(function () {
function ensureFinalMobileCtas() {
document.querySelectorAll('body.home .dav-hero-mobile-panel .dav-mobile-cta-card').forEach(function (card) {
card.setAttribute('aria-hidden', 'true');
card.style.setProperty('display', 'none', 'important');
});
document.querySelectorAll('body.home .dav-mobile-hero-actions a.red').forEach(function (a) {
a.textContent = 'Suna acum';
a.href = 'tel:+40754796389';
a.setAttribute('aria-label', 'Suna acum DavRoofing');
});
document.querySelectorAll('body.home .dav-mobile-hero-actions a.green').forEach(function (a) {
a.textContent = 'Trimite poze pe WhatsApp';
a.href = 'https://wa.me/40754796389';
a.setAttribute('aria-label', 'Trimite poze pe WhatsApp DavRoofing');
});
document.querySelectorAll('.dav-floating-contact-actions').forEach(function (wrap) {
var phone = wrap.querySelector('.dav-floating-action-phone');
var wa = wrap.querySelector('.dav-floating-action-whatsapp');
if (phone) {
phone.style.setProperty('display', 'inline-flex', 'important');
phone.style.setProperty('visibility', 'visible', 'important');
phone.removeAttribute('aria-hidden');
phone.href = 'tel:+40754796389';
phone.setAttribute('aria-label', 'Suna acum DavRoofing');
var phoneSpan = phone.querySelector('span') || document.createElement('span');
phoneSpan.textContent = 'Suna acum';
if (!phoneSpan.parentNode) phone.appendChild(phoneSpan);
}
if (wa) {
wa.style.setProperty('display', 'inline-flex', 'important');
wa.style.setProperty('visibility', 'visible', 'important');
wa.removeAttribute('aria-hidden');
wa.href = 'https://wa.me/40754796389';
wa.setAttribute('aria-label', 'WhatsApp DavRoofing');
var waSpan = wa.querySelector('span') || document.createElement('span');
waSpan.textContent = 'WhatsApp';
if (!waSpan.parentNode) wa.appendChild(waSpan);
}
});
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', ensureFinalMobileCtas);
} else {
ensureFinalMobileCtas();
}
window.addEventListener('load', ensureFinalMobileCtas);
setTimeout(ensureFinalMobileCtas, 700);
setTimeout(ensureFinalMobileCtas, 1600);
})();
</script>
<?php
}
// Final cleanup for floating button labels: no duplicated text nodes.
add_action('wp_footer', 'dav_roofing_floating_button_text_final_clean', 50000);
function dav_roofing_floating_button_text_final_clean() {
if (is_admin()) {
return;
}
?>
<script id="dav-floating-button-text-final-clean-js">
(function () {
var phoneSvg = '<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.3-.3.75-.39 1.14-.26 1.25.41 2.6.63 3.95.63.61 0 1.1.49 1.1 1.1v3.48c0 .61-.49 1.1-1.1 1.1C10.61 21.73 2.27 13.39 2.27 3.5c0-.61.49-1.1 1.1-1.1h3.49c.61 0 1.1.49 1.1 1.1 0 1.35.21 2.7.63 3.95.12.39.04.83-.27 1.14l-1.7 2.2z"></path></svg>';
var waSvg = '<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M12.04 2.25c-5.33 0-9.67 4.28-9.67 9.55 0 1.68.45 3.33 1.3 4.78L2.3 21.75l5.33-1.35a9.84 9.84 0 0 0 4.41 1.04c5.33 0 9.67-4.28 9.67-9.55s-4.34-9.64-9.67-9.64zm0 17.55c-1.42 0-2.8-.38-4.01-1.1l-.29-.17-3.16.8.82-3.02-.2-.31a7.74 7.74 0 0 1-1.2-4.2c0-4.36 3.61-7.91 8.04-7.91s8.04 3.55 8.04 7.91-3.61 8-8.04 8zm4.42-5.92c-.24-.12-1.42-.69-1.64-.77-.22-.08-.38-.12-.54.12-.16.24-.62.77-.76.93-.14.16-.28.18-.52.06-.24-.12-1.01-.37-1.92-1.17-.71-.63-1.19-1.41-1.33-1.65-.14-.24-.02-.37.1-.49.11-.11.24-.28.36-.42.12-.14.16-.24.24-.4.08-.16.04-.3-.02-.42-.06-.12-.54-1.29-.74-1.77-.19-.46-.39-.4-.54-.41h-.46c-.16 0-.42.06-.64.3-.22.24-.84.81-.84 1.97s.86 2.29.98 2.45c.12.16 1.69 2.55 4.1 3.57.57.25 1.02.4 1.37.51.58.18 1.1.16 1.51.1.46-.07 1.42-.57 1.62-1.13.2-.56.2-1.04.14-1.13-.06-.1-.22-.16-.46-.28z"></path></svg>';
function cleanFloatingLabels() {
document.querySelectorAll('.dav-floating-contact-actions .dav-floating-action-phone').forEach(function (phone) {
phone.href = 'tel:+40754796389';
phone.setAttribute('aria-label', 'Suna acum DavRoofing');
phone.removeAttribute('aria-hidden');
phone.innerHTML = phoneSvg + '<span>Suna acum</span>';
phone.style.setProperty('display', 'inline-flex', 'important');
phone.style.setProperty('visibility', 'visible', 'important');
});
document.querySelectorAll('.dav-floating-contact-actions .dav-floating-action-whatsapp').forEach(function (wa) {
wa.href = 'https://wa.me/40754796389';
wa.setAttribute('aria-label', 'WhatsApp DavRoofing');
wa.removeAttribute('aria-hidden');
wa.innerHTML = waSvg + '<span>WhatsApp</span>';
wa.style.setProperty('display', 'inline-flex', 'important');
wa.style.setProperty('visibility', 'visible', 'important');
});
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', cleanFloatingLabels);
} else {
cleanFloatingLabels();
}
window.addEventListener('load', cleanFloatingLabels);
[300, 900, 1700, 2600].forEach(function (delay) { setTimeout(cleanFloatingLabels, delay); });
})();
</script>
<?php
}
// Contact page quick buttons final text/layout fix.
add_action('wp_footer', 'dav_roofing_contact_quick_buttons_final_fix', 50010);
function dav_roofing_contact_quick_buttons_final_fix() {
if (!is_page('contact')) {
return;
}
?>
<style id="dav-contact-quick-buttons-final-fix-css">
body.page-id-62 .dav-contact-quick {
display: grid !important;
grid-template-columns: 1fr !important;
gap: 10px !important;
margin-top: 20px !important;
}
body.page-id-62 .dav-contact-quick a {
display: flex !important;
align-items: center !important;
justify-content: center !important;
gap: 14px !important;
min-height: 58px !important;
padding: 0 18px !important;
border-radius: 8px !important;
color: #fff !important;
text-decoration: none !important;
font-weight: 950 !important;
letter-spacing: 0 !important;
line-height: 1.15 !important;
white-space: normal !important;
box-sizing: border-box !important;
}
body.page-id-62 .dav-contact-quick a[href*="wa.me"] {
background: #22c55e !important;
box-shadow: 0 14px 30px rgba(34,197,94,.22) !important;
}
body.page-id-62 .dav-contact-quick a[href^="tel:"] {
background: rgba(255,255,255,.10) !important;
border: 1px solid rgba(255,255,255,.22) !important;
box-shadow: none !important;
}
body.page-id-62 .dav-contact-quick a span,
body.page-id-62 .dav-contact-quick a b,
body.page-id-62 .dav-contact-quick a strong {
position: static !important;
display: inline !important;
width: auto !important;
height: auto !important;
margin: 0 !important;
padding: 0 !important;
overflow: visible !important;
clip: auto !important;
font-size: inherit !important;
line-height: inherit !important;
white-space: normal !important;
}
body.page-id-62 .dav-contact-quick a b {
font-size: 18px !important;
text-align: right !important;
}
body.page-id-62 .dav-contact-quick a[href^="tel:"] b {
font-size: 16px !important;
}
@media (max-width: 767px) {
body.page-id-62 .dav-contact-quick a {
min-height: 52px !important;
padding: 0 14px !important;
font-size: 15px !important;
}
body.page-id-62 .dav-contact-quick a b {
font-size: 15px !important;
}
}
</style>
<script id="dav-contact-quick-buttons-final-fix-js">
(function () {
function fixContactQuickButtons() {
var box = document.querySelector('body.page-id-62 .dav-contact-quick');
if (!box) return;
var wa = box.querySelector('a[href*="wa.me"]');
var phone = box.querySelector('a[href^="tel:"]');
if (wa) {
wa.href = 'https://wa.me/40754796389';
wa.setAttribute('aria-label', 'Trimite poze pe WhatsApp DavRoofing');
wa.innerHTML = '<span>Trimite poze pe WhatsApp</span>';
}
if (phone) {
phone.href = 'tel:+40754796389';
phone.setAttribute('aria-label', 'Suna acum DavRoofing');
phone.innerHTML = '<span>Suna acum</span>';
}
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', fixContactQuickButtons);
} else {
fixContactQuickButtons();
}
window.addEventListener('load', fixContactQuickButtons);
[300, 900, 1700, 2600].forEach(function (delay) { setTimeout(fixContactQuickButtons, delay); });
})();
</script>
<?php
}
// Final floating contact order: phone above WhatsApp.
function dav_roofing_floating_buttons_phone_first_final() {
?>
<style id="dav-floating-buttons-phone-first-final-css">
.dav-floating-actions,
[aria-label="Contact rapid DavRoofing"] {
display: flex !important;
flex-direction: column !important;
align-items: stretch !important;
justify-content: flex-end !important;
gap: 10px !important;
width: min(250px, calc(100vw - 32px)) !important;
max-width: 250px !important;
right: 18px !important;
left: auto !important;
bottom: 22px !important;
z-index: 99999 !important;
}
.dav-floating-actions a,
[aria-label="Contact rapid DavRoofing"] a {
width: 100% !important;
min-width: 0 !important;
height: 52px !important;
min-height: 52px !important;
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
gap: 10px !important;
border-radius: 8px !important;
white-space: nowrap !important;
text-align: center !important;
line-height: 1 !important;
box-sizing: border-box !important;
}
.dav-floating-actions .dav-floating-action-phone,
[aria-label="Contact rapid DavRoofing"] a[href^="tel:"] {
order: 1 !important;
background: #f2382f !important;
color: #fff !important;
}
.dav-floating-actions .dav-floating-action-whatsapp,
[aria-label="Contact rapid DavRoofing"] a[href*="wa.me"],
[aria-label="Contact rapid DavRoofing"] a[href*="whatsapp"] {
order: 2 !important;
background: #20c85a !important;
color: #fff !important;
}
@media (max-width: 767px) {
.dav-floating-actions,
[aria-label="Contact rapid DavRoofing"] {
width: 184px !important;
max-width: calc(100vw - 28px) !important;
right: 14px !important;
bottom: 16px !important;
gap: 8px !important;
}
.dav-floating-actions a,
[aria-label="Contact rapid DavRoofing"] a {
height: 46px !important;
min-height: 46px !important;
font-size: 14px !important;
}
}
</style>
<?php
}
add_action('wp_footer', 'dav_roofing_floating_buttons_phone_first_final', 99999);
// Contact page final image replacement.
function dav_roofing_contact_image_final_20260702() {
if (!is_page('contact')) {
return;
}
$contact_image = 'https://dav-roofing.ro/wp-content/uploads/2026/07/dav-contact-metal-roof.png';
?>
<link rel="preload" as="image" href="<?php echo esc_url(//dav-roofing.ro/wp-content/themes/roonix/$contact_image); ?>" fetchpriority="high">
<style id="dav-contact-image-final-20260702-css">
body.page-id-62 .page-title {
background-image: url(//dav-roofing.ro/wp-content/themes/roonix/<?php echo esc_url($contact_image); ?>') !important;
background-size: cover !important;
background-position: center 38% !important;
background-repeat: no-repeat !important;
filter: none !important;
}
body.page-id-62 .page-title::before,
body.page-id-62 .page-title::after,
body.page-id-62 .page-title .auto-container::before,
body.page-id-62 .page-title .auto-container::after {
opacity: 0 !important;
background: transparent !important;
}
body.page-id-62 .dav-contact-panel {
background-image: url(//dav-roofing.ro/wp-content/themes/roonix/<?php echo esc_url($contact_image); ?>') !important;
background-size: cover !important;
background-position: center 38% !important;
background-repeat: no-repeat !important;
filter: none !important;
}
body.page-id-62 .dav-contact-panel::before,
body.page-id-62 .dav-contact-panel::after {
opacity: 0 !important;
background: transparent !important;
}
</style>
<script id="dav-contact-image-final-20260702-js">
(function () {
var image = '<?php echo esc_js($contact_image); ?>';
function applyContactImage() {
document.querySelectorAll('body.page-id-62 .page-title, body.page-id-62 .dav-contact-panel').forEach(function (el) {
el.style.setProperty('background-image', 'url(//dav-roofing.ro/wp-content/themes/roonix/+ image +)', 'important');
el.style.setProperty('background-size', 'cover', 'important');
el.style.setProperty('background-position', 'center center', 'important');
el.style.setProperty('background-repeat', 'no-repeat', 'important');
el.style.setProperty('filter', 'none', 'important');
});
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', applyContactImage);
} else {
applyContactImage();
}
window.addEventListener('load', applyContactImage);
[300, 900, 1700].forEach(function (delay) { setTimeout(applyContactImage, delay); });
})();
</script>
<?php
}
add_action('wp_head', 'dav_roofing_contact_image_final_20260702', 99999);
// Contact form panel image: match homepage service form image.
function dav_roofing_contact_panel_homepage_form_image_20260702() {
if (!is_page('contact')) {
return;
}
$contact_panel_image = 'https://dav-roofing.ro/wp-content/uploads/2026/07/davroofing-service-card-new.jpg';
?>
<link rel="preload" as="image" href="<?php echo esc_url(//dav-roofing.ro/wp-content/themes/roonix/$contact_panel_image); ?>">
<style id="dav-contact-panel-homepage-form-image-css">
body.page-id-62 .dav-contact-panel {
background-image: url(//dav-roofing.ro/wp-content/themes/roonix/<?php echo esc_url($contact_panel_image); ?>') !important;
background-size: cover !important;
background-position: center 38% !important;
background-repeat: no-repeat !important;
filter: none !important;
}
body.page-id-62 .dav-contact-panel::before,
body.page-id-62 .dav-contact-panel::after {
opacity: 0 !important;
background: transparent !important;
}
</style>
<script id="dav-contact-panel-homepage-form-image-js">
(function () {
var image = '<?php echo esc_js($contact_panel_image); ?>';
function applyPanelImage() {
document.querySelectorAll('body.page-id-62 .dav-contact-panel').forEach(function (el) {
el.style.setProperty('background-image', 'url(//dav-roofing.ro/wp-content/themes/roonix/+ image +)', 'important');
el.style.setProperty('background-size', 'cover', 'important');
el.style.setProperty('background-position', 'center center', 'important');
el.style.setProperty('background-repeat', 'no-repeat', 'important');
el.style.setProperty('filter', 'none', 'important');
});
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', applyPanelImage);
} else {
applyPanelImage();
}
window.addEventListener('load', applyPanelImage);
[300, 900, 1700, 2600].forEach(function (delay) { setTimeout(applyPanelImage, delay); });
})();
</script>
<?php
}
add_action('wp_head', 'dav_roofing_contact_panel_homepage_form_image_20260702', 100000);
add_action('wp_footer', 'dav_roofing_contact_panel_homepage_form_image_20260702', 100000);
// Footer brand spelling: Davroofing with lowercase r.
function dav_roofing_footer_lowercase_r_20260702() {
if (is_admin()) {
return;
}
?>
<script id="dav-footer-lowercase-r-js">
(function () {
function fixFooterBrand() {
var roots = document.querySelectorAll('footer, .main-footer, .footer-bottom, .copyright, .footer-copyright');
roots.forEach(function (root) {
var walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT);
var node;
while ((node = walker.nextNode())) {
node.nodeValue = node.nodeValue.replace(/DavRoofing/g, 'Davroofing');
}
});
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', fixFooterBrand);
} else {
fixFooterBrand();
}
window.addEventListener('load', fixFooterBrand);
[300, 900, 1700].forEach(function (delay) { setTimeout(fixFooterBrand, delay); });
})();
</script>
<?php
}
add_action('wp_footer', 'dav_roofing_footer_lowercase_r_20260702', 100001);
// Robust footer brand spelling: Davroofing with lowercase r, bypassing older brand normalizers.
function dav_roofing_footer_lowercase_r_robust_20260702() {
if (is_admin()) {
return;
}
?>
<script id="dav-footer-lowercase-r-robust-js">
(function () {
function fixFooterBrandRobust() {
var wanted = 'Dav' + 'roofing';
var roots = document.querySelectorAll('footer, .main-footer, .footer-bottom, .copyright, .footer-copyright');
roots.forEach(function (root) {
var walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT);
var node;
while ((node = walker.nextNode())) {
if (node.nodeValue.indexOf('� 2017 DavRoofing') !== -1 || node.nodeValue.indexOf('2017 DavRoofing') !== -1) {
node.nodeValue = node.nodeValue.replace(/DavRoofing/g, wanted);
}
}
});
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', fixFooterBrandRobust);
} else {
fixFooterBrandRobust();
}
window.addEventListener('load', fixFooterBrandRobust);
[100, 500, 1200, 2500, 4000].forEach(function (delay) { setTimeout(fixFooterBrandRobust, delay); });
})();
</script>
<?php
}
add_action('wp_footer', 'dav_roofing_footer_lowercase_r_robust_20260702', 100002);
// Global CTA cleanup: replace "Solicita serviciile noastre" with phone CTA.
function dav_roofing_global_suna_acum_cta_20260703() {
if (is_admin()) {
return;
}
?>
<style id="dav-global-suna-acum-cta-css">
a.dav-global-suna-acum,
button.dav-global-suna-acum {
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
gap: 10px !important;
text-decoration: none !important;
white-space: nowrap !important;
}
.dav-global-suna-acum svg {
width: 18px !important;
height: 18px !important;
flex: 0 0 18px !important;
display: inline-block !important;
fill: currentColor !important;
}
input.dav-global-suna-acum-input {
text-transform: none !important;
}
</style>
<script id="dav-global-suna-acum-cta-js">
(function () {
var phone = 'tel:+40754796389';
var phoneSvg = '<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.3-.3.75-.39 1.14-.26 1.25.41 2.6.63 3.95.63.61 0 1.1.49 1.1 1.1v3.48c0 .61-.49 1.1-1.1 1.1C10.61 21.73 2.27 13.39 2.27 3.5c0-.61.49-1.1 1.1-1.1h3.49c.61 0 1.1.49 1.1 1.1 0 1.35.21 2.7.63 3.95.12.39.04.83-.27 1.14l-1.7 2.2z"></path></svg>';
function normalize(text) {
return (text || '').replace(/\s+/g, ' ').trim().toLowerCase();
}
function shouldReplace(text) {
var t = normalize(text);
return t === 'solicita serviciile noastre' || t === 'solicita serviciile noastre' || t.indexOf('solicita serviciile noastre') !== -1 || t.indexOf('solicita serviciile noastre') !== -1;
}
function relabelCtas() {
document.querySelectorAll('a, button').forEach(function (el) {
if (!shouldReplace(el.textContent)) return;
el.classList.add('dav-global-suna-acum');
el.setAttribute('aria-label', 'Suna acum DavRoofing');
if (el.tagName === 'A') {
el.href = phone;
el.removeAttribute('target');
}
el.innerHTML = phoneSvg + '<span>Suna acum</span>';
});
document.querySelectorAll('input[type="submit"], input[type="button"]').forEach(function (el) {
if (!shouldReplace(el.value)) return;
el.value = 'Suna acum';
el.classList.add('dav-global-suna-acum-input');
el.setAttribute('aria-label', 'Suna acum DavRoofing');
});
var walker = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT);
var node;
while ((node = walker.nextNode())) {
if (node.parentElement && /^(SCRIPT|STYLE|TEXTAREA)$/i.test(node.parentElement.tagName)) continue;
if (shouldReplace(node.nodeValue)) {
node.nodeValue = node.nodeValue.replace(/Solicita serviciile noastre/g, 'Suna acum').replace(/Solicita serviciile noastre/g, 'Suna acum');
}
}
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', relabelCtas);
} else {
relabelCtas();
}
window.addEventListener('load', relabelCtas);
[200, 700, 1400, 2600, 4200].forEach(function (delay) { setTimeout(relabelCtas, delay); });
})();
</script>
<?php
}
add_action('wp_footer', 'dav_roofing_global_suna_acum_cta_20260703', 100003);
// Final pass: make every visible "Suna acum" CTA show a phone icon.
function dav_roofing_suna_acum_icon_everywhere_20260703() {
if (is_admin()) {
return;
}
?>
<style id="dav-suna-acum-icon-everywhere-css">
a.dav-suna-acum-with-icon,
button.dav-suna-acum-with-icon {
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
gap: 10px !important;
}
.dav-suna-acum-with-icon svg {
width: 18px !important;
height: 18px !important;
flex: 0 0 18px !important;
fill: currentColor !important;
}
</style>
<script id="dav-suna-acum-icon-everywhere-js">
(function () {
var phoneSvg = '<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.3-.3.75-.39 1.14-.26 1.25.41 2.6.63 3.95.63.61 0 1.1.49 1.1 1.1v3.48c0 .61-.49 1.1-1.1 1.1C10.61 21.73 2.27 13.39 2.27 3.5c0-.61.49-1.1 1.1-1.1h3.49c.61 0 1.1.49 1.1 1.1 0 1.35.21 2.7.63 3.95.12.39.04.83-.27 1.14l-1.7 2.2z"></path></svg>';
function cleanText(el) {
return (el.textContent || '').replace(/\s+/g, ' ').trim().toLowerCase();
}
function applyIcon() {
document.querySelectorAll('a, button').forEach(function (el) {
if (cleanText(el) !== 'suna acum') return;
el.classList.add('dav-suna-acum-with-icon');
el.setAttribute('aria-label', 'Suna acum DavRoofing');
if (el.tagName === 'A') {
el.href = 'tel:+40754796389';
el.removeAttribute('target');
}
if (!el.querySelector('svg')) {
el.innerHTML = phoneSvg + '<span>Suna acum</span>';
}
});
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', applyIcon);
} else {
applyIcon();
}
window.addEventListener('load', applyIcon);
[100, 400, 900, 1700, 3000, 5000, 7000].forEach(function (delay) { setTimeout(applyIcon, delay); });
})();
</script>
<?php
}
add_action('wp_footer', 'dav_roofing_suna_acum_icon_everywhere_20260703', 100004);
// Keep hamburger menu visible while scrolling on every page.
function dav_roofing_sticky_hamburger_everywhere_20260703() {
if (is_admin()) {
return;
}
?>
<style id="dav-sticky-hamburger-everywhere-css">
body .mobile-nav-toggler,
body .nav-btn.navSidebar-button {
position: fixed !important;
top: 28px !important;
right: 34px !important;
z-index: 999998 !important;
width: 48px !important;
height: 48px !important;
min-width: 48px !important;
min-height: 48px !important;
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
cursor: pointer !important;
border-radius: 10px !important;
background: rgba(255,255,255,.92) !important;
color: #111827 !important;
box-shadow: 0 10px 28px rgba(15,23,42,.16) !important;
border: 1px solid rgba(15,23,42,.10) !important;
backdrop-filter: blur(10px) !important;
}
body.admin-bar .mobile-nav-toggler,
body.admin-bar .nav-btn.navSidebar-button {
top: 60px !important;
}
body .mobile-nav-toggler .icon,
body .nav-btn.navSidebar-button .icon {
color: #111827 !important;
font-size: 24px !important;
line-height: 1 !important;
}
body .mobile-nav-toggler::before,
body .mobile-nav-toggler::after,
body .nav-btn.navSidebar-button::before,
body .nav-btn.navSidebar-button::after {
content: none !important;
display: none !important;
}
body .sticky-header .mobile-nav-toggler,
body .sticky-header .nav-btn.navSidebar-button {
position: fixed !important;
}
@media (max-width: 767px) {
body .mobile-nav-toggler,
body .nav-btn.navSidebar-button {
top: 18px !important;
right: 14px !important;
width: 44px !important;
height: 44px !important;
min-width: 44px !important;
min-height: 44px !important;
border-radius: 8px !important;
}
body.admin-bar .mobile-nav-toggler,
body.admin-bar .nav-btn.navSidebar-button {
top: 58px !important;
}
}
</style>
<script id="dav-sticky-hamburger-everywhere-js">
(function () {
function keepHamburgerVisible() {
var buttons = Array.prototype.slice.call(document.querySelectorAll('.mobile-nav-toggler, .nav-btn.navSidebar-button'));
buttons.forEach(function (btn) {
btn.style.setProperty('position', 'fixed', 'important');
btn.style.setProperty('right', window.innerWidth < 768 ? '14px' : '34px', 'important');
btn.style.setProperty('top', document.body.classList.contains('admin-bar') ? (window.innerWidth < 768 ? '58px' : '60px') : (window.innerWidth < 768 ? '18px' : '28px'), 'important');
btn.style.setProperty('z-index', '999998', 'important');
btn.style.setProperty('display', 'inline-flex', 'important');
btn.style.setProperty('visibility', 'visible', 'important');
btn.style.setProperty('opacity', '1', 'important');
btn.setAttribute('aria-label', 'Deschide meniul');
});
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', keepHamburgerVisible);
} else {
keepHamburgerVisible();
}
window.addEventListener('load', keepHamburgerVisible);
window.addEventListener('scroll', keepHamburgerVisible, { passive: true });
window.addEventListener('resize', keepHamburgerVisible);
[250, 900, 1800, 3200].forEach(function (delay) { setTimeout(keepHamburgerVisible, delay); });
})();
</script>
<?php
}
add_action('wp_footer', 'dav_roofing_sticky_hamburger_everywhere_20260703', 100005);
// Final refinement: keep only one sticky hamburger visible.
function dav_roofing_single_sticky_hamburger_20260703() {
if (is_admin()) {
return;
}
?>
<style id="dav-single-sticky-hamburger-css">
body .dav-hamburger-duplicate-hidden {
display: none !important;
visibility: hidden !important;
opacity: 0 !important;
pointer-events: none !important;
}
body .dav-hamburger-sticky-active {
position: fixed !important;
top: 28px !important;
right: 34px !important;
z-index: 999998 !important;
width: 48px !important;
height: 48px !important;
min-width: 48px !important;
min-height: 48px !important;
max-height: 48px !important;
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
border-radius: 10px !important;
background: rgba(255,255,255,.94) !important;
color: #111827 !important;
box-shadow: 0 10px 28px rgba(15,23,42,.16) !important;
border: 1px solid rgba(15,23,42,.10) !important;
overflow: hidden !important;
}
body.admin-bar .dav-hamburger-sticky-active { top: 60px !important; }
body .dav-hamburger-sticky-active .icon {
color: #111827 !important;
font-size: 24px !important;
line-height: 1 !important;
}
@media (max-width: 767px) {
body .dav-hamburger-sticky-active {
top: 18px !important;
right: 14px !important;
width: 44px !important;
height: 44px !important;
min-width: 44px !important;
min-height: 44px !important;
max-height: 44px !important;
}
body.admin-bar .dav-hamburger-sticky-active { top: 58px !important; }
}
</style>
<script id="dav-single-sticky-hamburger-js">
(function () {
function chooseSingleHamburger() {
var buttons = Array.prototype.slice.call(document.querySelectorAll('.mobile-nav-toggler, .nav-btn.navSidebar-button'));
if (!buttons.length) return;
var preferred = buttons.find(function (btn) { return btn.classList.contains('mobile-nav-toggler') && btn.closest('.main-header'); }) || buttons.find(function (btn) { return btn.classList.contains('mobile-nav-toggler'); }) || buttons[0];
buttons.forEach(function (btn) {
btn.classList.remove('dav-hamburger-sticky-active');
if (btn !== preferred) {
btn.classList.add('dav-hamburger-duplicate-hidden');
btn.style.setProperty('display', 'none', 'important');
btn.style.setProperty('visibility', 'hidden', 'important');
btn.style.setProperty('pointer-events', 'none', 'important');
}
});
preferred.classList.remove('dav-hamburger-duplicate-hidden');
preferred.classList.add('dav-hamburger-sticky-active');
preferred.style.setProperty('position', 'fixed', 'important');
preferred.style.setProperty('right', window.innerWidth < 768 ? '14px' : '34px', 'important');
preferred.style.setProperty('top', document.body.classList.contains('admin-bar') ? (window.innerWidth < 768 ? '58px' : '60px') : (window.innerWidth < 768 ? '18px' : '28px'), 'important');
preferred.style.setProperty('z-index', '999998', 'important');
preferred.style.setProperty('display', 'inline-flex', 'important');
preferred.style.setProperty('visibility', 'visible', 'important');
preferred.style.setProperty('opacity', '1', 'important');
preferred.style.setProperty('pointer-events', 'auto', 'important');
preferred.setAttribute('aria-label', 'Deschide meniul');
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', chooseSingleHamburger);
} else {
chooseSingleHamburger();
}
window.addEventListener('load', chooseSingleHamburger);
window.addEventListener('scroll', chooseSingleHamburger, { passive: true });
window.addEventListener('resize', chooseSingleHamburger);
[100, 500, 1200, 2400, 4200].forEach(function (delay) { setTimeout(chooseSingleHamburger, delay); });
})();
</script>
<?php
}
add_action('wp_footer', 'dav_roofing_single_sticky_hamburger_20260703', 100006);
// Send all public site forms directly to WhatsApp instead of normal submission.
function dav_roofing_all_forms_to_whatsapp_20260703() {
if (is_admin()) {
return;
}
?>
<style id="dav-all-forms-whatsapp-css">
form .dav-whatsapp-submit-label,
button.dav-whatsapp-submit,
input.dav-whatsapp-submit {
cursor: pointer !important;
}
</style>
<script id="dav-all-forms-whatsapp-js">
(function () {
var phone = '40754796389';
var waBase = 'https://wa.me/' + phone + '?text=';
var submitSvg = '<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false" style="width:18px;height:18px;fill:currentColor;display:inline-block;vertical-align:-3px;margin-right:8px"><path d="M12.04 2.25c-5.33 0-9.67 4.28-9.67 9.55 0 1.68.45 3.33 1.3 4.78L2.3 21.75l5.33-1.35a9.84 9.84 0 0 0 4.41 1.04c5.33 0 9.67-4.28 9.67-9.55s-4.34-9.64-9.67-9.64zm0 17.55c-1.42 0-2.8-.38-4.01-1.1l-.29-.17-3.16.8.82-3.02-.2-.31a7.74 7.74 0 0 1-1.2-4.2c0-4.36 3.61-7.91 8.04-7.91s8.04 3.55 8.04 7.91-3.61 8-8.04 8zm4.42-5.92c-.24-.12-1.42-.69-1.64-.77-.22-.08-.38-.12-.54.12-.16.24-.62.77-.76.93-.14.16-.28.18-.52.06-.24-.12-1.01-.37-1.92-1.17-.71-.63-1.19-1.41-1.33-1.65-.14-.24-.02-.37.1-.49.11-.11.24-.28.36-.42.12-.14.16-.24.24-.4.08-.16.04-.3-.02-.42-.06-.12-.54-1.29-.74-1.77-.19-.46-.39-.4-.54-.41h-.46c-.16 0-.42.06-.64.3-.22.24-.84.81-.84 1.97s.86 2.29.98 2.45c.12.16 1.69 2.55 4.1 3.57.57.25 1.02.4 1.37.51.58.18 1.1.16 1.51.1.46-.07 1.42-.57 1.62-1.13.2-.56.2-1.04.14-1.13-.06-.1-.22-.16-.46-.28z"></path></svg>';
function clean(v) {
return (v || '').toString().replace(/\s+/g, ' ').trim();
}
function fieldLabel(field) {
var placeholder = field.getAttribute('placeholder');
if (placeholder) return clean(placeholder).replace(/\*+$/,'');
var aria = field.getAttribute('aria-label');
if (aria) return clean(aria).replace(/\*+$/,'');
var name = field.getAttribute('name') || field.getAttribute('id') || 'Camp';
name = name.replace(/^your-/,'').replace(/[_-]+/g, ' ');
var map = {
'text 411': 'Nume',
'text 412': 'Telefon',
'text 413': 'Serviciu',
'email 788': 'Email',
'textarea 377': 'Mesaj',
'name': 'Nume',
'nume': 'Nume',
'email': 'Email',
'telefon': 'Telefon',
'phone': 'Telefon',
'oras': 'Oras',
'city': 'Oras',
'message': 'Mesaj',
'mesaj': 'Mesaj',
'subject': 'Serviciu'
};
return map[name.toLowerCase()] || name.replace(/\b\w/g, function (c) { return c.toUpperCase(); });
}
function collectFormMessage(form) {
var lines = ['Buna ziua, vreau o oferta DavRoofing.'];
var seen = {};
var fields = Array.prototype.slice.call(form.querySelectorAll('input, textarea, select'));
fields.forEach(function (field) {
if (!field.name && !field.id && !field.placeholder) return;
var type = (field.type || '').toLowerCase();
if (['submit','button','reset','hidden','file'].indexOf(type) !== -1) return;
if ((type === 'checkbox' || type === 'radio') && !field.checked) return;
var value = clean(field.value);
if (!value) return;
var label = clean(fieldLabel(field));
var key = label.toLowerCase() + ':' + value.toLowerCase();
if (seen[key]) return;
seen[key] = true;
lines.push(label + ': ' + value);
});
lines.push('Trimis de pe pagina: ' + window.location.href.split('#')[0]);
return lines.join('\n');
}
function isPublicLeadForm(form) {
if (!form || form.closest('header') || form.closest('.search-popup') || form.closest('.woocommerce') || form.closest('.comment-form')) return false;
var text = (form.textContent || '').toLowerCase();
var fields = form.querySelectorAll('input:not([type="hidden"]), textarea, select').length;
if (form.classList.contains('wpcf7-form') || form.closest('.wpcf7') || form.className.indexOf('wpforms') !== -1 || form.closest('.wpforms-container')) return true;
return fields >= 2 && (text.indexOf('telefon') !== -1 || text.indexOf('email') !== -1 || text.indexOf('mesaj') !== -1 || text.indexOf('nume') !== -1);
}
function relabelSubmitButtons(form) {
form.querySelectorAll('button[type="submit"], input[type="submit"], .theme-btn').forEach(function (btn) {
if (btn.closest('.dav-split-actions') || btn.classList.contains('dav-email-action')) return;
btn.classList.add('dav-whatsapp-submit');
btn.setAttribute('aria-label', 'Trimite formularul pe WhatsApp');
if (btn.tagName === 'INPUT') {
btn.value = 'Trimite pe WhatsApp';
} else {
btn.innerHTML = submitSvg + '<span>Trimite pe WhatsApp</span>';
}
});
}
function bindForms() {
document.querySelectorAll('form').forEach(function (form) {
if (!isPublicLeadForm(form)) return;
relabelSubmitButtons(form);
if (form.dataset.davWhatsappBound === '1') return;
form.dataset.davWhatsappBound = '1';
form.setAttribute('data-dav-whatsapp-form', '1');
form.addEventListener('submit', function (event) {
if (form.dataset.davSubmitMode === 'email' || (event.submitter && event.submitter.classList && event.submitter.classList.contains('dav-email-action'))) {
form.dataset.davSubmitMode = '';
return true;
}
event.preventDefault();
event.stopPropagation();
if (event.stopImmediatePropagation) event.stopImmediatePropagation();
var required = Array.prototype.slice.call(form.querySelectorAll('[required], [aria-required="true"]'));
var missing = required.filter(function (field) { return !clean(field.value); });
if (missing.length) {
missing[0].focus();
return false;
}
var url = waBase + encodeURIComponent(collectFormMessage(form));
window.location.href = url;
return false;
}, true);
});
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', bindForms);
} else {
bindForms();
}
window.addEventListener('load', bindForms);
[300, 900, 1700, 3000, 5000].forEach(function (delay) { setTimeout(bindForms, delay); });
})();
</script>
<?php
}
add_action('wp_footer', 'dav_roofing_all_forms_to_whatsapp_20260703', 100007);
// About page hero: show logo only.
function dav_roofing_about_logo_only_hero_20260703() {
if (!is_page('despre-noi')) {
return;
}
$about_logo = 'https://dav-roofing.ro/wp-content/uploads/2026/07/dav-about-logo-hero.png';
?>
<link rel="preload" as="image" href="<?php echo esc_url(//dav-roofing.ro/wp-content/themes/roonix/$about_logo); ?>" fetchpriority="high">
<style id="dav-about-logo-only-hero-css">
body.page-id-49 .page-title,
body.page-id-61 .page-title,
body.page-id-65 .page-title,
body.page-id-62.page-id-62 .page-title,
body.slug-despre-noi .page-title,
body[class*="despre-noi"] .page-title {
background-color: #ffffff !important;
background-image: url(//dav-roofing.ro/wp-content/themes/roonix/<?php echo esc_url($about_logo); ?>') !important;
background-size: min(820px, 82vw) auto !important;
background-position: center 38% !important;
background-repeat: no-repeat !important;
min-height: 385px !important;
height: 385px !important;
filter: none !important;
}
body.page-id-49 .page-title h1,
body.page-id-49 .page-title h2,
body.page-id-49 .page-title .bread-crumb,
body.page-id-49 .page-title ul,
body.page-id-49 .page-title li,
body.page-id-49 .page-title .auto-container,
body.page-id-61 .page-title h1,
body.page-id-61 .page-title h2,
body.page-id-61 .page-title .bread-crumb,
body.page-id-61 .page-title ul,
body.page-id-61 .page-title li,
body.page-id-61 .page-title .auto-container,
body[class*="despre-noi"] .page-title h1,
body[class*="despre-noi"] .page-title h2,
body[class*="despre-noi"] .page-title .bread-crumb,
body[class*="despre-noi"] .page-title ul,
body[class*="despre-noi"] .page-title li,
body[class*="despre-noi"] .page-title .auto-container {
opacity: 0 !important;
visibility: hidden !important;
pointer-events: none !important;
}
body.page-id-49 .page-title::before,
body.page-id-49 .page-title::after,
body.page-id-49 .page-title *::before,
body.page-id-49 .page-title *::after,
body.page-id-61 .page-title::before,
body.page-id-61 .page-title::after,
body.page-id-61 .page-title *::before,
body.page-id-61 .page-title *::after,
body[class*="despre-noi"] .page-title::before,
body[class*="despre-noi"] .page-title::after,
body[class*="despre-noi"] .page-title *::before,
body[class*="despre-noi"] .page-title *::after {
opacity: 0 !important;
background: transparent !important;
}
@media (max-width: 767px) {
body.page-id-49 .page-title,
body.page-id-61 .page-title,
body[class*="despre-noi"] .page-title {
min-height: 250px !important;
height: 250px !important;
background-size: 86vw auto !important;
}
}
</style>
<script id="dav-about-logo-only-hero-js">
(function () {
var logo = '<?php echo esc_js($about_logo); ?>';
function applyLogoHero() {
if (location.pathname.indexOf('/despre-noi') === -1) return;
document.querySelectorAll('.page-title').forEach(function (hero) {
hero.style.setProperty('background-color', '#ffffff', 'important');
hero.style.setProperty('background-image', 'url(//dav-roofing.ro/wp-content/themes/roonix/+ logo +)', 'important');
hero.style.setProperty('background-size', window.innerWidth < 768 ? '86vw auto' : 'min(820px, 82vw) auto', 'important');
hero.style.setProperty('background-position', 'center center', 'important');
hero.style.setProperty('background-repeat', 'no-repeat', 'important');
hero.style.setProperty('filter', 'none', 'important');
hero.querySelectorAll('h1,h2,.bread-crumb,ul,li,.auto-container').forEach(function (el) {
el.style.setProperty('opacity', '0', 'important');
el.style.setProperty('visibility', 'hidden', 'important');
});
});
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', applyLogoHero);
} else {
applyLogoHero();
}
window.addEventListener('load', applyLogoHero);
window.addEventListener('resize', applyLogoHero);
[300, 900, 1700, 3000].forEach(function (delay) { setTimeout(applyLogoHero, delay); });
})();
</script>
<?php
}
add_action('wp_head', 'dav_roofing_about_logo_only_hero_20260703', 100008);
add_action('wp_footer', 'dav_roofing_about_logo_only_hero_20260703', 100008);
function dav_roofing_category_specific_service_galleries_20260703() {
if (!is_page(array(1645, 1160, 1162, 1164, 1703, 1704, 1705))) {
return;
}
$page_id = get_queried_object_id();
$galleries = array(
1645 => array(
'label' => 'Tabla faltuita',
'title' => 'Galerie tabla faltuita',
'lead' => 'Exemple clare cu falturi verticale, tinichigerie curata si acoperisuri metalice faltuite.',
'images' => array(
'26-3.png', '25-3.png', '24-3.png', '23-3.png',
'22-3.png', '21-3.png', '20-3.png', '19-3.png',
'18-3.png', '17-3.png', '16-3.png', '15-3.png',
'14-3.png', '13-3.png', '12-3.png', '11-3.png'
)
),
1160 => array(
'label' => 'Tigla metalica',
'title' => 'Galerie tigla metalica',
'lead' => 'Doar acoperisuri cu profil de tigla metalica, fara panouri solare, faltuita sau detalii pluviale separate.',
'images' => array(
'5-2-1.png', '6-2-1.png', '7-2-1.png',
'8-2-1.png', '11-2-1.png', '13-2-1.png',
'14-2-1.png', '15-2-1.png', '19-2-1.png', '20-2-1.png', '22-2-1.png'
)
),
1162 => array(
'label' => 'Tigla ceramica',
'title' => 'Galerie tigla ceramica',
'lead' => 'Selectie dedicata pentru tigla ceramica rosie si portocalie, cu montaj si detalii potrivite acestei categorii.',
'images' => array(
'1-4.png', '9-1-1.png', '11-1-1.png', '14-1-1.png',
'17-1.png', '18-1.png', '20-1.png', '21-1.png',
'22-1.png', '23-1.png', '24-1.png', '25-1-1.png',
'26-1.png', '27-1-1.png', '28-1.png', '1-1-2.png'
)
),
1164 => array(
'label' => 'Panouri fotovoltaice',
'title' => 'Galerie panouri fotovoltaice',
'lead' => 'Poze cu panouri fotovoltaice pe acoperisuri si interventii legate direct de montajul lor.',
'images' => array(
'1.png', '2.png', '3.png', '4.png',
'5.png', '6.png', '7.png', '8.png',
'9-2.png', '10.png', '11.png', '12.png',
'13.png', '14.png', '15.png', '16.png'
)
)
);
if (empty($galleries[$page_id])) {
return;
}
$gallery = $galleries[$page_id];
?>
<style id="dav-category-specific-service-galleries-css">
body.page-id-1645 .elementor-widget-image-gallery,
body.page-id-1160 .elementor-widget-image-gallery,
body.page-id-1162 .elementor-widget-image-gallery,
body.page-id-1164 .elementor-widget-image-gallery,
body.page-id-1645 .gallery,
body.page-id-1160 .gallery,
body.page-id-1162 .gallery,
body.page-id-1164 .gallery {
display: none !important;
}
.dav-category-gallery {
max-width: 1180px;
margin: 34px auto 72px;
padding: 0 18px;
color: #101828;
}
.dav-category-gallery-head {
max-width: 780px;
margin: 0 auto 24px;
text-align: center;
}
.dav-category-gallery-head span {
display: block;
color: #ef3b30;
font-size: 13px;
line-height: 1.2;
font-weight: 950;
letter-spacing: 3px;
text-transform: uppercase;
margin-bottom: 10px;
}
.dav-category-gallery-head h2 {
margin: 0;
color: #07111f;
font-size: clamp(30px, 4vw, 48px);
line-height: 1.04;
font-weight: 950;
letter-spacing: 0;
}
.dav-category-gallery-head p {
margin: 14px auto 0;
color: #475467;
font-size: 17px;
line-height: 1.65;
}
.dav-category-gallery-grid {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 14px;
}
.dav-category-gallery-grid figure {
margin: 0;
border-radius: 8px;
overflow: hidden;
background: #fff;
border: 1px solid rgba(16,24,40,.10);
box-shadow: 0 16px 42px rgba(16,24,40,.10);
}
.dav-category-gallery-grid img {
width: 100%;
height: 210px;
display: block;
object-fit: cover;
filter: none !important;
}
@media (max-width: 991px) {
.dav-category-gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575px) {
.dav-category-gallery { margin: 24px auto 52px; padding: 0 14px; }
.dav-category-gallery-head { text-align: left; }
.dav-category-gallery-grid { grid-template-columns: 1fr; }
.dav-category-gallery-grid img { height: 240px; }
}
</style>
<script id="dav-category-specific-service-galleries-js">
(function () {
var galleryData = <?php echo wp_json_encode($gallery); ?>;
var base = 'https://dav-roofing.ro/wp-content/uploads/2024/04/';
function hideLegacyGalleries() {
document.querySelectorAll('.elementor-widget-image-gallery, .gallery').forEach(function (el) {
if (el.closest('.dav-category-gallery')) return;
var section = el.closest('.elementor-section') || el.closest('.elementor-element') || el;
section.style.setProperty('display', 'none', 'important');
section.setAttribute('aria-hidden', 'true');
});
}
function buildGallery() {
if (document.querySelector('.dav-category-gallery')) return;
var anchor = document.querySelector('.dav-clean-service');
if (!anchor) return;
var section = document.createElement('section');
section.className = 'dav-category-gallery';
section.setAttribute('aria-label', galleryData.title + ' DavRoofing');
section.innerHTML =
'<div class="dav-category-gallery-head">' +
'<span>' + galleryData.label + '</span>' +
'<h2>' + galleryData.title + '</h2>' +
'<p>' + galleryData.lead + '</p>' +
'</div>' +
'<div class="dav-category-gallery-grid">' +
galleryData.images.map(function (file, index) {
var src = base + file;
return '<figure><img src="' + src + '" alt="' + galleryData.label + ' DavRoofing ' + (index + 1) + '" loading="lazy" decoding="async"></figure>';
}).join('') +
'</div>';
anchor.insertAdjacentElement('afterend', section);
}
function run() {
hideLegacyGalleries();
buildGallery();
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', run);
} else {
run();
}
window.addEventListener('load', run);
setTimeout(run, 900);
setTimeout(run, 2200);
})();
</script>
<?php
}
add_action('wp_footer', 'dav_roofing_category_specific_service_galleries_20260703', 100009);
function dav_roofing_whatsapp_form_submit_green_20260703() {
?>
<style id="dav-whatsapp-form-submit-green-css">
html body form input[type="submit"],
html body form button[type="submit"],
html body .wpcf7 form input.wpcf7-submit,
html body .wpforms-form button[type="submit"],
html body .dav-service-request form input[type="submit"],
html body .dav-contact-form-shell form input[type="submit"],
html body .dav-contact-premium form input[type="submit"],
html body .dav-clean-service form input[type="submit"] {
background: linear-gradient(135deg, #25d366 0%, #16a34a 100%) !important;
border-color: #22c55e !important;
color: #ffffff !important;
box-shadow: 0 18px 42px rgba(34,197,94,.28) !important;
}
html body form input[type="submit"]:hover,
html body form button[type="submit"]:hover,
html body .wpcf7 form input.wpcf7-submit:hover,
html body .wpforms-form button[type="submit"]:hover {
background: linear-gradient(135deg, #22c55e 0%, #15803d 100%) !important;
border-color: #16a34a !important;
color: #ffffff !important;
transform: translateY(-1px);
}
</style>
<script id="dav-whatsapp-form-submit-green-js">
(function () {
function polishWhatsappFormButtons() {
document.querySelectorAll('form input[type="submit"], form button[type="submit"], .wpcf7-submit, .wpforms-submit').forEach(function (btn) {
if (btn.closest('.dav-split-actions') || btn.classList.contains('dav-email-action')) return;
var current = (btn.value || btn.textContent || '').trim();
if (/trimite|solicita|mesaj|oferta/i.test(current)) {
if (btn.tagName === 'INPUT') {
btn.value = 'Trimite pe WhatsApp';
} else {
btn.textContent = 'Trimite pe WhatsApp';
}
}
btn.classList.add('dav-whatsapp-form-submit-green');
btn.style.setProperty('background', 'linear-gradient(135deg, #25d366 0%, #16a34a 100%)', 'important');
btn.style.setProperty('border-color', '#22c55e', 'important');
btn.style.setProperty('color', '#ffffff', 'important');
});
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', polishWhatsappFormButtons);
} else {
polishWhatsappFormButtons();
}
window.addEventListener('load', polishWhatsappFormButtons);
setTimeout(polishWhatsappFormButtons, 900);
setTimeout(polishWhatsappFormButtons, 2200);
})();
</script>
<?php
}
add_action('wp_footer', 'dav_roofing_whatsapp_form_submit_green_20260703', 100010);
function dav_roofing_about_section_service_photo_20260703() {
if (!is_page('despre-noi')) {
return;
}
$about_service_image = 'https://dav-roofing.ro/wp-content/uploads/2026/07/davroofing-about-worker-drill-20260703.png';
?>
<link rel="preload" as="image" href="<?php echo esc_url(//dav-roofing.ro/wp-content/themes/roonix/$about_service_image); ?>">
<style id="dav-about-section-service-photo-css">
body.page-id-49 img[src*="video-image.jpg"],
body[class*="despre-noi"] img[src*="video-image.jpg"] {
content: url(//dav-roofing.ro/wp-content/themes/roonix/<?php echo esc_url($about_service_image); ?>') !important;
object-fit: cover !important;
object-position: center 42% !important;
filter: none !important;
opacity: 1 !important;
}
body.page-id-49 .about-section img,
body[class*="despre-noi"] .about-section img,
body.page-id-49 .image-box img,
body[class*="despre-noi"] .image-box img {
filter: none !important;
opacity: 1 !important;
}
</style>
<script id="dav-about-section-service-photo-js">
(function () {
var newPhoto = '<?php echo esc_js($about_service_image); ?>';
function replaceAboutPhoto() {
if (location.pathname.indexOf('/despre-noi') === -1) return;
var selectors = [
'img[src*="video-image.jpg"]',
'.about-section img',
'.about-style-two img',
'.about-style-three img',
'.image-box img'
];
selectors.forEach(function (selector) {
document.querySelectorAll(selector).forEach(function (img) {
var src = img.getAttribute('src') || '';
var nearAboutText = !!(img.closest('section') && /despre noi|davroofing/i.test(img.closest('section').textContent || ''));
if (src.indexOf('dav-logo') !== -1 || src.indexOf('logo') !== -1) return;
if (src.indexOf('dav-about-logo-hero') !== -1) return;
if (src.indexOf('randomuser') !== -1) return;
if (src.indexOf('video-image.jpg') !== -1 || nearAboutText) {
img.src = newPhoto;
img.removeAttribute('srcset');
img.removeAttribute('sizes');
img.alt = 'Echipa DavRoofing la montaj acoperis';
img.style.setProperty('object-fit', 'cover', 'important');
img.style.setProperty('object-position', 'center center', 'important');
img.style.setProperty('filter', 'none', 'important');
img.style.setProperty('opacity', '1', 'important');
}
});
});
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', replaceAboutPhoto);
} else {
replaceAboutPhoto();
}
window.addEventListener('load', replaceAboutPhoto);
setTimeout(replaceAboutPhoto, 600);
setTimeout(replaceAboutPhoto, 1800);
})();
</script>
<?php
}
add_action('wp_head', 'dav_roofing_about_section_service_photo_20260703', 100011);
add_action('wp_footer', 'dav_roofing_about_section_service_photo_20260703', 100011);
function dav_roofing_split_form_whatsapp_email_actions_20260703() {
if (is_admin()) {
return;
}
?>
<style id="dav-split-form-actions-css">
html body form .dav-split-actions {
width: 100%;
display: grid !important;
grid-template-columns: 1fr 1fr;
gap: 0;
border-radius: 8px;
overflow: hidden;
box-shadow: 0 18px 42px rgba(16,24,40,.16);
margin-top: 16px;
}
html body form .dav-split-actions .dav-split-btn,
html body form .dav-split-actions input[type="submit"],
html body form .dav-split-actions button[type="submit"] {
width: 100% !important;
min-height: 60px !important;
border-radius: 0 !important;
border: 0 !important;
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
gap: 10px !important;
padding: 15px 18px !important;
color: #ffffff !important;
font-weight: 950 !important;
letter-spacing: .7px !important;
text-transform: uppercase !important;
text-align: center !important;
line-height: 1.15 !important;
cursor: pointer !important;
appearance: none !important;
-webkit-appearance: none !important;
box-shadow: none !important;
text-decoration: none !important;
}
html body form .dav-split-actions .dav-whatsapp-action {
background: linear-gradient(135deg, #25d366 0%, #16a34a 100%) !important;
}
html body form .dav-split-actions .dav-email-action,
html body form .dav-split-actions input[type="submit"],
html body form .dav-split-actions button[type="submit"]:not(.dav-whatsapp-action) {
background: linear-gradient(135deg, #ff4438 0%, #dc2626 100%) !important;
}
html body form .dav-split-actions .dav-split-btn:hover,
html body form .dav-split-actions input[type="submit"]:hover,
html body form .dav-split-actions button[type="submit"]:hover {
filter: brightness(.96);
transform: none !important;
}
html body form > input[type="submit"]:not(.dav-split-ready),
html body form > button[type="submit"]:not(.dav-split-ready),
html body .wpcf7 form > p > input.wpcf7-submit:not(.dav-split-ready),
html body .wpforms-form > .wpforms-submit-container > button[type="submit"]:not(.dav-split-ready) {
background: linear-gradient(135deg, #ff4438 0%, #dc2626 100%) !important;
}
@media (max-width: 575px) {
html body form .dav-split-actions {
grid-template-columns: 1fr;
gap: 10px;
overflow: visible;
box-shadow: none;
}
html body form .dav-split-actions .dav-split-btn,
html body form .dav-split-actions input[type="submit"],
html body form .dav-split-actions button[type="submit"] {
border-radius: 8px !important;
min-height: 56px !important;
box-shadow: 0 14px 30px rgba(16,24,40,.14) !important;
}
}
</style>
<script id="dav-split-form-actions-js">
(function () {
var phone = '40754796389';
function fieldValue(form, names) {
for (var i = 0; i < names.length; i++) {
var selector = '[name="' + names[i] + '"], [name*="' + names[i] + '" i], input[placeholder*="' + names[i] + '" i], textarea[placeholder*="' + names[i] + '" i]';
var el = form.querySelector(selector);
if (el && el.value) return el.value.trim();
}
return '';
}
function makeWhatsappUrl(form) {
var name = fieldValue(form, ['nume', 'name', 'your-name', 'wpforms[fields][0]']);
var city = fieldValue(form, ['oras', 'city']);
var email = fieldValue(form, ['email', 'your-email']);
var tel = fieldValue(form, ['telefon', 'phone', 'tel']);
var msg = fieldValue(form, ['mesaj', 'message', 'detalii', 'textarea']);
var text = 'Salut! Vreau o oferta DavRoofing.';
if (name) text += '\nNume: ' + name;
if (city) text += '\nOras: ' + city;
if (tel) text += '\nTelefon: ' + tel;
if (email) text += '\nEmail: ' + email;
if (msg) text += '\nDetalii: ' + msg;
return 'https://wa.me/' + phone + '?text=' + encodeURIComponent(text);
}
function makeEmailOptional(form) {
form.querySelectorAll('input[type="email"], input[name*="email" i]').forEach(function (input) {
input.required = false;
input.removeAttribute('required');
input.removeAttribute('aria-required');
input.classList.remove('wpcf7-validates-as-required');
var placeholder = input.getAttribute('placeholder') || '';
if (placeholder && placeholder.toLowerCase().indexOf('optional') === -1) {
input.setAttribute('placeholder', placeholder.replace('*', '').trim() + ' optional');
}
});
}
function normalizeEmailSubmit(submit) {
submit.classList.add('dav-split-ready', 'dav-email-action');
if (submit.tagName === 'INPUT') {
submit.value = 'Trimite pe email';
} else {
submit.textContent = 'Trimite pe email';
}
submit.setAttribute('aria-label', 'Trimite formularul pe email');
submit.addEventListener('click', function () {
var form = submit.closest('form');
if (form) form.dataset.davSubmitMode = 'email';
});
submit.style.setProperty('background', 'linear-gradient(135deg, #ff4438 0%, #dc2626 100%)', 'important');
submit.style.setProperty('color', '#ffffff', 'important');
}
function buildSplitActions(form) {
if (form.dataset.davSplitActions === '1') return;
var submit = form.querySelector('input[type="submit"], button[type="submit"], button:not([type]), .wpcf7-submit, .wpforms-submit, .theme-btn, .dav-whatsapp-submit');
if (!submit) return;
makeEmailOptional(form);
normalizeEmailSubmit(submit);
var wrap = document.createElement('div');
wrap.className = 'dav-split-actions';
var whatsapp = document.createElement('button');
whatsapp.type = 'button';
whatsapp.className = 'dav-split-btn dav-whatsapp-action';
whatsapp.innerHTML = '<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false" style="width:19px;height:19px;fill:currentColor;flex:0 0 auto"><path d="M12.04 2.25c-5.33 0-9.67 4.28-9.67 9.55 0 1.68.45 3.33 1.3 4.78L2.3 21.75l5.33-1.35a9.84 9.84 0 0 0 4.41 1.04c5.33 0 9.67-4.28 9.67-9.55s-4.34-9.64-9.67-9.64zm0 17.55c-1.42 0-2.8-.38-4.01-1.1l-.29-.17-3.16.8.82-3.02-.2-.31a7.74 7.74 0 0 1-1.2-4.2c0-4.36 3.61-7.91 8.04-7.91s8.04 3.55 8.04 7.91-3.61 8-8.04 8zm4.42-5.92c-.24-.12-1.42-.69-1.64-.77-.22-.08-.38-.12-.54.12-.16.24-.62.77-.76.93-.14.16-.28.18-.52.06-.24-.12-1.01-.37-1.92-1.17-.71-.63-1.19-1.41-1.33-1.65-.14-.24-.02-.37.1-.49.11-.11.24-.28.36-.42.12-.14.16-.24.24-.4.08-.16.04-.3-.02-.42-.06-.12-.54-1.29-.74-1.77-.19-.46-.39-.4-.54-.41h-.46c-.16 0-.42.06-.64.3-.22.24-.84.81-.84 1.97s.86 2.29.98 2.45c.12.16 1.69 2.55 4.1 3.57.57.25 1.02.4 1.37.51.58.18 1.1.16 1.51.1.46-.07 1.42-.57 1.62-1.13.2-.56.2-1.04.14-1.13-.06-.1-.22-.16-.46-.28z"></path></svg><span>Trimite pe WhatsApp</span>';
whatsapp.addEventListener('click', function () {
form.dataset.davSubmitMode = 'whatsapp';
window.open(makeWhatsappUrl(form), '_blank', 'noopener');
});
submit.parentNode.insertBefore(wrap, submit);
wrap.appendChild(whatsapp);
wrap.appendChild(submit);
form.dataset.davSplitActions = '1';
}
function applySplitActions() {
document.querySelectorAll('form').forEach(function (form) {
if (form.closest('.search-form') || form.getAttribute('role') === 'search') return;
buildSplitActions(form);
});
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', applySplitActions);
} else {
applySplitActions();
}
window.addEventListener('load', applySplitActions);
setTimeout(applySplitActions, 700);
setTimeout(applySplitActions, 1800);
setTimeout(applySplitActions, 2600);
setTimeout(applySplitActions, 4200);
})();
</script>
<?php
}
add_action('wp_footer', 'dav_roofing_split_form_whatsapp_email_actions_20260703', 100012);
function dav_roofing_optional_email_for_cf7_20260703($posted_data) {
if (!is_array($posted_data)) {
return $posted_data;
}
foreach ($posted_data as $key => $value) {
if (stripos((string) $key, 'email') !== false && trim((string) $value) === '') {
$posted_data[$key] = 'fara-email@dav-roofing.local';
}
}
return $posted_data;
}
add_filter('wpcf7_posted_data', 'dav_roofing_optional_email_for_cf7_20260703', 20);
function dav_roofing_desktop_sticky_white_header_20260703() {
if (is_admin()) {
return;
}
?>
<style id="dav-desktop-sticky-white-header-css">
@media (min-width: 992px) {
html body .main-header,
html body header.main-header {
position: sticky !important;
top: 0 !important;
z-index: 9998 !important;
background: #ffffff !important;
box-shadow: 0 12px 34px rgba(16,24,40,.08) !important;
}
html body.admin-bar .main-header,
html body.admin-bar header.main-header {
top: 32px !important;
}
html body .main-header .header-upper,
html body .main-header .main-box,
html body .main-header .auto-container,
html body .main-header .inner-container {
background: #ffffff !important;
}
html body .main-header .sticky-header {
display: none !important;
}
html body .mobile-nav-toggler,
html body .nav-btn.navSidebar-button,
html body .dav-hamburger-sticky-active {
display: none !important;
opacity: 0 !important;
pointer-events: none !important;
visibility: hidden !important;
}
}
</style>
<?php
}
add_action('wp_head', 'dav_roofing_desktop_sticky_white_header_20260703', 100020);
function dav_roofing_contact_info_black_text_20260703() {
if (is_admin()) {
return;
}
?>
<style id="dav-contact-info-black-text-css">
html body .contact-info-section .info-box h4,
html body .contact-info-section .info-box h3,
html body .contact-info-section .info-box .title,
html body .contact-info-section .info-box p,
html body .contact-info-section .info-box a:not([href^="tel"]),
html body .contact-info-section .info-box .text,
html body .contact-page-section .info-box h4,
html body .contact-page-section .info-box h3,
html body .contact-page-section .info-box .title,
html body .contact-page-section .info-box p,
html body .contact-page-section .info-box a:not([href^="tel"]),
html body .contact-page-section .info-box .text,
html body .contact-info .info-box h4,
html body .contact-info .info-box h3,
html body .contact-info .info-box p,
html body .contact-info .info-box a:not([href^="tel"]),
html body .contact-info .info-box .text {
color: #000000 !important;
opacity: 1 !important;
}
html body .contact-info-section .info-box a[href^="tel"],
html body .contact-page-section .info-box a[href^="tel"],
html body .contact-info .info-box a[href^="tel"] {
color: #22c55e !important;
opacity: 1 !important;
}
</style>
<?php
}
add_action('wp_head', 'dav_roofing_contact_info_black_text_20260703', 100021);
function dav_roofing_remove_old_tigla_metalica_gallery_photo_20260703() {
if (is_admin() || !is_page(1160)) {
return;
}
?>
<style id="dav-remove-old-tigla-metalica-photo-css">
body.page-id-1160 img[src*="/9-2-1-"],
body.page-id-1160 img[src$="/9-2-1.png"] {
display: none !important;
}
</style>
<script id="dav-remove-old-tigla-metalica-photo-js">
(function () {
function removeOldPhoto() {
if (!document.body || !document.body.classList.contains('page-id-1160')) {
return;
}
document.querySelectorAll('img').forEach(function (img) {
var src = img.currentSrc || img.src || '';
if (!/(^|\/)9-2-1(?:-\d+x\d+)?\.png(?:\?|$)/.test(src)) {
return;
}
var card = img.closest('figure, .gallery-item, .dav-category-gallery figure, .dav-original-gallery figure, .elementor-widget-image, .elementor-element') || img;
card.remove();
});
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', removeOldPhoto);
} else {
removeOldPhoto();
}
window.addEventListener('load', removeOldPhoto);
setTimeout(removeOldPhoto, 500);
setTimeout(removeOldPhoto, 1500);
})();
</script>
<?php
}
add_action('wp_footer', 'dav_roofing_remove_old_tigla_metalica_gallery_photo_20260703', 100010);
function dav_roofing_disable_burger_menu_animation_20260704() {
if (is_admin()) {
return;
}
?>
<style id="dav-disable-burger-menu-animation-css">
html body .mobile-menu,
html body .mobile-menu *,
html body .menu-backdrop,
html body .mobile-menu .menu-box,
html body .mobile-menu .nav-logo,
html body .mobile-menu .navigation,
html body .mobile-menu .navigation li,
html body .mobile-menu .navigation li > ul,
html body .mobile-menu .close-btn,
html body .mobile-nav-toggler,
html body .mobile-nav-toggler *,
html body .dav-hamburger-sticky-active,
html body .dav-hamburger-sticky-active * {
transition-duration: 0s !important;
transition-delay: 0s !important;
animation-duration: 0s !important;
animation-delay: 0s !important;
scroll-behavior: auto !important;
}
</style>
<?php
}
add_action('wp_head', 'dav_roofing_disable_burger_menu_animation_20260704', 100050);
// DavRoofing 2026-07-04: final button layout + remove homepage proof cards.
add_action('wp_footer', 'dav_roofing_final_button_and_home_proof_cleanup_20260704', 100050);
function dav_roofing_final_button_and_home_proof_cleanup_20260704() {
if (is_admin()) {
return;
}
?>
<style id="dav-final-button-proof-cleanup-css">
html body form .dav-split-actions {
grid-template-columns: 1fr 1fr 1fr !important;
gap: 0 !important;
}
html body form .dav-split-actions .dav-call-action {
background: linear-gradient(135deg, #ff4438 0%, #dc2626 100%) !important;
}
html body form .dav-split-actions .dav-email-action,
html body form .dav-split-actions input[type="submit"].dav-email-action,
html body form .dav-split-actions button[type="submit"].dav-email-action {
background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%) !important;
color: #fff !important;
}
body.home .dav-hero-proof,
body.home .dav-hero-mobile-panel .dav-mobile-proof-card,
body.home .dav-mobile-proof-card,
body.home .dav-mobile-hero-copy-card {
display: none !important;
visibility: hidden !important;
height: 0 !important;
min-height: 0 !important;
margin: 0 !important;
padding: 0 !important;
border: 0 !important;
overflow: hidden !important;
}
@media (max-width: 575px) {
html body form .dav-split-actions {
grid-template-columns: 1fr !important;
gap: 10px !important;
}
}
</style>
<script id="dav-final-button-proof-cleanup-js">
(function () {
var phone = '40754796389';
var phoneSvg = '<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false" style="width:18px;height:18px;fill:currentColor;flex:0 0 auto"><path d="M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1C10.61 21 3 13.39 3 4c0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.24.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z"></path></svg>';
function fixButtons() {
document.querySelectorAll('form .dav-split-actions').forEach(function (wrap) {
var email = wrap.querySelector('.dav-email-action, input[type="submit"], button[type="submit"]:not(.dav-whatsapp-action):not(.dav-call-action)');
var whatsapp = wrap.querySelector('.dav-whatsapp-action');
if (!wrap.querySelector('.dav-call-action')) {
var call = document.createElement('a');
call.className = 'dav-split-btn dav-call-action';
call.href = 'tel:+' + phone;
call.setAttribute('aria-label', 'Suna acum DavRoofing');
call.innerHTML = phoneSvg + '<span>Suna acum</span>';
if (email) {
wrap.insertBefore(call, email);
} else if (whatsapp && whatsapp.nextSibling) {
wrap.insertBefore(call, whatsapp.nextSibling);
} else {
wrap.appendChild(call);
}
}
wrap.querySelectorAll('.dav-email-action, input[type="submit"], button[type="submit"]:not(.dav-whatsapp-action):not(.dav-call-action)').forEach(function (btn) {
btn.classList.add('dav-email-action');
if (btn.tagName === 'INPUT') btn.value = 'Trimite pe email';
else btn.textContent = 'Trimite pe email';
btn.setAttribute('aria-label', 'Trimite formularul pe email');
btn.style.setProperty('background', 'linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%)', 'important');
btn.style.setProperty('color', '#ffffff', 'important');
});
});
if (document.body.classList.contains('home')) {
document.querySelectorAll('.dav-hero-proof, .dav-mobile-proof-card, .dav-mobile-hero-copy-card').forEach(function (el) { el.remove(); });
document.querySelectorAll('.dav-hero-mobile-panel').forEach(function (panel) {
if (!panel.textContent.trim() && !panel.querySelector('a,img,button,input,textarea,select')) {
panel.remove();
}
});
}
}
if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', fixButtons); else fixButtons();
window.addEventListener('load', fixButtons);
setTimeout(fixButtons, 500);
setTimeout(fixButtons, 1600);
setTimeout(fixButtons, 3200);
})();
</script>
<?php
}