Window not working properly? We diagnose the real cause—alignment, hardware, or balance issues—before recommending repairs.
Can’t find window parts? We can sometimes retrofit hardware to replace discontinued cranks, hinges, and balances—saving you from replacement.

Fatal error: Uncaught TypeError: implode(): Argument #1 ($separator) must be of type string, array given in /home/mrcranky/public_html/wp-content/plugins/wp-rocket/vendor/matthiasmullie/minify/src/CSS.php:518 Stack trace: #0 /home/mrcranky/public_html/wp-content/plugins/wp-rocket/vendor/matthiasmullie/minify/src/CSS.php(518): implode(Array, '|') #1 /home/mrcranky/public_html/wp-content/plugins/wp-rocket/vendor/matthiasmullie/minify/src/CSS.php(311): MatthiasMullie\Minify\CSS->shortenHex('@font-face{font...') #2 /home/mrcranky/public_html/wp-content/plugins/wp-rocket/vendor/matthiasmullie/minify/src/Minify.php(111): MatthiasMullie\Minify\CSS->execute(NULL) #3 /home/mrcranky/public_html/wp-content/plugins/wp-rocket/inc/classes/optimization/CSS/class-minify.php(174): MatthiasMullie\Minify\Minify->minify() #4 /home/mrcranky/public_html/wp-content/plugins/wp-rocket/inc/classes/optimization/CSS/class-minify.php(128): WP_Rocket\Optimization\CSS\Minify->minify('/home/mrcranky/...') #5 /home/mrcranky/public_html/wp-content/plugins/wp-rocket/inc/classes/optimization/CSS/class-minify.php(66): WP_Rocket\Optimization\CSS\Minify->replace_url('https://www.mrc...') #6 /home/mrcranky/public_html/wp-content/plugins/wp-rocket/inc/classes/subscriber/Optimization/class-abstract-minify-subscriber.php(85): WP_Rocket\Optimization\CSS\Minify->optimize('<!DOCTYPE html>...') #7 /home/mrcranky/public_html/wp-content/plugins/wp-rocket/inc/classes/subscriber/Optimization/class-minify-css-subscriber.php(44): WP_Rocket\Subscriber\Optimization\Minify_Subscriber->optimize('<!DOCTYPE html>...') #8 /home/mrcranky/public_html/wp-includes/class-wp-hook.php(341): WP_Rocket\Subscriber\Optimization\Minify_CSS_Subscriber->process('<!DOCTYPE html>...') #9 /home/mrcranky/public_html/wp-includes/plugin.php(205): WP_Hook->apply_filters('<!DOCTYPE html>...', Array) #10 /home/mrcranky/public_html/wp-content/plugins/wp-rocket/inc/front/process.php(422): apply_filters('rocket_buffer', '<!DOCTYPE html>...') #11 [internal function]: do_rocket_callback('<!DOCTYPE html>...', 9) #12 /home/mrcranky/public_html/wp-includes/functions.php(5481): ob_end_flush() #13 /home/mrcranky/public_html/wp-includes/class-wp-hook.php(341): wp_ob_end_flush_all('') #14 /home/mrcranky/public_html/wp-includes/class-wp-hook.php(365): WP_Hook->apply_filters(NULL, Array) #15 /home/mrcranky/public_html/wp-includes/plugin.php(522): WP_Hook->do_action(Array) #16 /home/mrcranky/public_html/wp-includes/load.php(1308): do_action('shutdown') #17 [internal function]: shutdown_action_hook() #18 {main} thrown in /home/mrcranky/public_html/wp-content/plugins/wp-rocket/vendor/matthiasmullie/minify/src/CSS.php on line 518