PageSourceSearch

https://showtimeexpressplumbing.com/reviews/

html showtimeexpressplumbing.com collected 2026-09-30 15:17:49 UTC 389,654 bytes, 481 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en-US" class="no-js">
3<head >
4<meta charset="UTF-8" />
5<meta name="viewport" content="width=device-width, initial-scale=1" />
6<meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' />
7
8	<!-- Custom Fonts Preload -->
9<link rel="preload" fetchpriority="high" href="https://showtimeexpressplumbing.com/wp-content/themes/hooked-showtime-plumbing/assets/fonts/custom-fonts/PlusJakartaSans-VariableFont_wght.woff2" type="font/woff2" as="font" crossorigin><link rel="preload" fetchpriority="high" href="https://showtimeexpressplumbing.com/wp-content/themes/hooked-showtime-plumbing/assets/fonts/custom-fonts/PlusJakartaSans-Italic-VariableFont_wght.woff2" as="font" crossorigin><link rel="preload" fetchpriority="high" href="https://showtimeexpressplumbing.com/wp-content/themes/hooked-showtime-plumbing/assets/fonts/custom-fonts/PlaywriteCU-VariableFont_wght.woff2" as="font" crossorigin>
10	<!-- Hooked Icons -->
11	<link rel="preload" href="https://showtimeexpressplumbing.com/wp-content/themes/hooked-showtime-plumbing/assets/fonts/theme/hooked-font.woff2" as="font" type="font/woff2" crossorigin>
12<script type='text/javascript'>document.documentElement.classList.remove('no-js');</script>
12
13	<title>Review • Showtime Express Plumbing</title>
14	<meta name="description" content="Check out our reviews page to see why so many residents and businesses of Barrow &amp; Gwinnett counties love working with our plumbing company!" />
15	<link rel="canonical" href="https://showtimeexpressplumbing.com/reviews/" />
16	<meta property="og:locale" content="en_US" />
17	<meta property="og:type" content="article" />
18	<meta property="og:title" content="Review • Showtime Express Plumbing" />
19	<meta property="og:description" content="Check out our reviews page to see why so many residents and businesses of Barrow &amp; Gwinnett counties love working with our plumbing company!" />
20	<meta property="og:url" content="https://showtimeexpressplumbing.com/reviews/" />
21	<meta property="og:site_name" content="Showtime Express Plumbing" />
22	<meta property="article:modified_time" content="2024-09-27T20:21:14+00:00" />
23	<meta property="og:image" content="https://showtimeexpressplumbing.com/wp-content/uploads/2024/09/Showtime-Express-Plumbing-OG.webp" />
24	<meta property="og:image:width" content="1200" />
25	<meta property="og:image:height" content="675" />
26	<meta property="og:image:type" content="image/webp" />
27	<meta name="twitter:card" content="summary_large_image" />
28	<meta name="twitter:label1" content="Est. reading time" />
29	<meta name="twitter:data1" content="1 minute" />
30	
30<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/showtimeexpressplumbing.com\/reviews\/","url":"https:\/\/showtimeexpressplumbing.com\/reviews\/","name":"Review • Showtime Express Plumbing","isPartOf":{"@id":"https:\/\/showtimeexpressplumbing.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/showtimeexpressplumbing.com\/reviews\/#primaryimage"},"image":{"@id":"https:\/\/showtimeexpressplumbing.com\/reviews\/#primaryimage"},"thumbnailUrl":"https:\/\/showtimeexpressplumbing.com\/wp-content\/uploads\/2024\/09\/Showtime-Express-Plumbing-OG.webp","datePublished":"2024-07-31T19:12:43+00:00","dateModified":"2024-09-27T20:21:14+00:00","description":"Check out our reviews page to see why so many residents and businesses of Barrow & Gwinnett counties love working with our plumbing company!","breadcrumb":{"@id":"https:\/\/showtimeexpressplumbing.com\/reviews\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/showtimeexpressplumbing.com\/reviews\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/showtimeexpressplumbing.com\/reviews\/#primaryimage","url":"https:\/\/showtimeexpressplumbing.com\/wp-content\/uploads\/2024\/09\/Showtime-Express-Plumbing-OG.webp","contentUrl":"https:\/\/showtimeexpressplumbing.com\/wp-content\/uploads\/2024\/09\/Showtime-Express-Plumbing-OG.webp","width":1200,"height":675,"caption":"Showtime Express Plumbing OG"},{"@type":"BreadcrumbList","@id":"https:\/\/showtimeexpressplumbing.com\/reviews\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/showtimeexpressplumbing.com\/"},{"@type":"ListItem","position":2,"name":"Showtime Express Plumbing Outstanding Reviews"}]},{"@type":"WebSite","@id":"https:\/\/showtimeexpressplumbing.com\/#website","url":"https:\/\/showtimeexpressplumbing.com\/","name":"Showtime Express Plumbing","description":"Residential and Commercial Plumbing","publisher":{"@id":"https:\/\/showtimeexpressplumbing.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/showtimeexpressplumbing.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/showtimeexpressplumbing.com\/#organization","name":"Showtime Express Plumbing","alternateName":"Showtime Express Plumbing","url":"https:\/\/showtimeexpressplumbing.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/showtimeexpressplumbing.com\/#\/schema\/logo\/image\/","url":"http:\/\/showtimeexpressplumbing.com\/wp-content\/uploads\/2024\/09\/Showtime-Expres-Plumbing-org-logo.jpg","contentUrl":"http:\/\/showtimeexpressplumbing.com\/wp-content\/uploads\/2024\/09\/Showtime-Expres-Plumbing-org-logo.jpg","width":696,"height":696,"caption":"Showtime Express Plumbing"},"image":{"@id":"https:\/\/showtimeexpressplumbing.com\/#\/schema\/logo\/image\/"}}]}</script>
30
31
32
33<link rel='dns-prefetch' href='//www.googletagmanager.com' />
34<link rel="alternate" type="application/rss+xml" title="Showtime Express Plumbing &raquo; Feed" href="https://showtimeexpressplumbing.com/feed/" />
35<style type="text/css" id="custom-font">@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:200 800;font-display:swap;src:url("/wp-content/themes/hooked-showtime-plumbing/assets/fonts/custom-fonts/PlusJakartaSans-VariableFont_wght.woff2") format("woff2")}@font-face{font-family:"Plus Jakarta Sans";font-style:italic;font-weight:200 800;font-display:swap;src:url("/wp-content/themes/hooked-showtime-plumbing/assets/fonts/custom-fonts/PlusJakartaSans-Italic-VariableFont_wght.woff2") format("woff2")}@font-face{font-family:"Playwrite CU";font-style:normal;font-weight:100 400;font-display:swap;src:url("/wp-content/themes/hooked-showtime-plumbing/assets/fonts/custom-fonts/PlaywriteCU-VariableFont_wght.woff2") format("woff2")}
36</style>
36<script defer type="text/javascript">document.addEventListener("DOMContentLoaded",(function(){let e=!1;function n(){e||window.requestAnimationFrame((function(){!function(){const e=window.scrollY||window.pageYOffset,n=document.querySelector(".site-header").offsetHeight,t=n+180,o=n+250,i=window.innerWidth<600?e>t:e>o;document.body.classList.toggle("reveal-header",i)}(),e=!1}))}window.addEventListener("scroll",(function(){e||(n(),e=!0)}))}));document.addEventListener("DOMContentLoaded",(function(){document.documentElement.classList.add("menu-closed"),setTimeout((function(){document.body.classList.add("loaded-100")}),100),setTimeout((function(){document.body.classList.add("loaded-250")}),250),setTimeout((function(){document.body.classList.add("loaded-350")}),350),setTimeout((function(){document.body.classList.add("loaded-500")}),500),setTimeout((function(){document.body.classList.add("loaded-800")}),800),setTimeout((function(){document.body.classList.add("loaded-1200")}),1200),setTimeout((function(){document.body.classList.add("loaded-1000")}),1e3),setTimeout((function(){document.body.classList.add("loaded-1500")}),1500),setTimeout((function(){document.body.classList.add("loaded-2000")}),2e3),function(){const t=document.body.classList;let d=0;window.addEventListener("resize",(function(){d?(clearTimeout(d),d=null):t.add("stop-transitions"),d=setTimeout((()=>{t.remove("stop-transitions"),d=null}),100)}))}()}));document.addEventListener("DOMContentLoaded",(function(){let s=!1;window.addEventListener("scroll",(function(){s||(window.requestAnimationFrame((function(){!function(){const s=document.querySelector("body"),e=1,o=document.querySelector(".site-header").offsetHeight,t=()=>s.classList.add("is-scrolling"),n=()=>s.classList.remove("is-scrolling"),c=()=>s.classList.add("is-scrolling-sticky-adjacent"),i=()=>s.classList.remove("is-scrolling-sticky-adjacent");scrollpos=window.scrollY,scrollpos>=e?t():n();scrollpos>=o?c():i()}(),s=!1})),s=!0)}))}));</script>
36<style id="wp-img-auto-sizes-contain-inline-css">
37img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
38/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
39</style>
40
41<link rel='stylesheet' id='hooked-reviews-grid-css' href='https://showtimeexpressplumbing.com/wp-content/themes/hooked-showtime-plumbing/assets/css/reviews-not-nice-job-min.css?ver=3.0.1' media='screen' />
42<link rel='stylesheet' id='hooked-wp-block-quote-css' href='https://showtimeexpressplumbing.com/wp-content/themes/hooked-showtime-plumbing/assets/css/wp-blocks/blockquote-min.css?ver=3.0.1' media='screen' />
43<link rel='stylesheet' id='wp-block-columns-css' href='https://showtimeexpressplumbing.com/wp-includes/blocks/columns/style.min.css?ver=7.0.6' media='all' />
44<link rel='stylesheet' id='hooked-wp-block-columns-css' href='https://showtimeexpressplumbing.com/wp-content/themes/hooked-showtime-plumbing/assets/css/wp-blocks/wp_block_columns-min.css?ver=3.0.1' media='screen' />
45<link rel='stylesheet' id='hooked-wp-block-list-css' href='https://showtimeexpressplumbing.com/wp-content/themes/hooked-showtime-plumbing/assets/css/wp-blocks/list-styles-min.css?ver=3.0.1' media='screen' />
46<link rel='stylesheet' id='hooked-wp-block-image-css' href='https://showtimeexpressplumbing.com/wp-content/themes/hooked-showtime-plumbing/assets/css/wp-blocks/image-figure-min.css?ver=3.0.1' media='screen' />
47<link rel='stylesheet' id='hooked-wp-block-separator-css' href='https://showtimeexpressplumbing.com/wp-content/themes/hooked-showtime-plumbing/assets/css/wp-blocks/wp-block-separator-min.css?ver=3.0.1' media='screen' />
48<link rel='stylesheet' id='hooked-wp-block-library-gallery-css' href='https://showtimeexpressplumbing.com/wp-includes/blocks/gallery/style.min.css?ver=7.0.6' media='screen' />
49<link rel='stylesheet' id='hooked-gallery-wp-regression-fix-css' href='https://showtimeexpressplumbing.com/wp-content/themes/hooked-showtime-plumbing/assets/css/WP-gallery-regression-fix-min.css?ver=3.0.1' media='screen' />
50<link rel='stylesheet' id='hooked-video-launcher-css' href='https://showtimeexpressplumbing.com/wp-content/themes/hooked-showtime-plumbing/assets/css/video-launcher-min.css?ver=3.0.1' media='screen' />
51<link rel='stylesheet' id='hooked-css-css' href='https://showtimeexpressplumbing.com/wp-content/themes/hooked-showtime-plumbing/assets/css/hooked-custom-theme.min.css?ver=3.0.1' media='screen' />
52<link rel='stylesheet' id='hooked-interior-page-css' href='https://showtimeexpressplumbing.com/wp-content/themes/hooked-showtime-plumbing/assets/css/hooked-interior-min.css?ver=3.0.1' media='screen' />
53<link rel='stylesheet' id='hooked-location-cpt-css' href='https://showtimeexpressplumbing.com/wp-content/themes/hooked-showtime-plumbing/assets/css/location-page-min.css?ver=3.0.1' media='screen' />
54
55<!-- Google tag (gtag.js) snippet added by Site Kit -->
56<!-- Google Analytics snippet added by Site Kit -->
vendor: 80 bytes, lines 56-57
56
57<script id="google_gtagjs-js" src="https://www.googletagmanager.com/gtag/js?id=
57GT-K8FTS89W
vendor: 18 bytes, line 57
57" async></script>
58<script id="google_gtagjs-js-after">
59window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}
60gtag("set","linker",{"domains":["showtimeexpressplumbing.com"]});
61gtag("js", new Date());
62gtag("set", "developer_id.dZTNiMT", true);
63gtag("config", "GT-K8FTS89W");
64 window._googlesitekit = window._googlesitekit || {}; window._googlesitekit.throttledEvents = []; window._googlesitekit.gtagEvent = (name, data) => { var key = JSON.stringify( { name, data } ); if ( !! window._googlesitekit.throttledEvents[ key ] ) { return; } window._googlesitekit.throttledEvents[ key ] = true; setTimeout( () => { delete window._googlesitekit.throttledEvents[ key ]; }, 5 ); gtag( "event", name, { ...data, event_source: "site-kit" } ); }; 
65//# sourceURL=google_gtagjs-js-after
66</script>
66
67<meta name="generator" content="Site Kit by Google 1.188.0" /><link rel="pingback" href="https://showtimeexpressplumbing.com/xmlrpc.php" />
68<style type="text/css" id="critical-css">html{box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,.5)}*,*:before,*:after{box-sizing:inherit}:focus{outline:none}:focus-visible{outline:2px solid crimson}:root{font-size:100%}html{overflow-x:hidden;scroll-behavior:smooth;padding:0;margin:0}html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none}:target{scroll-margin-top:120px;scroll-margin-top:30vh}@media(min-width: 1024px){:target{scroll-margin-top:30vh;scroll-margin-top:30vh}}body{font-size:1.05em;margin:0;padding:0;line-height:1.65;font-family:"Plus Jakarta Sans","San Francisco",sans-serif;overflow-x:hidden;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}@media(min-width: 1200px){body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}@supports(overflow: clip){html,body{overflow-x:clip}}.hero-boxes-container,.fp-group>div,.site-footer .widget{content-visibility:auto}.content-sidebar-wrap{position:relative}body.reviews-page .content-sidebar-wrap{z-index:55}.wide-content .content-sidebar-wrap{z-index:12}@media(min-width: 1200px){body{font-size:1.25em;line-height:1.7}}@media(max-width: 1023px){.wpforms-submit-container,.center-svp,main.content h1,main.content h2,main.content h3,main.content h4{text-align:center}.entry-content{margin-left:auto;margin-right:auto;max-width:800px}}iframe{background-color:#111;background-image:url(/wp-content/themes/hooked-showtime-plumbing/assets/images/components/loading.svg);background-position:center center;background-repeat:no-repeat;background-size:10%}.site-wrapper{overflow:hidden;position:relative;max-width:2500px;margin:0 auto;color:#111;background-color:#fff;background-attachment:fixed;background-repeat:repeat;background-image:url(/wp-content/themes/hooked-showtime-plumbing/assets/images/background/bg_pattern_1-01.webp);box-shadow:0px 0px 33px -3px rgba(0,0,0,.25)}@supports(overflow: clip){.site-wrapper{overflow:clip}}h1,h2,h3,h4,h5,h6,.header-cta-button,.headline-font{font-family:"Plus Jakarta Sans",sans-serif;font-weight:800}.fp-hero-headline{font-family:"Plus Jakarta Sans",sans-serif;font-weight:800}h2 em,h3 em,h4 em{font-weight:800}a.toggle-c-headline h3,a.toggle-c-headline h2{font-weight:600}.hooked-reviews-badge{font-weight:800}input[type=radio],input[type=checkbox]{accent-color:#991e21}h1,h2,h3,h4,h5,h6{color:#333;font-weight:800}h1 a,h3 a,h2 a{color:currentColor}.is-lazy-content{opacity:0;transition:opacity .3s linear}.is-lazy-content.is-loaded{opacity:1}body::before{content:"";position:fixed;inset:0;background:#ae2225;z-index:9999;transition:opacity .2s linear}.no-js body::before{display:none}body.loaded-250::before{opacity:0}body.loaded-350::before{display:none}.hero-form{opacity:0;transition:opacity .5s linear}body.loaded-800 .hero-form{opacity:1}.hooked-fancybox-modal-display.services-menu-modal{width:95%;padding:5%;max-width:1200px;font-size:.95em;background:rgba(0,0,0,0)}body.hooked-theme .fancybox__backdrop.hooked_modal_backdrop{background-color:#991e21;background-attachment:fixed;background-image:url(/wp-content/themes/hooked-showtime-plumbing/assets/images/background/bg_pattern_5-01.webp);background-repeat:repeat}@media(min-width: 600px){.hooked-theme .hooked-fancybox-modal-display.services-menu-modal{font-size:1.2em;padding:7%}}h2.modal-menu-title{font-family:"Playwrite CU",sans-serif;font-weight:400}h2.modal-menu-title a:not(:hover){text-decoration:none;color:#fff}.hooked-fancybox-modal-display.services-menu-modal a{transition:all .03s linear}.hooked-fancybox-modal-display.services-menu-modal a:hover{color:#fff;font-weight:700}ul.modal-menu,.hooked-fancybox-modal-display ul.open-menu{list-style:none;padding:0;margin:0;text-align:left;clear:both}@media(min-width: 800px){ul.modal-menu,.hooked-fancybox-modal-display ul.open-menu{-moz-column-count:2;column-count:2;-moz-column-gap:5%;column-gap:5%}}ul.modal-menu a,.hooked-fancybox-modal-display ul.open-menu a{text-decoration:none;display:block;padding:5px 0;text-wrap:balance;position:relative}ul.modal-menu>li,.hooked-fancybox-modal-display ul.open-menu>li{padding-left:.75em;position:relative}ul.modal-menu>li a::before,.hooked-fancybox-modal-display ul.open-menu>li a::before{display:inline-block;position:absolute;
68left:-0.75em;top:.75em;border-style:solid;border-width:1px 1px 0 0;border-color:currentColor;content:"";height:.5em;width:.5em;transform:rotate(45deg);transform-origin:top left}.hooked-theme .services-menu-modal a.current-page{font-weight:bold}@media(min-width: 1200px){.hooked-theme .services-menu-modal{padding:5%}h2.modal-menu-title{font-size:4vh}}.screen-reader-text,.screen-reader-text span,.screen-reader-shortcut{position:absolute !important;clip:rect(0, 0, 0, 0) !important;height:1px !important;width:1px !important;border:0 !important;overflow:hidden !important}.screen-reader-text:focus,.screen-reader-shortcut:focus,.genesis-nav-menu .search input[type=submit]:focus{clip:auto !important;height:auto !important;width:auto !important;display:block;font-size:.8em;text-transform:uppercase;font-weight:bold;padding:15px 23px 14px;color:#222;background:#fff;z-index:100000;text-decoration:none}.skip{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden;color:#111;border:1px solid #111}.skip:focus{position:static;width:auto;height:auto}embed,iframe,img,object,video,.wp-caption{max-width:100%}img{height:auto;max-width:100%}iframe{border:none}figure img{display:block}.site-header{padding-bottom:4.5vw !important}.site-header--bg,.header-mask,.header-accent{background:#fff}@media(max-width: 600px){.site-header--bg,.header-mask,.header-accent{background-attachment:scroll}}@media(min-width: 1200px){.site-header{padding-bottom:2vw !important}.scrolling-site-header.site-header{padding-bottom:2vw !important}}.header-mask,.header-accent{display:block;position:absolute;inset:0;-webkit-mask:url(/wp-content/themes/hooked-showtime-plumbing/assets/images/masks/mask_group-mask.svg);mask:url(/wp-content/themes/hooked-showtime-plumbing/assets/images/masks/mask_group-mask.svg);-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:2}.front-page .scrolling-site-header.site-header,.scrolling-site-header.site-header{filter:drop-shadow(0px 1px 10px rgba(17, 17, 17, 0.1))}.scrolling-site-header.site-header .header-accent,.header-accent{bottom:-1px;background:#fff;z-index:1;display:block}.front-page .scrolling-site-header .header-mask,.front-page .scrolling-site-header .header-accent{display:block !important}.hooked-theme .scrolling-site-header.site-header .site-header--bg,.hooked-theme .scrolling-site-header.site-header .header-mask,.hooked-theme .scrolling-site-header.site-header .header-accent,.hooked-theme .scrolling-site-header.site-header .header-accent-2{background-image:none}@media(min-width: 1200px){.header-accent{bottom:-2px}}.header-accent,.header-mask{-webkit-mask-size:cover;mask-size:cover;-webkit-mask-position:bottom center;mask-position:bottom center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.site-header :not(.header-button) a:hover,.site-header :not(.header-button) a:focus,.site-header li:not(.header-button) a.current,.site-header li:not(.header-button) a.highlighted{color:#ae2225}body.post-type-archive-services .plumbing-services-trigger,body.single-services .plumbing-services-trigger{color:#ae2225}.is-anchor-link.current-menu-item{color:unset !important;font-weight:unset !important}#collapse-break-point{display:none}.stop-transitions .site-header,.stop-transitions .scrolling-site-header{transition:none}@media(max-width: 1199px){#collapse-break-point{display:block;opacity:0;transition:opacity .5s ease-in-out}.menu-open #collapse-break-point{position:fixed;opacity:1;top:0;right:0;bottom:0;left:0;background:rgba(255,255,255,.7);z-index:499}}.site-header p{margin:0}.site-header ul{margin:0;padding:0;list-style:none}.site-header li{position:relative}.site-header a{text-decoration:none}.site-header{z-index:400;position:relative;border-top:3px solid #111;font-family:"Plus Jakarta Sans",sans-serif;-webkit-backface-visibility:hidden;backface-visibility:hidden;color:#111}.site-header--bg{width:100%;position:relative}.site-header--flex-col{display:flex;position:relative;justify-content:space-between;margin:0 auto;padding-left:5%;padding-right:5%}@media(min-width: 1200px){.site-header--flex-col{max-width:calc(1450px + 10%)}}.site-header--nav-col{flex-basis:45%;display:flex;justify-content:center;flex-direction:column}.site-header-logo{flex-basis:54%;position:relative;align-self:center;z-index:20;top:3px;padding:1% 0}@media(min-width: 1200px){.site-header-logo{flex-basis:30%;padding:0;margin:3% 0 1%;top:10px;padding:0}.scrolling-site-header .site-header-logo{margin:1% 0 0 0}.site-header--nav-col{flex-basis:70%}}.site-header-logo a{display:flex;flex-direction:column;justify-content:center;position:relative}.site-header-logo a:hover img{transform:translateX(3%)}.site-header-logo img{transition-duration:.5s;will-change:transform;width:100%;-o-object-fit:contain;object-fit:contain}.site-header-logo .logo-wrapper{display:table;max-width:170px;width:100%;position:relative}@media(min-width: 700px){.site-header-logo .logo-wrapper{max-width:250px}}@media(min-width: 1200px){.site-header-logo .logo-wrapper{max-width:100%}}@media(min-width: 1200px){.site-header-logo .logo-wrapper{max-width:100%}}@media(min-width: 1300px){.site-header-logo .logo-wrapper{max-width:100%}.scrolling-site-header .site-header-logo .logo-wrapper{max-width:80%;margin-top:1%}}.nav-primary{display:flex;justify-content:flex-end;align-items:center}.navigation-addons{padding-left:clamp(10px,-0.875em + 3vw,20px);
68display:flex;align-items:center;position:relative;z-index:50}.site-header--primary-nav{align-self:flex-end;display:flex;flex:1}@media(min-width: 1200px){.site-header--primary-nav{padding:3% 0 0%}.scrolling-site-header .site-header--primary-nav{padding:2% 0 0}}.scrolling-site-header{position:fixed;top:0;right:0;left:0;transform:translateY(-200%);transition:all .5s linear;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:500;will-change:transform}@media(min-width: 1200px){.scrolling-site-header{font-size:.75em}}body.reveal-header .scrolling-site-header{transform:translateY(0%)}html.with-fancybox .scrolling-site-header{transform:translateY(-200%)}.site-header .hooked-nav-menu{display:none}.off-canvas-nav nav{position:relative;padding:0;width:100%}.off-canvas-nav ul{margin:0;padding:0;list-style:none;text-align:left}.off-canvas-nav li{width:100%}.off-canvas-nav{padding:90px 0 80px 0;top:0;right:0;bottom:0;width:100%;transform:translateX(100%);position:fixed;z-index:1000;transition-duration:.07s;background-color:#222;color:#fff;background-attachment:fixed;background-image:url(/wp-content/themes/hooked-showtime-plumbing/assets/images/background/bg_pattern_4-01.webp);background-repeat:repeat;background-attachment:scroll;content-visibility:auto;overflow-x:clip;overflow-y:auto;-webkit-overflow-scrolling:touch}.off-canvas-nav-inner{overflow:clip}html.menu-open .off-canvas-nav{transform:translateX(0);content-visibility:visible}.off-canvas-nav a:hover,.off-canvas-nav .current-parent-or-item>a:not(.button):not(.cta-header-button),.off-canvas-nav .current-menu-item,.off-canvas-nav a:not(.button).highlighted,.off-canvas-nav a:not(.button):hover{color:#d1292c}@media(min-width: 375px){.off-canvas-nav{width:300px;transform:translateX(301px)}}@media(min-width: 410px){.off-canvas-nav{width:350px;transform:translateX(350px)}}html.menu-open body{overflow-y:clip}.site-mobile-menu .menu a:before{display:none}.site-mobile-menu .menu a{padding:8px 30px 8px 30px}.site-mobile-menu .menu li{padding-left:0}.site-mobile-menu .menu li+li,.site-mobile-menu .menu li ul{border-top:1px solid rgba(255,255,255,.1)}.site-mobile-menu .menu ul a{padding-left:60px;font-size:90%}.site-mobile-menu .menu ul ul a{padding-left:80px}.site-mobile-menu .menu a .sub-arrow{margin:0;position:absolute;right:0;width:30px;text-align:center;top:0;bottom:0;border-left:1px solid rgba(255,255,255,.1)}.site-mobile-menu .menu a .sub-arrow::before{line-height:45px;position:absolute;top:0;right:0;bottom:0;left:0}.menu-toggle-wrapper{position:relative;top:8px}.menu-open .menu-toggle-wrapper{left:-5px;top:0}.off-canvas-nav .menu-toggle-wrapper{position:absolute;top:10px;left:auto;right:10px}@media(min-width: 1200px){.menu-toggle-wrapper{display:none}}.menu-open .menu-toggle-wrapper{opacity:1 !important}.menu-toggle-wrapper a{text-decoration:none;opacity:1}.menu-toggle:hover .menu-burger span,.menu-open .menu-toggle .menu-burger span{background-color:#ae2225}.menu-open .off-canvas-nav .menu-toggle .menu-burger span{background-color:#d1292c}.menu-open .off-canvas-nav .menu-toggle:hover .menu-burger span{background-color:#fff}.menu-text{padding:0 0 0 10px;position:relative}.menu-burger{display:inline-block;width:20px;height:30px;position:relative;vertical-align:middle;will-change:transform;transform:rotate(0deg)}.menu-burger span{display:block;position:absolute;height:2px;background:#111;border-radius:2px;opacity:1;left:0;right:0;transform:rotate(0deg)}.menu-burger span:nth-child(1){top:0}.menu-burger span:nth-child(2){top:6px;left:3px}.menu-burger span:nth-child(3){top:12px;left:6px}.menu-open .menu-burger span:nth-child(1),.menu-open .menu-burger span:nth-child(2),.menu-open .menu-burger span:nth-child(3){width:100%;left:0;right:0;transform:skew(0)}.menu-open .menu-burger span:nth-child(1){transform:rotate(45deg);top:15px}.menu-open .menu-burger span:nth-child(2){width:0%;opacity:0}.menu-open .menu-burger span:nth-child(3){transform:rotate(-45deg);top:15px}@media(min-width: 1200px){.site-header .hooked-nav-menu{display:flex;align-items:center;justify-content:center;z-index:500}.nav-primary .hooked-nav-menu{align-items:flex-start}.hooked-nav-menu ul{display:none}ul.hooked-nav-menu>li{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:stretch}ul.hooked-nav-menu>li li{display:block}ul.hooked-nav-menu>li>a{padding:0;margin:0 12px;display:block}ul.hooked-nav-menu ul a{padding:8px 0;display:block}.hooked-nav-menu>li>ul{background-color:#fff;position:absolute;top:100% !important;border-radius:5px;box-shadow:0 0 15px 0 rgba(17,17,17,.15),inset 0 0 0 1px rgba(255,255,255,.2)}.site-header:not(.scrolling-site-header) .hooked-nav-menu>li>ul{font-size:.7em}.scrolling-site-header .hooked-nav-menu>li>ul{background-image:none}.hooked-nav-menu ul li{display:block}.nav-primary .hooked-nav-menu>li a span em{font-style:normal}.nav-primary .hooked-nav-menu>li a{text-align:center}.nav-primary .hooked-nav-menu>li a span em{font-style:normal}.nav-primary .hooked-nav-menu>li.two-line-item a span em{font-size:.6em;font-style:normal;display:flex;justify-content:center;flex-direction:row;flex-wrap:wrap;line-height:1;margin:-0.2em 0 0 0}.centered-nav-menu.hooked-nav-menu>li>ul{position:absolute;width:250px !important;left:50% !important;right:0 !important;margin-top:20px !important;margin-left:auto !important;margin-right:auto !important;transform:translateX(-50%);text-align:center;padding:20px}.nav-top-lvp .centered-nav-menu.hooked-nav-menu>li>ul{margin-top:0px !important}.centered-nav-menu.hooked-nav-menu>li>a>.sub-arrow::before{content:"\e900";-webkit-text-stroke:.5px currentColor;display:inline-block}.centered-nav-menu.hooked-nav-menu>li>a.highlighted .sub-arrow::before{transform:rotate(180deg)}.centered-nav-menu.hooked-nav-menu>li>a>.sub-arrow{font-family:"hooked-font" !important;speak:never;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:inherit;font-display:swap;position:absolute;margin:0;bottom:-15px;left:0;right:0;width:100%;text-align:center;display:block;padding:0;line-height:.8;height:15px;font-size:10px;z-index:120}.centered-nav-menu.hooked-nav-menu>li.two-line-item>a>
68.sub-arrow{bottom:-18px}.nav-primary .centered-nav-menu.hooked-nav-menu>li>a>.sub-arrow{font-size:14px}.nav-top-lvp .centered-nav-menu.hooked-nav-menu>li>a>.sub-arrow{bottom:-10px;font-size:9px}.centered-nav-menu.hooked-nav-menu>li>ul ul{position:relative !important;background:rgba(0,0,0,0) !important;border-radius:0px !important;top:auto !important;bottom:auto !important;border:0px !important;box-shadow:none !important;margin:-5px -20px 0 !important;right:0 !important;left:0 !important;font-size:.9em;padding:0 10px !important;width:100% !important}.hooked-nav-menu>li>ul ul li+li{margin-top:0}.hooked-nav-menu ul li a.has-submenu>span:first-child{position:relative;display:inline}.hooked-nav-menu ul li a .sub-arrow{display:inline-block;vertical-align:baseline;position:relative;margin-left:10px;top:-1px}.hooked-nav-menu ul li a .sub-arrow::before{font-family:monospace;content:"+"}.hooked-nav-menu ul li a.highlighted .sub-arrow::before{content:"-"}}@media(min-width: 1200px){.site-header .nav-primary{font-size:.95em}.nav-primary ul.hooked-nav-menu>li>a{padding:0 clamp(10px,-0.875em + 3.5vw,15px);margin:0}}@media(min-width: 1200px){.site-header .nav-primary{font-size:.9em}.site-header .nav-primary ul.hooked-nav-menu>li>a{padding-left:clamp(10px,-0.875em + 6vw,18px);padding-right:clamp(10px,-0.875em + 6vw,18px)}}@media(min-width: 1500px){.site-header .nav-primary{font-size:1.1em}.site-header .nav-primary ul.hooked-nav-menu>li>a{padding-left:clamp(10px,-0.875em + 6vw,20px);padding-right:clamp(10px,-0.875em + 6vw,20px)}}.off-canvas-utility{padding:0 0 0 30px;margin:0 0 40px;text-align:left}.site-header .is-nav-reviews-link a::after{content:"★★★★★";font-family:sans-serif;font-size:.6em;display:flex;justify-content:center;margin-top:-0.5em;color:#ae2225}@media(min-width: 1200px){.site-header .is-nav-reviews-link a::after{font-size:.65em}}.aside-area .is-nav-reviews-link a::after{content:"★★★★★";font-family:sans-serif;font-size:.9em;display:inline-block;vertical-align:middle;padding-left:.3em}.nav-top-svp{font-size:11px;padding:0;position:relative;z-index:10;margin:0 auto 3%;font-family:"Plus Jakarta Sans",sans-serif}.scrolling-site-header .nav-top-svp{margin-bottom:0}@media(min-width: 390px){.nav-top-svp{font-size:13px}}.nav-top-svp ul{position:relative;text-align:center}.nav-top-svp ul li{margin:0 8px}.nav-top-svp ul li a{display:block;padding:5px 0}.nav-top-svp ul ul{display:none}@media(max-width: 320px){.nav-top-svp{display:none}}.nav-top-svp .sub-arrow{font-family:monospace;display:inline;margin-left:3px}.nav-top-svp .sub-arrow::before{content:"+"}.nav-top-svp ul a{display:block}.nav-top-svp ul{display:flex;align-items:stretch;justify-content:center;margin-left:auto;margin-right:auto;max-width:600px;padding:0 5%}.nav-top-svp ul li{align-self:flex-start}@media(min-width: 1200px){.nav-top-svp{display:none}}.site-header .social-networks svg{max-height:.95em;max-width:22px}.site-header .social-networks{margin:0 3px;position:relative;align-self:center;top:2px}.site-header .social-networks a{display:block;padding:0 3px}.site-header .social-networks{margin:0 -3px}li.has-social-networks{align-self:center;padding-left:8px}@media(max-width: 1200px){li.has-social-networks{display:none !important}}.menu-item-bold{font-weight:bold}.phone-header-w-text{line-height:1.2;position:relative;text-align:right}.phone-header-w-text .phone-header-phone-no{white-space:nowrap;color:#ae2225;font-size:.9em;font-weight:800;position:relative;right:-0.2em;-webkit-font-smoothing:subpixel-antialiased;-moz-osx-font-smoothing:auto}@media(min-width: 400px){.phone-header-w-text .phone-header-phone-no{font-size:1em}}.phone-header-w-text a:hover .phone-header-phone-no{color:#111}.phone-header-w-text a{display:block !important}.phone-header-w-text a:hover span{color:#111 !important}.phone-header-w-text .phone-header-call-text{display:block;text-align:right;position:absolute;right:-2%;white-space:nowrap;width:100%;font-size:11px;font-weight:500}@media(min-width: 440px){.phone-header-w-text .phone-header-call-text{font-size:60%}}@media(min-width: 1200px){.phone-header-w-text .phone-header-phone-no{font-size:1.5em}}@media(max-width: 374px){.phone-header-w-text{display:none !important}}.lvp-top-menus-container{display:none}@media(min-width: 1200px){.nav-top-lvp .hooked-nav-menu{font-size:.7em;margin-right:-12px;z-index:50000;font-family:"Plus Jakarta Sans",sans-serif;z-index:50000;font-family:"Plus Jakarta Sans",sans-serif;display:flex;align-items:stretch}.nav-top-lvp{position:relative;display:flex;flex-direction:row;align-items:stretch;justify-content:flex-end}.nav-top-lvp .hooked-nav-menu li{align-self:center}.nav-top-lvp ul.hooked-nav-menu>li>a{padding:5px 0}.site-header .nav-top-lvp .hooked-nav-menu>li>ul{font-size:1em}.nav-top-lvp{position:relative;display:flex}.nav-top-lvp--right{justify-content:flex-end;margin-right:-12px}}.hooked-theme li.cta-nav-button{font-size:13px;position:relative;display:flex !important;flex-direction:column;justify-content:center;align-self:stretch !important;text-transform:uppercase;top:-5px}.hooked-theme li.cta-nav-button a{align-self:center;position:relative;flex:1;display:flex !important;flex-direction:column;justify-content:center;color:#fff;background:#111;font-weight:700;border-radius:0 0 5px 5px}.hooked-theme .site-header li.cta-nav-button a.current{color:#fff;pointer-events:none}.hooked-theme .site-header li.cta-nav-button a:hover{background-color:#ae2225;color:#fff}.cta-nav-button>a span{padding:2px 12px 0px}@media(min-width: 1200px){.hooked-theme li.cta-nav-button{font-size:18px;top:0;margin-top:0}.hooked-theme .cta-nav-button>a span{padding:0 18px 3px}.hooked-theme .scrolling-site-header li.cta-nav-button{font-size:inherit;margin-top:0}}.hero-form-wrapper{position:relative;margin:0 auto;width:100%;padding:2.1vw 3% .3vw;z-index:50}.front-page:not(.single-landing):not(.single-locations) .hero-form-wrapper{margin-bottom:5%}
68.satisfaction-guarantee-graphic img{display:block;margin:0 auto 3%;width:100%;-o-object-fit:contain;object-fit:contain;max-width:110px;min-width:20%}@media(min-width: 1024px){.satisfaction-guarantee-graphic{padding-left:3%;margin:-1vw 0;order:3;align-self:center;width:18%}.satisfaction-guarantee-graphic img{margin:0;max-width:unset}}@media(min-width: 1300px){.satisfaction-guarantee-graphic img{min-width:20%;max-width:180px;margin:0}}.hero-form-wrapper,.hero-form-wrapper::before,.hero-form-wrapper::after{background-color:#a62123;background-attachment:fixed;background-image:url(/wp-content/themes/hooked-showtime-plumbing/assets/images/background/bg_pattern_5-01.webp);background-repeat:repeat}.hero-form-wrapper::before,.hero-form-wrapper::after{content:"";display:block;position:absolute;right:0;left:0;height:3vw;-webkit-mask:url(/wp-content/themes/hooked-showtime-plumbing/assets/images/masks/mask_group-mask.svg);mask:url(/wp-content/themes/hooked-showtime-plumbing/assets/images/masks/mask_group-mask.svg);-webkit-mask-size:cover;mask-size:cover;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-backface-visibility:hidden;backface-visibility:hidden}.hero-form-wrapper::before{top:-2.5vw;-webkit-mask-position:top left;mask-position:top left}.hero-form-wrapper::after{bottom:-2.5vw;-webkit-mask-position:bottom center;mask-position:bottom center}body:not(.front-page) .hero-form-wrapper::before{display:none}body:not(.front-page) .hero-form-wrapper{margin:-3vw 0 5%;padding-top:5.25vw}.hero-form{max-width:1450px;margin:0 auto;position:relative;max-width:1450px;overflow:visible;z-index:100}.hooked-theme .hero-form .form--hero-container .wpforms-container .wpforms-field.wpforms-field-textarea.hero-message textarea.wpforms-field-large{height:100px;margin:0px !important;min-height:100px !important}.hero-form-text-content,.hooked-theme .form--hero-container .wpforms-submit-container{text-align:center;margin:10px 0 10px}.hooked-theme .form--hero-container form,.hooked-theme .form--hero-container .wpforms-container{margin:0}.hero-form textarea,.hero-form input[type=text],.hero-form input[type=url],.hero-form input[type=number],.hero-form input[type=tel],.hero-form input[type=email],.hero-form input[type=url]{border-color:#fff;background-color:#fff !important;box-shadow:0px 0px 20px 0px rgba(17,17,17,.05)}.hero-form-title{font-weight:400;font-size:30px;margin:0;font-family:"Playwrite CU",sans-serif;-webkit-text-stroke:.25px #fff}.hero-form-text-content{font-size:16px;font-family:"Plus Jakarta Sans",sans-serif;color:#fff}.hero-form-text-content a:hover,.hero-form-text-content a:focus{color:currentColor;text-decoration:underline !important}.hooked-theme .form--hero-container .wpforms-submit-container button.wpforms-submit{background-color:#404040}.hooked-theme .form--hero-container .wpforms-submit-container button.wpforms-submit:focus,.hooked-theme .form--hero-container .wpforms-submit-container button.wpforms-submit:hover{color:#fff !important;background:#ae2225;border-color:#fff}@media(min-width: 1024px){.hero-form{display:flex;width:100%}.hero-form .quick-form-row-1,.hero-form .quick-form-row-2{display:flex;position:relative;align-items:stretch !important;width:100%;-moz-column-gap:5px;column-gap:5px;justify-content:space-between}.hero-form .quick-form-row-1 .wpforms-field,.hero-form .quick-form-row-2 .wpforms-field{margin:0 !important;display:flex;flex-grow:1;flex-direction:column;padding:0 !important}.hero-form .quick-form-row-2{margin-top:5px}.hero-form-text-content{flex-basis:30%;padding-right:3%;text-align:right;line-height:1.5;position:relative;top:-0.5em}.form--hero-container{flex-basis:70%}.hero-form-title{font-size:30px;line-height:1.4;margin:0}.hero-form-text-content p+p{margin-top:5px;margin-bottom:0}.wpforms-container{width:100% !important}.hero-form .quick-form-row-flex textarea,.hero-form .quick-form-row-flex input[type=text],.hero-form .quick-form-row-flex input[type=number],.hero-form .quick-form-row-flex input[type=tel],.hero-form .quick-form-row-flex input[type=email],.hero-form .quick-form-row-flex input[type=url]{display:flex;flex-direction:column;justify-content:stretch;margin:0 !important;padding-top:11px;padding-bottom:11px;width:100% !important;flex-grow:1}.quick-form-row-3--not-flex{position:relative}.hooked-theme .form--hero-container .quick-form-row-1 .hero-phone{width:20% !important}.form--hero-container .quick-form-row-1 .hero-email{width:30% !important}.hooked-theme .form--hero-container .wpforms-submit-container{margin:0 !important;padding:0}.hooked-theme .form--hero-container .wpforms-submit-container button.wpforms-submit{position:absolute;right:20px;bottom:-20px;z-index:20}}@media(min-width: 1300px){.hero-form-text-content{flex-basis:25%}.form--hero-container{flex-basis:75%}}@media(min-width: 1500px){.hero-form-title{font-size:35px}}.site-container{position:relative;margin:0 auto}.site-inner-outer-wrap{position:relative}.site-inner{position:relative}.content-sidebar-wrap{margin:0 auto;width:100%;padding:2% 3% 8%;max-width:calc(1450px + 6%);position:relative}body.wide-content .content-sidebar-wrap{margin:0 auto;width:100%;padding:0;max-width:100%}body.wide-content .content-sidebar-wrap .content,body.wide-content .content-sidebar-wrap>
68.content>article,body.wide-content .content-sidebar-wrap .entry-content{padding:0;max-width:none;margin:0}.entry{position:relative;z-index:1}body.wide-content .content-sidebar-wrap .entry-content::after{display:none}body.wide-content .content-sidebar-wrap>.content>article{margin:0 !important;padding:0 !important}body.narrow-content .content-sidebar-wrap{width:100%;max-width:calc(950px + 10%)}.entry-content{overflow-wrap:break-word}body.single-plumbing-services .entry-content p,body.single-hvac-services .entry-content p,body.single-services .entry-content p,.fp-group p,.unorphanize-text,.unorphanize-list li,.archive-excerpt p,h2,h3,h4,h5,h6{text-wrap:pretty}.hooked-theme p.remove-text-wrap{text-wrap:unset !important}h1,.balance-list li,.related-posts-title,.archive-content h2,.review-container p,.site-footer-credits p,.section-intro-text p,figcaption,.balance-text,p.balance-text,body.single-plumbing-services .entry-content p.balance-text,body.single-hvac-services .entry-content p.balance-text,body.single-services .entry-content p.balance-text{text-wrap:balance}.has-text-align-center{text-align:center}.has-text-align-left{text-align:left}.has-text-align-right{text-align:right}.aligncenter{clear:both}a{color:currentColor}a:hover,a:focus{color:#ae2225;text-decoration:none}.is-dark-theme a{text-decoration-color:currentColor}.hooked-theme a[href^=tel]:not(.button){text-decoration:none;border:none}a:hover,a:focus,a img{transition-duration:.2s}a.image-link,.text-decoration-none{text-decoration:none !important;box-shadow:none !important;border:none !important}a:hover *{color:currentColor}p:empty{display:none}figcaption:empty{display:none}h1{font-size:1.5em;line-height:1.3}h2,.h2{font-size:1.5em;line-height:1.2}h3,.h3{font-size:1.3em;line-height:1.25}h4{font-size:1.2em;line-height:1.3;color:currentColor}h5{font-size:1.1em;color:currentColor}h6{font-size:1.1em;color:currentColor}@media(min-width: 1024px){h1{font-size:1.55em;line-height:1.3}h2,.h2{font-size:1.55em;line-height:1.3}h3,.h3{font-size:1.4em;line-height:1.4}h4{font-size:1.2em;line-height:1.3}h5{font-size:1.15em;line-height:1.4}h6{font-size:1em;line-height:1.4}}@media(min-width: 1300px){h1{font-size:1.8em;line-height:1.2}h2,.h2{font-size:1.8em;line-height:1.2}h2.wp-block-heading.has-text-align-center{font-size:2.2em}h3,.h3{font-size:1.5em;line-height:1.3}h4{font-size:1.4em}.front-page h3{font-size:1.7em}}small{font-size:70%;letter-spacing:0;word-spacing:0}p,h1,h2,h3,h4,h5,h6,ul,ol,dl,table,.wp-block-buttons,hr,pre,address,form,figure{margin-top:0;margin-bottom:15px}@media(min-width: 1200px){p,h1,h2,h3,h4,h5,h6,ul,ol,dl,table,.wp-block-buttons,hr,pre,address,form{margin-bottom:20px}.wp-block-buttons,figure{margin-bottom:30px}}.close-x{position:absolute;width:30px;height:30px}.close-x::before,.close-x::after{position:absolute;left:15px;content:" ";height:25px;width:2px;background-color:currentColor}.close-x::before{transform:rotate(45deg)}.close-x::after{transform:rotate(-45deg)}.close-x:hover::before,.close-x:hover::after{opacity:.5}a.hooked-light-box{position:relative;display:block}.lightbox-indicator{position:absolute;display:block;top:10px;right:10px;width:20px;height:20px;z-index:50}.lightbox-indicator::before{font-family:sans-serif;font-weight:300;content:"+";line-height:1.15cap;transition:opacity .5s ease-in-out;font-size:20px;position:absolute;inset:0;opacity:0;text-align:center;transition:all .5s linear;border-radius:50%;background:#fff;box-shadow:0 0 10px 0 rgba(0,0,0,.3);color:#111;-webkit-text-stroke:.5px #fff}a:hover .lightbox-indicator::before{opacity:1}.caption-gradient{transition:opacity .5s ease-in-out;background:linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.4)),linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.2))}.truncate-outer-2{display:flex;min-width:0}.truncate-outer-2>a{flex:1;min-width:0;white-space:nowrap;overflow:hidden;padding:.5px 0;text-overflow:ellipsis}.truncate-outer-1{display:inline-block;max-width:100%}.reviews-link-stars-after,.reviews-link-stars-before{text-align:center;line-height:1}.reviews-link-stars-before::before,.reviews-link-stars-after::after{fill:currentColor;content:"★★★★★";font-family:sans-serif;font-size:95%;display:flex;justify-content:center;align-self:flex-start}.nowrap{white-space:nowrap}.text-bold{font-weight:bold}.text-nowrap{white-space:nowrap}.text-bigger{font-size:120%;line-height:1.4}@media(min-width: 1024px){.text-bigger{font-size:140%;line-height:1.5}}.text-center{text-align:center !important}@media(max-width: 1023px){.text-center-svp{text-align:center !important}}.text-smaller{font-size:85%}.text-small{font-size:75%}.text-decoration{text-decoration:underline !important}.text-decoration-none a,a.text-decoration-none{text-decoration:none}.current-color,.current-color *:not(:hover){color:currentColor}.font-weight-regular{font-weight:400}.text-current-color{color:currentColor !important}.margin-top-0,.margin-top-0px{margin-top:0px !important}
68@media(max-width: 1023px){.spacer-hide-svp{display:none !important}}.entry-title-color{color:#333 !important}.brand-pop-color{color:#991e21}.brand-pop-color a:hover{color:#111}.text-uppercase{text-transform:uppercase}.text-current-color{color:currentColor !important}.margin-bottom-0px,.margin-bottom-0{margin-bottom:0px !important}.margin-bottom-5px,.margin-bottom-5{margin-bottom:5px !important}.margin-bottom-10px,.margin-bottom-10{margin-bottom:10px !important}.margin-bottom-30px,.margin-bottom-30{margin-bottom:30px !important}@media(max-width: 320px){.hide-320{display:none !important}}@media(max-width: 1023px){.no-gap-svp{gap:0 !important}}@media(min-width: 1024px){.show-mobile{display:none !important}}.position-relative{position:relative}.review-quote-stars{display:block;margin:0}.review-quote-stars svg{fill:currentColor;width:auto;height:1em}.remove-max-width,.remove-max-width>div{max-width:unset !important;padding-left:0 !important;padding-right:0 !important}.remove-l-r-padding{padding-left:0 !important;padding-right:0 !important}.video-play-svg-container{position:absolute;width:80px;height:80px;top:50%;left:50%;transform:translate(-50%, -50%);transition:all .5s linear;border-radius:50%;background:#fff;padding:2px}.video-play-svg-container svg{fill:#ae2225}.block-video-launcher:hover .video-play-svg-container{transform:scale(0.9) translate(-50%, -50%)}a:hover .video-play-svg-container{transform:scale(1.1) translate(-50%, -50%)}.video-play-hooked-gallery.video-play-svg-container{width:70px;height:70px}@media(min-width: 1000px){.video-play-svg-container{width:90px;height:90px}}@media(max-width: 1023px){.wp-block-spacer.hide-on-collapse{display:none !important}}.hooked-reviews-badge{position:relative}@media(min-width: 1024px){.button-flush-bottom{margin-bottom:-0.5em}}.max-width-narrow{margin-left:auto;margin-right:auto;max-width:900px}.empty{display:none !important}.indent-text{padding-left:5%}.indent-text{border-left:1px solid;margin-left:5%;padding-left:10px}a.no-link,.no-link a{pointer-events:none}.text-underline{border-bottom:1px solid currentColor}a:hover .text-underline{border-bottom:none}.fancy-font{font-family:"Playwrite CU",sans-serif !important;font-weight:400}.wp-block-spacer.responsive-spacer{height:2vw !important;overflow:hidden}body.hooked-title-hidden:not(.wide-content) .content-sidebar-wrap{padding-top:5%}.entry-header,.archive-header,.section-header{text-align:center;position:relative;margin:0 0 5%}.entry-header small,.archive-header small,.section-header small{display:flex;justify-content:center;font-size:74%}.entry-header .subtitle{text-align:center;margin-left:auto;margin-right:auto}.section-header{margin-left:auto;margin-right:auto}.section-intro-text p+p{margin-top:1.5%}.subtitle,.section-intro-text p{max-width:1000px;line-height:1.4;font-family:"Plus Jakarta Sans","San Francisco",sans-serif;font-weight:400;color:#111;font-style:oblique;margin:0 auto}body.pre-title-set .subtitle,body.pre-title-set .section-intro-text p{margin-bottom:2%}body.sub-title-set .subtitle,body.sub-title-set .section-intro-text p{margin-top:1%;margin-bottom:0}.section-intro-text p a{color:currentColor;text-decoration:none}.section-intro-text p a:hover{text-decoration:underline}@media(min-width: 1200px){.subtitle,.section-intro-text p{font-size:1.05em}}@media(min-width: 1400px){.subtitle,.section-intro-text p{font-size:1.1em;line-height:1.5}}h1.entry-title,h1.archive-title,.fp-group *.section-title{margin:0 auto;line-height:1.25;color:#333;font-weight:800;font-size:clamp(1.65em,-0.875em + 6.5vw,38px)}h1.entry-title,h1.archive-title{font-size:clamp(1.4em,-0.875em + 6.5vw,38px);font-weight:800}h1.entry-title,h1.archive-title,.subtitle{color:#fff;text-shadow:0px 0px 10px rgba(17,17,17,.5)}*.section-title a:hover{text-decoration:underline}.section-title a{text-decoration:none}@media(min-width: 1000px){h1.entry-title,h1.archive-title,.fp-group *.section-title,*.section-title{line-height:1.18;font-size:clamp(2em,-0.875em + 6vw,3.2em)}h1.entry-title,h1.archive-title{font-size:clamp(2em,-0.875em + 6vw,3.2em)}}@media(min-width: 1600px){.fp-group *.section-title{font-size:3.7em;line-height:1.18}}.section-header .review-quote-stars svg{height:10vw;max-height:60px;margin-bottom:.8em;fill:#ae2225}.is-dark-theme .section-header .review-quote-stars svg{fill:#c4272a}@media(min-width: 1300px){.wide-content .section-header .review-quote-stars svg{max-height:80px;margin-bottom:1em}}.section-decoration{height:7vw;max-height:20px;overflow:hidden;display:block;margin:.5em auto 1em;position:relative;width:100%}.section-decoration span{-webkit-mask:url(/wp-content/themes/hooked-showtime-plumbing/assets/images/masks/headline-embellish-01.svg);mask:url(/wp-content/themes/hooked-showtime-plumbing/assets/images/masks/headline-embellish-01.svg);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-position:center center;mask-position:center center;background-color:#ae2225;position:absolute;top:0;right:0;bottom:0;left:0}.is-dark-theme .section-decoration span{background-color:#c4272a}.entry-header-inner .section-decoration span{background-color:#fff}@media(min-width: 1024px){.section-decoration{max-height:40px;margin:2em auto 0}}.entry-header-inner{position:relative;z-index:50;max-width:calc(1200px + 10%);margin-left:auto;margin-right:auto}@media(min-width: 1024px){.entry-header-inner .section-decoration{max-height:30px}}h2.accent-title::after{-webkit-mask-position:center left;mask-position:center left;-webkit-mask:url(/wp-content/themes/hooked-showtime-plumbing/assets/images/pipe-4.svg);mask:url(/wp-content/themes/hooked-showtime-plumbing/assets/images/pipe-4.svg)}h2.accent-title::after{content:"";display:block;margin:15px 0 0;width:100%;height:10px;-webkit-mask-repeat:no-repeat !important;mask-repeat:no-repeat !important;-webkit-mask-size:contain;mask-size:contain;background-color:#ae2225}@media(min-width: 1024px){h2.accent-title.has-text-align-center::after{-webkit-mask-position:center center !important;mask-position:center center !important;-webkit-mask:url(/wp-content/themes/hooked-showtime-plumbing/assets/images/pipe-5.svg);mask:url(/wp-content/themes/hooked-showtime-plumbing/assets/images/pipe-5.svg)}h2.accent-title::after{height:10px}h2.accent-title.has-text-align-center::after{height:22px}}@media(max-width: 1023px){h2.accent-title::after{-webkit-mask-position:center center;mask-position:center center;height:10px}}.social-networks{display:flex;align-items:center}.flex-center-social .social-networks{justify-content:center}.social-networks>span{display:flex;align-items:center}.social-networks a svg{fill:currentColor;height:1.2em}.social-networks a{display:block;padding:0 5px}.social-networks{margin:0 -5px}.header-utility .social-networks a svg{max-height:18px}.header-utility .social-networks a{display:block;padding:0}.header-utility .social-networks{margin:0}@media(min-width: 1200px){.header-utility .social-networks a{display:block;padding:0 4px}.header-utility .social-networks{margin:0 -4px}}.hooked-fancybox-modal-display{z-index:-1;position:fixed;left:-10000px;top:-10000px}html.with-fancybox .hooked-fancybox-modal-display.fancybox__content{z-index:unset;position:relative;
68left:auto;top:auto}:root{--f-spinner-width: 36px;--f-spinner-height: 36px;--f-spinner-color-1: rgba(0, 0, 0, 0.1);--f-spinner-color-2: rgba(17, 24, 28, 0.8);--f-spinner-stroke: 2.75 }.f-spinner{margin:auto;padding:0;width:var(--f-spinner-width);height:var(--f-spinner-height)}.f-spinner svg{width:100%;height:100%;vertical-align:top;animation:f-spinner-rotate 2s linear infinite}.f-spinner svg *{stroke-width:var(--f-spinner-stroke);fill:none}.f-spinner svg *:first-child{stroke:var(--f-spinner-color-1)}.f-spinner svg *:last-child{stroke:var(--f-spinner-color-2);animation:f-spinner-dash 2s ease-in-out infinite}@keyframes f-spinner-rotate{100%{transform:rotate(360deg)}}@keyframes f-spinner-dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}100%{stroke-dasharray:90,150;stroke-dashoffset:-124}}.f-throwOutUp{animation:var(--f-throw-out-duration, 0.175s) ease-out both f-throwOutUp}.f-throwOutDown{animation:var(--f-throw-out-duration, 0.175s) ease-out both f-throwOutDown}@keyframes f-throwOutUp{to{transform:translate3d(0, calc(var(--f-throw-out-distance, 150px) * -1), 0);opacity:0}}@keyframes f-throwOutDown{to{transform:translate3d(0, var(--f-throw-out-distance, 150px), 0);opacity:0}}.f-zoomInUp{animation:var(--f-transition-duration, 0.2s) ease .1s both f-zoomInUp}.f-zoomOutDown{animation:var(--f-transition-duration, 0.2s) ease both f-zoomOutDown}@keyframes f-zoomInUp{from{transform:scale(0.975) translate3d(0, 16px, 0);opacity:0}to{transform:scale(1) translate3d(0, 0, 0);opacity:1}}@keyframes f-zoomOutDown{to{transform:scale(0.975) translate3d(0, 16px, 0);opacity:0}}.f-fadeIn{animation:var(--f-transition-duration, 0.2s) var(--f-transition-easing, ease) var(--f-transition-delay, 0s) both f-fadeIn;z-index:2}.f-fadeOut{animation:var(--f-transition-duration, 0.2s) var(--f-transition-easing, ease) var(--f-transition-delay, 0s) both f-fadeOut;z-index:1}@keyframes f-fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes f-fadeOut{100%{opacity:0}}.f-fadeFastIn{animation:var(--f-transition-duration, 0.2s) ease-out both f-fadeFastIn;z-index:2}.f-fadeFastOut{animation:var(--f-transition-duration, 0.1s) ease-out both f-fadeFastOut;z-index:2}@keyframes f-fadeFastIn{0%{opacity:.75}100%{opacity:1}}@keyframes f-fadeFastOut{100%{opacity:0}}.f-fadeSlowIn{animation:var(--f-transition-duration, 0.5s) ease both f-fadeSlowIn;z-index:2}.f-fadeSlowOut{animation:var(--f-transition-duration, 0.5s) ease both f-fadeSlowOut;z-index:1}@keyframes f-fadeSlowIn{0%{opacity:0}100%{opacity:1}}@keyframes f-fadeSlowOut{100%{opacity:0}}.f-crossfadeIn{animation:var(--f-transition-duration, 0.2s) ease-out both f-crossfadeIn;z-index:2}.f-crossfadeOut{animation:calc(var(--f-transition-duration, 0.2s)*.5) linear .1s both f-crossfadeOut;z-index:1}@keyframes f-crossfadeIn{0%{opacity:0}100%{opacity:1}}@keyframes f-crossfadeOut{100%{opacity:0}}.f-slideIn.from-next{animation:var(--f-transition-duration, 0.85s) cubic-bezier(0.16, 1, 0.3, 1) f-slideInNext}.f-slideIn.from-prev{animation:var(--f-transition-duration, 0.85s) cubic-bezier(0.16, 1, 0.3, 1) f-slideInPrev}.f-slideOut.to-next{animation:var(--f-transition-duration, 0.85s) cubic-bezier(0.16, 1, 0.3, 1) f-slideOutNext}.f-slideOut.to-prev{animation:var(--f-transition-duration, 0.85s) cubic-bezier(0.16, 1, 0.3, 1) f-slideOutPrev}@keyframes f-slideInPrev{0%{transform:translateX(100%)}100%{transform:translate3d(0, 0, 0)}}@keyframes f-slideInNext{0%{transform:translateX(-100%)}100%{transform:translate3d(0, 0, 0)}}@keyframes f-slideOutNext{100%{transform:translateX(-100%)}}@keyframes f-slideOutPrev{100%{transform:translateX(100%)}}.f-classicIn.from-next{animation:var(--f-transition-duration, 0.85s) cubic-bezier(0.16, 1, 0.3, 1) f-classicInNext;z-index:2}.f-classicIn.from-prev{animation:var(--f-transition-duration, 0.85s) cubic-bezier(0.16, 1, 0.3, 1) f-classicInPrev;z-index:2}.f-classicOut.to-next{animation:var(--f-transition-duration, 0.85s) cubic-bezier(0.16, 1, 0.3, 1) f-classicOutNext;z-index:1}.f-classicOut.to-prev{animation:var(--f-transition-duration, 0.85s) cubic-bezier(0.16, 1, 0.3, 1) f-classicOutPrev;z-index:1}@keyframes f-classicInNext{0%{transform:translateX(-75px);opacity:0}
68100%{transform:translate3d(0, 0, 0);opacity:1}}@keyframes f-classicInPrev{0%{transform:translateX(75px);opacity:0}100%{transform:translate3d(0, 0, 0);opacity:1}}@keyframes f-classicOutNext{100%{transform:translateX(-75px);opacity:0}}@keyframes f-classicOutPrev{100%{transform:translateX(75px);opacity:0}}:root{--f-button-width: 40px;--f-button-height: 40px;--f-button-border: 0;--f-button-border-radius: 0;--f-button-color: #374151;--f-button-bg: #ae2225;--f-button-hover-bg: #ae2225;--f-button-active-bg: #ae2225;--f-button-shadow: none;--f-button-transition: all 0.15s ease;--f-button-transform: none;--f-button-svg-width: 20px;--f-button-svg-height: 20px;--f-button-svg-stroke-width: 1.5;--f-button-svg-fill: none;--f-button-svg-filter: none;--f-button-svg-disabled-opacity: 0.65 }.f-button{display:flex;justify-content:center;align-items:center;box-sizing:content-box;position:relative;margin:0;padding:0;width:var(--f-button-width);height:var(--f-button-height);border:var(--f-button-border);border-radius:var(--f-button-border-radius);color:var(--f-button-color);background:var(--f-button-bg);box-shadow:var(--f-button-shadow);pointer-events:all;cursor:pointer;transition:var(--f-button-transition)}@media(hover: hover){.f-button:hover:not([disabled]){color:var(--f-button-hover-color);background-color:var(--f-button-hover-bg)}}.f-button:active:not([disabled]){background-color:var(--f-button-active-bg)}.f-button:focus:not(:focus-visible){outline:none}.f-button:focus-visible{outline:none;box-shadow:inset 0 0 0 var(--f-button-outline, 2px) var(--f-button-outline-color, var(--f-button-color))}.f-button svg{width:var(--f-button-svg-width);height:var(--f-button-svg-height);fill:var(--f-button-svg-fill);stroke:currentColor;stroke-width:var(--f-button-svg-stroke-width);stroke-linecap:round;stroke-linejoin:round;transition:opacity .15s ease;transform:var(--f-button-transform);filter:var(--f-button-svg-filter);pointer-events:none}.f-button[disabled]{cursor:default}.f-button[disabled] svg{opacity:var(--f-button-svg-disabled-opacity)}html.with-fancybox{width:auto;overflow:visible;scroll-behavior:auto}html.with-fancybox body{touch-action:none}html.with-fancybox body.hide-scrollbar{width:auto;margin-right:calc(var(--fancybox-body-margin, 0px) + var(--fancybox-scrollbar-compensate, 0px));overflow:hidden !important;overscroll-behavior-y:none}.fancybox__container{--fancybox-color: #111111;--fancybox-hover-color: #ae2225;--fancybox-bg: rgba(255, 255, 255, 0.8);--fancybox-slide-gap: 10px;--f-spinner-width: 50px;--f-spinner-height: 50px;--f-spinner-color-1: rgba(255, 255, 255, 0.1);--f-spinner-color-2: #bbb;--f-spinner-stroke: 3.65;position:fixed;top:0;left:0;bottom:0;right:0;direction:ltr;display:flex;flex-direction:column;box-sizing:border-box;margin:0;padding:0;color:#fff;-webkit-tap-highlight-color:rgba(0,0,0,0);overflow:visible;z-index:var(--fancybox-zIndex, 1050);outline:none;transform-origin:top left;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;overscroll-behavior-y:contain;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.fancybox__container *,.fancybox__container *::before,.fancybox__container *::after{box-sizing:inherit}.fancybox__container::backdrop{background-color:rgba(0,0,0,0)}.fancybox__backdrop{position:fixed;top:0;left:0;bottom:0;right:0;z-index:-1;background:var(--fancybox-bg);opacity:var(--fancybox-opacity, 1);will-change:opacity}.hooked_modal_backdrop{background:rgba(255,255,255,.7)}.fancybox__backdrop.hooked_video_backdrop{background:rgba(0,0,0,.8)}.fancybox__carousel{position:relative;box-sizing:border-box;flex:1;min-height:0;z-index:10;overflow-y:visible;overflow-x:clip}.fancybox__viewport{width:100%;height:100%}.fancybox__viewport.is-draggable{cursor:move;cursor:grab}.fancybox__viewport.is-dragging{cursor:move;cursor:grabbing}.fancybox__track{display:flex;margin:0 auto;height:100%}.fancybox__slide{flex:0 0 auto;position:relative;display:flex;flex-direction:column;align-items:center;width:100%;height:100%;margin:0 var(--fancybox-slide-gap) 0 0;padding:4px;overflow:auto;overscroll-behavior:contain;transform:translate3d(0, 0, 0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.fancybox__container:not(.is-compact) .fancybox__slide.has-close-btn{padding-top:40px}.fancybox__slide.has-iframe,.fancybox__slide.has-video,.fancybox__slide.has-html5video{overflow:hidden}.fancybox__slide.has-image{overflow:hidden}.fancybox__slide.has-image.is-animating,.fancybox__slide.has-image.is-selected{overflow:visible}.fancybox__slide::before,.fancybox__slide::after{content:"";flex:0 0 0;margin:auto}.fancybox__content{position:relative;max-width:100%;color:var(--fancybox-content-color, #374151);background:var(--fancybox-content-bg, #fff);cursor:default;z-index:20;margin-top:45px}.is-loading .fancybox__content{opacity:0}
68.is-draggable .fancybox__content{cursor:move;cursor:grab}.can-zoom_in .fancybox__content{cursor:zoom-in}.can-zoom_out .fancybox__content{cursor:zoom-out}.is-dragging .fancybox__content{cursor:move;cursor:grabbing}.fancybox__content [data-selectable],.fancybox__content [contenteditable]{cursor:auto}.fancybox__slide.has-image>.fancybox__content{padding:0;background:rgba(0,0,0,0);min-height:1px;background-repeat:no-repeat;background-size:contain;background-position:center center;transition:none;transform:translate3d(0, 0, 0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.fancybox__slide.has-image>.fancybox__content>picture>img{width:100%;height:auto;max-height:100%}.is-zooming-in .fancybox__viewport:not(.is-dragging) .fancybox__slide:not(.is-selected) .fancybox__content,.is-zooming-out .fancybox__viewport:not(.is-dragging) .fancybox__slide:not(.is-selected) .fancybox__content{visibility:hidden}.is-animating .fancybox__content,.is-dragging .fancybox__content{filter:blur(0px);will-change:transform,width,height}.fancybox-image{margin:auto;display:block;width:100%;height:100%;min-height:0;-o-object-fit:contain;object-fit:contain;-webkit-user-select:none;-moz-user-select:none;user-select:none}.fancybox__caption{align-self:center;max-width:100%;flex-shrink:0;margin:0;padding:14px 0 4px 0;overflow-wrap:anywhere;line-height:1.375;color:var(--fancybox-color, currentColor);opacity:var(--fancybox-opacity, 1);cursor:auto;visibility:visible;font-size:.85em}@media(min-width: 1000px){.fancybox__caption{max-width:70%;margin:0 auto}}.is-loading .fancybox__caption,.is-closing .fancybox__caption{opacity:0;visibility:hidden}.is-compact .fancybox__caption{padding-bottom:0}.f-button.is-close-btn{--f-button-svg-stroke-width: 2;position:fixed;top:0;right:0;z-index:500}.f-button.is-close-btn,.fancybox__content>.f-button.is-close-btn{--f-button-width: 40px;--f-button-height: 40px;--f-button-border-radius: 0px;--f-button-color: var(--fancybox-color, #fff);--f-button-hover-color: var(--fancybox-color, #fff);--f-button-bg: #ae2225;--f-button-hover-bg: #ae2225;--f-button-active-bg: #ae2225;--f-button-svg-width: 22px;--f-button-svg-height: 22px;position:fixed;right:0;top:0}@media(min-width: 1300px){.f-button.is-close-btn{--f-button-width: 80px;--f-button-height: 80px;--f-button-svg-width: 42px;--f-button-svg-height: 42px}}.is-loading .fancybox__content>.f-button.is-close-btn{visibility:hidden}.is-zooming-out .fancybox__content>.f-button.is-close-btn{visibility:hidden}.fancybox__content>.f-button.is-close-btn:hover{opacity:1}.fancybox__footer{padding:0;margin:0;position:relative}.fancybox__footer .fancybox__caption{width:100%;padding:24px;opacity:var(--fancybox-opacity, 1);transition:all .25s ease}.is-compact .fancybox__footer{position:absolute;bottom:0;left:0;right:0;z-index:20;background:rgba(4, 4, 4, 0.4)}.is-compact .fancybox__footer .fancybox__caption{padding:12px}.is-compact .fancybox__content>.f-button.is-close-btn{--f-button-border-radius: 0px;--f-button-color: #fff;--f-button-hover-color: #fff;--f-button-outline-color: #000;--f-button-bg: rgba(0, 0, 0, 0.6);--f-button-active-bg: rgba(0, 0, 0, 0.6);--f-button-hover-bg: rgba(0, 0, 0, 0.6);--f-button-svg-width: 18px;--f-button-svg-height: 18px;--f-button-svg-filter: none;top:0;right:0}.fancybox__nav{--f-button-width: 50px;--f-button-height: 50px;--f-button-border: 0;--f-button-border-radius: 0;--f-button-color: var(--fancybox-color);--f-button-hover-color: #fff;--f-button-bg: transparent;--f-button-hover-bg: #ae2225;--f-button-active-bg: rgba(24, 24, 27, 0.5);--f-button-shadow: none;--f-button-transition: all 0.15s ease;--f-button-transform: none;--f-button-svg-width: 26px;--f-button-svg-height: 26px;--f-button-svg-stroke-width: 2.5;--f-button-svg-fill: none;--f-button-svg-filter: drop-shadow(1px 1px 1px rgba(24, 24, 27, 0.5));--f-button-svg-disabled-opacity: 0.65;--f-button-next-pos: 1rem;--f-button-prev-pos: 1rem;opacity:var(--fancybox-opacity, 1)}.fancybox__nav .f-button:before{position:absolute;content:"";top:-30px;right:-20px;left:-20px;bottom:-30px;z-index:1}.is-idle .fancybox__nav{animation:.15s ease-out both f-fadeOut}.is-idle.is-compact .fancybox__footer{pointer-events:none;animation:.15s ease-out both f-fadeOut}.fancybox__slide>.f-spinner{position:absolute;top:50%;left:50%;margin:var(--f-spinner-top, calc(var(--f-spinner-width) * -0.5)) 0 0 var(--f-spinner-left, calc(var(--f-spinner-height) * -0.5));z-index:30;
68cursor:pointer}.fancybox-protected{position:absolute;top:0;left:0;right:0;bottom:0;z-index:40;-webkit-user-select:none;-moz-user-select:none;user-select:none}.fancybox-ghost{position:absolute;top:0;left:0;width:100%;height:100%;min-height:0;-o-object-fit:contain;object-fit:contain;z-index:40;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}.fancybox-focus-guard{outline:none;opacity:0;position:fixed;pointer-events:none}.fancybox__container:not([aria-hidden]){opacity:0}.fancybox__container.is-animated[aria-hidden=false]>*:not(.fancybox__backdrop,.fancybox__carousel),.fancybox__container.is-animated[aria-hidden=false] .fancybox__carousel>*:not(.fancybox__viewport),.fancybox__container.is-animated[aria-hidden=false] .fancybox__slide>*:not(.fancybox__content){animation:var(--f-interface-enter-duration, 0.25s) ease .1s backwards f-fadeIn}.fancybox__container.is-animated[aria-hidden=false] .fancybox__backdrop{animation:var(--f-backdrop-enter-duration, 0.35s) ease backwards f-fadeIn}.fancybox__container.is-animated[aria-hidden=true]>*:not(.fancybox__backdrop,.fancybox__carousel),.fancybox__container.is-animated[aria-hidden=true] .fancybox__carousel>*:not(.fancybox__viewport),.fancybox__container.is-animated[aria-hidden=true] .fancybox__slide>*:not(.fancybox__content){animation:var(--f-interface-exit-duration, 0.15s) ease forwards f-fadeOut}.fancybox__container.is-animated[aria-hidden=true] .fancybox__backdrop{animation:var(--f-backdrop-exit-duration, 0.35s) ease forwards f-fadeOut}.has-iframe .fancybox__content,.has-map .fancybox__content,.has-pdf .fancybox__content,.has-youtube .fancybox__content,.has-vimeo .fancybox__content,.has-html5video .fancybox__content{max-width:100%;flex-shrink:1;min-height:1px;overflow:visible;padding:0}.has-iframe .fancybox__content,.has-map .fancybox__content,.has-pdf .fancybox__content{width:calc(100% - 120px);height:90%}.fancybox__container.is-compact .has-iframe .fancybox__content,.fancybox__container.is-compact .has-map .fancybox__content,.fancybox__container.is-compact .has-pdf .fancybox__content{width:100%;height:100%}.has-youtube .fancybox__content,.has-vimeo .fancybox__content,.has-html5video .fancybox__content{width:100vw !important;height:auto !important;max-width:90%;max-height:90%}.has-map .fancybox__content,.has-pdf .fancybox__content,.has-youtube .fancybox__content,.has-vimeo .fancybox__content,.has-html5video .fancybox__content{padding:0;background:rgba(24,24,27,.9);color:#fff}.has-map .fancybox__content{background:#fff}.fancybox__html5video,.fancybox__iframe{border:0;display:block;height:100%;width:100%;background:rgba(0,0,0,0)}.fancybox-placeholder{border:0 !important;clip:rect(1px, 1px, 1px, 1px) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important;white-space:nowrap !important}.f-carousel__thumbs{--f-thumb-width: 96px;--f-thumb-height: 72px;--f-thumb-outline: 0;--f-thumb-outline-color: #5eb0ef;--f-thumb-opacity: 1;--f-thumb-hover-opacity: 1;--f-thumb-selected-opacity: 1;--f-thumb-border-radius: 0;--f-thumb-offset: 0px;--f-button-next-pos: 0;--f-button-prev-pos: 0 }.f-carousel__thumbs.is-classic{--f-thumb-gap: 8px;--f-thumb-opacity: 0.5;--f-thumb-hover-opacity: 1;--f-thumb-selected-opacity: 1 }.f-carousel__thumbs.is-modern{--f-thumb-gap: 4px;--f-thumb-extra-gap: 16px;--f-thumb-clip-width: 46px }.f-thumbs{position:relative;flex:0 0 auto;margin:0;overflow:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-moz-user-select:none;user-select:none;perspective:1000px;transform:translateZ(0)}.f-thumbs .f-spinner{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:2px;background-image:linear-gradient(#ebeff2, #e2e8f0);z-index:-1}.f-thumbs .f-spinner svg{display:none}.f-thumbs.is-vertical{height:100%}.f-thumbs__viewport{width:100%;height:auto;overflow:hidden;transform:translate3d(0, 0, 0)}.f-thumbs__track{display:flex}.f-thumbs__slide{position:relative;flex:0 0 auto;box-sizing:content-box;display:flex;align-items:center;justify-content:center;padding:0;margin:0;width:var(--f-thumb-width);height:var(--f-thumb-height);overflow:visible;cursor:pointer}.f-thumbs__slide.is-loading img{opacity:0}
68.is-classic .f-thumbs__viewport{height:100%}.is-modern .f-thumbs__track{width:-webkit-max-content;width:-moz-max-content;width:max-content}.is-modern .f-thumbs__track::before{content:"";position:absolute;top:0;bottom:0;left:calc((var(--f-thumb-clip-width, 0))*-0.5);width:calc(var(--width, 0)*1px + var(--f-thumb-clip-width, 0));cursor:pointer}.is-modern .f-thumbs__slide{width:var(--f-thumb-clip-width);transform:translate3d(calc(var(--shift, 0) * -1px), 0, 0);transition:none;pointer-events:none}.is-modern.is-resting .f-thumbs__slide{transition:transform .33s ease}.is-modern.is-resting .f-thumbs__slide__button{transition:-webkit-clip-path .33s ease;transition:clip-path .33s ease;transition:clip-path .33s ease, -webkit-clip-path .33s ease}.is-using-tab .is-modern .f-thumbs__slide:focus-within{filter:drop-shadow(-1px 0px 0px var(--f-thumb-outline-color)) drop-shadow(2px 0px 0px var(--f-thumb-outline-color)) drop-shadow(0px -1px 0px var(--f-thumb-outline-color)) drop-shadow(0px 2px 0px var(--f-thumb-outline-color))}.f-thumbs__slide__button{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:var(--f-thumb-width);height:100%;margin:0 -100% 0 -100%;padding:0;border:0;position:relative;border-radius:var(--f-thumb-border-radius);overflow:hidden;background:rgba(0,0,0,0);outline:none;cursor:pointer;pointer-events:auto;touch-action:manipulation;opacity:var(--f-thumb-opacity);transition:opacity .2s ease}.f-thumbs__slide__button:hover{opacity:var(--f-thumb-hover-opacity)}.f-thumbs__slide__button:focus:not(:focus-visible){outline:none}.f-thumbs__slide__button:focus-visible{outline:none;opacity:var(--f-thumb-selected-opacity)}.is-modern .f-thumbs__slide__button{--clip-path: inset(0 calc(((var(--f-thumb-width, 0) - var(--f-thumb-clip-width, 0))) * (1 - var(--progress, 0)) * 0.5) round var(--f-thumb-border-radius, 0));-webkit-clip-path:var(--clip-path);clip-path:var(--clip-path)}.is-classic .is-nav-selected .f-thumbs__slide__button{opacity:var(--f-thumb-selected-opacity)}.is-classic .is-nav-selected .f-thumbs__slide__button::after{content:"";position:absolute;top:0;left:0;right:0;height:auto;bottom:0;border:var(--f-thumb-outline, 0) solid var(--f-thumb-outline-color, transparent);border-radius:var(--f-thumb-border-radius);animation:f-fadeIn .2s ease-out;z-index:10}.f-thumbs__slide__img{overflow:hidden;position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;padding:var(--f-thumb-offset);box-sizing:border-box;pointer-events:none;-o-object-fit:cover;object-fit:cover;border-radius:var(--f-thumb-border-radius)}.f-thumbs.is-horizontal .f-thumbs__track{padding:8px 0 12px 0}.f-thumbs.is-horizontal .f-thumbs__slide{margin:0 var(--f-thumb-gap) 0 0}.f-thumbs.is-vertical .f-thumbs__track{flex-wrap:wrap;padding:0 8px}.f-thumbs.is-vertical .f-thumbs__slide{margin:0 0 var(--f-thumb-gap) 0}.fancybox__thumbs{--f-thumb-width: 96px;--f-thumb-height: 72px;--f-thumb-border-radius: 0px;--f-thumb-outline: 2px;--f-thumb-outline-color: #ededed;position:relative;opacity:var(--fancybox-opacity, 1);transition:max-height .35s cubic-bezier(0.23, 1, 0.32, 1)}.fancybox__thumbs.is-classic{--f-thumb-gap: 8px;--f-thumb-opacity: 0.5;--f-thumb-hover-opacity: 1 }.fancybox__thumbs.is-classic .f-spinner{background-image:linear-gradient(rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.05))}.fancybox__thumbs.is-modern{--f-thumb-gap: 4px;--f-thumb-extra-gap: 16px;--f-thumb-clip-width: 46px;--f-thumb-opacity: 1;--f-thumb-hover-opacity: 1 }.fancybox__thumbs.is-modern .f-spinner{background-image:linear-gradient(rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.05))}.fancybox__thumbs.is-horizontal{padding:0 var(--f-thumb-gap)}.fancybox__thumbs.is-vertical{padding:var(--f-thumb-gap) 0}.is-compact .fancybox__thumbs{--f-thumb-width: 64px;--f-thumb-clip-width: 32px;--f-thumb-height: 48px;--f-thumb-extra-gap: 10px }.fancybox__thumbs.is-masked{max-height:0px !important}.is-closing .fancybox__thumbs{transition:none !important}.fancybox__toolbar{--f-progress-color: var(--fancybox-color, rgba(255, 255, 255, 0.94));--f-button-width: 46px;--f-button-height: 46px;--f-button-color: #fff;--f-button-hover-color: #fff;--f-button-bg: #111111;--f-button-hover-bg: #ae2225;--f-button-active-bg: #ae2225;--f-button-border-radius: 0;--f-button-svg-width: 24px;--f-button-svg-height: 24px;--f-button-svg-stroke-width: 1.5;--f-button-svg-filter: drop-shadow(1px 1px 1px rgba(24, 24, 27, 0.15));--f-button-svg-fill: none;--f-button-svg-disabled-opacity: 0.65;display:flex;flex-direction:row;justify-content:space-between;margin:0;padding:0;font-family:Plus Jakarta Sans, San Francisco, sans-serif;color:var(--fancybox-color, currentColor);opacity:var(--fancybox-opacity, 1);pointer-events:none;z-index:20}.fancybox__toolbar :focus-visible{z-index:1}.fancybox__toolbar.is-absolute,.is-compact .fancybox__toolbar{position:absolute;top:0;left:0;right:0}.is-idle .fancybox__toolbar{pointer-events:none;animation:.15s ease-out both f-fadeOut}.fancybox__toolbar__column{display:flex;flex-direction:row;flex-wrap:wrap;align-content:flex-start}.fancybox__toolbar__column.is-left,.fancybox__toolbar__column.is-right{flex-grow:1;flex-basis:0}.fancybox__toolbar__column.is-right{display:flex;justify-content:flex-end;flex-wrap:nowrap}.fancybox__infobar{padding:0 5px;line-height:var(--f-button-height);text-align:center;font-size:14px;font-variant-numeric:tabular-nums;-webkit-font-smoothing:subpixel-antialiased;cursor:default;-webkit-user-select:none;-moz-user-select:none;user-select:none}.fancybox__infobar span{padding:0 5px}.fancybox__infobar:not(:first-child):not(:last-child){background:var(--f-button-bg)}[data-fancybox-toggle-slideshow]{position:relative}[data-fancybox-toggle-slideshow] .f-progress{height:100%;opacity:.3}[data-fancybox-toggle-slideshow] svg g:first-child{display:flex}[data-fancybox-toggle-slideshow] svg g:last-child{display:none}.has-slideshow [data-fancybox-toggle-slideshow] svg g:first-child{display:none}.has-slideshow [data-fancybox-toggle-slideshow] svg g:last-child{display:flex}[data-fancybox-toggle-fullscreen] svg g:first-child{display:flex}[data-fancybox-toggle-fullscreen] svg g:last-child{display:none}:-webkit-full-screen [data-fancybox-toggle-fullscreen] svg g:first-child{display:none}:fullscreen [data-fancybox-toggle-fullscreen] svg g:first-child{display:none}:-webkit-full-screen [data-fancybox-toggle-fullscreen] svg g:last-child{display:flex}:fullscreen [data-fancybox-toggle-fullscreen] svg g:last-child{display:flex}.f-progress{position:absolute;top:0;left:0;right:0;height:3px;
68transform:scaleX(0);transform-origin:0;transition-property:transform;transition-timing-function:linear;background:var(--f-progress-color, var(--f-carousel-theme-color, #0091ff));z-index:30;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}.fancybox__container.hooked--modal-container .hooked-fancybox-modal-content{box-shadow:0 0 30px 0 rgba(17,17,17,.2)}.hooked--modal-container .f-button.is-close-btn,.hooked--video-container .f-button.is-close-btn{background:rgba(0,0,0,0)}.hooked--video-container .f-button.is-close-btn{color:#fff !important}.hooked--modal-container .f-button.is-close-btn{color:#fff !important}.hooked-theme .hooked--video-container .f-button.is-close-btn:focus,.hooked-theme .hooked--video-container .f-button.is-close-btn:hover{color:#d62e31 !important}.hooked-theme .hooked--modal-container .f-button.is-close-btn:focus,.hooked-theme .hooked--modal-container .f-button.is-close-btn:hover{color:rgba(255, 255, 255, 0.6) !important}@media(min-width: 1300px){.hooked--video-container .f-button.is-close-btn{--f-button-width: 70px;--f-button-height: 70px;--f-button-svg-width: 38px;--f-button-svg-height: 38px}}.hooked-fancybox-modal-content{max-width:1000px;padding:3%;background-color:#fff;background-attachment:fixed;background-repeat:repeat;background-image:url(/wp-content/themes/hooked-showtime-plumbing/assets/images/background/bg_pattern_1-01.webp)}.hooked-theme .fancybox__nav{display:none}.f-carousel__slide{display:flex;align-items:center;justify-items:center}.f-thumbs.is-classic{--f-thumb-width: 120px;--f-thumb-height: 80px;--f-thumb-gap: 8px;--f-thumb-opacity: 1;--f-thumb-selected-opacity: 1;--f-thumb-outline: 2px;--f-button-next-pos: 8px;--f-button-prev-pos: 8px}.f-thumbs.is-classic.is-horizontal{padding:0 56px}.f-thumbs.is-classic.is-vertical{padding:56px 0}.fancybox__thumbs.is-classic.is-horizontal{--f-thumb-width: 75px;--f-thumb-height: 55px;--f-thumb-gap: 8px;background-color:#222;color:#fff;background-attachment:fixed;background-image:url(/wp-content/themes/hooked-showtime-plumbing/assets/images/background/bg_pattern_4-01.webp);background-repeat:repeat;background-image:none}.fancybox__thumbs.is-classic.is-vertical{--f-thumb-width: 100%;--f-thumb-height: 75px;width:120px;background-color:#222;color:#fff;background-attachment:fixed;background-image:url(/wp-content/themes/hooked-showtime-plumbing/assets/images/background/bg_pattern_4-01.webp);background-repeat:repeat;background-image:none;position:relative;z-index:1000}.has-image .fancybox__content{max-width:1300px !important;max-height:1000px !important}.fancybox__thumbs.is-classic.is-vertical .f-thumbs__track{padding:0 16px}.fancybox__thumbs.is-classic.is-vertical{position:fixed;top:0;bottom:0;left:0}@media screen and (min-width: 1000px){.fancybox__carousel.has-thumbs{padding-left:120px}}
69/*!
70	Interior CSS Base
71	//interior-critical-min.css
72*/.header-hero{-webkit-mask:url(/wp-content/themes/hooked-showtime-plumbing/assets/images/masks/mask_group-mask.svg);mask:url(/wp-content/themes/hooked-showtime-plumbing/assets/images/masks/mask_group-mask.svg);margin-top:-3vw;margin-bottom:-2px}.header-hero{z-index:10;-webkit-backface-visibility:hidden;backface-visibility:hidden;display:block;position:relative;-webkit-mask-size:cover;mask-size:cover;-webkit-mask-position:center bottom;mask-position:center bottom;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.header-hero-border{-webkit-mask:url(/wp-content/themes/hooked-showtime-plumbing/assets/images/masks/mask_group-mask.svg);mask:url(/wp-content/themes/hooked-showtime-plumbing/assets/images/masks/mask_group-mask.svg)}.header-hero-border{display:block;position:absolute;z-index:2;right:0;left:0;bottom:-1px;background-color:#fff;background-attachment:fixed;background-repeat:repeat;background-image:url(/wp-content/themes/hooked-showtime-plumbing/assets/images/background/bg_pattern_1-01.webp);-webkit-mask-size:cover;mask-size:cover;-webkit-mask-position:center bottom;mask-position:center bottom;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-backface-visibility:hidden;backface-visibility:hidden;height:calc(3vw + 10px)}@media(min-width: 1200px){.header-hero-border{bottom:-2px}}.hero-image-slider,.hero-image-item{position:absolute;inset:0;overflow:hidden}.interior-hero-banner-container{position:relative;z-index:51}.interior-hero-banner-container *{color:#fff}body.has-no-hero-form .interior-hero-banner-container{margin-bottom:7%}.hero-image-slider{opacity:0;visibility:hidden;transition:opacity 1s linear}body.loaded-250 .hero-image-slider{opacity:1;visibility:visible}.hero-image-item{opacity:0;transition:opacity 1s linear}.hero-image-item.visible{opacity:1}.hero-inner{overflow:hidden;position:relative;background-repeat:no-repeat;background-color:#111;-webkit-backface-visibility:hidden;backface-visibility:hidden;padding:6.75vw 5% 0 5%;text-shadow:0px 0px 20px rgba(17,17,17,.8),0px 0px 5px rgba(17,17,17,.7)}.hero-image-item img,.hero-inner-img img{position:absolute;inset:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:0% 50%;object-position:0% 50%}@supports(not (-webkit-hyphens: none)) and (not (-moz-appearance: none)) and (list-style-type: "*"){.hero-image-item img,.hero-inner-img img{filter:blur(2px) saturate(1.2)}}.hero-banner-shade{inset:0;display:block;z-index:45;position:absolute;background:rgba(0,0,0,.5);background-image:linear-gradient(90deg, rgba(0, 0, 0, 0.3) 16.67%, rgba(0, 0, 0, 0) 16.67%, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0.3) 50%, rgba(0, 0, 0, 0.3) 66.67%, rgba(0, 0, 0, 0) 66.67%, rgba(0, 0, 0, 0) 100%),linear-gradient(0deg, rgba(0, 0, 0, 0.3) 16.67%, rgba(0, 0, 0, 0) 16.67%, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0.3) 50%, rgba(0, 0, 0, 0.3) 66.67%, rgba(0, 0, 0, 0) 66.67%, rgba(0, 0, 0, 0) 100%);background-size:4px 4px}a.free-estimate-badge-header{position:absolute;margin:0 auto;left:0;right:0;max-width:calc(1400px + 6%);z-index:40;top:calc(25vw + 50%)}a.free-estimate-badge-header img{position:absolute;right:3%;margin:0 auto;width:18vw;
72height:18vw;max-width:90px;max-height:90px;transform:rotate(10deg)}@media(min-width: 1024px){a.free-estimate-badge-header{bottom:unset;top:calc(15vw + 50%)}a.free-estimate-badge-header img{left:unset;width:10vw;height:10vw;max-width:140px;max-height:140px}}@media(min-width: 1300px){a.free-estimate-badge-header{top:calc(15vw + 30%)}}@media(min-width: 1600px){a.free-estimate-badge-header img{right:0}}.scrolling-site-header a.free-estimate-badge-header{display:none}@media(hover: hover){a.free-estimate-badge-header img{transition:all .2s linear}a.free-estimate-badge-header:hover img{transform:scale(1.1) rotate(10deg)}}
73</style><link rel="icon" href="https://showtimeexpressplumbing.com/wp-content/uploads/2024/09/cropped-site-icon-32x32.png" sizes="32x32" />
74<link rel="icon" href="https://showtimeexpressplumbing.com/wp-content/uploads/2024/09/cropped-site-icon-192x192.png" sizes="192x192" />
75<link rel="apple-touch-icon" href="https://showtimeexpressplumbing.com/wp-content/uploads/2024/09/cropped-site-icon-180x180.png" />
76<meta name="msapplication-TileImage" content="https://showtimeexpressplumbing.com/wp-content/uploads/2024/09/cropped-site-icon-270x270.png" />
77<style id="wp-custom-css">
78.awards-hero-content-patch {
79	justify-content:flex-start
80}
81
82@media (max-width:1023px) {
83	
84	.awards-hero-content-patch {
85		justify-content:center
86	}
87	
88}
89</style>
90<style id="wp-block-spacer-inline-css">
91.wp-block-spacer{clear:both}
92/*# sourceURL=https://showtimeexpressplumbing.com/wp-includes/blocks/spacer/style.min.css */
93</style>
94<link rel='stylesheet' id='wpforms-modern-base-css' href='https://showtimeexpressplumbing.com/wp-content/plugins/wpforms/assets/css/frontend/modern/wpforms-base.min.css?ver=2.0.2.1' media='all' />
95<link rel='stylesheet' id='hooked-forms-css-css' href='https://showtimeexpressplumbing.com/wp-content/themes/hooked-showtime-plumbing/assets/css/hooked-FORMS-min.css?ver=3.0.1' media='screen' />
96<link rel='stylesheet' id='hooked-print-css' href='https://showtimeexpressplumbing.com/wp-content/themes/hooked-showtime-plumbing/assets/css/print.css?ver=3.0.1' media='print' />
97<link rel='stylesheet' id='hooked-icon-font-css' href='https://showtimeexpressplumbing.com/wp-content/themes/hooked-showtime-plumbing/assets/fonts/theme/hooked-icon-font.min.css?ver=1.0' media='screen' />
98<link rel='stylesheet' id='wpforms-pro-modern-base-css' href='https://showtimeexpressplumbing.com/wp-content/plugins/wpforms/assets/pro/css/frontend/modern/wpforms-base.min.css?ver=2.0.2.1' media='all' />
99
100</head>
101<body class="wp-singular page-template-default page page-id-427 wp-embed-responsive wp-theme-genesis wp-child-theme-hooked-showtime-plumbing has-hero-form header-full-width full-width-content genesis-breadcrumbs-hidden sub-title-set hooked-theme reviews-page page-reviews"><div class="off-canvas-nav is-dark-theme" id="menu-panel"><div class="off-canvas-nav-inner"><div class="menu-toggle-wrapper" style="z-index:100"><a href="#menu-panel" class="menu-toggle" role="button" aria-controls="menu-panel" aria-expanded="false" aria-pressed="false"><span class="screen-reader-text">open menu</span><span class="menu-burger" aria-hidden="true"><span aria-hidden="true"></span><span aria-hidden="true"></span><span aria-hidden="true"></span></span></a></div><div class="off-canvas-utility"><div class="contact-box"><h3 class="contact-section contact-company-name ">Showtime Express Plumbing</h3><div class="contact-section contact-phone-no "><a class="text-nowrap " href="tel:7&#55;&#48;8&#54;&#55;2&#53;3&#55;">(770) 867-2537</a></div><div class="contact-section contact-email hide-offcanvas hide-frontpage hide-sidebar "><span class="truncate-outer-1"><span class="truncate-outer-2"><a href="mailto:&#115;&#104;&#111;wt&#105;m&#101;e&#120;&#112;p&#108;u&#109;&#64;&#111;&#117;tl&#111;o&#107;.&#99;o&#109;">&#115;&#104;&#111;wt&#105;m&#101;e&#120;&#112;p&#108;u&#109;&#64;&#111;&#117;tl&#111;o&#107;.&#99;o&#109;</a></span></span></div><span aria-hidden="true" class="contact-section contact-section-divider "></span><div class="contact-section hide-offcanvas hide-contactpage hide-frontpage hide-sidebar "><strong>Business License #:</strong> 2105<br><strong>State License #:</strong>
101 MP208883</div><span aria-hidden="true" class="contact-section contact-section-divider "></span><div class="contact-section contact-hours "><span class="contact-section-heading">Hours</span><p>24/7</p>
102</div><span aria-hidden="true" class="contact-section contact-section-divider hide-offcanvas hide-frontpage hide-sidebar "></span><div class="contact-section contact-town hide-offcanvas hide-frontpage hide-sidebar "><p class="address-header">Main Office</p>
103<p>1701 Jessica Court<br>
104Winder, GA 30680</p></div><span aria-hidden="true" class="contact-section contact-section-divider hide-offcanvas hide-frontpage hide-sidebar "></span><div class="contact-section contact-social hide-offcanvas hide-frontpage hide-sidebar "><span class="contact-section-heading">Follow us on...</span><span class="social-networks"><span><a href="https://maps.app.goo.gl/VWD8BdscKaQWyi426" target="_blank" title="Check us out on Google"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12.238,.096c2.473-.024,4.887,.751,6.884,2.211l-1.921,1.92c-1.457-1.008-3.191-1.539-4.962-1.518-3.293,.017-6.32,1.812-7.915,4.693l-1.413-1.095-.773-.6C4.299,2.208,8.124,.084,12.238,.096Z"/><path d="M.977,15.828C.132,13.34,.132,10.642,.977,8.154l2.355,1.826c-.301,1.323-.301,2.697,0,4.02l-2.355,1.827Z"/><path d="M12.238,23.885c-4.114,.013-7.939-2.112-10.102-5.612l.5-.388,1.686-1.308c1.594,2.882,4.622,4.677,7.915,4.694,1.514,.018,3.011-.322,4.369-.992l2.236,1.736c-1.966,1.267-4.266,1.918-6.605,1.87Z"/><path d="M20.863,20.236l-.242-.188-1.82-1.413c.954-1.031,1.596-2.313,1.85-3.695,.133-.717-.34-1.407-1.057-1.541-.08-.015-.161-.022-.242-.022h-5.791v-2.469h9.976c.045,.457,.068,.919,.068,1.382,.077,2.893-.897,5.715-2.741,7.945h0Z"/></svg><span class="screen-reader-text">Check us out on Google</span></a></span><span><a href="https://www.thumbtack.com/ga/winder/water-heater-repair/showtime-express-plumbing/service/416753471147540482" target="_blank" title="Check us out on Thumbtack"><svg viewBox="0 0 69.36 69.39" xmlns="http://www.w3.org/2000/svg" width="40px" height="40px"><path d="m34.75 2.5c17.7.04 32.29 14.73 32.11 32.32-.19 17.71-14.6 32.07-32.17 32.06-17.7 0-32.21-14.54-32.18-32.25.03-17.74 14.52-32.18 32.25-32.14z" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="4"/><path d="m19.09 26.6v-6.88h31.12v6.88z"/><path d="m38.07 29.38c0 7.28.26 13.95-.13 20.58-.15 2.51-1.79 4.93-2.95 7.92-2.32-3.27-3.84-6.14-3.96-9.48-.17-4.67-.22-9.36-.07-14.03.03-1 .95-2.33 1.84-2.87 1.58-.95 3.45-1.42 5.26-2.12z"/></svg><span class="screen-reader-text">Check us out on Thumbtack</span></a></span><span><a href="https://www.yelp.com/biz/showtime-express-plumbing-winder" target="_blank" title="Check us out on Yelp"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12.079,17.579v1.662c-.012,2.548-.046,3.878-.102,3.99-.145,.28-.472,.482-.867,.523h-.005c-.038,0-.084,0-.131,0-1.08,0-2.105-.184-3.022-.512l.044,.014c-1.08-.237-2.013-.639-2.79-1.17l.006,.005c-.145-.128-.247-.288-.289-.464v-.006c-.003-.015-.004-.032-.004-.049,0-.105,.026-.204,.073-.296l-.003,.006c.178-.233,.371-.434,.587-.619l-.004,.004c.341-.323,1.374-1.265,3.099-2.827,.012,0,.353-.305,1.024-.916,.166-.161,.4-.276,.669-.32h.008c.097-.018,.209-.027,.322-.027,.189,0,.37,.026,.536,.075l-.01-.003c.262,.08,.48,.211,.638,.377l.003,.003c.137,.141,.219,.318,.219,.51,0,.014,0,.028-.001,.042v-.002h.001Zm-2.552-3.287v.029c0,.422-.374,.778-.883,.885l-.009,.002-2.055,.51c-3.139,.768-4.806,1.152-5,1.152-.406-.018-.75-.202-.919-.465l-.003-.005c-.159-.288-.262-.623-.29-.973v-.009c-.041-.307-.064-.664-.064-1.025,0-.407,.029-.809,.087-1.204l-.006,.049c.027-.596,.212-1.153,.526-1.655l-.014,.025c.171-.251,.51-.42,.901-.42,.02,0,.041,0,.061,0h-.003c1.419,.348,2.564,.69,3.678,1.076l-.219-.067,1.969,.615,1.438,.445c.261,.077,.471,.217,.605,.395l.003,.004c.124,.163,.197,.36,.197,.569,0,.022-.001,.046-.003,.068v-.005Zm14.147,3.888c-.319,.821-.858,1.528-1.571,2.11l.004-.003c-.603,.684-1.379,1.242-2.288,1.649l-.033,.014c-.129,.048-.281,.076-.443,.076-.241,0-.463-.064-.638-.169h.003c-.16-.086-1.209-1.338-3.15-3.754l-.805-1.007c-.128-.141-.203-.316-.203-.504,0-.034,.003-.068,.008-.103v.004c.032-.232,.154-.438,.335-.604v.002c.215-.244,.577-.403,.986-.403,.156,0,.306,.023,.441,.065l-.008-.002c.012,.009,.691,.184,2.038,.523,2.32,.574,3.701,.921,4.144,1.041,.306,.067,.573,.158,.818,.275l-.014-.006c.244,.146,.4,.372,.4,.625,0,.062-.009,.121-.027,.179v-.005l.003-.002ZM12.165,9.909c.057,.891-.25,1.423-.921,1.597-.662,.148-1.313-.162-1.952-.929L2.819,2.753c-.02-.06-.031-.127-.031-.198,0-.244,.137-.462,.356-.613h.001c1.003-.562,2.199-.973,3.498-1.
104168l.056-.007c.94-.276,2.029-.435,3.167-.435,.237,0,.472,.007,.704,.021h-.031c.409,.053,.734,.284,.838,.583v.006c.035,.156,.161,1.489,.377,3.999,.217,2.509,.354,4.166,.412,4.97v-.002Zm11.333,1.414c.006,.034,.01,.073,.01,.113,0,.273-.179,.513-.453,.657l-.004,.002c-.171,.087-2.048,.463-5.629,1.126-.765,.131-1.285,.231-1.558,.301l.018-.025c-.09,.019-.192,.029-.298,.029-.178,0-.347-.03-.498-.084l.008,.002c-.266-.09-.482-.234-.631-.414l-.004-.005c-.16-.155-.257-.354-.257-.569s.097-.415,.26-.571l-.003,.002c.012-.009,.44-.454,1.285-1.336,1.427-1.492,2.283-2.382,2.569-2.67,.173-.193,.365-.36,.58-.508l.004-.002c.165-.083,.367-.132,.585-.132,.194,0,.377,.039,.535,.109l-.005-.002c.867,.456,1.575,1.041,2.089,1.722l.018,.025c.64,.615,1.119,1.35,1.377,2.151l.01,.039-.006,.038Z"/></svg><span class="screen-reader-text">Check us out on Yelp</span></a></span><span><a href="https://nextdoor.com/pages/showtime-express-plumbing-winder-ga/" target="_blank" title="Check us out on Nextdoor"><svg xmlns="http://www.w3.org/2000/svg" width="29.899" height="24" viewBox="0 0 29.899 24"><path d="M.075,.816C.075,.405,.408,.072,.819,.072H6.773c.411,0,.744,.333,.744,.744V3.793c0,.822,.666,1.488,1.488,1.488h.23C11.212,2.152,14.703,.072,18.681,.072c6.165,0,11.164,4.998,11.164,11.164v11.908c0,.411-.333,.744-.744,.744h-5.954c-.411,0-.744-.333-.744-.744V11.235c0-2.055-1.666-3.721-3.721-3.721s-3.721,1.666-3.721,3.721v11.908c0,.411-.333,.744-.744,.744h-5.954c-.411,0-.744-.333-.744-.744V11.235h-1.488C2.74,11.235,.075,8.57,.075,5.281V.816Zm1.488,.744v3.721c0,2.466,1.999,4.465,4.465,4.465h2.259c.206,0,.404,.086,.544,.237,.141,.151,.212,.354,.198,.56-.016,.228-.024,.459-.024,.692v11.164h4.465V11.235c0-2.877,2.332-5.21,5.21-5.21s5.21,2.332,5.21,5.21v11.164h4.465V11.235c0-5.343-4.332-9.675-9.675-9.675-3.58,0-6.707,1.944-8.381,4.838-.133,.23-.379,.372-.644,.372h-.65c-1.644,0-2.977-1.333-2.977-2.977V1.56H1.563Z" fill-rule="evenodd"/></svg><span class="screen-reader-text">Check us out on Nextdoor</span></a></span><span><a href="https://www.homeadvisor.com/rated.ShowtimeExpressPlumbing.112790611.html" target="_blank" title="Check us out on HomeAdvisor"><svg xmlns="http://www.w3.org/2000/svg"  viewBox="0 0 24 24" width="35px" height="35px"><path d="M 8.9609375 2 C 8.7689375 2 8.5823125 2.0759375 8.4453125 2.2109375 L 1.0078125 9.5859375 C 0.6158125 9.9749375 0.611 10.608 1 11 C 1.389 11.392 2.0220625 11.395812 2.4140625 11.007812 L 9.0292969 4.4472656 L 14.332031 9.7753906 C 14.475031 9.9193906 14.671 10 14.875 10 L 23.03125 10 C 23.25725 10 23.368078 9.7253594 23.205078 9.5683594 L 15.529297 2.203125 C 15.393297 2.073125 15.212438 2 15.023438 2 L 8.9609375 2 z M 9.0195312 7.2714844 L 4 12.240234 L 4 15.800781 C 4 16.985781 4.9614844 17.947266 6.1464844 17.947266 L 10.71875 17.947266 L 15.507812 23.056641 C 15.684812 23.245641 16 23.119328 16 22.861328 L 16 17.947266 L 17.853516 17.947266 C 19.038516 17.947266 20 16.985781 20 15.800781 L 20 12 L 13.724609 12 L 9.0195312 7.2714844 z"/></svg><span class="screen-reader-text">Check us out on HomeAdvisor</span></a></span><span><a href="https://www.angi.com/companylist/us/ga/winder/showtime-express-plumbing-reviews-1.htm" target="_blank" title="Check us out on Angi"><svg xmlns="http://www.w3.org/2000/svg" width="17.94" height="24" viewBox="0 0 17.94 24"><path d="M17.72,21.62h-1.78c-.4,0-.81-.03-1.21,0-.44,.04-.5-.21-.56-.55-.15-.85-.25-1.72-.51-2.54-.48-1.51-1.32-2.77-2.83-3.46-.19-.09-.4-.14-.67-.23-.11,.82-.19,1.58-.32,2.34-.2,1.11-.38,2.23-.68,3.32-.54,1.92-1.77,3.16-3.81,3.39-1.68,.19-3.04-.48-4.04-1.82C.02,20.36-.07,18.44,.64,16.51c1.05-2.88,3.19-4.54,6.16-5.15,.43-.09,.61-.26,.68-.7,.43-2.83,.9-5.66,1.36-8.49,.09-.58,.19-1.16,.27-1.74,.04-.26,.16-.36,.43-.36,1.46,.01,2.92,.01,4.38,0,.33,0,.43,.15,.47,.43,.87,5.5,1.75,11.01,2.63,16.51,.23,1.44,.47,2.87,.7,4.31,.01,.07,0,.15,0,.29ZM6.76,14.87c-1.58,.27-3.13,2.1-3.19,3.66-.02,.59,.04,1.14,.45,1.61,.58,.67,1.36,.6,1.77-.19,.13-.24,.22-.51,.27-.78,.17-.93,.32-1.86,.47-2.79,.08-.49,.15-.99,.22-1.51Zm6.27-2.48c-.4-3.05-.75-6.03-1.29-9-.14,.21-.21,.42-.24,.64-.12,.87-.23,1.75-.34,2.62-.19,1.49-.4,2.97-.57,4.46-.02,.13,.07,.37,.17,.41,.71,.3,1.44,.55,2.27,.87Z"/></svg><span class="screen-reader-text">Check us out on Angi</span></a></span><span><a href="https://www.facebook.com/ShowtimeExpressPlumbing" target="_blank" title="Follow us on Facebook"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewB
104ox="0 0 24 24"><path d="M12.02,.27C5.52,.27,.23,5.56,.23,12.06s5.29,11.79,11.79,11.79,11.79-5.29,11.79-11.79S18.53,.27,12.02,.27Zm.62,21.8V12.89h2.9v-1.66h-2.9v-.65c0-1.84,.47-3.47,2.33-3.47,.62,0,1.07,.12,1.39,.27l.3-1.69c-.42-.17-1.09-.35-1.86-.35-1.02,0-2.11,.32-2.93,1.12-1.02,.97-1.39,2.51-1.39,4.19v.57h-1.69v1.66h1.69v9.08c-4.81-.74-8.5-4.9-8.5-9.91C1.98,6.52,6.49,2.02,12.02,2.02s10.04,4.5,10.04,10.04-4.17,9.69-9.42,10.01Z"/></svg><span class="screen-reader-text">Follow us on Facebook</span></a></span></span></div></div></div><nav id="site-mobile-menu" class="site-mobile-menu"><ul id="menu-mobile-menu" class="menu parent-items-6"><li class="menu-item menu-item-home menu-item-662 "><a href="https://showtimeexpressplumbing.com/"><span>Home</span></a></li>
105<li class="is-anchor-link fancy-font menu-item menu-item-type-custom menu-item-object-custom menu-item-2111 "><a href="/#save"><span>$25 Off!</span></a></li>
106<li class="plumbing-services-trigger has-modal menu-item menu-item-type-custom menu-item-object-custom menu-item-1318 "><a href="#"><span>Plumbing Services</span></a></li>
107<li class="menu-item menu-item-652 "><a href="https://showtimeexpressplumbing.com/contact/"><span>Free Estimate</span></a></li>
108<li class="menu-item menu-item-660 "><a href="https://showtimeexpressplumbing.com/plumbing-blog/"><span>Plumbing Blog</span></a></li>
109<li class="menu-item menu-item-661 "><a href="https://showtimeexpressplumbing.com/company/"><span>Company</span></a></li>
110</ul></nav></div></div><div id="collapse-break-point" aria-hidden="true"></div><div id="sidebar-break-point" aria-hidden="true"></div><!-- site-wrapper open --><div class="site-wrapper"><a href="#content" class="skip">Skip to Content</a><header class="site-header" id="site-header"><div class="site-header--bg" id="navigation"><nav class="nav-top-svp"><ul id="menu-top-nav-small-viewport" class="nav-top-svp parent-items-3"><li class="plumbing-services-trigger has-modal menu-item menu-item-type-custom menu-item-object-custom menu-item-445 "><a href="#"><span>Plumbing Services</span></a></li>
111<li class="cta-nav-button menu-item menu-item-444 "><a href="https://showtimeexpressplumbing.com/contact/"><span>Free Estimate</span></a></li>
112<li class="is-nav-reviews-link menu-item current-menu-item page_item page-item-427 current_page_item menu-item-443 "><a href="https://showtimeexpressplumbing.com/reviews/" aria-current="page"><span>Reviews</span></a></li>
113</ul></nav><div class="site-header--flex-col"><div class="site-header-logo"><a href="https://showtimeexpressplumbing.com"><span class="logo-wrapper"><img alt="Showtime Express Plumbing: Residential and Commercial Plumbing" src="https://showtimeexpressplumbing.com/wp-content/uploads/2024/09/Showtime-Logo-1.svg" width="366.9628px" height="75.9788px" ></span></a></div><!--close site-header-logo--><div class="site-header--nav-col"><nav class="nav-top-lvp"><ul id="menu-top-nav-large-viewport" class="hooked-nav-menu centered-nav-menu parent-items-5"><li class="is-anchor-link fancy-font menu-item menu-item-type-custom menu-item-object-custom menu-item-2110 "><a href="/#save"><span>$25 Off!</span></a></li>
114<li class="cta-nav-button menu-item menu-item-426 "><a href="https://showtimeexpressplumbing.com/contact/"><span>FREE ESTIMATE</span></a></li>
115<li class="menu-item menu-item-home menu-item-425 "><a href="https://showtimeexpressplumbing.com/"><span>Home</span></a></li>
116<li class="menu-item menu-item-423 "><a href="https://showtimeexpressplumbing.com/plumbing-blog/"><span>Blog</span></a></li>
117<li class="menu-item menu-item-424 "><a href="https://showtimeexpressplumbing.com/gallery/"><span>Gallery</span></a></li>
118</ul></nav><div class="site-header--primary-nav"><nav class="nav-primary"><ul id="menu-primary-menu" class="hooked-nav-menu centered-nav-menu parent-items-4"><li class="plumbing-services-trigger has-modal two-line-item menu-item menu-item-type-custom menu-item-object-custom menu-item-422 "><a href="#"><span>Plumbing <em>Services</em></span></a></li>
119<li class="two-line-item menu-item menu-item-421 "><a href="https://showtimeexpressplumbing.com/company/"><span>Company <em>&#038; Commitment</em></span></a></li>
120<li class="is-nav-reviews-link menu-item current-menu-item page_item page-item-427 current_page_item menu-item-1289 "><a href="https://showtimeexpressplumbing.com/reviews/" aria-current="page"><span>Our Reviews</span></a></li>
121<li class="two-line-item menu-item menu-item-420 "><a href="https://showtimeexpressplumbing.com/contact/"><span>Contact <em>Us 24/7</em></span></a></li>
122</ul><div class="menu-toggle-wrapper" style="z-index:100"><a href="#menu-panel" class="menu-toggle" role="button" aria-controls="menu-panel" aria-expanded="false" aria-pressed="false"><span class="screen-reader-text">
122open menu</span><span class="menu-burger" aria-hidden="true"><span aria-hidden="true"></span><span aria-hidden="true"></span><span aria-hidden="true"></span></span></a></div><div class="navigation-addons"><div class="phone-header-w-text"><a href="tel:7&#55;08&#54;&#55;&#50;5&#51;&#55;"><span class="phone-header-phone-no">(770) 867-2537</span></a></div></div></nav></div></div></div></div><span class="header-mask" aria-hidden="true"></span><span class="header-accent" aria-hidden="true"></span></header><div class="site-container"><div class="site-inner"><div class="site-inner-outer-wrap" id="content">
123	<div class="interior-hero-banner-container" role="presentation" aria-hidden="true" >
124	<span class="header-hero-border"></span>
125	<div class="header-hero">
126	<div class="hero-inner"><header class="entry-header"><div class="entry-header-inner"><div class="entry-header-layout"><h1 class="entry-title">Showtime Express Plumbing Outstanding Reviews</h1>
127<span aria-hidden="true" class="section-decoration"><span></span></span></div></div></header><span class="hero-banner-shade"></span><div class="hero-inner-img"><img width="2000" height="780" src="https://showtimeexpressplumbing.com/wp-content/uploads/2024/09/0005_Garbage-disposal-replacement-in-Winder-GA-2000x780.webp" class="attachment-hero-banner size-hero-banner wp-image-2313" alt="" decoding="async" fetchpriority="high" /></div>
128	</div><!-- / close hero-inner -->
129	</div><!-- / close site-header-hero -->
130	</div><!-- / close interior-hero-banner-container -->
131	
132	<div class="hero-form-wrapper" id="free-estimate" tabindex="0"><div class="hero-form"><div class="satisfaction-guarantee-graphic"><img decoding="async" fetchpriority="high" width="300" height="300" alt="100% Satisfaction Guarantee" src="https://showtimeexpressplumbing.com/wp-content/themes/hooked-showtime-plumbing/assets/images/Satisfaction-Guaranteed.webp" /></div><div class="hero-form-text-content"><p class="hero-form-title balance-text">Free Quote!</p><p class="balance-text">Get your FREE, <span class="no-wrap">no-obligation</span> quote. For the fastest reply, call us at <strong><a class="text-nowrap " href="tel:77&#48;&#56;6&#55;253&#55;">(770) 867-2537</a></strong>.</p></div><div class="form--hero-container"><div class="wpforms-container wpforms-render-modern" id="wpforms-403"><form id="wpforms-form-403" class="wpforms-validate wpforms-form wpforms-ajax-form" data-formid="403" method="post" enctype="multipart/form-data" action="/reviews/" data-token="d4be29b68d41e339b8da2f95fb6ff949" data-token-time="1790781467"><noscript class="wpforms-error-noscript">Please enable JavaScript in your browser to complete this form.</noscript><div id="wpforms-error-noscript" style="display: none;">Please enable JavaScript in your browser to complete this form.</div><div class="wpforms-field-container"><div id="wpforms-403-field_1-container" class="wpforms-field wpforms-field-name hero-name" data-field-type="name" data-field-id="1"><label class="wpforms-field-label wpforms-label-hide" for="wpforms-403-field_1" aria-hidden="false">Name <span class="wpforms-required-label" aria-hidden="true">*</span></label><input type="text" id="wpforms-403-field_1" class="wpforms-field-large wpforms-field-required" name="wpforms[fields][1]" placeholder="First &amp; Last Name *" aria-errormessage="wpforms-403-field_1-error" required></div><div id="wpforms-403-field_2-container" class="wpforms-field wpforms-field-email hero-email" data-field-type="email" data-field-id="2"><label class="wpforms-field-label wpforms-label-hide" for="wpforms-403-field_2" aria-hidden="false">Email <span class="wpforms-required-label" aria-hidden="true">*</span></label><input type="email" id="wpforms-403-field_2" class="wpforms-field-large wpforms-field-required" name="wpforms[fields][2]" placeholder="Email *" spellcheck="false" aria-errormessage="wpforms-403-field_2-error" required></div><div id="wpforms-403-field_3-container" class="wpforms-field wpforms-field-phone hero-phone" data-field-type="phone" data-field-id="3"><label class="wpforms-field-label wpforms-label-hide" for="wpforms-403-field_3" aria-hidden="false">Phone <span class="wpforms-required-label" aria-hidden="true">*</span></label><input type="tel" id="wpforms-403-field_3" class="wpforms-field-large wpforms-field-required wpforms-masked-input" data-inputmask="&#039;mask&#039;: &#039;(999) 999-9999&#039;" data-rule-us-phone-field="true" data-inputmask-inputmode="tel" name="wpforms[fields][3]" placeholder="Phone *" aria-label="Phone" aria-errormessage="wpforms-403-field_3-error" required></div><div id="wpforms-403-field_15-container" class="wpforms-field wpforms-field-textarea hero-message" data-field-type="textarea" data-field-id="15"><label class="wpforms-field-label wpforms-label-hide" for="wpforms-403-field_15" aria-hidden="false">Message</label><textarea id="wpforms-403-field_15" class="wpforms-field-large" name="wpforms[fields][15]" placeholder="Message" aria-errormessage="wpforms-403-field_15-error" ></textarea></div><div id="wpforms-403-field_5-container" class="wpforms-field wpforms-field-hidden" data-field-type="hidden" data-field-id="5"><input type="hidden" id="wpforms-403-field_5" name="wpforms[fields][5]" value="https://showtimeexpressplumbing.com/reviews/"></div></div><!-- .wpforms-field-container --><div class="wpforms-recaptcha-container wpforms-is-recaptcha wpforms-is-recaptcha-type-v3" ><input type="hidden" name="wpforms[recaptcha]" value=""></div><div class="wpforms-submit-container" ><input type="hidden" name="wpforms[id]" value="403"><input type="hidden" name="wpforms[time_token]" value="1790781467.ca31ce0169c24e615ebd15bce85e3f2eb7f7c07607dcd2bd0e31970006badef7"><input type="hidden" name="page_title" value="Showtime Express Plumbing Outstanding Reviews"><input type="hidden" name="page_url" value="https://showtimeexpressplumbing.com/reviews/"><input type="hidden" name="url_referer" value=""><input type="hidden" name="page_id" value="427"><input type="hidden" name="wpforms[post_id]" value="427"><button type="submit" name="wpforms[submit]" id="wpforms-submit-403" class="wpforms-submit button hero-form-submit" data-alt-text="Sending..." data-submit-text="Send" aria-l
132ive="assertive" value="wpforms-submit">Send</button><img src="https://showtimeexpressplumbing.com/wp-content/plugins/wpforms/assets/images/submit-spin.svg" class="wpforms-submit-spinner" style="display: none;" width="26" height="26" alt="Loading"></div></form></div>  <!-- .wpforms-container --></div></div></div><div class="content-sidebar-wrap"><span class="content-decoration" aria-hidden="true"><span></span></span><span class="content-decoration-2" aria-hidden="true"><span></span></span><main class="content"><article class="post-427 page type-page status-publish has-post-thumbnail entry" aria-label="Showtime Express Plumbing Outstanding Reviews"><div class="entry-content">
133<p class="has-text-align-center balance-text text-bigger wp-block-paragraph">The following are just some of the fantastic reviews from our numerous satisfied plumbing customers across various platforms, including Google, Thumbtack, Nextdoor, and Yelp. We welcome you to our family and are happy to be your one-call for all your plumbing needs!</p>
134
135
136
137<div style="height:100px" aria-hidden="true" class="wp-block-spacer responsive-spacer"></div>
138
139
140<div class="masonry-css-grid-wrapper"><div class="masonry-css-grid testimonial-cols-3"><div class="masonry-css-grid-item rbqs"><div class="masonry-css-grid-item-inner"><a class="review-source" target="_blank" href="https://www.yelp.com/biz/showtime-express-plumbing-winder"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 24 24"><path fill="#DF0906" d="M12.079,17.579v1.662c-.012,2.548-.046,3.878-.102,3.99-.145,.28-.472,.482-.867,.523h-.005c-.038,0-.084,0-.131,0-1.08,0-2.105-.184-3.022-.512l.044,.014c-1.08-.237-2.013-.639-2.79-1.17l.006,.005c-.145-.128-.247-.288-.289-.464v-.006c-.003-.015-.004-.032-.004-.049,0-.105,.026-.204,.073-.296l-.003,.006c.178-.233,.371-.434,.587-.619l-.004,.004c.341-.323,1.374-1.265,3.099-2.827,.012,0,.353-.305,1.024-.916,.166-.161,.4-.276,.669-.32h.008c.097-.018,.209-.027,.322-.027,.189,0,.37,.026,.536,.075l-.01-.003c.262,.08,.48,.211,.638,.377l.003,.003c.137,.141,.219,.318,.219,.51,0,.014,0,.028-.001,.042v-.002h.001Zm-2.552-3.287v.029c0,.422-.374,.778-.883,.885l-.009,.002-2.055,.51c-3.139,.768-4.806,1.152-5,1.152-.406-.018-.75-.202-.919-.465l-.003-.005c-.159-.288-.262-.623-.29-.973v-.009c-.041-.307-.064-.664-.064-1.025,0-.407,.029-.809,.087-1.204l-.006,.049c.027-.596,.212-1.153,.526-1.655l-.014,.025c.171-.251,.51-.42,.901-.42,.02,0,.041,0,.061,0h-.003c1.419,.348,2.564,.69,3.678,1.076l-.219-.067,1.969,.615,1.438,.445c.261,.077,.471,.217,.605,.395l.003,.004c.124,.163,.197,.36,.197,.569,0,.022-.001,.046-.003,.068v-.005Zm14.147,3.888c-.319,.821-.858,1.528-1.571,2.11l.004-.003c-.603,.684-1.379,1.242-2.288,1.649l-.033,.014c-.129,.048-.281,.076-.443,.076-.241,0-.463-.064-.638-.169h.003c-.16-.086-1.209-1.338-3.15-3.754l-.805-1.007c-.128-.141-.203-.316-.203-.504,0-.034,.003-.068,.008-.103v.004c.032-.232,.154-.438,.335-.604v.002c.215-.244,.577-.403,.986-.403,.156,0,.306,.023,.441,.065l-.008-.002c.012,.009,.691,.184,2.038,.523,2.32,.574,3.701,.921,4.144,1.041,.306,.067,.573,.158,.818,.275l-.014-.006c.244,.146,.4,.372,.4,.625,0,.062-.009,.121-.027,.179v-.005l.003-.002ZM12.165,9.909c.057,.891-.25,1.423-.921,1.597-.662,.148-1.313-.162-1.952-.929L2.819,2.753c-.02-.06-.031-.127-.031-.198,0-.244,.137-.462,.356-.613h.001c1.003-.562,2.199-.973,3.498-1.168l.056-.007c.94-.276,2.029-.435,3.167-.435,.237,0,.472,.007,.704,.021h-.031c.409,.053,.734,.284,.838,.583v.006c.035,.156,.161,1.489,.377,3.999,.217,2.509,.354,4.166,.412,4.97v-.002Zm11.333,1.414c.006,.034,.01,.073,.01,.113,0,.273-.179,.513-.453,.657l-.004,.002c-.171,.087-2.048,.463-5.629,1.126-.765,.131-1.285,.231-1.558,.301l.018-.025c-.09,.019-.192,.029-.298,.029-.178,0-.347-.03-.498-.084l.008,.002c-.266-.09-.482-.234-.631-.414l-.004-.005c-.16-.155-.257-.354-.257-.569s.097-.415,.26-.571l-.003,.002c.012-.009,.44-.454,1.285-1.336,1.427-1.492,2.283-2.382,2.569-2.67,.173-.193,.365-.36,.58-.508l.004-.002c.165-.083,.367-.132,.585-.132,.194,0,.377,.039,.535,.109l-.005-.002c.867,.456,1.575,1.041,2.089,1.722l.018,.025c.64,.615,1.119,1.35,1.377,2.151l.01,.039-.006,.038Z"/></svg></a><!-- wp:quote {"className":""} -->
141<blockquote class="wp-block-quote"><!-- wp:paragraph -->
142<p>Can&#8217;t say enough nice things about Chris and Glenda. We had a water line break outside our house. The local water authority read the meter on a Thursday and turned off the water. All I could think of was spending a weekend without water. When I first spoke to Glenda she was very helpful and understanding. She got Chris out to look at the issue as quickly as possible. When he arrived he quickly identified the issue and began trying to schedule the repair with his sub who could do the trench work. He kept me informed about scheduling and ended up arriving as planned on Saturday morning. Within an hour the work was done and we had water again.</p>
143<!-- /wp:paragraph -->
144
145<!-- wp:paragraph -->
146<p>Chris then made us aware we could request a rebate from the water authority and gladly provided the paperwork showing that the break was outside the house and that we could not have know about the leak. Now we&#8217;re just waiting on the County Water Authority to process the request.
147</p>
148<!-- /wp:paragraph -->
149
150<!-- wp:paragraph -->
151<p>I&#8217;m happy to recommend Showtime Express and will be calling them the next time I have a need for plumbing.</p>
152<!-- /wp:paragraph --><cite>David L.</cite></blockquote>
153<!-- /wp:quote --></div></div><div class="masonry-css-grid-item rbqs"><div class="masonry-css-grid-item-inner"><a class="review-source" target="_blank" href="https://www.thumbtack.com/ga/winder/water-heater-repair/showtime-express-plumbing/service/416753471147540482"><svg viewBox="0 0 69.36 69.39" xmlns="http://www.w3.org/2000/svg" width="40px" height="40px"><path d="m34.75 2.5c17.7.04 32.29 14.73 32.11 32.32-.19 17.71-14.6 32.07-32.17 32.06-17.7 0-32.21-14.54-32.18-32.25.03-17.74 14.52-32.18 32.25-32.14z" fill="none" stroke="#009FD9" stroke-miterlimit="10" stroke-width="4"/><path d="m19.09 26.6v-6.88h31.12v6.88z" fill="#009FD9"/><path d="m38.07 29.38c0 7.28.26 13.95-.13 20.58-.15 2.51-1.79 4.93-2.95 7.92-2.32-3.27-3.84-6.14-3.96-9.48-.17-4.67-.22-9.36-.07-14.03.03-1 .95-2.33 1.84-2.87 1.58-.95 3.45-1.42 5.26-2.12z" fill="#009FD9" /></svg></a><!-- wp:quote {"className":""} -->
154<blockquote class="wp-block-quote"><!-- wp:paragraph -->
155<p>Showtime Express did a great job. They were very responsive and came out to repair my leak quick. Thoroughly diagnosed the issue and repaired the small leak in my living room ceiling. I would use this service again.</p>
156<!-- /wp:paragraph --><cite>Ralbert F.</cite></blockquote>
157<!-- /wp:quote --></div></div><div class="masonry-css-grid-item rbqs"><div class="masonry-css-grid-item-inner"><a class="review-source" target="_blank" href="https://www.thumbtack.com/ga/winder/water-heater-repair/showtime-express-plumbing/service/416753471147540482"><svg viewBox="0 0 69.36 69.39" xmlns="http://www.w3.org/2000/svg" width="40px" height="40px"><path d="m34.75 2.5c17.7.04 32.29 14.73 32.11 32.32-.19 17.71-14.6 32.07-32.17 32.06-17.7 0-32.21-14.54-32.18-32.25.03-17.74 14.52-32.18 32.25-32.14z" fill="none" stroke="#009FD9" stroke-miterlimit="10" stroke-width="4"/><path d="m19.09 26.6v-6.88h31.12v6.88z" fill="#009FD9"/><path d="m38.07 29.38c0 7.28.26 13.95-.13 20.58-.15 2.51-1.79 4.93-2.95 7.92-2.32-3.27-3.84-6.14-3.96-9.48-.17-4.67-.22-9.36-.07-14.03.03-1 .95-2.33 1.84-2.87 1.58-.95 3.45-1.42 5.26-2.12z" fill="#009FD9" /></svg></a><!-- wp:quote {"className":""} -->
158<blockquote class="wp-block-quote"><!-- wp:paragraph -->
159<p>I had no issue with response time it was very fast. They were able to figure out the problem quickly and start the repair process right away. They were so good unfortunately had another leak but I knew who to call! Definitely the best choice I made.</p>
160<!-- /wp:paragraph --><cite>Anisha C.</cite></blockquote>
161<!-- /wp:quote --></div></div><div class="masonry-css-grid-item rbqs"><div class="masonry-css-grid-item-inner"><a class="review-source" target="_blank" href="https://www.thumbtack.com/ga/winder/water-heater-repair/showtime-express-plumbing/service/416753471147540482"><svg viewBox="0 0 69.36 69.39" xmlns="http://www.w3.org/2000/svg" width="40px" height="40px"><path d="m34.75 2.5c17.7.04 32.29 14.73 32.11 32.32-.19 17.71-14.6 32.07-32.17 32.06-17.7 0-32.21-14.54-32.18-32.25.03-17.74 14.52-32.18 32.25-32.14z" fill="none" stroke="#009FD9" stroke-miterlimit="10" stroke-width="4"/><path d="m19.09 26.6v-6.88h31.12v6.88z" fill="#009FD9"/><path d="m38.07 29.38c0 7.28.26 13.95-.13 20.58-.15 2.51-1.79 4.93-2.95 7.92-2.32-3.27-3.84-6.14-3.96-9.48-.17-4.67-.22-9.36-.07-14.03.03-1 .95-2.33 1.84-2.87 1.58-.95 3.45-1.42 5.26-2.12z" fill="#009FD9" /></svg></a><!-- wp:quote {"className":""} -->
162<blockquote class="wp-block-quote"><!-- wp:paragraph -->
163<p>Showtime was great responding to what I needed to be done in my home. After coming out to check the job, they were in my home the next day getting it done. I highly recommend them for addressing your plumbing needs.</p>
164<!-- /wp:paragraph --><cite>Eva D.</cite></blockquote>
165<!-- /wp:quote --></div></div><div class="masonry-css-grid-item rbqs"><div class="masonry-css-grid-item-inner"><a class="review-source" target="_blank" href="https://www.thumbtack.com/ga/winder/water-heater-repair/showtime-express-plumbing/service/416753471147540482"><svg viewBox="0 0 69.36 69.39" xmlns="http://www.w3.org/2000/svg" width="40px" height="40px"><path d="m34.75 2.5c17.7.04 32.29 14.73 32.11 32.32-.19 17.71-14.6 32.07-32.17 32.06-17.7 0-32.21-14.54-32.18-32.25.03-17.74 14.52-32.18 32.25-32.14z" fill="none" stroke="#009FD9" stroke-miterlimit="10" stroke-width="4"/><path d="m19.09 26.6v-6.88h31.12v6.88z" fill="#009FD9"/><path d="m38.07 29.38c0 7.28.26 13.95-.13 20.58-.15 2.51-1.79 4.93-2.95 7.92-2.32-3.27-3.84-6.14-3.96-9.48-.17-4.67-.22-9.36-.07-14.03.03-1 .95-2.33 1.84-2.87 1.58-.95 3.45-1.42 5.26-2.12z" fill="#009FD9" /></svg></a><!-- wp:quote {"className":""} -->
166<blockquote class="wp-block-quote"><!-- wp:paragraph --><p>I want to thank John from Showtime Express Plumbing. He came here and listened while I explained to him what I had going on. He then looked at the problem took some pictures to show me where the leaks were and tell how he can fixed it.
167</p><!-- /wp:paragraph -->
168<cite>Lornette J.</cite></blockquote>
169<!-- /wp:quote --></div></div><div class="masonry-css-grid-item rbqs"><div class="masonry-css-grid-item-inner"><a class="review-source" target="_blank" href="https://www.thumbtack.com/ga/winder/water-heater-repair/showtime-express-plumbing/service/416753471147540482"><svg viewBox="0 0 69.36 69.39" xmlns="http://www.w3.org/2000/svg" width="40px" height="40px"><path d="m34.75 2.5c17.7.04 32.29 14.73 32.11 32.32-.19 17.71-14.6 32.07-32.17 32.06-17.7 0-32.21-14.54-32.18-32.25.03-17.74 14.52-32.18 32.25-32.14z" fill="none" stroke="#009FD9" stroke-miterlimit="10" stroke-width="4"/><path d="m19.09 26.6v-6.88h31.12v6.88z" fill="#009FD9"/><path d="m38.07 29.38c0 7.28.26 13.95-.13 20.58-.15 2.51-1.79 4.93-2.95 7.92-2.32-3.27-3.84-6.14-3.96-9.48-.17-4.67-.22-9.36-.07-14.03.03-1 .95-2.33 1.84-2.87 1.58-.95 3.45-1.42 5.26-2.12z" fill="#009FD9" /></svg></a><!-- wp:quote {"className":""} -->
170<blockquote class="wp-block-quote"><!-- wp:paragraph --><p>They came in and was able to switch out my kitchen faucet the same day. Very friendly staff, and it didn&#8217;t take them long at all. I would recommend and use them again.
171</p><!-- /wp:paragraph -->
172<cite>Kiana L.</cite></blockquote>
173<!-- /wp:quote --></div></div><div class="masonry-css-grid-item rbqs"><div class="masonry-css-grid-item-inner"><a class="review-source" target="_blank" href="https://www.thumbtack.com/ga/winder/water-heater-repair/showtime-express-plumbing/service/416753471147540482"><svg viewBox="0 0 69.36 69.39" xmlns="http://www.w3.org/2000/svg" width="40px" height="40px"><path d="m34.75 2.5c17.7.04 32.29 14.73 32.11 32.32-.19 17.71-14.6 32.07-32.17 32.06-17.7 0-32.21-14.54-32.18-32.25.03-17.74 14.52-32.18 32.25-32.14z" fill="none" stroke="#009FD9" stroke-miterlimit="10" stroke-width="4"/><path d="m19.09 26.6v-6.88h31.12v6.88z" fill="#009FD9"/><path d="m38.07 29.38c0 7.28.26 13.95-.13 20.58-.15 2.51-1.79 4.93-2.95 7.92-2.32-3.27-3.84-6.14-3.96-9.48-.17-4.67-.22-9.36-.07-14.03.03-1 .95-2.33 1.84-2.87 1.58-.95 3.45-1.42 5.26-2.12z" fill="#009FD9" /></svg></a><!-- wp:quote {"className":""} -->
174<blockquote class="wp-block-quote"><!-- wp:paragraph --><p>Showtime did an awesome job replacing two shower valves in my house that were leaking. Very reasonably priced and extremely professional.
175</p><!-- /wp:paragraph -->
176<cite>Michael R.</cite></blockquote>
177<!-- /wp:quote --></div></div><div class="masonry-css-grid-item rbqs"><div class="masonry-css-grid-item-inner"><a class="review-source" target="_blank" href="https://www.thumbtack.com/ga/winder/water-heater-repair/showtime-express-plumbing/service/416753471147540482"><svg viewBox="0 0 69.36 69.39" xmlns="http://www.w3.org/2000/svg" width="40px" height="40px"><path d="m34.75 2.5c17.7.04 32.29 14.73 32.11 32.32-.19 17.71-14.6 32.07-32.17 32.06-17.7 0-32.21-14.54-32.18-32.25.03-17.74 14.52-32.18 32.25-32.14z" fill="none" stroke="#009FD9" stroke-miterlimit="10" stroke-width="4"/><path d="m19.09 26.6v-6.88h31.12v6.88z" fill="#009FD9"/><path d="m38.07 29.38c0 7.28.26 13.95-.13 20.58-.15 2.51-1.79 4.93-2.95 7.92-2.32-3.27-3.84-6.14-3.96-9.48-.17-4.67-.22-9.36-.07-14.03.03-1 .95-2.33 1.84-2.87 1.58-.95 3.45-1.42 5.26-2.12z" fill="#009FD9" /></svg></a><!-- wp:quote {"className":""} -->
178<blockquote class="wp-block-quote"><!-- wp:paragraph --><p>Josh replaced my broken water heater in a few hours from initially meeting him and making his estimate. His price was about 40% less than another Thumbtack pro that gave an estimate.
179</p><!-- /wp:paragraph -->
180<cite>David A.</cite></blockquote>
181<!-- /wp:quote --></div></div><div class="masonry-css-grid-item rbqs"><div class="masonry-css-grid-item-inner"><a class="review-source" target="_blank" href="https://www.yelp.com/biz/showtime-express-plumbing-winder"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewB
181ox="0 0 24 24"><path fill="#DF0906" d="M12.079,17.579v1.662c-.012,2.548-.046,3.878-.102,3.99-.145,.28-.472,.482-.867,.523h-.005c-.038,0-.084,0-.131,0-1.08,0-2.105-.184-3.022-.512l.044,.014c-1.08-.237-2.013-.639-2.79-1.17l.006,.005c-.145-.128-.247-.288-.289-.464v-.006c-.003-.015-.004-.032-.004-.049,0-.105,.026-.204,.073-.296l-.003,.006c.178-.233,.371-.434,.587-.619l-.004,.004c.341-.323,1.374-1.265,3.099-2.827,.012,0,.353-.305,1.024-.916,.166-.161,.4-.276,.669-.32h.008c.097-.018,.209-.027,.322-.027,.189,0,.37,.026,.536,.075l-.01-.003c.262,.08,.48,.211,.638,.377l.003,.003c.137,.141,.219,.318,.219,.51,0,.014,0,.028-.001,.042v-.002h.001Zm-2.552-3.287v.029c0,.422-.374,.778-.883,.885l-.009,.002-2.055,.51c-3.139,.768-4.806,1.152-5,1.152-.406-.018-.75-.202-.919-.465l-.003-.005c-.159-.288-.262-.623-.29-.973v-.009c-.041-.307-.064-.664-.064-1.025,0-.407,.029-.809,.087-1.204l-.006,.049c.027-.596,.212-1.153,.526-1.655l-.014,.025c.171-.251,.51-.42,.901-.42,.02,0,.041,0,.061,0h-.003c1.419,.348,2.564,.69,3.678,1.076l-.219-.067,1.969,.615,1.438,.445c.261,.077,.471,.217,.605,.395l.003,.004c.124,.163,.197,.36,.197,.569,0,.022-.001,.046-.003,.068v-.005Zm14.147,3.888c-.319,.821-.858,1.528-1.571,2.11l.004-.003c-.603,.684-1.379,1.242-2.288,1.649l-.033,.014c-.129,.048-.281,.076-.443,.076-.241,0-.463-.064-.638-.169h.003c-.16-.086-1.209-1.338-3.15-3.754l-.805-1.007c-.128-.141-.203-.316-.203-.504,0-.034,.003-.068,.008-.103v.004c.032-.232,.154-.438,.335-.604v.002c.215-.244,.577-.403,.986-.403,.156,0,.306,.023,.441,.065l-.008-.002c.012,.009,.691,.184,2.038,.523,2.32,.574,3.701,.921,4.144,1.041,.306,.067,.573,.158,.818,.275l-.014-.006c.244,.146,.4,.372,.4,.625,0,.062-.009,.121-.027,.179v-.005l.003-.002ZM12.165,9.909c.057,.891-.25,1.423-.921,1.597-.662,.148-1.313-.162-1.952-.929L2.819,2.753c-.02-.06-.031-.127-.031-.198,0-.244,.137-.462,.356-.613h.001c1.003-.562,2.199-.973,3.498-1.168l.056-.007c.94-.276,2.029-.435,3.167-.435,.237,0,.472,.007,.704,.021h-.031c.409,.053,.734,.284,.838,.583v.006c.035,.156,.161,1.489,.377,3.999,.217,2.509,.354,4.166,.412,4.97v-.002Zm11.333,1.414c.006,.034,.01,.073,.01,.113,0,.273-.179,.513-.453,.657l-.004,.002c-.171,.087-2.048,.463-5.629,1.126-.765,.131-1.285,.231-1.558,.301l.018-.025c-.09,.019-.192,.029-.298,.029-.178,0-.347-.03-.498-.084l.008,.002c-.266-.09-.482-.234-.631-.414l-.004-.005c-.16-.155-.257-.354-.257-.569s.097-.415,.26-.571l-.003,.002c.012-.009,.44-.454,1.285-1.336,1.427-1.492,2.283-2.382,2.569-2.67,.173-.193,.365-.36,.58-.508l.004-.002c.165-.083,.367-.132,.585-.132,.194,0,.377,.039,.535,.109l-.005-.002c.867,.456,1.575,1.041,2.089,1.722l.018,.025c.64,.615,1.119,1.35,1.377,2.151l.01,.039-.006,.038Z"/></svg></a><!-- wp:quote {"className":""} -->
182<blockquote class="wp-block-quote"><!-- wp:paragraph --><p>Chris and Glenda are amazing. Glenda was extremely nice and helpful. She explained some issues that they&#8217;ve seen recently, asked me relevant questions, and explained what might be going on with the water bill in my home. She definitely assuaged my fears and made me feel like I was in good hands. My experience only got better once Chris arrived. He showed up early, was quick and efficient. He performed a free inspection and offered to have his wife, Glenda, email me a follow up to send to my water company. He didn&#8217;t try to upsell me and took time to answer my many (many) questions. He checked out everything I had concerns about and offered thoughtful, reasonable solutions. He showed me my meter and he explained how I can read it. I could tell that he was an experienced and confident plumber. Also, these two are super funny and sweet. Always a plus! I will definitely be working with them again.
183</p><!-- /wp:paragraph -->
184<cite>Ashley W.</cite></blockquote>
185<!-- /wp:quote --></div></div><div class="masonry-css-grid-item rbqs"><div class="masonry-css-grid-item-inner"><a class="review-source" target="_blank" href="https://www.yelp.com/biz/showtime-express-plumbing-winder"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 24 24"><path fill="#DF0906" d="M12.079,17.579v1.662c-.012,2.548-.046,3.878-.102,3.99-.145,.28-.472,.482-.867,.523h-.005c-.038,0-.084,0-.131,0-1.08,0-2.105-.184-3.022-.512l.044,.014c-1.08-.237-2.013-.639-2.79-1.17l.006,.005c-.145-.128-.247-.288-.289-.464v-.006c-.003-.015-.004-.032-.004-.049,0-.105,.026-.204,.073-.296l-.003,.006c.178-.233,.371-.434,.587-.619l-.004,.004c.341-.323,1.374-1.265,3.099-2.827,.012,0,.353-.305,1.024-.916,.166-.161,.4-.276,.669-.32h.008c.097-.018,.209-.027,.322-.027,.189,0,.37,.026,.536,.075l-.01-.003c.262,.08,.48,.211,.638,.377l.003,.003c.137,.141,.219,.318,.219,.51,0,.014,0,.028-.001,.042v-.002h.001Zm-2.552-3.287v.029c0,.422-.374,.778-.883,.885l-.009,.002-2.055,.51c-3.139,.768-4.806,1.152-5,1.152-.406-.018-.75-.202-.919-.465l-.003-.005c-.159-.288-.262-.623-.29-.973v-.009c-.041-.307-.064-.664-.064-1.025,0-.407,.029-.809,.087-1.204l-.006,.049c.027-.596,.212-1.153,.526-1.655l-.014,.025c.171-.251,.51-.42,.901-.42,.02,0,.041,0,.061,0h-.003c1.419,.348,2.564,.69,3.678,1.076l-.219-.067,1.969,.615,1.438,.445c.261,.077,.471,.217,.605,.395l.003,.004c.124,.163,.197,.36,.197,.569,0,.022-.001,.046-.003,.068v-.005Zm14.147,3.888c-.319,.821-.858,1.528-1.571,2.11l.004-.003c-.603,.684-1.379,1.242-2.288,1.649l-.033,.014c-.129,.048-.281,.076-.443,.076-.241,0-.463-.064-.638-.169h.003c-.16-.086-1.209-1.338-3.15-3.754l-.805-1.007c-.128-.141-.203-.316-.203-.504,0-.034,.003-.068,.008-.103v.004c.032-.232,.154-.438,.335-.604v.002c.215-.244,.577-.403,.986-.403,.156,0,.306,.023,.441,.065l-.008-.002c.012,.009,.691,.184,2.038,.523,2.32,.574,3.701,.921,4.144,1.041,.306,.067,.573,.158,.818,.275l-.014-.006c.244,.146,.4,.372,.4,.625,0,.062-.009,.121-.027,.179v-.005l.003-.002ZM12.165,9.909c.057,.891-.25,1.423-.921,1.597-.662,.148-1.313-.162-1.952-.929L2.819,2.753c-.02-.06-.031-.127-.031-.198,0-.244,.137-.462,.356-.613h.001c1.003-.562,2.199-.973,3.498-1.
185168l.056-.007c.94-.276,2.029-.435,3.167-.435,.237,0,.472,.007,.704,.021h-.031c.409,.053,.734,.284,.838,.583v.006c.035,.156,.161,1.489,.377,3.999,.217,2.509,.354,4.166,.412,4.97v-.002Zm11.333,1.414c.006,.034,.01,.073,.01,.113,0,.273-.179,.513-.453,.657l-.004,.002c-.171,.087-2.048,.463-5.629,1.126-.765,.131-1.285,.231-1.558,.301l.018-.025c-.09,.019-.192,.029-.298,.029-.178,0-.347-.03-.498-.084l.008,.002c-.266-.09-.482-.234-.631-.414l-.004-.005c-.16-.155-.257-.354-.257-.569s.097-.415,.26-.571l-.003,.002c.012-.009,.44-.454,1.285-1.336,1.427-1.492,2.283-2.382,2.569-2.67,.173-.193,.365-.36,.58-.508l.004-.002c.165-.083,.367-.132,.585-.132,.194,0,.377,.039,.535,.109l-.005-.002c.867,.456,1.575,1.041,2.089,1.722l.018,.025c.64,.615,1.119,1.35,1.377,2.151l.01,.039-.006,.038Z"/></svg></a><!-- wp:quote {"className":""} -->
186<blockquote class="wp-block-quote"><!-- wp:paragraph --><p>Fast response. Chris came out same day and diagnosed my problem. He let me know what the options were to repair or replace my water heater without any added pressure. I opted to replace as my unit was way past it&#8217;s prime. He got the installation done quick and efficiently. Very professional, great service.
187</p><!-- /wp:paragraph -->
188<cite>Kimberly H.</cite></blockquote>
189<!-- /wp:quote --></div></div><div class="masonry-css-grid-item rbqs"><div class="masonry-css-grid-item-inner"><a class="review-source" target="_blank" href="https://www.yelp.com/biz/showtime-express-plumbing-winder"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 24 24"><path fill="#DF0906" d="M12.079,17.579v1.662c-.012,2.548-.046,3.878-.102,3.99-.145,.28-.472,.482-.867,.523h-.005c-.038,0-.084,0-.131,0-1.08,0-2.105-.184-3.022-.512l.044,.014c-1.08-.237-2.013-.639-2.79-1.17l.006,.005c-.145-.128-.247-.288-.289-.464v-.006c-.003-.015-.004-.032-.004-.049,0-.105,.026-.204,.073-.296l-.003,.006c.178-.233,.371-.434,.587-.619l-.004,.004c.341-.323,1.374-1.265,3.099-2.827,.012,0,.353-.305,1.024-.916,.166-.161,.4-.276,.669-.32h.008c.097-.018,.209-.027,.322-.027,.189,0,.37,.026,.536,.075l-.01-.003c.262,.08,.48,.211,.638,.377l.003,.003c.137,.141,.219,.318,.219,.51,0,.014,0,.028-.001,.042v-.002h.001Zm-2.552-3.287v.029c0,.422-.374,.778-.883,.885l-.009,.002-2.055,.51c-3.139,.768-4.806,1.152-5,1.152-.406-.018-.75-.202-.919-.465l-.003-.005c-.159-.288-.262-.623-.29-.973v-.009c-.041-.307-.064-.664-.064-1.025,0-.407,.029-.809,.087-1.204l-.006,.049c.027-.596,.212-1.153,.526-1.655l-.014,.025c.171-.251,.51-.42,.901-.42,.02,0,.041,0,.061,0h-.003c1.419,.348,2.564,.69,3.678,1.076l-.219-.067,1.969,.615,1.438,.445c.261,.077,.471,.217,.605,.395l.003,.004c.124,.163,.197,.36,.197,.569,0,.022-.001,.046-.003,.068v-.005Zm14.147,3.888c-.319,.821-.858,1.528-1.571,2.11l.004-.003c-.603,.684-1.379,1.242-2.288,1.649l-.033,.014c-.129,.048-.281,.076-.443,.076-.241,0-.463-.064-.638-.169h.003c-.16-.086-1.209-1.338-3.15-3.754l-.805-1.007c-.128-.141-.203-.316-.203-.504,0-.034,.003-.068,.008-.103v.004c.032-.232,.154-.438,.335-.604v.002c.215-.244,.577-.403,.986-.403,.156,0,.306,.023,.441,.065l-.008-.002c.012,.009,.691,.184,2.038,.523,2.32,.574,3.701,.921,4.144,1.041,.306,.067,.573,.158,.818,.275l-.014-.006c.244,.146,.4,.372,.4,.625,0,.062-.009,.121-.027,.179v-.005l.003-.002ZM12.165,9.909c.057,.891-.25,1.423-.921,1.597-.662,.148-1.313-.162-1.952-.929L2.819,2.753c-.02-.06-.031-.127-.031-.198,0-.244,.137-.462,.356-.613h.001c1.003-.562,2.199-.973,3.498-1.168l.056-.007c.94-.276,2.029-.435,3.167-.435,.237,0,.472,.007,.704,.021h-.031c.409,.053,.734,.284,.838,.583v.006c.035,.156,.161,1.489,.377,3.999,.217,2.509,.354,4.166,.412,4.97v-.002Zm11.333,1.414c.006,.034,.01,.073,.01,.113,0,.273-.179,.513-.453,.657l-.004,.002c-.171,.087-2.048,.463-5.629,1.126-.765,.131-1.285,.231-1.558,.301l.018-.025c-.09,.019-.192,.029-.298,.029-.178,0-.347-.03-.498-.084l.008,.002c-.266-.09-.482-.234-.631-.414l-.004-.005c-.16-.155-.257-.354-.257-.569s.097-.415,.26-.571l-.003,.002c.012-.009,.44-.454,1.285-1.336,1.427-1.492,2.283-2.382,2.569-2.67,.173-.193,.365-.36,.58-.508l.004-.002c.165-.083,.367-.132,.585-.132,.194,0,.377,.039,.535,.109l-.005-.002c.867,.456,1.575,1.041,2.089,1.722l.018,.025c.64,.615,1.119,1.35,1.377,2.151l.01,.039-.006,.038Z"/></svg></a><!-- wp:quote {"className":""} -->
190<blockquote class="wp-block-quote"><!-- wp:paragraph --><p>We had a couple issues that needed to be fixed &#8211; a leaking toilet and shower/sink drains not draining properly. Chris at Showtime Express was responsive, showed up when expected and his price was fair. Picking his brain about future projects he gave us great advice and even steered us in the direction to save us money. I will not hesitate to call again when the (unfortunately, inevitable) issues arise!
191</p><!-- /wp:paragraph -->
192<cite>Maureen C.</cite></blockquote>
193<!-- /wp:quote --></div></div><div class="masonry-css-grid-item rbqs"><div class="masonry-css-grid-item-inner"><a class="review-source" target="_blank" href="https://www.yelp.com/biz/showtime-express-plumbing-winder"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewB
193ox="0 0 24 24"><path fill="#DF0906" d="M12.079,17.579v1.662c-.012,2.548-.046,3.878-.102,3.99-.145,.28-.472,.482-.867,.523h-.005c-.038,0-.084,0-.131,0-1.08,0-2.105-.184-3.022-.512l.044,.014c-1.08-.237-2.013-.639-2.79-1.17l.006,.005c-.145-.128-.247-.288-.289-.464v-.006c-.003-.015-.004-.032-.004-.049,0-.105,.026-.204,.073-.296l-.003,.006c.178-.233,.371-.434,.587-.619l-.004,.004c.341-.323,1.374-1.265,3.099-2.827,.012,0,.353-.305,1.024-.916,.166-.161,.4-.276,.669-.32h.008c.097-.018,.209-.027,.322-.027,.189,0,.37,.026,.536,.075l-.01-.003c.262,.08,.48,.211,.638,.377l.003,.003c.137,.141,.219,.318,.219,.51,0,.014,0,.028-.001,.042v-.002h.001Zm-2.552-3.287v.029c0,.422-.374,.778-.883,.885l-.009,.002-2.055,.51c-3.139,.768-4.806,1.152-5,1.152-.406-.018-.75-.202-.919-.465l-.003-.005c-.159-.288-.262-.623-.29-.973v-.009c-.041-.307-.064-.664-.064-1.025,0-.407,.029-.809,.087-1.204l-.006,.049c.027-.596,.212-1.153,.526-1.655l-.014,.025c.171-.251,.51-.42,.901-.42,.02,0,.041,0,.061,0h-.003c1.419,.348,2.564,.69,3.678,1.076l-.219-.067,1.969,.615,1.438,.445c.261,.077,.471,.217,.605,.395l.003,.004c.124,.163,.197,.36,.197,.569,0,.022-.001,.046-.003,.068v-.005Zm14.147,3.888c-.319,.821-.858,1.528-1.571,2.11l.004-.003c-.603,.684-1.379,1.242-2.288,1.649l-.033,.014c-.129,.048-.281,.076-.443,.076-.241,0-.463-.064-.638-.169h.003c-.16-.086-1.209-1.338-3.15-3.754l-.805-1.007c-.128-.141-.203-.316-.203-.504,0-.034,.003-.068,.008-.103v.004c.032-.232,.154-.438,.335-.604v.002c.215-.244,.577-.403,.986-.403,.156,0,.306,.023,.441,.065l-.008-.002c.012,.009,.691,.184,2.038,.523,2.32,.574,3.701,.921,4.144,1.041,.306,.067,.573,.158,.818,.275l-.014-.006c.244,.146,.4,.372,.4,.625,0,.062-.009,.121-.027,.179v-.005l.003-.002ZM12.165,9.909c.057,.891-.25,1.423-.921,1.597-.662,.148-1.313-.162-1.952-.929L2.819,2.753c-.02-.06-.031-.127-.031-.198,0-.244,.137-.462,.356-.613h.001c1.003-.562,2.199-.973,3.498-1.168l.056-.007c.94-.276,2.029-.435,3.167-.435,.237,0,.472,.007,.704,.021h-.031c.409,.053,.734,.284,.838,.583v.006c.035,.156,.161,1.489,.377,3.999,.217,2.509,.354,4.166,.412,4.97v-.002Zm11.333,1.414c.006,.034,.01,.073,.01,.113,0,.273-.179,.513-.453,.657l-.004,.002c-.171,.087-2.048,.463-5.629,1.126-.765,.131-1.285,.231-1.558,.301l.018-.025c-.09,.019-.192,.029-.298,.029-.178,0-.347-.03-.498-.084l.008,.002c-.266-.09-.482-.234-.631-.414l-.004-.005c-.16-.155-.257-.354-.257-.569s.097-.415,.26-.571l-.003,.002c.012-.009,.44-.454,1.285-1.336,1.427-1.492,2.283-2.382,2.569-2.67,.173-.193,.365-.36,.58-.508l.004-.002c.165-.083,.367-.132,.585-.132,.194,0,.377,.039,.535,.109l-.005-.002c.867,.456,1.575,1.041,2.089,1.722l.018,.025c.64,.615,1.119,1.35,1.377,2.151l.01,.039-.006,.038Z"/></svg></a><!-- wp:quote {"className":""} -->
194<blockquote class="wp-block-quote"><!-- wp:paragraph --><p>Chris and his team are fast, friendly, professional, and reasonably priced. We had just bought a house knowing the water heater needed to be replaced. Chris came and gave us a great overview of what he would do, and what our options were. He didn&#8217;t try to oversell us. The actual installation was smooth and his team was fast, efficient, and careful. When I reached out a week later for advice on an unrelated and home-warranty-covered issue Chris was super responsive even knowing he wouldn&#8217;t make a sale. We are very grateful to Chris and his awesome team!!
195</p><!-- /wp:paragraph -->
196<cite>Kevin H.</cite></blockquote>
197<!-- /wp:quote --></div></div><div class="masonry-css-grid-item rbqs"><div class="masonry-css-grid-item-inner"><a class="review-source" target="_blank" href="https://www.yelp.com/biz/showtime-express-plumbing-winder"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 24 24"><path fill="#DF0906" d="M12.079,17.579v1.662c-.012,2.548-.046,3.878-.102,3.99-.145,.28-.472,.482-.867,.523h-.005c-.038,0-.084,0-.131,0-1.08,0-2.105-.184-3.022-.512l.044,.014c-1.08-.237-2.013-.639-2.79-1.17l.006,.005c-.145-.128-.247-.288-.289-.464v-.006c-.003-.015-.004-.032-.004-.049,0-.105,.026-.204,.073-.296l-.003,.006c.178-.233,.371-.434,.587-.619l-.004,.004c.341-.323,1.374-1.265,3.099-2.827,.012,0,.353-.305,1.024-.916,.166-.161,.4-.276,.669-.32h.008c.097-.018,.209-.027,.322-.027,.189,0,.37,.026,.536,.075l-.01-.003c.262,.08,.48,.211,.638,.377l.003,.003c.137,.141,.219,.318,.219,.51,0,.014,0,.028-.001,.042v-.002h.001Zm-2.552-3.287v.029c0,.422-.374,.778-.883,.885l-.009,.002-2.055,.51c-3.139,.768-4.806,1.152-5,1.152-.406-.018-.75-.202-.919-.465l-.003-.005c-.159-.288-.262-.623-.29-.973v-.009c-.041-.307-.064-.664-.064-1.025,0-.407,.029-.809,.087-1.204l-.006,.049c.027-.596,.212-1.153,.526-1.655l-.014,.025c.171-.251,.51-.42,.901-.42,.02,0,.041,0,.061,0h-.003c1.419,.348,2.564,.69,3.678,1.076l-.219-.067,1.969,.615,1.438,.445c.261,.077,.471,.217,.605,.395l.003,.004c.124,.163,.197,.36,.197,.569,0,.022-.001,.046-.003,.068v-.005Zm14.147,3.888c-.319,.821-.858,1.528-1.571,2.11l.004-.003c-.603,.684-1.379,1.242-2.288,1.649l-.033,.014c-.129,.048-.281,.076-.443,.076-.241,0-.463-.064-.638-.169h.003c-.16-.086-1.209-1.338-3.15-3.754l-.805-1.007c-.128-.141-.203-.316-.203-.504,0-.034,.003-.068,.008-.103v.004c.032-.232,.154-.438,.335-.604v.002c.215-.244,.577-.403,.986-.403,.156,0,.306,.023,.441,.065l-.008-.002c.012,.009,.691,.184,2.038,.523,2.32,.574,3.701,.921,4.144,1.041,.306,.067,.573,.158,.818,.275l-.014-.006c.244,.146,.4,.372,.4,.625,0,.062-.009,.121-.027,.179v-.005l.003-.002ZM12.165,9.909c.057,.891-.25,1.423-.921,1.597-.662,.148-1.313-.162-1.952-.929L2.819,2.753c-.02-.06-.031-.127-.031-.198,0-.244,.137-.462,.356-.613h.001c1.003-.562,2.199-.973,3.498-1.
197168l.056-.007c.94-.276,2.029-.435,3.167-.435,.237,0,.472,.007,.704,.021h-.031c.409,.053,.734,.284,.838,.583v.006c.035,.156,.161,1.489,.377,3.999,.217,2.509,.354,4.166,.412,4.97v-.002Zm11.333,1.414c.006,.034,.01,.073,.01,.113,0,.273-.179,.513-.453,.657l-.004,.002c-.171,.087-2.048,.463-5.629,1.126-.765,.131-1.285,.231-1.558,.301l.018-.025c-.09,.019-.192,.029-.298,.029-.178,0-.347-.03-.498-.084l.008,.002c-.266-.09-.482-.234-.631-.414l-.004-.005c-.16-.155-.257-.354-.257-.569s.097-.415,.26-.571l-.003,.002c.012-.009,.44-.454,1.285-1.336,1.427-1.492,2.283-2.382,2.569-2.67,.173-.193,.365-.36,.58-.508l.004-.002c.165-.083,.367-.132,.585-.132,.194,0,.377,.039,.535,.109l-.005-.002c.867,.456,1.575,1.041,2.089,1.722l.018,.025c.64,.615,1.119,1.35,1.377,2.151l.01,.039-.006,.038Z"/></svg></a><!-- wp:quote {"className":""} -->
198<blockquote class="wp-block-quote"><!-- wp:paragraph --><p>Chris and Glenda have helped us a couple times since moving into our home last year. Glenda has always been fast to respond when I&#8217;ve messaged her with any issues we&#8217;ve been having. Chris and his team came out and replaced the main line from the meter to our home last year and all has worked great since. We had another pressure issue come up and Chris came out to diagnose as well, didn&#8217;t find anything wrong, and didn&#8217;t even charge us for the visit, as we&#8217;ve seen from other local companies. Honest and reliable plumbing services, and highly knowledgeable. Thank you!
199</p><!-- /wp:paragraph -->
200<cite>Madelliene R.</cite></blockquote>
201<!-- /wp:quote --></div></div><div class="masonry-css-grid-item rbqs"><div class="masonry-css-grid-item-inner"><a class="review-source" target="_blank" href="https://www.yelp.com/biz/showtime-express-plumbing-winder"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 24 24"><path fill="#DF0906" d="M12.079,17.579v1.662c-.012,2.548-.046,3.878-.102,3.99-.145,.28-.472,.482-.867,.523h-.005c-.038,0-.084,0-.131,0-1.08,0-2.105-.184-3.022-.512l.044,.014c-1.08-.237-2.013-.639-2.79-1.17l.006,.005c-.145-.128-.247-.288-.289-.464v-.006c-.003-.015-.004-.032-.004-.049,0-.105,.026-.204,.073-.296l-.003,.006c.178-.233,.371-.434,.587-.619l-.004,.004c.341-.323,1.374-1.265,3.099-2.827,.012,0,.353-.305,1.024-.916,.166-.161,.4-.276,.669-.32h.008c.097-.018,.209-.027,.322-.027,.189,0,.37,.026,.536,.075l-.01-.003c.262,.08,.48,.211,.638,.377l.003,.003c.137,.141,.219,.318,.219,.51,0,.014,0,.028-.001,.042v-.002h.001Zm-2.552-3.287v.029c0,.422-.374,.778-.883,.885l-.009,.002-2.055,.51c-3.139,.768-4.806,1.152-5,1.152-.406-.018-.75-.202-.919-.465l-.003-.005c-.159-.288-.262-.623-.29-.973v-.009c-.041-.307-.064-.664-.064-1.025,0-.407,.029-.809,.087-1.204l-.006,.049c.027-.596,.212-1.153,.526-1.655l-.014,.025c.171-.251,.51-.42,.901-.42,.02,0,.041,0,.061,0h-.003c1.419,.348,2.564,.69,3.678,1.076l-.219-.067,1.969,.615,1.438,.445c.261,.077,.471,.217,.605,.395l.003,.004c.124,.163,.197,.36,.197,.569,0,.022-.001,.046-.003,.068v-.005Zm14.147,3.888c-.319,.821-.858,1.528-1.571,2.11l.004-.003c-.603,.684-1.379,1.242-2.288,1.649l-.033,.014c-.129,.048-.281,.076-.443,.076-.241,0-.463-.064-.638-.169h.003c-.16-.086-1.209-1.338-3.15-3.754l-.805-1.007c-.128-.141-.203-.316-.203-.504,0-.034,.003-.068,.008-.103v.004c.032-.232,.154-.438,.335-.604v.002c.215-.244,.577-.403,.986-.403,.156,0,.306,.023,.441,.065l-.008-.002c.012,.009,.691,.184,2.038,.523,2.32,.574,3.701,.921,4.144,1.041,.306,.067,.573,.158,.818,.275l-.014-.006c.244,.146,.4,.372,.4,.625,0,.062-.009,.121-.027,.179v-.005l.003-.002ZM12.165,9.909c.057,.891-.25,1.423-.921,1.597-.662,.148-1.313-.162-1.952-.929L2.819,2.753c-.02-.06-.031-.127-.031-.198,0-.244,.137-.462,.356-.613h.001c1.003-.562,2.199-.973,3.498-1.168l.056-.007c.94-.276,2.029-.435,3.167-.435,.237,0,.472,.007,.704,.021h-.031c.409,.053,.734,.284,.838,.583v.006c.035,.156,.161,1.489,.377,3.999,.217,2.509,.354,4.166,.412,4.97v-.002Zm11.333,1.414c.006,.034,.01,.073,.01,.113,0,.273-.179,.513-.453,.657l-.004,.002c-.171,.087-2.048,.463-5.629,1.126-.765,.131-1.285,.231-1.558,.301l.018-.025c-.09,.019-.192,.029-.298,.029-.178,0-.347-.03-.498-.084l.008,.002c-.266-.09-.482-.234-.631-.414l-.004-.005c-.16-.155-.257-.354-.257-.569s.097-.415,.26-.571l-.003,.002c.012-.009,.44-.454,1.285-1.336,1.427-1.492,2.283-2.382,2.569-2.67,.173-.193,.365-.36,.58-.508l.004-.002c.165-.083,.367-.132,.585-.132,.194,0,.377,.039,.535,.109l-.005-.002c.867,.456,1.575,1.041,2.089,1.722l.018,.025c.64,.615,1.119,1.35,1.377,2.151l.01,.039-.006,.038Z"/></svg></a><!-- wp:quote {"className":""} -->
202<blockquote class="wp-block-quote"><!-- wp:paragraph --><p>I have an older home and I love my house. However, old pipes don&#8217;t last forever. Around 2 weeks ago; I discovered leaky pipes and water in my crawl space. I contacted Showtime Express and they were very responsive. Ethan was out to my house within a few days. The estimate was reasonable for replacing old copper pipes with pvc pipes.
203</p><!-- /wp:paragraph --><!-- wp:paragraph --><p>Within a few days Ethan returned to complete the job. He showed me what he was going to do to replace the old pipes; and put new pipes&#8230;he was very thorough. Job finished and he showed me the finished product. Ethan also had one additional recommendation for me, which I will take care of next week.
204</p><!-- /wp:paragraph -->
205<!-- wp:paragraph --><p>Thankful for Showtime Express. They communicated and took care of my issue. That&#8217;s all I can ask for.</p><!-- /wp:paragraph -->
206<cite>Kenya H.</cite></blockquote>
207<!-- /wp:quote -->
208</div></div><div class="masonry-css-grid-item rbqs"><div class="masonry-css-grid-item-inner"><a class="review-source" target="_blank" href="https://www.yelp.com/biz/showtime-express-plumbing-winder"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewB
208ox="0 0 24 24"><path fill="#DF0906" d="M12.079,17.579v1.662c-.012,2.548-.046,3.878-.102,3.99-.145,.28-.472,.482-.867,.523h-.005c-.038,0-.084,0-.131,0-1.08,0-2.105-.184-3.022-.512l.044,.014c-1.08-.237-2.013-.639-2.79-1.17l.006,.005c-.145-.128-.247-.288-.289-.464v-.006c-.003-.015-.004-.032-.004-.049,0-.105,.026-.204,.073-.296l-.003,.006c.178-.233,.371-.434,.587-.619l-.004,.004c.341-.323,1.374-1.265,3.099-2.827,.012,0,.353-.305,1.024-.916,.166-.161,.4-.276,.669-.32h.008c.097-.018,.209-.027,.322-.027,.189,0,.37,.026,.536,.075l-.01-.003c.262,.08,.48,.211,.638,.377l.003,.003c.137,.141,.219,.318,.219,.51,0,.014,0,.028-.001,.042v-.002h.001Zm-2.552-3.287v.029c0,.422-.374,.778-.883,.885l-.009,.002-2.055,.51c-3.139,.768-4.806,1.152-5,1.152-.406-.018-.75-.202-.919-.465l-.003-.005c-.159-.288-.262-.623-.29-.973v-.009c-.041-.307-.064-.664-.064-1.025,0-.407,.029-.809,.087-1.204l-.006,.049c.027-.596,.212-1.153,.526-1.655l-.014,.025c.171-.251,.51-.42,.901-.42,.02,0,.041,0,.061,0h-.003c1.419,.348,2.564,.69,3.678,1.076l-.219-.067,1.969,.615,1.438,.445c.261,.077,.471,.217,.605,.395l.003,.004c.124,.163,.197,.36,.197,.569,0,.022-.001,.046-.003,.068v-.005Zm14.147,3.888c-.319,.821-.858,1.528-1.571,2.11l.004-.003c-.603,.684-1.379,1.242-2.288,1.649l-.033,.014c-.129,.048-.281,.076-.443,.076-.241,0-.463-.064-.638-.169h.003c-.16-.086-1.209-1.338-3.15-3.754l-.805-1.007c-.128-.141-.203-.316-.203-.504,0-.034,.003-.068,.008-.103v.004c.032-.232,.154-.438,.335-.604v.002c.215-.244,.577-.403,.986-.403,.156,0,.306,.023,.441,.065l-.008-.002c.012,.009,.691,.184,2.038,.523,2.32,.574,3.701,.921,4.144,1.041,.306,.067,.573,.158,.818,.275l-.014-.006c.244,.146,.4,.372,.4,.625,0,.062-.009,.121-.027,.179v-.005l.003-.002ZM12.165,9.909c.057,.891-.25,1.423-.921,1.597-.662,.148-1.313-.162-1.952-.929L2.819,2.753c-.02-.06-.031-.127-.031-.198,0-.244,.137-.462,.356-.613h.001c1.003-.562,2.199-.973,3.498-1.168l.056-.007c.94-.276,2.029-.435,3.167-.435,.237,0,.472,.007,.704,.021h-.031c.409,.053,.734,.284,.838,.583v.006c.035,.156,.161,1.489,.377,3.999,.217,2.509,.354,4.166,.412,4.97v-.002Zm11.333,1.414c.006,.034,.01,.073,.01,.113,0,.273-.179,.513-.453,.657l-.004,.002c-.171,.087-2.048,.463-5.629,1.126-.765,.131-1.285,.231-1.558,.301l.018-.025c-.09,.019-.192,.029-.298,.029-.178,0-.347-.03-.498-.084l.008,.002c-.266-.09-.482-.234-.631-.414l-.004-.005c-.16-.155-.257-.354-.257-.569s.097-.415,.26-.571l-.003,.002c.012-.009,.44-.454,1.285-1.336,1.427-1.492,2.283-2.382,2.569-2.67,.173-.193,.365-.36,.58-.508l.004-.002c.165-.083,.367-.132,.585-.132,.194,0,.377,.039,.535,.109l-.005-.002c.867,.456,1.575,1.041,2.089,1.722l.018,.025c.64,.615,1.119,1.35,1.377,2.151l.01,.039-.006,.038Z"/></svg></a><!-- wp:quote {"className":""} -->
209<blockquote class="wp-block-quote"><!-- wp:paragraph --><p>Our tech Ethan did a great job diagnosing an issue we had with one of our pipes and was reasonable for work performed although the issue has not been resolved yet. We are waiting on a quote from them for repair of a pretty big job and will consider them for the repair which may require some concrete digging and a bigger budget. This review is solely for the initial interaction with Showtime Express. Glenda was very kind and thoughtful in the initial conversation and the tech rep Ethan was generous with his time and trying to help us find a best solution to resolve the problem at hand.
210</p><!-- /wp:paragraph --><!-- wp:paragraph --><p>Thank you to Showtime Express and we look forward to using you in the future.
211</p><!-- /wp:paragraph -->
212<cite>Brian H.</cite></blockquote>
213<!-- /wp:quote --></div></div><div class="masonry-css-grid-item rbqs"><div class="masonry-css-grid-item-inner"><a class="review-source" target="_blank" href="https://www.yelp.com/biz/showtime-express-plumbing-winder"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 24 24"><path fill="#DF0906" d="M12.079,17.579v1.662c-.012,2.548-.046,3.878-.102,3.99-.145,.28-.472,.482-.867,.523h-.005c-.038,0-.084,0-.131,0-1.08,0-2.105-.184-3.022-.512l.044,.014c-1.08-.237-2.013-.639-2.79-1.17l.006,.005c-.145-.128-.247-.288-.289-.464v-.006c-.003-.015-.004-.032-.004-.049,0-.105,.026-.204,.073-.296l-.003,.006c.178-.233,.371-.434,.587-.619l-.004,.004c.341-.323,1.374-1.265,3.099-2.827,.012,0,.353-.305,1.024-.916,.166-.161,.4-.276,.669-.32h.008c.097-.018,.209-.027,.322-.027,.189,0,.37,.026,.536,.075l-.01-.003c.262,.08,.48,.211,.638,.377l.003,.003c.137,.141,.219,.318,.219,.51,0,.014,0,.028-.001,.042v-.002h.001Zm-2.552-3.287v.029c0,.422-.374,.778-.883,.885l-.009,.002-2.055,.51c-3.139,.768-4.806,1.152-5,1.152-.406-.018-.75-.202-.919-.465l-.003-.005c-.159-.288-.262-.623-.29-.973v-.009c-.041-.307-.064-.664-.064-1.025,0-.407,.029-.809,.087-1.204l-.006,.049c.027-.596,.212-1.153,.526-1.655l-.014,.025c.171-.251,.51-.42,.901-.42,.02,0,.041,0,.061,0h-.003c1.419,.348,2.564,.69,3.678,1.076l-.219-.067,1.969,.615,1.438,.445c.261,.077,.471,.217,.605,.395l.003,.004c.124,.163,.197,.36,.197,.569,0,.022-.001,.046-.003,.068v-.005Zm14.147,3.888c-.319,.821-.858,1.528-1.571,2.11l.004-.003c-.603,.684-1.379,1.242-2.288,1.649l-.033,.014c-.129,.048-.281,.076-.443,.076-.241,0-.463-.064-.638-.169h.003c-.16-.086-1.209-1.338-3.15-3.754l-.805-1.007c-.128-.141-.203-.316-.203-.504,0-.034,.003-.068,.008-.103v.004c.032-.232,.154-.438,.335-.604v.002c.215-.244,.577-.403,.986-.403,.156,0,.306,.023,.441,.065l-.008-.002c.012,.009,.691,.184,2.038,.523,2.32,.574,3.701,.921,4.144,1.041,.306,.067,.573,.158,.818,.275l-.014-.006c.244,.146,.4,.372,.4,.625,0,.062-.009,.121-.027,.179v-.005l.003-.002ZM12.165,9.909c.057,.891-.25,1.423-.921,1.597-.662,.148-1.313-.162-1.952-.929L2.819,2.753c-.02-.06-.031-.127-.031-.198,0-.244,.137-.462,.356-.613h.001c1.003-.562,2.199-.973,3.498-1.
213168l.056-.007c.94-.276,2.029-.435,3.167-.435,.237,0,.472,.007,.704,.021h-.031c.409,.053,.734,.284,.838,.583v.006c.035,.156,.161,1.489,.377,3.999,.217,2.509,.354,4.166,.412,4.97v-.002Zm11.333,1.414c.006,.034,.01,.073,.01,.113,0,.273-.179,.513-.453,.657l-.004,.002c-.171,.087-2.048,.463-5.629,1.126-.765,.131-1.285,.231-1.558,.301l.018-.025c-.09,.019-.192,.029-.298,.029-.178,0-.347-.03-.498-.084l.008,.002c-.266-.09-.482-.234-.631-.414l-.004-.005c-.16-.155-.257-.354-.257-.569s.097-.415,.26-.571l-.003,.002c.012-.009,.44-.454,1.285-1.336,1.427-1.492,2.283-2.382,2.569-2.67,.173-.193,.365-.36,.58-.508l.004-.002c.165-.083,.367-.132,.585-.132,.194,0,.377,.039,.535,.109l-.005-.002c.867,.456,1.575,1.041,2.089,1.722l.018,.025c.64,.615,1.119,1.35,1.377,2.151l.01,.039-.006,.038Z"/></svg></a><!-- wp:quote {"className":""} -->
214<blockquote class="wp-block-quote"><!-- wp:paragraph --><p>Scott came to look at our sewage pump and water heater. He was so professional and kind. He answered all of our questions and was very knowledgeable. He showed up right on time. We will definitely be using Showtime again. Good, quick and cost-effective plumbers are hard to find. When you do, you keep them!!
215</p><!-- /wp:paragraph -->
216<cite>Makenna D.</cite></blockquote>
217<!-- /wp:quote --></div></div><div class="masonry-css-grid-item rbqs"><div class="masonry-css-grid-item-inner"><a class="review-source" target="_blank" href="https://maps.app.goo.gl/VWD8BdscKaQWyi426"><svg width="25px" height="25px" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" fill="none"><path fill="#4285F4" d="M14.9 8.161c0-.476-.039-.954-.121-1.422h-6.64v2.695h3.802a3.24 3.24 0 01-1.407 2.127v1.75h2.269c1.332-1.22 2.097-3.02 2.097-5.15z"/><path fill="#34A853" d="M8.14 15c1.898 0 3.499-.62 4.665-1.69l-2.268-1.749c-.631.427-1.446.669-2.395.669-1.836 0-3.393-1.232-3.952-2.888H1.85v1.803A7.044 7.044 0 008.14 15z"/><path fill="#FBBC04" d="M4.187 9.342a4.17 4.17 0 010-2.68V4.859H1.849a6.97 6.97 0 000 6.286l2.338-1.803z"/><path fill="#EA4335" d="M8.14 3.77a3.837 3.837 0 012.7 1.05l2.01-1.999a6.786 6.786 0 00-4.71-1.82 7.042 7.042 0 00-6.29 3.858L4.186 6.66c.556-1.658 2.116-2.89 3.952-2.89z"/></svg></a><!-- wp:quote {"className":""} -->
218<blockquote class="wp-block-quote"><!-- wp:paragraph --><p>Hello, my faucet came apart, John the plumber came out. He was very early. It took a minute to get it back in place but he did an excellent job was not expensive. Professional service was awesome and I’m happy with the service Showtime Express Plumbing provided. This is my first time using you guys and he did an awesome job. Many charge just to come out then they charge a fee and labor you guys didn’t thank you so much for your service. Greatly appreciate it. I will recommend Showtime Express Plumbing because they work with you.
219</p><!-- /wp:paragraph -->
220<cite>Juanita G.</cite></blockquote>
221<!-- /wp:quote --></div></div><div class="masonry-css-grid-item rbqs"><div class="masonry-css-grid-item-inner"><a class="review-source" target="_blank" href="https://maps.app.goo.gl/VWD8BdscKaQWyi426"><svg width="25px" height="25px" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" fill="none"><path fill="#4285F4" d="M14.9 8.161c0-.476-.039-.954-.121-1.422h-6.64v2.695h3.802a3.24 3.24 0 01-1.407 2.127v1.75h2.269c1.332-1.22 2.097-3.02 2.097-5.15z"/><path fill="#34A853" d="M8.14 15c1.898 0 3.499-.62 4.665-1.69l-2.268-1.749c-.631.427-1.446.669-2.395.669-1.836 0-3.393-1.232-3.952-2.888H1.85v1.803A7.044 7.044 0 008.14 15z"/><path fill="#FBBC04" d="M4.187 9.342a4.17 4.17 0 010-2.68V4.859H1.849a6.97 6.97 0 000 6.286l2.338-1.803z"/><path fill="#EA4335" d="M8.14 3.77a3.837 3.837 0 012.7 1.05l2.01-1.999a6.786 6.786 0 00-4.71-1.82 7.042 7.042 0 00-6.29 3.858L4.186 6.66c.556-1.658 2.116-2.89 3.952-2.89z"/></svg></a><!-- wp:quote {"className":""} -->
222<blockquote class="wp-block-quote"><!-- wp:paragraph --><p>Great customer service. Our pipes burst and they were able to help us get things resolved. I am very pleased with this company. Please call them for all of your plumbing needs.
223</p><!-- /wp:paragraph -->
224<cite>Candis H.</cite></blockquote>
225<!-- /wp:quote --></div></div><div class="masonry-css-grid-item rbqs"><div class="masonry-css-grid-item-inner"><a class="review-source" target="_blank" href="https://maps.app.goo.gl/VWD8BdscKaQWyi426"><svg width="25px" height="25px" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" fill="none"><path fill="#4285F4" d="M14.9 8.161c0-.476-.039-.954-.121-1.422h-6.64v2.695h3.802a3.24 3.24 0 01-1.407 2.127v1.75h2.269c1.332-1.22 2.097-3.02 2.097-5.15z"/><path fill="#34A853" d="M8.14 15c1.898 0 3.499-.62 4.665-1.69l-2.268-1.749c-.
225631.427-1.446.669-2.395.669-1.836 0-3.393-1.232-3.952-2.888H1.85v1.803A7.044 7.044 0 008.14 15z"/><path fill="#FBBC04" d="M4.187 9.342a4.17 4.17 0 010-2.68V4.859H1.849a6.97 6.97 0 000 6.286l2.338-1.803z"/><path fill="#EA4335" d="M8.14 3.77a3.837 3.837 0 012.7 1.05l2.01-1.999a6.786 6.786 0 00-4.71-1.82 7.042 7.042 0 00-6.29 3.858L4.186 6.66c.556-1.658 2.116-2.89 3.952-2.89z"/></svg></a><!-- wp:quote {"className":""} -->
226<blockquote class="wp-block-quote"><!-- wp:paragraph --><p>Hands down the best! Chris with Showtime Express Plumbing has helped my family with plumbing issues from small to large and helped us avoid major repairs. Appointments have been timely and completed thoroughly more quickly than expected  Repairs are completely resolved first time with quality parts and skilled labor.  His service is professional and friendly. He has helped us over the past 8 years and saved our home from leaks, mold, and ruin. Chris is an amazing plumber and great guy. Worried he might become overbooked, but I had to share for other homeowners with water woes.</p><!-- /wp:paragraph -->
227<cite>Erin K.</cite></blockquote>
228<!-- /wp:quote --></div></div><div class="masonry-css-grid-item rbqs"><div class="masonry-css-grid-item-inner"><a class="review-source" target="_blank" href="https://maps.app.goo.gl/VWD8BdscKaQWyi426"><svg width="25px" height="25px" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" fill="none"><path fill="#4285F4" d="M14.9 8.161c0-.476-.039-.954-.121-1.422h-6.64v2.695h3.802a3.24 3.24 0 01-1.407 2.127v1.75h2.269c1.332-1.22 2.097-3.02 2.097-5.15z"/><path fill="#34A853" d="M8.14 15c1.898 0 3.499-.62 4.665-1.69l-2.268-1.749c-.631.427-1.446.669-2.395.669-1.836 0-3.393-1.232-3.952-2.888H1.85v1.803A7.044 7.044 0 008.14 15z"/><path fill="#FBBC04" d="M4.187 9.342a4.17 4.17 0 010-2.68V4.859H1.849a6.97 6.97 0 000 6.286l2.338-1.803z"/><path fill="#EA4335" d="M8.14 3.77a3.837 3.837 0 012.7 1.05l2.01-1.999a6.786 6.786 0 00-4.71-1.82 7.042 7.042 0 00-6.29 3.858L4.186 6.66c.556-1.658 2.116-2.89 3.952-2.89z"/></svg></a><!-- wp:quote {"className":""} -->
229<blockquote class="wp-block-quote"><!-- wp:paragraph --><p>Chris arrived at exactly my appointment time. He was very personable and friendly. The work he did was fantastic and he explained where the issue was and how he was fixing it. The pricing was very reasonable. As long as Showtime Express Plumbing is in business, I won&#8217;t call anyone else for future plumbing needs
230</p><!-- /wp:paragraph -->
231<cite>Jeremy H.</cite></blockquote>
232<!-- /wp:quote --></div></div><div class="masonry-css-grid-item rbqs"><div class="masonry-css-grid-item-inner"><a class="review-source" target="_blank" href="https://maps.app.goo.gl/VWD8BdscKaQWyi426"><svg width="25px" height="25px" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" fill="none"><path fill="#4285F4" d="M14.9 8.161c0-.476-.039-.954-.121-1.422h-6.64v2.695h3.802a3.24 3.24 0 01-1.407 2.127v1.75h2.269c1.332-1.22 2.097-3.02 2.097-5.15z"/><path fill="#34A853" d="M8.14 15c1.898 0 3.499-.62 4.665-1.69l-2.268-1.749c-.631.427-1.446.669-2.395.669-1.836 0-3.393-1.232-3.952-2.888H1.85v1.803A7.044 7.044 0 008.14 15z"/><path fill="#FBBC04" d="M4.187 9.342a4.17 4.17 0 010-2.68V4.859H1.849a6.97 6.97 0 000 6.286l2.338-1.803z"/><path fill="#EA4335" d="M8.14 3.77a3.837 3.837 0 012.7 1.05l2.01-1.999a6.786 6.786 0 00-4.71-1.82 7.042 7.042 0 00-6.29 3.858L4.186 6.66c.556-1.658 2.116-2.89 3.952-2.89z"/></svg></a><!-- wp:quote {"className":""} -->
233<blockquote class="wp-block-quote"><!-- wp:paragraph --><p>Showtime Express did a GREAT job replacing my water heater! The original WH was nearly 22 years old, so things needed to be brought up to current code requirements (thermal expansion tank etc.) and they had all the necessary supplies and tools to get the job done in a very timely manner. Not having hot water is not something you want to deal with for long, so I appreciated their quick availability. In addition to a good price, customer service, and attention to detail! Cannot ask for a better service! I highly recommend these guys for the job! Oh! And they also fixed a bathtub faucet that had been slowly dripping for months! Other companies told me I would have to cut into the wall to fix it! But Showtime Express knew exactly what the faucet needed and included it in their service call. Thank y
233ou guys SO much!!</p><!-- /wp:paragraph -->
234<cite>Amanda T.</cite></blockquote>
235<!-- /wp:quote --></div></div><div class="masonry-css-grid-item rbqs"><div class="masonry-css-grid-item-inner"><a class="review-source" target="_blank" href="https://maps.app.goo.gl/VWD8BdscKaQWyi426"><svg width="25px" height="25px" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" fill="none"><path fill="#4285F4" d="M14.9 8.161c0-.476-.039-.954-.121-1.422h-6.64v2.695h3.802a3.24 3.24 0 01-1.407 2.127v1.75h2.269c1.332-1.22 2.097-3.02 2.097-5.15z"/><path fill="#34A853" d="M8.14 15c1.898 0 3.499-.62 4.665-1.69l-2.268-1.749c-.631.427-1.446.669-2.395.669-1.836 0-3.393-1.232-3.952-2.888H1.85v1.803A7.044 7.044 0 008.14 15z"/><path fill="#FBBC04" d="M4.187 9.342a4.17 4.17 0 010-2.68V4.859H1.849a6.97 6.97 0 000 6.286l2.338-1.803z"/><path fill="#EA4335" d="M8.14 3.77a3.837 3.837 0 012.7 1.05l2.01-1.999a6.786 6.786 0 00-4.71-1.82 7.042 7.042 0 00-6.29 3.858L4.186 6.66c.556-1.658 2.116-2.89 3.952-2.89z"/></svg></a><!-- wp:quote {"className":""} -->
236<blockquote class="wp-block-quote"><!-- wp:paragraph --><p>We had a flood in our basement over the weekend. We were able to stop it; however, were not sure where it was coming from. Chris came out today tested everything and found that it was probably our sump pump float having debris on it causing it not to drain.</p><!-- /wp:paragraph --><!-- wp:paragraph --><p>I appreciate him being so thorough, but not charging me to cut into the wall unnecessarily. I will definitely call them again!</p><!-- /wp:paragraph -->
237<cite>Tracy S.</cite></blockquote>
238<!-- /wp:quote --></div></div><div class="masonry-css-grid-item rbqs"><div class="masonry-css-grid-item-inner"><a class="review-source" target="_blank" href="https://maps.app.goo.gl/VWD8BdscKaQWyi426"><svg width="25px" height="25px" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" fill="none"><path fill="#4285F4" d="M14.9 8.161c0-.476-.039-.954-.121-1.422h-6.64v2.695h3.802a3.24 3.24 0 01-1.407 2.127v1.75h2.269c1.332-1.22 2.097-3.02 2.097-5.15z"/><path fill="#34A853" d="M8.14 15c1.898 0 3.499-.62 4.665-1.69l-2.268-1.749c-.631.427-1.446.669-2.395.669-1.836 0-3.393-1.232-3.952-2.888H1.85v1.803A7.044 7.044 0 008.14 15z"/><path fill="#FBBC04" d="M4.187 9.342a4.17 4.17 0 010-2.68V4.859H1.849a6.97 6.97 0 000 6.286l2.338-1.803z"/><path fill="#EA4335" d="M8.14 3.77a3.837 3.837 0 012.7 1.05l2.01-1.999a6.786 6.786 0 00-4.71-1.82 7.042 7.042 0 00-6.29 3.858L4.186 6.66c.556-1.658 2.116-2.89 3.952-2.89z"/></svg></a>
239 <!-- wp:quote {"className":""} -->
240<blockquote class="wp-block-quote"><!-- wp:paragraph --><p>Showtime Express has been a great company to work with. Chris has been grest in answering my questions and assiting with getting the roght people to help with out issues.</p><!-- /wp:paragraph -->
241<!-- wp:paragraph --><p>I want to give a great shout-out to Jon! Jon has been very understanding and extremely patient. Even when all the information didn&#8217;t get relayed to him, he still went above and beyond and did a tremendous job. We will definitely ask for him again in the future.</p><!-- /wp:paragraph -->
242<!-- wp:paragraph --><p>I will be happy to call and recommend Showtime to any and everyone that had any plumbing needs.</p><!-- /wp:paragraph -->
243<!-- wp:paragraph --><p>Thank you for all your great services!
244</p><!-- /wp:paragraph -->
245<cite>G G.</cite></blockquote>
246<!-- /wp:quote --></div></div><div class="masonry-css-grid-item rbqs"><div class="masonry-css-grid-item-inner"><a class="review-source" target="_blank" href="https://maps.app.goo.gl/VWD8BdscKaQWyi426"><svg width="25px" height="25px" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" fill="none"><path fill="#4285F4" d="M14.9 8.161c0-.476-.039-.954-.121-1.422h-6.64v2.695h3.802a3.24 3.24 0 01-1.407 2.127v1.75h2.269c1.332-1.22 2.097-3.02 2.097-5.15z"/><path fill="#34A853" d="M8.14 15c1.898 0 3.499-.62 4.665-1.69l-2.268-1.749c-.631.427-1.446.669-2.395.669-1.836 0-3.393-1.232-3.952-2.888H1.85v1.803A7.044 7.044 0 008.14 15z"/><path fill="#FBBC04" d="M4.187 9.342a4.17 4.17 0 010-2.68V4.859H1.849a6.97 6.97 0 000 6.286l2.338-1.803z"/><path fill="#EA4335" d="M8.14 3.77a3.837 3.837 0 012.7 1.05l2.01-1.999a6.786 6.786 0 00-4.71-1.82 7.042 7.042 0 00-6.29 3.858L4.186 6.66c.556-1.658 2.116-2.89 3.952-2.89z"/></svg></a><!-- wp:quote {"className":""} -->
247<blockquote class="wp-block-quote"><!-- wp:paragraph --><p>These people are quick and responsive! One moment I was on the phone with Angela, and within the next hour Chris was already at my door! Very nice and professional people. Chris clearly explained the plan to me and is doing his best to get me scheduled to have my main water line replaced. We are so grateful. I highly recommend this company!
248</p><!-- /wp:paragraph -->
249<cite>Judy T.</cite></blockquote>
250<!-- /wp:quote --></div></div><div class="masonry-css-grid-item rbqs"><div class="masonry-css-grid-item-inner"><a class="review-source" target="_blank" href="https://maps.app.goo.gl/VWD8BdscKaQWyi426"><svg width="25px" height="25px" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" fill="none"><path fill="#4285F4" d="M14.9 8.161c0-.476-.039-.954-.121-1.422h-6.64v2.695h3.802a3.24 3.24 0 01-1.407 2.127v1.75h2.269c1.332-1.22 2.097-3.02 2.097-5.15z"/><path fill="#34A853" d="M8.14 15c1.898 0 3.499-.62 4.665-1.69l-2.268-1.749c-.
250631.427-1.446.669-2.395.669-1.836 0-3.393-1.232-3.952-2.888H1.85v1.803A7.044 7.044 0 008.14 15z"/><path fill="#FBBC04" d="M4.187 9.342a4.17 4.17 0 010-2.68V4.859H1.849a6.97 6.97 0 000 6.286l2.338-1.803z"/><path fill="#EA4335" d="M8.14 3.77a3.837 3.837 0 012.7 1.05l2.01-1.999a6.786 6.786 0 00-4.71-1.82 7.042 7.042 0 00-6.29 3.858L4.186 6.66c.556-1.658 2.116-2.89 3.952-2.89z"/></svg></a><!-- wp:quote {"className":""} -->
251<blockquote class="wp-block-quote"><!-- wp:paragraph -->
252<p>Was able to get Showtime to come out same day to take a look at a couple different things we had going on at my father in law&#8217;s house.
253</p><!-- /wp:paragraph -->
254<!-- wp:paragraph -->
255<p>John arrived within the time expected and presented himself very professionally. He listened as I described the issues we wanted to address, performed an inspection and then provided me with an estimate. I thought the estimate was fair and the final price came in below the estimate. Overall extremely happy and wouldn&#8217;t hesitate to use Showtime again.
256</p><!-- /wp:paragraph -->
257<cite>Kirk</cite></blockquote>
258<!-- /wp:quote --></div></div><div class="masonry-css-grid-item rbqs"><div class="masonry-css-grid-item-inner"><a class="review-source" target="_blank" href="https://maps.app.goo.gl/VWD8BdscKaQWyi426"><svg width="25px" height="25px" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" fill="none"><path fill="#4285F4" d="M14.9 8.161c0-.476-.039-.954-.121-1.422h-6.64v2.695h3.802a3.24 3.24 0 01-1.407 2.127v1.75h2.269c1.332-1.22 2.097-3.02 2.097-5.15z"/><path fill="#34A853" d="M8.14 15c1.898 0 3.499-.62 4.665-1.69l-2.268-1.749c-.631.427-1.446.669-2.395.669-1.836 0-3.393-1.232-3.952-2.888H1.85v1.803A7.044 7.044 0 008.14 15z"/><path fill="#FBBC04" d="M4.187 9.342a4.17 4.17 0 010-2.68V4.859H1.849a6.97 6.97 0 000 6.286l2.338-1.803z"/><path fill="#EA4335" d="M8.14 3.77a3.837 3.837 0 012.7 1.05l2.01-1.999a6.786 6.786 0 00-4.71-1.82 7.042 7.042 0 00-6.29 3.858L4.186 6.66c.556-1.658 2.116-2.89 3.952-2.89z"/></svg></a><!-- wp:quote {"className":""} -->
259<blockquote class="wp-block-quote"><!-- wp:paragraph -->
260<p>Professional, on time, very reasonable pricing. Had new water heater installed. Helpful and friendly. Quality work.
261</p><!-- /wp:paragraph -->
262<cite>Janell W.</cite></blockquote>
263<!-- /wp:quote --></div></div><div class="masonry-css-grid-item rbqs"><div class="masonry-css-grid-item-inner"><a class="review-source" target="_blank" href="https://maps.app.goo.gl/VWD8BdscKaQWyi426"><svg width="25px" height="25px" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" fill="none"><path fill="#4285F4" d="M14.9 8.161c0-.476-.039-.954-.121-1.422h-6.64v2.695h3.802a3.24 3.24 0 01-1.407 2.127v1.75h2.269c1.332-1.22 2.097-3.02 2.097-5.15z"/><path fill="#34A853" d="M8.14 15c1.898 0 3.499-.62 4.665-1.69l-2.268-1.749c-.631.427-1.446.669-2.395.669-1.836 0-3.393-1.232-3.952-2.888H1.85v1.803A7.044 7.044 0 008.14 15z"/><path fill="#FBBC04" d="M4.187 9.342a4.17 4.17 0 010-2.68V4.859H1.849a6.97 6.97 0 000 6.286l2.338-1.803z"/><path fill="#EA4335" d="M8.14 3.77a3.837 3.837 0 012.7 1.05l2.01-1.999a6.786 6.786 0 00-4.71-1.82 7.042 7.042 0 00-6.29 3.858L4.186 6.66c.556-1.658 2.116-2.89 3.952-2.89z"/></svg></a><!-- wp:quote {"className":""} -->
264<blockquote class="wp-block-quote"><!-- wp:paragraph -->
265<p>Quick and responsive! Issue was fixed fast and estimate for water heater was good. Tech was also very nice</p><!-- /wp:paragraph -->
266<cite>Jonathan P.</cite></blockquote>
267<!-- /wp:quote --></div></div><div class="masonry-css-grid-item rbqs"><div class="masonry-css-grid-item-inner"><a class="review-source" target="_blank" href="https://maps.app.goo.gl/VWD8BdscKaQWyi426"><svg width="25px" height="25px" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" fill="none"><path fill="#4285F4" d="M14.9 8.161c0-.476-.039-.954-.121-1.422h-6.64v2.695h3.802a3.24 3.24 0 01-1.407 2.127v1.75h2.269c1.332-1.22 2.097-3.02 2.097-5.15z"/><path fill="#34A853" d="M8.14 15c1.898 0 3.499-.62 4.665-1.69l-2.268-1.749c-.631.427-1.446.669-2.395.669-1.836 0-3.393-1.232-3.952-2.888H1.85v1.803A7.044 7.044 0 008.14 15z"/><path fill="#FBBC04" d="M4.187 9.342a4.17 4.17 0 010-2.68V4.859H1.849a6.97 6.97 0 000 6.286l2.338-1.803z"/><path fill="#EA4335" d="M8.14 3.77a3.837 3.837 0 012.7 1.05l2.01-1.999a6.786 6.786 0 00-4.71-1.82 7.042 7.042 0 00-6.29 3.858L4.186 6.66c.556-1.658 2.116-2.89 3.952-2.89z"/></svg></a><!-- wp:quote {"className":""} -->
268<blockquote class="wp-block-quote"><!-- wp:paragraph -->
269<p>They are fast and dependable. I have hired them twice for my toilet plumbing needs, and I consider them to be very professional. As a courtesy, they even provided me with a second opportunity to address my payment issue. They are extremely kind individuals and I strongly recommend their services!</p><!-- /wp:paragraph -->
270<cite>Jackie W.</cite></blockquote>
271<!-- /wp:quote --></div></div><div class="masonry-css-grid-item rbqs"><div class="masonry-css-grid-item-inner"><a class="review-source" target="_blank" href="https://www.thumbtack.com/ga/winder/water-heater-repair/showtime-express-plumbing/service/416753471147540482"><svg viewBox="0 0 69.36 69.39" xmlns="http://www.w3.org/2000/svg" width="40px" height="40px"><path d="m34.75 2.5c17.7.04 32.29 14.73 32.11 32.32-.19 17.71-14.6 32.07-32.17 32.06-17.7 0-32.21-14.54-32.18-32.25.03-17.74 14.52-32.18 32.25-32.14z" fill="none" stroke="#009FD9" stroke-miterlimit="10" stroke-width="4"/><path d="m19.09 26.6v-6.88h31.12v6.88z" fill="#009FD9"/><path d="m38.07 29.38c0 7.28.26 13.95-.13 20.58-.15 2.51-1.79 4.93-2.95 7.92-2.32-3.27-3.84-6.14-3.96-9.48-.17-4.67-.22-9.36-.07-14.03.03-1 .95-2.33 1.84-2.87 1.58-.95 3.45-1.42 5.26-2.12z" fill="#009FD9" /></svg></a><!-- wp:quote {"className":""} -->
272<blockquote class="wp-block-quote"><!-- wp:paragraph -->
273<p>Possibly the best plumbing company in GA. They got to me within one business day, had crystal clear communication, and the tech Jon could not have been more professional and helpful in explaining everything! 10/10 best experience with a contractor.
274</p>
275<!-- /wp:paragraph --><cite>Chris W.</cite></blockquote>
276<!-- /wp:quote --></div></div><div class="masonry-css-grid-item rbqs"><div class="masonry-css-grid-item-inner"><a class="review-source" target="_blank" href="https://nextdoor.com/pages/showtime-express-plumbing-winder-ga/"><svg xmlns="http://www.w3.org/2000/svg" width="29.899" height="24" viewBox="0 0 29.899 24"><path d="M.075,.816C.075,.405,.408,.072,.819,.072H6.773c.411,0,.744,.333,.744,.744V3.793c0,.822,.666,1.488,1.488,1.488h.23C11.212,2.152,14.703,.072,18.681,.072c6.165,0,11.164,4.998,11.164,11.164v11.908c0,.411-.333,.744-.744,.744h-5.954c-.411,0-.744-.333-.744-.744V11.235c0-2.055-1.666-3.721-3.721-3.721s-3.721,1.666-3.721,3.721v11.9
27608c0,.411-.333,.744-.744,.744h-5.954c-.411,0-.744-.333-.744-.744V11.235h-1.488C2.74,11.235,.075,8.57,.075,5.281V.816Zm1.488,.744v3.721c0,2.466,1.999,4.465,4.465,4.465h2.259c.206,0,.404,.086,.544,.237,.141,.151,.212,.354,.198,.56-.016,.228-.024,.459-.024,.692v11.164h4.465V11.235c0-2.877,2.332-5.21,5.21-5.21s5.21,2.332,5.21,5.21v11.164h4.465V11.235c0-5.343-4.332-9.675-9.675-9.675-3.58,0-6.707,1.944-8.381,4.838-.133,.23-.379,.372-.644,.372h-.65c-1.644,0-2.977-1.333-2.977-2.977V1.56H1.563Z" fill="#84bf04" fill-rule="evenodd"/></svg></a>
277<!-- wp:quote {"className":""} -->
278<blockquote class="wp-block-quote"><!-- wp:paragraph -->
279<p>We recently used Showtime Express Plumbing and definitely recommend. After dealing with two other companies Showtime really came through for us! Fair pricing and they came out quickly. Will be our go to plumber from here on out.</p><!-- /wp:paragraph -->
280<cite>L. C.</cite></blockquote>
281<!-- /wp:quote -->
282</div></div><div class="masonry-css-grid-item rbqs"><div class="masonry-css-grid-item-inner"><a class="review-source" target="_blank" href="https://nextdoor.com/pages/showtime-express-plumbing-winder-ga/"><svg xmlns="http://www.w3.org/2000/svg" width="29.899" height="24" viewBox="0 0 29.899 24"><path d="M.075,.816C.075,.405,.408,.072,.819,.072H6.773c.411,0,.744,.333,.744,.744V3.793c0,.822,.666,1.488,1.488,1.488h.23C11.212,2.152,14.703,.072,18.681,.072c6.165,0,11.164,4.998,11.164,11.164v11.908c0,.411-.333,.744-.744,.744h-5.954c-.411,0-.744-.333-.744-.744V11.235c0-2.055-1.666-3.721-3.721-3.721s-3.721,1.666-3.721,3.721v11.908c0,.411-.333,.744-.744,.744h-5.954c-.411,0-.744-.333-.744-.744V11.235h-1.488C2.74,11.235,.075,8.57,.075,5.281V.816Zm1.488,.744v3.721c0,2.466,1.999,4.465,4.465,4.465h2.259c.206,0,.404,.086,.544,.237,.141,.151,.212,.354,.198,.56-.016,.228-.024,.459-.024,.692v11.164h4.465V11.235c0-2.877,2.332-5.21,5.21-5.21s5.21,2.332,5.21,5.21v11.164h4.465V11.235c0-5.343-4.332-9.675-9.675-9.675-3.58,0-6.707,1.944-8.381,4.838-.133,.23-.379,.372-.644,.372h-.65c-1.644,0-2.977-1.333-2.977-2.977V1.56H1.563Z" fill="#84bf04" fill-rule="evenodd"/></svg></a><!-- wp:quote {"className":""} -->
283<blockquote class="wp-block-quote"><!-- wp:paragraph -->
284<p>I had the pleasure of doing business with Showtime Express Plumbing today. They were able to schedule me right away. I had a leak under my kitchen sink from &#8220;DIY&#8221; repair.</p><!-- /wp:paragraph -->
285<!-- wp:paragraph --><p>Chris was able to pinpoint the problem right away and even gave me a few pointers! It was such a simple fix that he didn&#8217;t bother to charge me!!  </p><!-- /wp:paragraph -->
286<!-- wp:paragraph --><p>If you need an honest, reliable, professional plumber, don&#8217;t hesitate to contact Showtime Express Plumbing!</p><!-- /wp:paragraph --><cite>J. T.</cite></blockquote>
287<!-- /wp:quote -->
288</div></div><div class="masonry-css-grid-item rbqs"><div class="masonry-css-grid-item-inner"><a class="review-source" target="_blank" href="https://nextdoor.com/pages/showtime-express-plumbing-winder-ga/"><svg xmlns="http://www.w3.org/2000/svg" width="29.899" height="24" viewBox="0 0 29.899 24"><path d="M.075,.816C.075,.405,.408,.072,.819,.072H6.773c.411,0,.744,.333,.744,.744V3.793c0,.822,.666,1.488,1.488,1.488h.23C11.212,2.152,14.703,.072,18.681,.072c6.165,0,11.164,4.998,11.164,11.164v11.908c0,.411-.333,.744-.744,.744h-5.954c-.411,0-.744-.333-.744-.744V11.235c0-2.055-1.666-3.721-3.721-3.721s-3.721,1.666-3.721,3.721v11.908c0,.411-.333,.744-.744,.744h-5.954c-.411,0-.744-.333-.744-.744V11.235h-1.488C2.74,11.235,.075,8.57,.075,5.281V.816Zm1.488,.744v3.721c0,2.466,1.999,4.465,4.465,4.465h2.259c.206,0,.404,.086,.544,.237,.141,.151,.212,.354,.198,.56-.016,.228-.024,.459-.024,.692v11.164h4.465V11.235c0-2.877,2.332-5.21,5.21-5.21s5.21,2.332,5.21,5.21v11.164h4.465V11.235c0-5.343-4.332-9.675-9.675-9.675-3.58,0-6.707,1.944-8.381,4.838-.133,.23-.379,.372-.644,.372h-.65c-1.644,0-2.977-1.333-2.977-2.977V1.56H1.563Z" fill="#84bf04" fill-rule="evenodd"/></svg></a><!-- wp:quote {"className":""} -->
289<blockquote class="wp-block-quote"><!-- wp:paragraph -->
290<p>Showtime Express Plumbing. Ethan was AWESOME!!!! He gave us a fair and honest price within the national average for the job we needed done. He also used upgraded materials for the pipes that can withstand 500psi. He did not overcharge on the supplies needed at all. The main part he installed will last us 15 years.</p>
291<!-- /wp:paragraph -->
292
293<!-- wp:paragraph -->
294<p>He was able to do the job in 45 minutes, while some other plumbers told us at least 2 hours with a much higher estimate.</p>
295<!-- /wp:paragraph -->
296
297<!-- wp:paragraph -->
298<p>I got several estimates and there were a few other less expensive contractors we could have used, but Ethan&#8217;s company had more good reviews which to me equals more happy customers. He also gave us a 1 year warranty on the work, which puts my Dad&#8217;s mind at ease.</p>
299<!-- /wp:paragraph -->
300
301<!-- wp:paragraph -->
302<p>Our faith is restored, as we have had so many bad experiences in the past with contractors taking advantage of my 80 year old father who really doesn&#8217;t know how to navigate the internet and read reviews or do research on the backgrounds of contractors before he hires them.</p>
303<!-- /wp:paragraph -->
304
305<!-- wp:paragraph -->
306<p>I look forward to working with Ethan again when we eventually install a kitchenette in the basement! 🙂</p>
307<!-- /wp:paragraph --><cite>C.L.</cite></blockquote>
308<!-- /wp:quote --></div></div><div class="masonry-css-grid-item rbqs"><div class="masonry-css-grid-item-inner"><a class="review-source" target="_blank" href="https://www.yelp.com/biz/showtime-express-plumbing-winder"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewB
308ox="0 0 24 24"><path fill="#DF0906" d="M12.079,17.579v1.662c-.012,2.548-.046,3.878-.102,3.99-.145,.28-.472,.482-.867,.523h-.005c-.038,0-.084,0-.131,0-1.08,0-2.105-.184-3.022-.512l.044,.014c-1.08-.237-2.013-.639-2.79-1.17l.006,.005c-.145-.128-.247-.288-.289-.464v-.006c-.003-.015-.004-.032-.004-.049,0-.105,.026-.204,.073-.296l-.003,.006c.178-.233,.371-.434,.587-.619l-.004,.004c.341-.323,1.374-1.265,3.099-2.827,.012,0,.353-.305,1.024-.916,.166-.161,.4-.276,.669-.32h.008c.097-.018,.209-.027,.322-.027,.189,0,.37,.026,.536,.075l-.01-.003c.262,.08,.48,.211,.638,.377l.003,.003c.137,.141,.219,.318,.219,.51,0,.014,0,.028-.001,.042v-.002h.001Zm-2.552-3.287v.029c0,.422-.374,.778-.883,.885l-.009,.002-2.055,.51c-3.139,.768-4.806,1.152-5,1.152-.406-.018-.75-.202-.919-.465l-.003-.005c-.159-.288-.262-.623-.29-.973v-.009c-.041-.307-.064-.664-.064-1.025,0-.407,.029-.809,.087-1.204l-.006,.049c.027-.596,.212-1.153,.526-1.655l-.014,.025c.171-.251,.51-.42,.901-.42,.02,0,.041,0,.061,0h-.003c1.419,.348,2.564,.69,3.678,1.076l-.219-.067,1.969,.615,1.438,.445c.261,.077,.471,.217,.605,.395l.003,.004c.124,.163,.197,.36,.197,.569,0,.022-.001,.046-.003,.068v-.005Zm14.147,3.888c-.319,.821-.858,1.528-1.571,2.11l.004-.003c-.603,.684-1.379,1.242-2.288,1.649l-.033,.014c-.129,.048-.281,.076-.443,.076-.241,0-.463-.064-.638-.169h.003c-.16-.086-1.209-1.338-3.15-3.754l-.805-1.007c-.128-.141-.203-.316-.203-.504,0-.034,.003-.068,.008-.103v.004c.032-.232,.154-.438,.335-.604v.002c.215-.244,.577-.403,.986-.403,.156,0,.306,.023,.441,.065l-.008-.002c.012,.009,.691,.184,2.038,.523,2.32,.574,3.701,.921,4.144,1.041,.306,.067,.573,.158,.818,.275l-.014-.006c.244,.146,.4,.372,.4,.625,0,.062-.009,.121-.027,.179v-.005l.003-.002ZM12.165,9.909c.057,.891-.25,1.423-.921,1.597-.662,.148-1.313-.162-1.952-.929L2.819,2.753c-.02-.06-.031-.127-.031-.198,0-.244,.137-.462,.356-.613h.001c1.003-.562,2.199-.973,3.498-1.168l.056-.007c.94-.276,2.029-.435,3.167-.435,.237,0,.472,.007,.704,.021h-.031c.409,.053,.734,.284,.838,.583v.006c.035,.156,.161,1.489,.377,3.999,.217,2.509,.354,4.166,.412,4.97v-.002Zm11.333,1.414c.006,.034,.01,.073,.01,.113,0,.273-.179,.513-.453,.657l-.004,.002c-.171,.087-2.048,.463-5.629,1.126-.765,.131-1.285,.231-1.558,.301l.018-.025c-.09,.019-.192,.029-.298,.029-.178,0-.347-.03-.498-.084l.008,.002c-.266-.09-.482-.234-.631-.414l-.004-.005c-.16-.155-.257-.354-.257-.569s.097-.415,.26-.571l-.003,.002c.012-.009,.44-.454,1.285-1.336,1.427-1.492,2.283-2.382,2.569-2.67,.173-.193,.365-.36,.58-.508l.004-.002c.165-.083,.367-.132,.585-.132,.194,0,.377,.039,.535,.109l-.005-.002c.867,.456,1.575,1.041,2.089,1.722l.018,.025c.64,.615,1.119,1.35,1.377,2.151l.01,.039-.006,.038Z"/></svg></a><!-- wp:quote {"className":""} -->
309<blockquote class="wp-block-quote"><!-- wp:paragraph -->
310<p>Our pipes busted on Christmas Eve. We called after Christmas and got a friendly person on the other side. She was able to schedule a plumber for the next day. Highly recommend. The plumber went above and beyond to repair our pipes. This will be our go to plumber business for now on!
311</p>
312<!-- /wp:paragraph --><cite>Linda O.</cite></blockquote>
313<!-- /wp:quote --></div></div><div class="masonry-css-grid-item rbqs"><div class="masonry-css-grid-item-inner"><a class="review-source" target="_blank" href="https://www.thumbtack.com/ga/winder/water-heater-repair/showtime-express-plumbing/service/416753471147540482"><svg viewBox="0 0 69.36 69.39" xmlns="http://www.w3.org/2000/svg" width="40px" height="40px"><path d="m34.75 2.5c17.7.04 32.29 14.73 32.11 32.32-.19 17.71-14.6 32.07-32.17 32.06-17.7 0-32.21-14.54-32.18-32.25.03-17.74 14.52-32.18 32.25-32.14z" fill="none" stroke="#009FD9" stroke-miterlimit="10" stroke-width="4"/><path d="m19.09 26.6v-6.88h31.12v6.88z" fill="#009FD9"/><path d="m38.07 29.38c0 7.28.26 13.95-.13 20.58-.15 2.51-1.79 4.93-2.95 7.92-2.32-3.27-3.84-6.14-3.96-9.48-.17-4.67-.22-9.36-.07-14.03.03-1 .95-2.33 1.84-2.87 1.58-.95 3.45-1.42 5.26-2.12z" fill="#009FD9" /></svg></a><!-- wp:quote {"className":""} -->
314<blockquote class="wp-block-quote"><!-- wp:paragraph -->
315<p>Jon was very personable and professional. He was on time and completed our water heater install with no issues. Communication with the office went very smoothly. They were cooperative and cordial when I had to reschedule because the water heater I supplied was damaged and needed to be exch
315anged. I would definitely recommend Showtime Express and I wouldn&#8217;t hesitate to hire them again.
316</p>
317<!-- /wp:paragraph --><cite>Christina G.</cite></blockquote>
318<!-- /wp:quote --></div></div><div class="masonry-css-grid-item rbqs"><div class="masonry-css-grid-item-inner"><a class="review-source" target="_blank" href="https://www.thumbtack.com/ga/winder/water-heater-repair/showtime-express-plumbing/service/416753471147540482"><svg viewBox="0 0 69.36 69.39" xmlns="http://www.w3.org/2000/svg" width="40px" height="40px"><path d="m34.75 2.5c17.7.04 32.29 14.73 32.11 32.32-.19 17.71-14.6 32.07-32.17 32.06-17.7 0-32.21-14.54-32.18-32.25.03-17.74 14.52-32.18 32.25-32.14z" fill="none" stroke="#009FD9" stroke-miterlimit="10" stroke-width="4"/><path d="m19.09 26.6v-6.88h31.12v6.88z" fill="#009FD9"/><path d="m38.07 29.38c0 7.28.26 13.95-.13 20.58-.15 2.51-1.79 4.93-2.95 7.92-2.32-3.27-3.84-6.14-3.96-9.48-.17-4.67-.22-9.36-.07-14.03.03-1 .95-2.33 1.84-2.87 1.58-.95 3.45-1.42 5.26-2.12z" fill="#009FD9" /></svg></a><!-- wp:quote {"className":""} -->
319<blockquote class="wp-block-quote"><!-- wp:paragraph -->
320<p>I was very impressed with the people on the ground from Showtime Express Plumbing. Angela was so very helpful in helping to provide the needed documentation to move this claim. She was more than helpful and provided additional support to me in getting what was needed for the work to start.
321</p>
322<!-- /wp:paragraph --><cite>Cleaster J.</cite></blockquote>
323<!-- /wp:quote --></div></div><div class="masonry-css-grid-item rbqs"><div class="masonry-css-grid-item-inner"><a class="review-source" target="_blank" href="https://maps.app.goo.gl/VWD8BdscKaQWyi426"><svg width="25px" height="25px" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" fill="none"><path fill="#4285F4" d="M14.9 8.161c0-.476-.039-.954-.121-1.422h-6.64v2.695h3.802a3.24 3.24 0 01-1.407 2.127v1.75h2.269c1.332-1.22 2.097-3.02 2.097-5.15z"/><path fill="#34A853" d="M8.14 15c1.898 0 3.499-.62 4.665-1.69l-2.268-1.749c-.631.427-1.446.669-2.395.669-1.836 0-3.393-1.232-3.952-2.888H1.85v1.803A7.044 7.044 0 008.14 15z"/><path fill="#FBBC04" d="M4.187 9.342a4.17 4.17 0 010-2.68V4.859H1.849a6.97 6.97 0 000 6.286l2.338-1.803z"/><path fill="#EA4335" d="M8.14 3.77a3.837 3.837 0 012.7 1.05l2.01-1.999a6.786 6.786 0 00-4.71-1.82 7.042 7.042 0 00-6.29 3.858L4.186 6.66c.556-1.658 2.116-2.89 3.952-2.89z"/></svg></a><!-- wp:quote {"className":""} -->
324<blockquote class="wp-block-quote"><!-- wp:paragraph -->
325<p>Amazing customer service from Angela and Chris! Kept me up to date throughout the entire process &#8211; went above and beyond dealing with my home warranty company. Fast, efficient repairs and scheduled quickly. Definitely recommend! Worthy of their 5 star reviews!</p>
326<!-- /wp:paragraph --><cite>Renee C.</cite></blockquote>
327<!-- /wp:quote --></div></div></div></div></div>
328
329
330<div style="height:100px" aria-hidden="true" class="wp-block-spacer responsive-spacer"></div>
331
332
333
334<p class="has-text-align-center wp-block-paragraph">To see more of our excellent reviews, please check out our social networks:</p>
335
336
337<div class="flex-center-social"><span class="social-networks"><span><a href="https://maps.app.goo.gl/VWD8BdscKaQWyi426" target="_blank" title="Check us out on Google"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12.238,.096c2.473-.024,4.887,.751,6.884,2.211l-1.921,1.92c-1.457-1.008-3.191-1.539-4.962-1.518-3.293,.017-6.32,1.812-7.915,4.693l-1.413-1.095-.773-.6C4.299,2.208,8.124,.084,12.238,.096Z"/><path d="M.977,15.828C.132,13.34,.132,10.642,.977,8.154l2.355,1.826c-.301,1.323-.301,2.697,0,4.02l-2.355,1.827Z"/><path d="M12.238,23.885c-4.114,.013-7.939-2.112-10.102-5.612l.5-.388,1.686-1.308c1.594,2.882,4.622,4.677,7.915,4.694,1.514,.018,3.011-.322,4.369-.992l2.236,1.736c-1.966,1.267-4.266,1.918-6.605,1.87Z"/><path d="M20.863,20.236l-.242-.188-1.82-1.413c.954-1.031,1.596-2.313,1.85-3.695,.133-.717-.34-1.407-1.057-1.541-.08-.015-.161-.022-.242-.022h-5.791v-2.469h9.976c.045,.457,.068,.919,.068,1.382,.077,2.893-.897,5.715-2.741,7.945h0Z"/></svg><span class="screen-reader-text">Check us out on Google</span></a></span><span><a href="https://www.thumbtack.com/ga/winder/water-heater-repair/showtime-express-plumbing/service/416753471147540482" target="_blank" title="Check us out on Thumbtack"><svg viewBox="0 0 69.36 69.39" xmlns="http://www.w3.org/2000/svg" width="40px" height="40px"><path d="m34.75 2.5c17.7.04 32.29 14.73 32.11 32.32-.19 17.71-14.6 32.07-32.17 32.06-17.7 0-32.21-14.54-32.18-32.25.03-17.74 14.52-32.18 32.25-32.14z" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="4"/><path d="m19.09 26.6v-6.88h31.12v6.88z"/><path d="m38.07 29.38c0 7.28.26 13.95-.13 20.58-.15 2.51-1.79 4.93-2.95 7.92-2.32-3.27-3.84-6.14-3.96-9.48-.17-4.67-.22-9.36-.07-14.03.03-1 .95-2.33 1.84-2.87 1.58-.95 3.45-1.42 5.26-2.12z"/></svg><span class="screen-reader-text">Check us out on Thumbtack</span></a></span><span><a href="https://www.yelp.com/biz/showtime-express-plumbing-winder" target="_blank" title="Check us out on Yelp"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
337<path d="M12.079,17.579v1.662c-.012,2.548-.046,3.878-.102,3.99-.145,.28-.472,.482-.867,.523h-.005c-.038,0-.084,0-.131,0-1.08,0-2.105-.184-3.022-.512l.044,.014c-1.08-.237-2.013-.639-2.79-1.17l.006,.005c-.145-.128-.247-.288-.289-.464v-.006c-.003-.015-.004-.032-.004-.049,0-.105,.026-.204,.073-.296l-.003,.006c.178-.233,.371-.434,.587-.619l-.004,.004c.341-.323,1.374-1.265,3.099-2.827,.012,0,.353-.305,1.024-.916,.166-.161,.4-.276,.669-.32h.008c.097-.018,.209-.027,.322-.027,.189,0,.37,.026,.536,.075l-.01-.003c.262,.08,.48,.211,.638,.377l.003,.003c.137,.141,.219,.318,.219,.51,0,.014,0,.028-.001,.042v-.002h.001Zm-2.552-3.287v.029c0,.422-.374,.778-.883,.885l-.009,.002-2.055,.51c-3.139,.768-4.806,1.152-5,1.152-.406-.018-.75-.202-.919-.465l-.003-.005c-.159-.288-.262-.623-.29-.973v-.009c-.041-.307-.064-.664-.064-1.025,0-.407,.029-.809,.087-1.204l-.006,.049c.027-.596,.212-1.153,.526-1.655l-.014,.025c.171-.251,.51-.42,.901-.42,.02,0,.041,0,.061,0h-.003c1.419,.348,2.564,.69,3.678,1.076l-.219-.067,1.969,.615,1.438,.445c.261,.077,.471,.217,.605,.395l.003,.004c.124,.163,.197,.36,.197,.569,0,.022-.001,.046-.003,.068v-.005Zm14.147,3.888c-.319,.821-.858,1.528-1.571,2.11l.004-.003c-.603,.684-1.379,1.242-2.288,1.649l-.033,.014c-.129,.048-.281,.076-.443,.076-.241,0-.463-.064-.638-.169h.003c-.16-.086-1.209-1.338-3.15-3.754l-.805-1.007c-.128-.141-.203-.316-.203-.504,0-.034,.003-.068,.008-.103v.004c.032-.232,.154-.438,.335-.604v.002c.215-.244,.577-.403,.986-.403,.156,0,.306,.023,.441,.065l-.008-.002c.012,.009,.691,.184,2.038,.523,2.32,.574,3.701,.921,4.144,1.041,.306,.067,.573,.158,.818,.275l-.014-.006c.244,.146,.4,.372,.4,.625,0,.062-.009,.121-.027,.179v-.005l.003-.002ZM12.165,9.909c.057,.891-.25,1.423-.921,1.597-.662,.148-1.313-.162-1.952-.929L2.819,2.753c-.02-.06-.031-.127-.031-.198,0-.244,.137-.462,.356-.613h.001c1.003-.562,2.199-.973,3.498-1.168l.056-.007c.94-.276,2.029-.435,3.167-.435,.237,0,.472,.007,.704,.021h-.031c.409,.053,.734,.284,.838,.583v.006c.035,.156,.161,1.489,.377,3.999,.217,2.509,.354,4.166,.412,4.97v-.002Zm11.333,1.414c.006,.034,.01,.073,.01,.113,0,.273-.179,.513-.453,.657l-.004,.002c-.171,.087-2.048,.463-5.629,1.126-.765,.131-1.285,.231-1.558,.301l.018-.025c-.09,.019-.192,.029-.298,.029-.178,0-.347-.03-.498-.084l.008,.002c-.266-.09-.482-.234-.631-.414l-.004-.005c-.16-.155-.257-.354-.257-.569s.097-.415,.26-.571l-.003,.002c.012-.009,.44-.454,1.285-1.336,1.427-1.492,2.283-2.382,2.569-2.67,.173-.193,.365-.36,.58-.508l.004-.002c.165-.083,.367-.132,.585-.132,.194,0,.377,.039,.535,.109l-.005-.002c.867,.456,1.575,1.041,2.089,1.722l.018,.025c.64,.615,1.119,1.35,1.377,2.151l.01,.039-.006,.038Z"/></svg><span class="screen-reader-text">Check us out on Yelp</span></a></span><span><a href="https://nextdoor.com/pages/showtime-express-plumbing-winder-ga/" target="_blank" title="Check us out on Nextdoor"><svg xmlns="http://www.w3.org/2000/svg" width="29.899" height="24" viewBox="0 0 29.899 24"><path d="M.075,.816C.075,.405,.408,.072,.819,.072H6.773c.411,0,.744,.333,.744,.744V3.793c0,.822,.666,1.488,1.488,1.488h.23C11.212,2.152,14.703,.072,18.681,.072c6.165,0,11.164,4.998,11.164,11.164v11.908c0,.411-.333,.744-.744,.744h-5.954c-.411,0-.744-.333-.744-.744V11.235c0-2.055-1.666-3.721-3.721-3.721s-3.721,1.666-3.721,3.721v11.908c0,.411-.333,.744-.744,.744h-5.954c-.411,0-.744-.333-.744-.744V11.235h-1.488C2.74,11.235,.075,8.57,.075,5.281V.816Zm1.488,.744v3.721c0,2.466,1.999,4.465,4.465,4.465h2.259c.206,0,.404,.086,.544,.237,.141,.151,.212,.354,.198,.56-.016,.228-.024,.459-.024,.692v11.164h4.465V11.235c0-2.877,2.332-5.21,5.21-5.21s5.21,2.332,5.21,5.21v11.164h4.465V11.235c0-5.343-4.332-9.675-9.675-9.675-3.58,0-6.707,1.944-8.381,4.838-.133,.23-.379,.372-.644,.372h-.65c-1.644,0-2.977-1.333-2.977-2.977V1.56H1.563Z" fill-rule="evenodd"/></svg><span class="screen-reader-text">Check us out on Nextdoor</span></a></span><span><a href="https://www.homeadvisor.com/rated.ShowtimeExpressPlumbing.112790611.html" target="_blank" title="Check us out on HomeAdvisor"><svg xmlns="http://www.w3.org/2000/svg"  viewBox="0 0 24 24" width="35px" height="35px"><path d="M 8.9609375 2 C 8.7689375 2 8.5823125 2.0759375 8.4453125 2.2109375 L 1.0078125 9.5859375 C 0.6158125 9.9749375 0.611 10.608 1 11 C 1.389 11.392 2.0220625 11.395812 2.4140625 11.007812 L 9.0292969 4.4472656 L 14.332031 9.7753906 C 14.47
3375031 9.9193906 14.671 10 14.875 10 L 23.03125 10 C 23.25725 10 23.368078 9.7253594 23.205078 9.5683594 L 15.529297 2.203125 C 15.393297 2.073125 15.212438 2 15.023438 2 L 8.9609375 2 z M 9.0195312 7.2714844 L 4 12.240234 L 4 15.800781 C 4 16.985781 4.9614844 17.947266 6.1464844 17.947266 L 10.71875 17.947266 L 15.507812 23.056641 C 15.684812 23.245641 16 23.119328 16 22.861328 L 16 17.947266 L 17.853516 17.947266 C 19.038516 17.947266 20 16.985781 20 15.800781 L 20 12 L 13.724609 12 L 9.0195312 7.2714844 z"/></svg><span class="screen-reader-text">Check us out on HomeAdvisor</span></a></span><span><a href="https://www.angi.com/companylist/us/ga/winder/showtime-express-plumbing-reviews-1.htm" target="_blank" title="Check us out on Angi"><svg xmlns="http://www.w3.org/2000/svg" width="17.94" height="24" viewBox="0 0 17.94 24"><path d="M17.72,21.62h-1.78c-.4,0-.81-.03-1.21,0-.44,.04-.5-.21-.56-.55-.15-.85-.25-1.72-.51-2.54-.48-1.51-1.32-2.77-2.83-3.46-.19-.09-.4-.14-.67-.23-.11,.82-.19,1.58-.32,2.34-.2,1.11-.38,2.23-.68,3.32-.54,1.92-1.77,3.16-3.81,3.39-1.68,.19-3.04-.48-4.04-1.82C.02,20.36-.07,18.44,.64,16.51c1.05-2.88,3.19-4.54,6.16-5.15,.43-.09,.61-.26,.68-.7,.43-2.83,.9-5.66,1.36-8.49,.09-.58,.19-1.16,.27-1.74,.04-.26,.16-.36,.43-.36,1.46,.01,2.92,.01,4.38,0,.33,0,.43,.15,.47,.43,.87,5.5,1.75,11.01,2.63,16.51,.23,1.44,.47,2.87,.7,4.31,.01,.07,0,.15,0,.29ZM6.76,14.87c-1.58,.27-3.13,2.1-3.19,3.66-.02,.59,.04,1.14,.45,1.61,.58,.67,1.36,.6,1.77-.19,.13-.24,.22-.51,.27-.78,.17-.93,.32-1.86,.47-2.79,.08-.49,.15-.99,.22-1.51Zm6.27-2.48c-.4-3.05-.75-6.03-1.29-9-.14,.21-.21,.42-.24,.64-.12,.87-.23,1.75-.34,2.62-.19,1.49-.4,2.97-.57,4.46-.02,.13,.07,.37,.17,.41,.71,.3,1.44,.55,2.27,.87Z"/></svg><span class="screen-reader-text">Check us out on Angi</span></a></span><span><a href="https://www.facebook.com/ShowtimeExpressPlumbing" target="_blank" title="Follow us on Facebook"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 24 24"><path d="M12.02,.27C5.52,.27,.23,5.56,.23,12.06s5.29,11.79,11.79,11.79,11.79-5.29,11.79-11.79S18.53,.27,12.02,.27Zm.62,21.8V12.89h2.9v-1.66h-2.9v-.65c0-1.84,.47-3.47,2.33-3.47,.62,0,1.07,.12,1.39,.27l.3-1.69c-.42-.17-1.09-.35-1.86-.35-1.02,0-2.11,.32-2.93,1.12-1.02,.97-1.39,2.51-1.39,4.19v.57h-1.69v1.66h1.69v9.08c-4.81-.74-8.5-4.9-8.5-9.91C1.98,6.52,6.49,2.02,12.02,2.02s10.04,4.5,10.04,10.04-4.17,9.69-9.42,10.01Z"/></svg><span class="screen-reader-text">Follow us on Facebook</span></a></span></span></div>
338</div></article></main></div><div class="after-content-section is-lazy-content"><noscript>
339	
340	<span class="after-content-section-mask" aria-hidden="true"></span>
341	<span class="after-content-section-mask-border" aria-hidden="true"></span>
342	
343	<div class="after-content-section-inner">
344	
345	<header class="section-header ">
346	<h2 class="section-title balance-text">Plumbing Services in Winder, GA</h2>
347	<span aria-hidden="true" class="section-decoration"><span></span></span>
348	</header><div class="after-content-query-container"><article class="has-featured-image entry-item post-25 services type-services status-publish has-post-thumbnail entry"><div class="after-content-query-entry-wrapper"><div class="archive-image"><a class="text-decoration-none" href="https://showtimeexpressplumbing.com/plumbing-services/plumbing-repairs/"><span class="screen-reader-text">Plumbing Repairs</span><div class="entry-archive-img-container"><span class="entry-archive-img" style="background-image: url( https://showtimeexpressplumbing.com/wp-content/uploads/2024/09/Plumbing-Repairs-800x450.webp )"></span></div></a></div><div class="archive-content"><a  class="text-decoration-none" href="https://showtimeexpressplumbing.com/plumbing-services/plumbing-repairs/"><h2>Plumbing Repairs</h2><div class="archive-excerpt"><p>Our skilled plumbers quickly resolve leaks, broken pipes, and various plumbing issues to restore your system.</p><p class="read-more"><span>Read More&nbsp;<span class="ha ha-arrow-right-solid" aria-hidden="true"></span></span></p></div></a></div></div></article><article class="has-featured-image entry-item post-27 services type-services status-publish has-post-thumbnail entry"><div class="after-content-query-entry-wrapper"><div class="archive-image"><a class="text-decoration-none" href="https://showtimeexpressplumbing.com/plumbing-services/water-heater-repair-and-installation/"><span class="screen-reader-text">Water Heater Repairs & Installation</span><div class="entry-archive-img-container"><span class="entry-archive-img" style="background-image: url( https://showtimeexpressplumbing.com/wp-content/uploads/2024/09/Water-Heater-Installation-and-Repair-800x450.webp )"></span></div></a></div><div class="archive-content"><a  class="text-decoration-none" href="https://showtimeexpressplumbing.com/plumbing-services/water-heater-repair-and-installation/"><h2>Water Heater Repairs & Installation</h2><div class="archive-excerpt"><p>We provide expert installation and repair for both traditional and tankless water heaters.</p><p class="read-more"><span>Read More&nbsp;<span class="ha ha-arrow-right-solid" aria-hidden="true"></span></span></p></div></a></div></div></article><article class="has-featured-image entry-item post-40 services type-services status-publish has-post-thumbnail entry"><div class="after-content-query-entry-wrapper"><div class="archive-image"><a class="text-decoration-none" href="https://showtimeexpressplumbing.com/plumbing-services/clogged-drains/"><span class="screen-reader-text">Clogged Drains</span><div class="entry-archive-img-container"><span class="entry-archive-img" style="background-image: url( https://showtimeexpressplumbing.com/wp-content/uploads/2024/09/Drain-Cleaning-800x450.webp )"></span></div></a></div><div class="archive-content"><a  class="text-decoration-none" href="https://showtimeexpressplumbing.com/plumbing-services/clogged-drains/"><h2>Clogged Drains</h2><div class="archive-excerpt"><p>Our team excels in professional drain cleaning to eliminate blockages and ensure smooth drainage.</p><p class="read-more"><span>Read More&nbsp;<span class="ha ha-arrow-right-solid" aria-hidden="true"></span></span></p></div></a></div></div></article><article class="has-featured-image entry-item post-29 services type-services status-publish has-post-thumbnail entry"><div class="after-content-query-entry-wrapper"><div class="archive-image"><a class="text-decoration-none" href="https://showtimeexpressplumbing.com/plumbing-services/slab-leaks/"><span class="screen-reader-text">Slab Leaks</span><div class="entry-archive-img-container"><span class="entry-archive-img" style="background-image: url( https://showtimeexpressplumbing.com/wp-content/uploads/2024/09/Slab-Leak-Detection-Repair-800x450.webp )"></span></div></a></div><div class="archive-content"><a  class="text-decoration-none" href="https://showtimeexpressplumbing.com/plumbing-services/slab-leaks/"><h2>Slab Leaks</h2><div class="archive-excerpt"><p>We're pros in detecting and repairing slab leaks, preventing serious damage to your home's foundation.</p><p class="read-more"><span>Read More&nbsp;<span class="ha ha-arrow-right-solid" aria-hidden="true"></span></span></p></div></a></div></div></article><article class="has-featured-image entry-item post-33 services type-services status-publish has-post-thumbnail entry"><div class="after-content-query-entry-wrapper"><div class="archive-image"><a class="text-decoration-none" href="https://showtimeexpressplumbing.com/plumbing-services/remodeling/"><span class="screen-reader-text">Remodeling</span><div class="entry-archive-img-container"><span class="entry-archive-img" style="background-image: url( https://showtimeexpressplumbing.com/wp-content/uploads/2024/09/Plumbing-Remodeling-1-800x450.webp )"></span></div></a></div><div class="archive-content"><a  class="text-decoration-none" href="https://showtimeexpressplumbing.com/plumbing-services/remodeling/"><h2>Remodeling</h2><div class="archive-excerpt"><p>From kitchens to bathrooms and basements, our plumbers expertly install fixtures and plumbing for your remodeling projects.</p><p class="read-more"><span>Read More&nbsp;<span class="ha ha-arrow-right-solid" aria-hidden="true"></span></span></p></div></a></div></div></article><article class="has-featured-image entry-item post-38 services type-services status-publish has-post-thumbnail entry"><div class="after-content-query-entry-wrapper"><div class="archive-image"><a class="text-decoration-none" href="https://showtimeexpressplumbing.com/plumbing-services/repiping/"><span class="screen-reader-text">Repiping</span><div class="entry-archive-img-container"><span class="entry-archive-img" style="background-image: url( https://showtimeexpressplumbing.com/wp-content/uploads/2024/09/Repiping-1-800x450.webp )"></span></div></a></div><div class="archive-content"><a  class="text-decoration-none" href="https://showtimeexpressplumbing.com/plumbing-services/repiping/"><h2>Repiping</h2><div class="archive-excerpt"><p>Enhance your plumbing with our repiping services, replacing old, damaged pipes to ensure optimal flow.<
348/p><p class="read-more"><span>Read More&nbsp;<span class="ha ha-arrow-right-solid" aria-hidden="true"></span></span></p></div></a></div></div></article><article class="has-featured-image entry-item post-1307 services type-services status-publish has-post-thumbnail entry"><div class="after-content-query-entry-wrapper"><div class="archive-image"><a class="text-decoration-none" href="https://showtimeexpressplumbing.com/plumbing-services/emergency-plumbing-services/"><span class="screen-reader-text">Emergency Plumbing Services</span><div class="entry-archive-img-container"><span class="entry-archive-img" style="background-image: url( https://showtimeexpressplumbing.com/wp-content/uploads/2024/09/Emergency-Plumbing-in-Winder-GA-800x481.jpg )"></span></div></a></div><div class="archive-content"><a  class="text-decoration-none" href="https://showtimeexpressplumbing.com/plumbing-services/emergency-plumbing-services/"><h2>Emergency Plumbing Services</h2><div class="archive-excerpt"><p>Facing a plumbing emergency? Our 24/7 services are ready to tackle any urgent repair needs.</p><p class="read-more"><span>Read More&nbsp;<span class="ha ha-arrow-right-solid" aria-hidden="true"></span></span></p></div></a></div></div></article></div></div></noscript></div></div></div><div class="cta-footer footer-element"><div class="cta-footer-inner"><img loading="lazy" width="348" height="375" alt="" src="http://showtimeexpressplumbing.com/wp-content/uploads/2024/09/PlumberFigure.svg"/><p class="footer-cta-headline">Your <span>One-Call</span> for All Your <span>Plumbing Needs</span> — <a class="text-nowrap " href="tel:7&#55;0&#56;67&#50;&#53;3&#55;">(770) 867-2537</a></p></div></div><footer class="site-footer aside-area footer-element is-dark-theme" id="site-footer"><div class="footer-widget-wrap"><div class="widget-area footer-widgets-1"><div id="custom_html-2" class="widget_text widget-odd widget-last widget-first widget-1 widget widget_custom_html"><div class="widget-title widgettitle aside-widget-title is-lazy-content"><noscript><span>Contact Us</span></noscript></div><div class="textwidget custom-html-widget"><div class="contact-box"><h3 class="contact-section contact-company-name ">Showtime Express Plumbing</h3><div class="contact-section contact-phone-no "><a class="text-nowrap " href="tel:7&#55;086&#55;2&#53;3&#55;">(770) 867-2537</a></div><div class="contact-section contact-email hide-offcanvas hide-frontpage hide-sidebar "><span class="truncate-outer-1"><span class="truncate-outer-2"><a href="mailto:s&#104;&#111;&#119;&#116;&#105;m&#101;ex&#112;plum&#64;o&#117;&#116;loo&#107;.&#99;&#111;m">s&#104;&#111;&#119;&#116;&#105;m&#101;ex&#112;plum&#64;o&#117;&#116;loo&#107;.&#99;&#111;m</a></span></span></div><span aria-hidden="true" class="contact-section contact-section-divider "></span><div class="contact-section hide-offcanvas hide-contactpage hide-frontpage hide-sidebar "><strong>Business License #:</strong> 2105<br><strong>State License #:</strong> MP208883</div><span aria-hidden="true" class="contact-section contact-section-divider "></span><div class="contact-section contact-hours "><span class="contact-section-heading">Hours</span><p>24/7</p>
349</div><span aria-hidden="true" class="contact-section contact-section-divider hide-offcanvas hide-frontpage hide-sidebar "></span><div class="contact-section contact-town hide-offcanvas hide-frontpage hide-sidebar "><p class="address-header">Main Office</p>
350<p>1701 Jessica Court<br>
351Winder, GA 30680</p></div><span aria-hidden="true" class="contact-section contact-section-divider hide-offcanvas hide-frontpage hide-sidebar "></span><div class="contact-section contact-social hide-offcanvas hide-frontpage hide-sidebar "><span class="contact-section-heading">Follow us on...</span><span class="social-networks"><span><a href="https://maps.app.goo.gl/VWD8BdscKaQWyi426" target="_blank" title="Check us out on Google"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12.238,.096c2.473-.024,4.887,.751,6.884,2.211l-1.921,1.92c-1.457-1.008-3.191-1.539-4.962-1.518-3.293,.017-6.32,1.812-7.915,4.693l-1.413-1.095-.773-.6C4.299,2.208,8.124,.084,12.238,.096Z"/><path d="M.977,15.828C.132,13.34,.132,10.642,.977,8.154l2.355,1.826c-.301,1.323-.301,2.697,0,4.02l-2.355,1.827Z"/><path d="M12.238,23.885c-4.114,.013-7.939-2.112-10.102-5.612l.5-.388,1.686-1.308c1.594,2.882,4.622,4.677,7.915,4.694,1.514,.018,3.011-.322,4.369-.992l2.236,1.736c-1.966,1.267-4.266,1.918-6.605,1.87Z"/>
351<path d="M20.863,20.236l-.242-.188-1.82-1.413c.954-1.031,1.596-2.313,1.85-3.695,.133-.717-.34-1.407-1.057-1.541-.08-.015-.161-.022-.242-.022h-5.791v-2.469h9.976c.045,.457,.068,.919,.068,1.382,.077,2.893-.897,5.715-2.741,7.945h0Z"/></svg><span class="screen-reader-text">Check us out on Google</span></a></span><span><a href="https://www.thumbtack.com/ga/winder/water-heater-repair/showtime-express-plumbing/service/416753471147540482" target="_blank" title="Check us out on Thumbtack"><svg viewBox="0 0 69.36 69.39" xmlns="http://www.w3.org/2000/svg" width="40px" height="40px"><path d="m34.75 2.5c17.7.04 32.29 14.73 32.11 32.32-.19 17.71-14.6 32.07-32.17 32.06-17.7 0-32.21-14.54-32.18-32.25.03-17.74 14.52-32.18 32.25-32.14z" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="4"/><path d="m19.09 26.6v-6.88h31.12v6.88z"/><path d="m38.07 29.38c0 7.28.26 13.95-.13 20.58-.15 2.51-1.79 4.93-2.95 7.92-2.32-3.27-3.84-6.14-3.96-9.48-.17-4.67-.22-9.36-.07-14.03.03-1 .95-2.33 1.84-2.87 1.58-.95 3.45-1.42 5.26-2.12z"/></svg><span class="screen-reader-text">Check us out on Thumbtack</span></a></span><span><a href="https://www.yelp.com/biz/showtime-express-plumbing-winder" target="_blank" title="Check us out on Yelp"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12.079,17.579v1.662c-.012,2.548-.046,3.878-.102,3.99-.145,.28-.472,.482-.867,.523h-.005c-.038,0-.084,0-.131,0-1.08,0-2.105-.184-3.022-.512l.044,.014c-1.08-.237-2.013-.639-2.79-1.17l.006,.005c-.145-.128-.247-.288-.289-.464v-.006c-.003-.015-.004-.032-.004-.049,0-.105,.026-.204,.073-.296l-.003,.006c.178-.233,.371-.434,.587-.619l-.004,.004c.341-.323,1.374-1.265,3.099-2.827,.012,0,.353-.305,1.024-.916,.166-.161,.4-.276,.669-.32h.008c.097-.018,.209-.027,.322-.027,.189,0,.37,.026,.536,.075l-.01-.003c.262,.08,.48,.211,.638,.377l.003,.003c.137,.141,.219,.318,.219,.51,0,.014,0,.028-.001,.042v-.002h.001Zm-2.552-3.287v.029c0,.422-.374,.778-.883,.885l-.009,.002-2.055,.51c-3.139,.768-4.806,1.152-5,1.152-.406-.018-.75-.202-.919-.465l-.003-.005c-.159-.288-.262-.623-.29-.973v-.009c-.041-.307-.064-.664-.064-1.025,0-.407,.029-.809,.087-1.204l-.006,.049c.027-.596,.212-1.153,.526-1.655l-.014,.025c.171-.251,.51-.42,.901-.42,.02,0,.041,0,.061,0h-.003c1.419,.348,2.564,.69,3.678,1.076l-.219-.067,1.969,.615,1.438,.445c.261,.077,.471,.217,.605,.395l.003,.004c.124,.163,.197,.36,.197,.569,0,.022-.001,.046-.003,.068v-.005Zm14.147,3.888c-.319,.821-.858,1.528-1.571,2.11l.004-.003c-.603,.684-1.379,1.242-2.288,1.649l-.033,.014c-.129,.048-.281,.076-.443,.076-.241,0-.463-.064-.638-.169h.003c-.16-.086-1.209-1.338-3.15-3.754l-.805-1.007c-.128-.141-.203-.316-.203-.504,0-.034,.003-.068,.008-.103v.004c.032-.232,.154-.438,.335-.604v.002c.215-.244,.577-.403,.986-.403,.156,0,.306,.023,.441,.065l-.008-.002c.012,.009,.691,.184,2.038,.523,2.32,.574,3.701,.921,4.144,1.041,.306,.067,.573,.158,.818,.275l-.014-.006c.244,.146,.4,.372,.4,.625,0,.062-.009,.121-.027,.179v-.005l.003-.002ZM12.165,9.909c.057,.891-.25,1.423-.921,1.597-.662,.148-1.313-.162-1.952-.929L2.819,2.753c-.02-.06-.031-.127-.031-.198,0-.244,.137-.462,.356-.613h.001c1.003-.562,2.199-.973,3.498-1.168l.056-.007c.94-.276,2.029-.435,3.167-.435,.237,0,.472,.007,.704,.021h-.031c.409,.053,.734,.284,.838,.583v.006c.035,.156,.161,1.489,.377,3.999,.217,2.509,.354,4.166,.412,4.97v-.002Zm11.333,1.414c.006,.034,.01,.073,.01,.113,0,.273-.179,.513-.453,.657l-.004,.002c-.171,.087-2.048,.463-5.629,1.126-.765,.131-1.285,.231-1.558,.301l.018-.025c-.09,.019-.192,.029-.298,.029-.178,0-.347-.03-.498-.084l.008,.002c-.266-.09-.482-.234-.631-.414l-.004-.005c-.16-.155-.257-.354-.257-.569s.097-.415,.26-.571l-.003,.002c.012-.009,.44-.454,1.285-1.336,1.427-1.492,2.283-2.382,2.569-2.67,.173-.193,.365-.36,.58-.508l.004-.002c.165-.083,.367-.132,.585-.132,.194,0,.377,.039,.535,.109l-.005-.002c.867,.456,1.575,1.041,2.089,1.722l.018,.025c.64,.615,1.119,1.35,1.377,2.151l.01,.039-.006,.038Z"/></svg><span class="screen-reader-text">Check us out on Yelp</span></a></span><span><a href="https://nextdoor.com/pages/showtime-express-plumbing-winder-ga/" target="_blank" title="Check us out on Nextdoor"><svg xmlns="http://www.w3.org/2000/svg" width="29.899" height="24" viewBox="0 0 29.899 24"><path d="M.075,.816C.075,.405,.408,.072,.819,.072H6.773c.411,0,.744,.333,.744,.744V3.793c0,.822,.666,1.488,1.488,1.488h.23C11.212,2.152,14.703,.072,18.681,.072c6.165,0,11.164,4.998,11.164,11.164v11.908c0,.411-.333,.744-.744,.744h-5.954c-.411,0-.744-.333-.744-.744V11.235c0-2.055-1.666-3.721-3.721-3.721s-3.721,1.666-3.721,3.721v11.9
35108c0,.411-.333,.744-.744,.744h-5.954c-.411,0-.744-.333-.744-.744V11.235h-1.488C2.74,11.235,.075,8.57,.075,5.281V.816Zm1.488,.744v3.721c0,2.466,1.999,4.465,4.465,4.465h2.259c.206,0,.404,.086,.544,.237,.141,.151,.212,.354,.198,.56-.016,.228-.024,.459-.024,.692v11.164h4.465V11.235c0-2.877,2.332-5.21,5.21-5.21s5.21,2.332,5.21,5.21v11.164h4.465V11.235c0-5.343-4.332-9.675-9.675-9.675-3.58,0-6.707,1.944-8.381,4.838-.133,.23-.379,.372-.644,.372h-.65c-1.644,0-2.977-1.333-2.977-2.977V1.56H1.563Z" fill-rule="evenodd"/></svg><span class="screen-reader-text">Check us out on Nextdoor</span></a></span><span><a href="https://www.homeadvisor.com/rated.ShowtimeExpressPlumbing.112790611.html" target="_blank" title="Check us out on HomeAdvisor"><svg xmlns="http://www.w3.org/2000/svg"  viewBox="0 0 24 24" width="35px" height="35px"><path d="M 8.9609375 2 C 8.7689375 2 8.5823125 2.0759375 8.4453125 2.2109375 L 1.0078125 9.5859375 C 0.6158125 9.9749375 0.611 10.608 1 11 C 1.389 11.392 2.0220625 11.395812 2.4140625 11.007812 L 9.0292969 4.4472656 L 14.332031 9.7753906 C 14.475031 9.9193906 14.671 10 14.875 10 L 23.03125 10 C 23.25725 10 23.368078 9.7253594 23.205078 9.5683594 L 15.529297 2.203125 C 15.393297 2.073125 15.212438 2 15.023438 2 L 8.9609375 2 z M 9.0195312 7.2714844 L 4 12.240234 L 4 15.800781 C 4 16.985781 4.9614844 17.947266 6.1464844 17.947266 L 10.71875 17.947266 L 15.507812 23.056641 C 15.684812 23.245641 16 23.119328 16 22.861328 L 16 17.947266 L 17.853516 17.947266 C 19.038516 17.947266 20 16.985781 20 15.800781 L 20 12 L 13.724609 12 L 9.0195312 7.2714844 z"/></svg><span class="screen-reader-text">Check us out on HomeAdvisor</span></a></span><span><a href="https://www.angi.com/companylist/us/ga/winder/showtime-express-plumbing-reviews-1.htm" target="_blank" title="Check us out on Angi"><svg xmlns="http://www.w3.org/2000/svg" width="17.94" height="24" viewBox="0 0 17.94 24"><path d="M17.72,21.62h-1.78c-.4,0-.81-.03-1.21,0-.44,.04-.5-.21-.56-.55-.15-.85-.25-1.72-.51-2.54-.48-1.51-1.32-2.77-2.83-3.46-.19-.09-.4-.14-.67-.23-.11,.82-.19,1.58-.32,2.34-.2,1.11-.38,2.23-.68,3.32-.54,1.92-1.77,3.16-3.81,3.39-1.68,.19-3.04-.48-4.04-1.82C.02,20.36-.07,18.44,.64,16.51c1.05-2.88,3.19-4.54,6.16-5.15,.43-.09,.61-.26,.68-.7,.43-2.83,.9-5.66,1.36-8.49,.09-.58,.19-1.16,.27-1.74,.04-.26,.16-.36,.43-.36,1.46,.01,2.92,.01,4.38,0,.33,0,.43,.15,.47,.43,.87,5.5,1.75,11.01,2.63,16.51,.23,1.44,.47,2.87,.7,4.31,.01,.07,0,.15,0,.29ZM6.76,14.87c-1.58,.27-3.13,2.1-3.19,3.66-.02,.59,.04,1.14,.45,1.61,.58,.67,1.36,.6,1.77-.19,.13-.24,.22-.51,.27-.78,.17-.93,.32-1.86,.47-2.79,.08-.49,.15-.99,.22-1.51Zm6.27-2.48c-.4-3.05-.75-6.03-1.29-9-.14,.21-.21,.42-.24,.64-.12,.87-.23,1.75-.34,2.62-.19,1.49-.4,2.97-.57,4.46-.02,.13,.07,.37,.17,.41,.71,.3,1.44,.55,2.27,.87Z"/></svg><span class="screen-reader-text">Check us out on Angi</span></a></span><span><a href="https://www.facebook.com/ShowtimeExpressPlumbing" target="_blank" title="Follow us on Facebook"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 24 24"><path d="M12.02,.27C5.52,.27,.23,5.56,.23,12.06s5.29,11.79,11.79,11.79,11.79-5.29,11.79-11.79S18.53,.27,12.02,.27Zm.62,21.8V12.89h2.9v-1.66h-2.9v-.65c0-1.84,.47-3.47,2.33-3.47,.62,0,1.07,.12,1.39,.27l.3-1.69c-.42-.17-1.09-.35-1.86-.35-1.02,0-2.11,.32-2.93,1.12-1.02,.97-1.39,2.51-1.39,4.19v.57h-1.69v1.66h1.69v9.08c-4.81-.74-8.5-4.9-8.5-9.91C1.98,6.52,6.49,2.02,12.02,2.02s10.04,4.5,10.04,10.04-4.17,9.69-9.42,10.01Z"/></svg><span class="screen-reader-text">Follow us on Facebook</span></a></span></span></div></div></div></div></div><div class="widget-area footer-widgets-2"><div id="nav_menu-2" class="widget-odd widget-last widget-first widget-1 widget widget_nav_menu"><div class="widget-title widgettitle aside-widget-title is-lazy-content"><noscript><span>Important Links</span></noscript></div><div class="menu-footer-menu-container"><ul id="menu-footer-menu" class="menu parent-items-11"><li class="is-nav-reviews-link menu-item current-menu-item page_item page-item-427 current_page_item menu-item-1632 "><a href="https://showtimeexpressplumbing.com/reviews/" aria-current="page">Outstanding Reviews</a></li>
352<li class="menu-item menu-item-651 "><a href="https://showtimeexpressplumbing.com/service-areas/">Service Areas</a></li>
353<li class="menu-item menu-item-644 "><a href="https://showtimeexpressplumbing.com/plumbing-blog/">Plumbing Blog</a></li>
354<li class="menu-item menu-item-646 "><a href="https://showtimeexpressplumbing.com/company/">Company</a></li>
355<li class="menu-item menu-item-1319 "><a href="https://showtimeexpressplumbing.com/plumbing-services/emergency-plumbing-services/">Emergency Plumbing</a></li>
356<li class="menu-item menu-item-1320 "><a href="https://showtimeexpressplumbing.com/plumbing-services/clogged-drains/">Clogged Drains</a></li>
357<li class="menu-item menu-item-1321 "><a href="https://showtimeexpressplumbing.com/plumbing-services/repiping/">Repiping</a></li>
358<li class="menu-item menu-item-1322 "><a href="https://showtimeexpressplumbing.com/plumbing-services/water-heater-repair-and-installation/">Water Heaters</a></li>
359<li class="menu-item menu-item-1323 "><a href="https://showtimeexpressplumbing.com/plumbing-services/plumbing-repairs/">Plumbing Repairs</a></li>
360<li class="menu-item menu-item-1324 "><a href="https://showtimeexpressplumbing.com/plumbing-services/remodeling/">Remodeling</a></li>
361<li class="menu-item menu-item-1325 "><a href="https://showtimeexpressplumbing.com/plumbing-services/slab-leaks/">Slab Leaks</a></li>
362</ul></div></div></div><div class="widget-area footer-widgets-3"><div id="custom_html-3" class="widget_text widget-odd widget-last widget-first widget-1 widget widget_custom_html"><div class="widget-title widgettitle aside-widget-title is-lazy-content"><noscript><span>Location &#038; Service Areas</span></noscript></div><div class="textwidget custom-html-widget"><div class="office-map-embed-wrapper is-lazy-content"><noscript><iframe class="office-google-map" title="Map and Directions" defer src="https://www.google.com/maps/embed?pb=!1m14!1m8!1m3!1d19789.436702179653!2d-83.7705145!3d33.9480314!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x88f5c3c6fa2d7d71%3A0x8414a40f560cc15a!2sShowtime%20Express%20Plumbing!5e1!3m2!1sen!2sus!4v1725640769087!5m2!1sen!2sus" width="600" height="450" style="border:0;" allowfullscreen="" loading="lazy" referrerpolicy="no-referrer-when-downgrade"></iframe></noscript></div>
363
364<p class="site-footer-map-info">
365Showtime Express Plumbing is a trusted plumbing service provider dedicated to serving Georgia communities including Winder, Lawrenceville, Loganville, Braselton, Grayson, Dacula, Snellville, Bethlehem, as well as Barrow and Gwinnett Counties.
366</p></div></div></div></div><div class="site-footer-credits is-lazy-content"><noscript><p>&#x000A9;&nbsp;2026 Showtime Express Plumbing All rights reserved. &nbsp;| &nbsp;<a href="https://showtimeexpressplumbing.com/sitemap/">Sitemap</a></p>
367<p class="credit-design-marketing"><a target="_blank" href="https://www.hookedmarketing.net/">Website Design & Marketing by Hooked Marketing</a></p></noscript></div></footer></div><header class="site-header scrolling-site-header" tabindex="-1" aria-hidden="true"><div class="site-header--bg"><nav class="nav-top-svp"><ul id="menu-top-nav-small-viewport-1" class="nav-top-svp parent-items-3"><li class="plumbing-services-trigger has-modal menu-item menu-item-type-custom menu-item-object-custom menu-item-445 "><a href="#"><span>Plumbing Services</span></a></li>
368<li class="cta-nav-button menu-item menu-item-444 "><a href="https://showtimeexpressplumbing.com/contact/"><span>Free Estimate</span></a></li>
369<li class="is-nav-reviews-link menu-item current-menu-item page_item page-item-427 current_page_item menu-item-443 "><a href="https://showtimeexpressplumbing.com/reviews/" aria-current="page"><span>Reviews</span></a></li>
370</ul></nav><div class="site-header--flex-col"><div class="site-header-logo"><a href="https://showtimeexpressplumbing.com"><span class="logo-wrapper"><img alt="Showtime Express Plumbing: Residential and Commercial Plumbing" src="https://showtimeexpressplumbing.com/wp-content/uploads/2024/09/Showtime-Logo-1.svg" width="366.9628px" height="75.9788px" ></span></a></div><!--close site-header-logo--><div class="site-header--nav-col"><nav class="nav-top-lvp"><ul id="menu-top-nav-large-viewport-1" class="hooked-nav-menu centered-nav-menu parent-items-5"><li class="is-anchor-link fancy-font menu-item menu-item-type-custom menu-item-object-custom menu-item-2110 "><a href="/#save"><span>$25 Off!</span></a></li>
371<li class="cta-nav-button menu-item menu-item-426 "><a href="https://showtimeexpressplumbing.com/contact/"><span>FREE ESTIMATE</span></a></li>
372<li class="menu-item menu-item-home menu-item-425 "><a href="https://showtimeexpressplumbing.com/"><span>Home</span></a></li>
373<li class="menu-item menu-item-423 "><a href="https://showtimeexpressplumbing.com/plumbing-blog/"><span>Blog</span></a></li>
374<li class="menu-item menu-item-424 "><a href="https://showtimeexpressplumbing.com/gallery/"><span>Gallery</span></a></li>
375</ul></nav><div class="site-header--primary-nav"><nav class="nav-primary"><ul id="menu-primary-menu-1" class="hooked-nav-menu centered-nav-menu parent-items-4"><li class="plumbing-services-trigger has-modal two-line-item menu-item menu-item-type-custom menu-item-object-custom menu-item-422 "><a href="#"><span>Plumbing <em>Services</em></span></a></li>
376<li class="two-line-item menu-item menu-item-421 "><a href="https://showtimeexpressplumbing.com/company/"><span>Company <em>&#038; Commitment</em></span></a></li>
377<li class="is-nav-reviews-link menu-item current-menu-item page_item page-item-427 current_page_item menu-item-1289 "><a href="https://showtimeexpressplumbing.com/reviews/" aria-current="page"><span>Our Reviews</span></a></li>
378<li class="two-line-item menu-item menu-item-420 "><a href="https://showtimeexpressplumbing.com/contact/"><span>Contact <em>Us 24/7</em></span></a></li>
379</ul><div class="menu-toggle-wrapper" style="z-index:100"><a href="#menu-panel" class="menu-toggle" role="button" aria-controls="menu-panel" aria-expanded="false" aria-pressed="false"><span class="screen-reader-text">
379open menu</span><span class="menu-burger" aria-hidden="true"><span aria-hidden="true"></span><span aria-hidden="true"></span><span aria-hidden="true"></span></span></a></div><div class="navigation-addons"><div class="phone-header-w-text"><a href="tel:77086&#55;25&#51;&#55;"><span class="phone-header-phone-no">(770) 867-2537</span></a></div></div></nav></div></div></div></div><span class="header-accent"></span><span class="header-mask"></span></header>
380    <a href="#" class="go-to-top"><span class="screen-reader-text">
381    go to top of page
382    </span></a>
383    <div id="plumbing-services-menu" class="modal--menu services-menu-modal is-dark-theme hooked-fancybox-modal-display"><h2 class="modal-menu-title balance-text"><a href="/plumbing-services/">Plumbing Services</a></h2><div class="menu-modal-inner-content"><nav class="menu-plumbing-services-container"><ul id="menu-plumbing-services" class="modal-menu parent-items-8"><li class="menu-item menu-item-1312 "><a href="https://showtimeexpressplumbing.com/plumbing-services/plumbing-repairs/"><span>Plumbing Repairs</span></a></li>
384<li class="menu-item menu-item-1316 "><a href="https://showtimeexpressplumbing.com/plumbing-services/water-heater-repair-and-installation/"><span>Water Heaters</span></a></li>
385<li class="menu-item menu-item-1310 "><a href="https://showtimeexpressplumbing.com/plumbing-services/clogged-drains/"><span>Clogged Drains</span></a></li>
386<li class="menu-item menu-item-1315 "><a href="https://showtimeexpressplumbing.com/plumbing-services/slab-leaks/"><span>Slab Leaks</span></a></li>
387<li class="menu-item menu-item-1313 "><a href="https://showtimeexpressplumbing.com/plumbing-services/remodeling/"><span>Remodeling</span></a></li>
388<li class="menu-item menu-item-1314 "><a href="https://showtimeexpressplumbing.com/plumbing-services/repiping/"><span>Repiping</span></a></li>
389<li class="menu-item menu-item-1311 "><a href="https://showtimeexpressplumbing.com/plumbing-services/emergency-plumbing-services/"><span>Emergency Plumbing</span></a></li>
390<li class="menu-item menu-item-1317 "><a href="https://showtimeexpressplumbing.com/contact/"><span>Free Estimate</span></a></li>
391</ul></nav></div></div></div><!-- site-wrapper close -->
vendor: 6,876 bytes, lines 391-392
391<script defer type="text/javascript">/*! Vanilla Lazy - https://github.com/verlok/vanilla-lazyload/ - https://cdn.jsdelivr.net/npm/[email protected]/dist/lazyload.min.js */
392!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).LazyLoad=t()}(this,(function(){"use strict";function n(){return n=Object.assign||function(n){for(var t=1;t<arguments.length;t++){var e=arguments[t];for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(n[o]=e[o])}return n},n.apply(this,arguments)}var t="undefined"!=typeof window,e=t&&!("onscroll"in window)||"undefined"!=typeof navigator&&/(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent),o=t&&"IntersectionObserver"in window,i=t&&"classList"in document.createElement("p"),a=t&&window.devicePixelRatio>1,r={elements_selector:".lazy",container:e||t?document:null,threshold:300,thresholds:null,data_src:"src",data_srcset:"srcset",data_sizes:"sizes",data_bg:"bg",data_bg_hidpi:"bg-hidpi",data_bg_multi:"bg-multi",data_bg_multi_hidpi:"bg-multi-hidpi",data_bg_set:"bg-set",data_poster:"poster",class_applied:"applied",class_loading:"loading",class_loaded:"loaded",class_error:"error",class_entered:"entered",class_exited:"exited",unobserve_completed:!0,unobserve_entered:!1,cancel_on_exit:!0,callback_enter:null,callback_exit:null,callback_applied:null,callback_loading:null,callback_loaded:null,callback_error:null,callback_finish:null,callback_cancel:null,use_native:!1,restore_on_error:!1},c=function(t){return n({},r,t)},l=function(n,t){var e,o="LazyLoad::Initialized",i=new n(t);try{e=new CustomEvent(o,{detail:{instance:i}})}catch(n){(e=document.createEvent("CustomEvent")).initCustomEvent(o,!1,!1,{instance:i})}window.dispatchEvent(e)},u="src",s="srcset",d="sizes",f="poster",_="llOriginalAttrs",g="data",v="loading",b="loaded",p="applied",m="error",h="native",E="data-",y="ll-status",I=function(n,t){return n.getAttribute(E+t)},k=function(n){return I(n,y)},L=function(n,t){return function(n,t,e){var o=E+t;null!==e?n.setAttribute(o,e):n.removeAttribute(o)}(n,y,t)},w=function(n){return L(n,null)},A=function(n){return null===k(n)},O=function(n){return k(n)===h},x=[v,b,p,m],C=function(n,t,e,o){n&&"function"==typeof n&&(void 0===o?void 0===e?n(t):n(t,e):n(t,e,o))},z=function(n,t){i?n.classList.add(t):n.className+=(n.className?" ":"")+t},N=function(n,t){i?n.classList.remove(t):n.className=n.className.replace(new RegExp("(^|\\s+)"+t+"(\\s+|$)")," ").replace(/^\s+/,"").replace(/\s+$/,"")},M=function(n){return n.llTempImage},T=function(n,t){if(t){var e=t._observer;e&&e.unobserve(n)}},R=function(n,t){n&&(n.loadingCount+=t)},G=function(n,t){n&&(n.toLoadCount=t)},j=function(n){for(var t,e=[],o=0;t=n.children[o];o+=1)"SOURCE"===t.tagName&&e.push(t);return e},D=function(n,t){var e=n.parentNode;e&&"PICTURE"===e.tagName&&j(e).forEach(t)},H=function(n,t){j(n).forEach(t)},V=[u],B=[u,f],F=[u,s,d],J=[g],P=function(n){return!!n[_]},S=function(n){return n[_]},U=function(n){return delete n[_]},q=function(n,t){if(!P(n)){var e={};t.forEach((function(t){e[t]=n.getAttribute(t)})),n[_]=e}},K=function(n,t){if(P(n)){var e=S(n);t.forEach((function(t){!function(n,t,e){e?n.setAttribute(t,e):n.removeAttribute(t)}(n,t,e[t])}))}},Q=function(n,t,e){z(n,t.class_applied),L(n,p),e&&(t.unobserve_completed&&T(n,t),C(t.callback_applied,n,e))},W=function(n,t,e){z(n,t.class_loading),L(n,v),e&&(R(e,1),C(t.callback_loading,n,e))},X=function(n,t,e){e&&n.setAttribute(t,e)},Y=function(n,t){X(n,d,I(n,t.data_sizes)),X(n,s,I(n,t.data_srcset)),X(n,u,I(n,t.data_src))},Z={IMG:function(n,t){D(n,(function(n){q(n,F),Y(n,t)})),q(n,F),Y(n,t)},IFRAME:function(n,t){q(n,V),X(n,u,I(n,t.data_src))},VIDEO:function(n,t){H(n,(function(n){q(n,V),X(n,u,I(n,t.data_src))})),q(n,B),X(n,f,I(n,t.data_poster)),X(n,u,I(n,t.data_src)),n.load()},OBJECT:function(n,t){q(n,J),X(n,g,I(n,t.data_src))}},nn=["IMG","IFRAME","VIDEO","OBJECT"],tn=function(n,t){!t||function(n){return n.loadingCount>0}(t)||function(n){return n.toLoadCount>0}(t)||C(n.callback_finish,t)},en=function(n,t,e){n.addEventListener(t,e),n.llEvLisnrs[t]=e},on=function(n,t,e){n.removeEventListener(t,e)},an=function(n){return!!n.llEvLisnrs},rn=function(n){if(an(n)){var t=n.llEvLisnrs;for(var e in t){var o=t[e];on(n,e,o)}delete n.llEvLisnrs}},cn=function(n,t,e){!function(n){delete n.llTempImage}(n),R(e,-1),function(n){n&&(n.toLoadCount-=1)}(e),N(n,t.class_loading),t.unobserve_completed&&T(n,e)},ln=function(n,t,e){var o=M(n)||n;if(!an(o)){!function(n,t,e){an(n)||(n.llEvLisnrs={});var o="VIDEO"===n.tagName?"loadeddata":"load";en(n,o,t),en(n,"error",e)}(o,(function(i){!function(n,t,e,o){var i=O(t);cn(t,e,o),z(t,e.class_loaded),L(t,b),C(e.callback_loaded,t,o),i||tn(e,o)}(0,n,t,e),rn(o)}),(function(i){!function(n,t,e,o){var i=O(t);cn(t,e,o),z(t,e.class_error),L(t,m),C(e.callback_error,t,o),e.restore_on_error&&K(t,F),i||tn(e,o)}(0,n,t,e),rn(o)}))}},un=function(n,t,e){!function(n){n.llTempImage=document.createElement("IMG")}(n),ln(n,t,e),function(n){P(n)||(n[_]={backgroundImage:n.style.backgroundImage})}(n),function(n,t,e){var o=I(n,t.data_bg),i=I(n,t.data_bg_hidpi),r=a&&i?i:o;r&&(n.style.backgroundImage='url("'.concat(r,'")'),M(n).setAttribute(u,r),W(n,t,e))}(n,t,e),function(n,t,e){var o=I(n,t.data_bg_multi),i=I(n,t.data_bg_multi_hidpi),r=a&&i?i:o;r&&(n.style.backgroundImage=r,Q(n,t,e))}(n,t,e),function(n,t,e){var o=I(n,t.data_bg_set);if(o){var i=o.split("|"),a=i.map((function(n){return"image-set(".concat(n,")")}));n.style.backgroundImage=a.join(),""===n.style.backgroundImage&&(a=i.map((function(n){return"-webkit-image-set(".concat(n,")")})),n.style.backgroundImage=a.join()),Q(n,t,e)}}(n,t,e)},sn=function(n,t,e){ln(n,t,e),function(n,t,e){var o=Z[n.tagName];o&&(o(n,t),W(n,t,e))}(n,t,e)},dn=function(n,t,e){!function(n){return nn.indexOf(n.tagName)>-1}(n)?un(n,t,e):sn(n,t,e)},fn=function(n,t,e){n.setAttribute("loading","lazy"),ln(n,t,e),function(n,t){var e=Z[n.tagName];e&&e(n,t)}(n,t),L(n,h)},_n=function(n){n.removeAttribute(u),n.removeAttribute(s),n.removeAttribute(d)},gn=function(n){D(n,(function(n){K(n,F)})),K(n,F)},vn={IMG:gn,IFRAME:function(n){K(n,V)},VIDEO:function(n){H(n,(function(n){K(n,V)})),K(n,B),n.load()},OBJECT:function(n){K(n,J)}},bn=function(n){var t=vn[n.tagName];t?t(n):function(n){if(P(n)){var t=S(n);n.style.backgroundImage=t.backgroundImage}}(n)},pn=function(n,t){bn(n),function(n,t){A(n)||O(n)||(N(n,t.class_entered),N(n,t.class_exited),N(n,t.class_applied),N(n,t.class_loading),N(n,t.class_loaded),N(n,t.class_error))}(n,t),w(n),U(n)},mn=function(n,t,e,o){e.cancel_on_exit&&function(n){return k(n)===v}(n)&&"IMG"===n.tagName&&(rn(n),function(n){D(n,(function(n){_n(n)})),_n(n)}(n),gn(n),N(n,e.class_loading),R(o,-1),w(n),C(e.callback_cancel,n,t,o))},hn=function(n,t,e,o){var i=function(n){return x.indexOf(k(n))>=0}
392(n);L(n,"entered"),z(n,e.class_entered),N(n,e.class_exited),function(n,t,e){t.unobserve_entered&&T(n,e)}(n,e,o),C(e.callback_enter,n,t,o),i||dn(n,e,o)},En=["IMG","IFRAME","VIDEO"],yn=function(n){return n.use_native&&"loading"in HTMLImageElement.prototype},In=function(n,t,e){n.forEach((function(n){return function(n){return n.isIntersecting||n.intersectionRatio>0}(n)?hn(n.target,n,t,e):function(n,t,e,o){A(n)||(z(n,e.class_exited),mn(n,t,e,o),C(e.callback_exit,n,t,o))}(n.target,n,t,e)}))},kn=function(n,t){o&&!yn(n)&&(t._observer=new IntersectionObserver((function(e){In(e,n,t)}),function(n){return{root:n.container===document?null:n.container,rootMargin:n.thresholds||n.threshold+"px"}}(n)))},Ln=function(n){return Array.prototype.slice.call(n)},wn=function(n){return n.container.querySelectorAll(n.elements_selector)},An=function(n){return function(n){return k(n)===m}(n)},On=function(n,t){return function(n){return Ln(n).filter(A)}(n||wn(t))},xn=function(n,t){var e;(e=wn(n),Ln(e).filter(An)).forEach((function(t){N(t,n.class_error),w(t)})),t.update()},Cn=function(n,e){var o=c(n);this._settings=o,this.loadingCount=0,kn(o,this),function(n,e){t&&(e._onlineHandler=function(){xn(n,e)},window.addEventListener("online",e._onlineHandler))}(o,this),this.update(e)};return Cn.prototype={update:function(n){var t,i,a=this._settings,r=On(n,a);(G(this,r.length),!e&&o)?yn(a)?function(n,t,e){n.forEach((function(n){-1!==En.indexOf(n.tagName)&&fn(n,t,e)})),G(e,0)}(r,a,this):(t=this._observer,i=r,function(n){n.disconnect()}(t),function(n,t){t.forEach((function(t){n.observe(t)}))}(t,i)):this.loadAll(r)},destroy:function(){var n;this._observer&&this._observer.disconnect(),n=this,t&&window.removeEventListener("online",n._onlineHandler),wn(this._settings).forEach((function(n){U(n)})),delete this._observer,delete this._settings,delete this._onlineHandler,delete this.loadingCount,delete this.toLoadCount},loadAll:function(n){var t=this,e=this._settings;On(n,e).forEach((function(n){T(n,t),dn(n,e,t)}))},restoreAll:function(){var n=this._settings;wn(n).forEach((function(t){pn(t,n)}))}},Cn.load=function(n,t){var e=c(t);dn(n,e)},Cn.resetStatus=function(n){w(n)},t&&function(n,t){if(t)if(t.length)for(var e,o=0;e=t[o];o+=1)l(n,e);else l(n,t)}(Cn,window.lazyLoadOptions),Cn}));const lazyContent=new LazyLoad({use_native:!0}),lazyBackground=new LazyLoad({});document.addEventListener("DOMContentLoaded",(function(){const e=new IntersectionObserver(((e,o)=>{e.forEach((e=>{if(e.isIntersecting){o.unobserve(e.target);const t=e.target.querySelector("noscript");t&&(e.target.innerHTML=t.textContent,e.target.classList.add("is-loaded"))}}))}),{rootMargin:"500px",threshold:.1}),o=document.querySelectorAll(".is-lazy-content");o.length>0?o.forEach((o=>{e.observe(o)})):console.log("No elements found with the class 'is-lazy-content'"),function(e){const o=window.location.href,t=window.location.pathname,n=window.location.origin,c=document.querySelectorAll(e);c.length>0?c.forEach((function(e){e.href!==o&&e.href!==n+t||e.classList.add("current-page")})):console.log("No elements found with the specified selector.")}(".hooked-fancybox-modal-display a"),function(e){const o=document.querySelectorAll(e);if(o.length>0)for(const e of o){const o=document.createElement("span");o.className="sub-arrow",e.appendChild(o)}else console.log("No has modals found.")}(".has-modal a"),function(){const e=document.querySelectorAll(".image-rows, .image-cycle-stretch, .image-block-stretch");e.length>0?e.forEach((e=>{const o=e.closest(".wp-block-column");o&&o.classList.add("flex-stretch")})):console.log("No stretch classes found with the specified classes.")}()}));document.addEventListener("DOMContentLoaded",(function(){void 0!==window.ontouchstart&&document.documentElement.classList.add("touch-device")}));
vendor: 7,934 bytes, line 392
392!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).window=t.window||{})}(this,(function(t){"use strict";const e=(t,e=1e4)=>(t=parseFloat(t+"")||0,Math.round((t+Number.EPSILON)*e)/e),i=function(t){if(!(t&&t instanceof Element&&t.offsetParent))return!1;const e=t.scrollHeight>t.clientHeight,i=window.getComputedStyle(t).overflowY,n=-1!==i.indexOf("hidden"),s=-1!==i.indexOf("visible");return e&&!n&&!s},n=function(t,e=void 0){return!(!t||t===document.body||e&&t===e)&&(i(t)?t:n(t.parentElement,e))},s=function(t){var e=(new DOMParser).parseFromString(t,"text/html").body;if(e.childElementCount>1){for(var i=document.createElement("div");e.firstChild;)i.appendChild(e.firstChild);return i}return e.firstChild},o=t=>`${t||""}`.split(" ").filter((t=>!!t)),a=(t,e,i)=>{t&&o(e).forEach((e=>{t.classList.toggle(e,i||!1)}))};class r{constructor(t){Object.defineProperty(this,"pageX",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"pageY",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"clientX",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"clientY",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"time",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"nativePointer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.nativePointer=t,this.pageX=t.pageX,this.pageY=t.pageY,this.clientX=t.clientX,this.clientY=t.clientY,this.id=self.Touch&&t instanceof Touch?t.identifier:-1,this.time=Date.now()}}const l={passive:!1};class c{constructor(t,{start:e=(()=>!0),move:i=(()=>{}),end:n=(()=>{})}){Object.defineProperty(this,"element",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"startCallback",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"moveCallback",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"endCallback",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"currentPointers",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"startPointers",{enumerable:!0,configurable:!0,writable:!0,value:[]}),this.element=t,this.startCallback=e,this.moveCallback=i,this.endCallback=n;for(const t of["onPointerStart","onTouchStart","onMove","onTouchEnd","onPointerEnd","onWindowBlur"])this[t]=this[t].bind(this);this.element.addEventListener("mousedown",this.onPointerStart,l),this.element.addEventListener("touchstart",this.onTouchStart,l),this.element.addEventListener("touchmove",this.onMove,l),this.element.addEventListener("touchend",this.onTouchEnd),this.element.addEventListener("touchcancel",this.onTouchEnd)}onPointerStart(t){if(!t.buttons||0!==t.button)return;const e=new r(t);this.currentPointers.some((t=>t.id===e.id))||this.triggerPointerStart(e,t)&&(window.addEventListener("mousemove",this.onMove),window.addEventListener("mouseup",this.onPointerEnd),window.addEventListener("blur",this.onWindowBlur))}onTouchStart(t){for(const e of Array.from(t.changedTouches||[]))this.triggerPointerStart(new r(e),t);window.addEventListener("blur",this.onWindowBlur)}onMove(t){const e=this.currentPointers.slice(),i="changedTouches"in t?Array.from(t.changedTouches||[]).map((t=>new r(t))):[new r(t)],n=[];for(const t of i){const e=this.currentPointers.findIndex((e=>e.id===t.id));e<0||(n.push(t),this.currentPointers[e]=t)}n.length&&this.moveCallback(t,this.currentPointers.slice(),e)}onPointerEnd(t){t.buttons>0&&0!==t.button||(this.triggerPointerEnd(t,new r(t)),window.removeEventListener("mousemove",this.onMove),window.removeEventListener("mouseup",this.onPointerEnd),window.removeEventListener("blur",this.onWindowBlur))}onTouchEnd(t){for(const e of Array.from(t.changedTouches||[]))this.triggerPointerEnd(t,new r(e))}triggerPointerStart(t,e){return!!this.startCallback(e,t,this.currentPointers.slice())&&(this.currentPointers.push(t),this.startPointers.push(t),!0)}triggerPointerEnd(t,e){const i=this.currentPointers.findIndex((t=>t.id===e.id));i<0||(this.currentPointers.splice(i,1),this.startPointers.splice(i,1),this.endCallback(t,e,this.currentPointers.slice()))}onWindowBlur(){this.clear()}clear(){for(;this.currentPointers.length;){const t=this.currentPointers[this.currentPointers.length-1];this.currentPointers.splice(this.currentPointers.length-1,1),this.startPointers.splice(this.currentPointers.length-1,1),this.endCallback(new Event("touchend",{bubbles:!0,cancelable:!0,clientX:t.clientX,clientY:t.clientY}),t,this.currentPointers.slice())}}stop(){this.element.removeEventListener("mousedown",this.onPointerStart,l),this.element.removeEventListener("touchstart",this.onTouchStart,l),this.element.removeEventListener("touchmove",this.onMove,l),this.element.removeEventListener("touchend",this.onTouchEnd),this.element.removeEventListener("touchcancel",this.onTouchEnd),window.removeEventListener("mousemove",this.onMove),window.removeEventListener("mouseup",this.onPointerEnd),window.removeEventListener("blur",this.onWindowBlur)}}function h(t,e){return e?Math.sqrt(Math.pow(e.clientX-t.clientX,2)+Math.pow(e.clientY-t.clientY,2)):0}function d(t,e){return e?{clientX:(t.clientX+e.clientX)/2,clientY:(t.clientY+e.clientY)/2}:t}const u=t=>"object"==typeof t&&null!==t&&t.constructor===Object&&"[object Object]"===Object.prototype.toString.call(t),p=(t,...e)=>{const i=e.length;for(let n=0;n<i;n++){const i=e[n]||{};Object.entries(i).forEach((([e,i])=>{const n=Array.isArray(i)?[]:{};t[e]||Object.assign(t,{[e]:n}),u(i)?Object.assign(t[e],p(n,i)):Array.isArray(i)?Object.assign(t,{[e]:[...i]}):Object.assign(t,{[e]:i})}))}return t},f=function(t,e){return t.split(".").reduce(((t,e)=>"object"==typeof t?t[e]:void 0),e)};class g{constructor(t={}){Object.defineProperty(this,"options",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(this,"events",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),this.setOptions(t);for(const t of Object.getOwnPropertyNames(Object.getPrototypeOf(this)))t.startsWith("on")&&"function"==typeof this[t]&&(this[t]=this[t].bind(this))}setOptions(t){this.options=t?p({},this.constructor.defaults,t):{};for(const[t,e]of Object.entries(this.option("on")||{}))this.on(t,e)}option(t,...e){let i=f(t,this.options);return i&&"function"==typeof i&&(i=i.call(this,this,...e)),i}optionFor(t,e,i,...n){let s=f(e,t);var o;"string"!=typeof(o=s)||isNaN(o)||isNaN(parseFloat(o))||(s=parseFloat(s)),"true"===s&&(s=!0),"false"===s&&(s=!1),s&&"function"==typeof s&&(s=s.call(this,this,t,...n));let a=f(e,this.options);return a&&"function"==typeof a?s=a.call(this,this,t,...n,s):void 0===s&&(s=a),void 0===s?i:s}cn(t){const e=this.options.classes;return e&&e[t]||""}localize(t,e=[]){t=String(t).replace(/\{\{(\w+).?(\w+)?\}\}/g,((t,e,i)=>{let n="";return i?n=this.option(`${e[0]+e.toLowerCase().substring(1)}.l10n.${i}`):e&&(n=this.option(`l10n.${e}`)),n||(n=t),n}));for(let i=0;i<e.length;i++)t=t.split(e[i][0]).join(e[i][1]);return t.replace(/\{\{(.*?)\}\}/g,((t,e)=>e))}on(t,e){let i=[];"string"==typeof t?i=t.split(" "):Array.isArray(t)&&(i=t),this.events||(this.events=new Map),i.forEach((t=>{let i=this.events.get(t);i||(this.events.set(t,[]),i=[]),i.includes(e)||i.push(e),this.events.set(t,i)}))}off(t,e){let i=[];"string"==typeof t?i=t.split(" "):Array.isArray(t)&&(i=t),i.forEach((t=>{const i=this.events.get(t);if(Array.isArray(i)){const t=i.indexOf(e);t>-1&&i.splice(t,1)}}))}emit(t,...e){[...this.events.get(t)||[]].forEach((t=>t(this,...e))),"*"!==t&&this.emit("*",t,...e)}}Object.defineProperty(g,"version",{enumerable:!0,configurable:!0,writable:!0,value:"5.0.3
3925"}),Object.defineProperty(g,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:{}});class m extends g{constructor(t={}){super(t),Object.defineProperty(this,"plugins",{enumerable:!0,configurable:!0,writable:!0,value:{}})}attachPlugins(t={}){const e=new Map;for(const[i,n]of Object.entries(t)){const t=this.option(i),s=this.plugins[i];s||!1===t?s&&!1===t&&(s.detach(),delete this.plugins[i]):e.set(i,new n(this,t||{}))}for(const[t,i]of e)this.plugins[t]=i,i.attach()}detachPlugins(t){t=t||Object.keys(this.plugins);for(const e of t){const t=this.plugins[e];t&&t.detach(),delete this.plugins[e]}return this.emit("detachPlugins"),this}}var b;!function(t){t[t.Init=0]="Init",t[t.Error=1]="Error",t[t.Ready=2]="Ready",t[t.Panning=3]="Panning",t[t.Mousemove=4]="Mousemove",t[t.Destroy=5]="Destroy"}(b||(b={}));const v=["a","b","c","d","e","f"],y={PANUP:"Move up",PANDOWN:"Move down",PANLEFT:"Move left",PANRIGHT:"Move right",ZOOMIN:"Zoom in",ZOOMOUT:"Zoom out",TOGGLEZOOM:"Toggle zoom level",TOGGLE1TO1:"Toggle zoom level",ITERATEZOOM:"Toggle zoom level",ROTATECCW:"Rotate counterclockwise",ROTATECW:"Rotate clockwise",FLIPX:"Flip horizontally",FLIPY:"Flip vertically",FITX:"Fit horizontally",FITY:"Fit vertically",RESET:"Reset",TOGGLEFS:"Toggle fullscreen"},w={content:null,width:"auto",height:"auto",panMode:"drag",touch:!0,dragMinThreshold:3,lockAxis:!1,mouseMoveFactor:1,mouseMoveFriction:.12,zoom:!0,pinchToZoom:!0,panOnlyZoomed:"auto",minScale:1,maxScale:2,friction:.25,dragFriction:.35,decelFriction:.05,click:"toggleZoom",dblClick:!1,wheel:"zoom",wheelLimit:7,spinner:!0,bounds:"auto",infinite:!1,rubberband:!0,bounce:!0,maxVelocity:75,transformParent:!1,classes:{content:"f-panzoom__content",isLoading:"is-loading",canZoomIn:"can-zoom_in",canZoomOut:"can-zoom_out",isDraggable:"is-draggable",isDragging:"is-dragging",inFullscreen:"in-fullscreen",htmlHasFullscreen:"with-panzoom-in-fullscreen"},l10n:y},x='<circle cx="25" cy="25" r="20"></circle>',E='<div class="f-spinner"><svg viewBox="0 0 50 50">'+x+x+"</svg></div>",S=t=>t&&null!==t&&t instanceof Element&&"nodeType"in t,P=(t,e)=>{t&&o(e).forEach((e=>{t.classList.remove(e)}))},C=(t,e)=>{t&&o(e).forEach((e=>{t.classList.add(e)}))},T={a:1,b:0,c:0,d:1,e:0,f:0},M=1e4,O="mousemove",L="drag",A="content",k="auto";let z=null,R=null;class I extends m{get fits(){return this.contentRect.width-this.contentRect.fitWidth<1&&this.contentRect.height-this.contentRect.fitHeight<1}get isTouchDevice(){return null===R&&(R=window.matchMedia("(hover: none)").matches),R}get isMobile(){return null===z&&(z=/iPhone|iPad|iPod|Android/i.test(navigator.userAgent)),z}get panMode(){return this.options.panMode!==O||this.isTouchDevice?L:O}get panOnlyZoomed(){const t=this.options.panOnlyZoomed;return t===k?this.isTouchDevice:t}get isInfinite(){return this.option("infinite")}get angle(){return 180*Math.atan2(this.current.b,this.current.a)/Math.PI||0}get targetAngle(){return 180*Math.atan2(this.target.b,this.target.a)/Math.PI||0}get scale(){const{a:t,b:e}=this.current;return Math.sqrt(t*t+e*e)||1}get targetScale(){const{a:t,b:e}=this.target;return Math.sqrt(t*t+e*e)||1}get minScale(){return this.option("minScale")||1}get fullScale(){const{contentRect:t}=this;return t.fullWidth/t.fitWidth||1}get maxScale(){return this.fullScale*(this.option("maxScale")||1)||1}get coverScale(){const{containerRect:t,contentRect:e}=this,i=Math.max(t.height/e.fitHeight,t.width/e.fitWidth)||1;return Math.min(this.fullScale,i)}get isScaling(){return Math.abs(this.targetScale-this.scale)>1e-5&&!this.isResting}get isContentLoading(){const t=this.content;return!!(t&&t instanceof HTMLImageElement)&&!t.complete}get isResting(){if(this.isBouncingX||this.isBouncingY)return!1;for(const t of v){const e="e"==t||"f"===t?1e-4:1e-5;
vendor: 13,390 bytes, line 392
392if(Math.abs(this.target[t]-this.current[t])>e)return!1}return!(!this.ignoreBounds&&!this.checkBounds().inBounds)}constructor(t,e={},i={}){var n;if(super(e),Object.defineProperty(this,"pointerTracker",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"resizeObserver",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"updateTimer",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"clickTimer",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"rAF",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"isTicking",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"ignoreBounds",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"isBouncingX",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"isBouncingY",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"clicks",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"trackingPoints",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"pwt",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"cwd",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"pmme",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"friction",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:b.Init}),Object.defineProperty(this,"isDragging",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"container",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"content",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"spinner",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"containerRect",{enumerable:!0,configurable:!0,writable:!0,value:{width:0,height:0,innerWidth:0,innerHeight:0}}),Object.defineProperty(this,"contentRect",{enumerable:!0,configurable:!0,writable:!0,value:{top:0,right:0,bottom:0,left:0,fullWidth:0,fullHeight:0,fitWidth:0,fitHeight:0,width:0,height:0}}),Object.defineProperty(this,"dragStart",{enumerable:!0,configurable:!0,writable:!0,value:{x:0,y:0,top:0,left:0,time:0}}),Object.defineProperty(this,"dragOffset",{enumerable:!0,configurable:!0,writable:!0,value:{x:0,y:0,time:0}}),Object.defineProperty(this,"current",{enumerable:!0,configurable:!0,writable:!0,value:Object.assign({},T)}),Object.defineProperty(this,"target",{enumerable:!0,configurable:!0,writable:!0,value:Object.assign({},T)}),Object.defineProperty(this,"velocity",{enumerable:!0,configurable:!0,writable:!0,value:{a:0,b:0,c:0,d:0,e:0,f:0}}),Object.defineProperty(this,"lockedAxis",{enumerable:!0,configurable:!0,writable:!0,value:!1}),!t)throw new Error("Container Element Not Found");this.container=t,this.initContent(),this.attachPlugins(Object.assign(Object.assign({},I.Plugins),i)),this.emit("attachPlugins"),this.emit("init");const o=this.content;if(o.addEventListener("load",this.onLoad),o.addEventListener("error",this.onError),this.isContentLoading){if(this.option("spinner")){t.classList.add(this.cn("isLoading"));const e=s(E);!t.contains(o)||o.parentElement instanceof HTMLPictureElement?this.spinner=t.appendChild(e):this.spinner=(null===(n=o.parentElement)||void 0===n?void 0:n.insertBefore(e,o))||null}this.emit("beforeLoad")}else queueMicrotask((()=>{this.enable()}))}initContent(){const{container:t}=this,e=this.cn(A);let i=this.option(A)||t.querySelector(`.${e}`);if(i||(i=t.querySelector("img,picture")||t.firstElementChild,i&&C(i,e)),i instanceof HTMLPictureElement&&(i=i.querySelector("img")),!i)throw new Error("No content found");this.content=i}onLoad(){const{spinner:t,container:e,state:i}=this;t&&(t.remove(),this.spinner=null),this.option("spinner")&&e.classList.remove(this.cn("isLoading")),this.emit("afterLoad"),i===b.Init?this.enable():this.updateMetrics()}onError(){this.state!==b.Destroy&&(this.spinner&&(this.spinner.remove(),this.spinner=null),this.stop(),this.detachEvents(),this.state=b.Error,this.emit("error"))}getNextScale(t){const{fullScale:e,targetScale:i,coverScale:n,maxScale:s,minScale:o}=this;let a=o;switch(t){case"toggleMax":a=i-o<.5*(s-o)?s:o;break;case"toggleCover":a=i-o<.5*(n-o)?n:o;break;case"toggleZoom":a=i-o<.5*(e-o)?e:o;break;case"iterateZoom":let t=[1,e,s].sort(((t,e)=>t-e)),r=t.findIndex((t=>t>i+1e-5));a=t[r]||1}return a}attachObserver(){var t;const e=()=>{const{container:t,containerRect:e}=this;return Math.abs(e.width-t.getBoundingClientRect().width)>.1||Math.abs(e.height-t.getBoundingClientRect().height)>.1};this.resizeObserver||void 0===window.ResizeObserver||(this.resizeObserver=new ResizeObserver((()=>{this.updateTimer||(e()?(this.onResize(),this.isMobile&&(this.updateTimer=setTimeout((()=>{e()&&this.onResize(),this.updateTimer=null}),500))):this.updateTimer&&(clearTimeout(this.updateTimer),this.updateTimer=null))}))),null===(t=this.resizeObserver)||void 0===t||t.observe(this.container)}detachObserver(){var t;null===(t=this.resizeObserver)||void 0===t||t.disconnect()}attachEvents(){const{container:t}=this;t.addEventListener("click",this.onClick,{passive:!1,capture:!1}),t.addEventListener("wheel",this.onWheel,{passive:!1}),this.pointerTracker=new c(t,{start:this.onPointerDown,move:this.onPointerMove,end:this.onPointerUp}),document.addEventListener(O,this.onMouseMove)}detachEvents(){var t;const{container:e}=this;e.removeEventListener("click",this.onClick,{passive:!1,capture:!1}),e.removeEventListener("wheel",this.onWheel,{passive:!1}),null===(t=this.pointerTracker)||void 0===t||t.stop(),this.pointerTracker=null,document.removeEventListener(O,this.onMouseMove),document.removeEventListener("keydown",this.onKeydown,!0),this.clickTimer&&(clearTimeout(this.clickTimer),this.clickTimer=null),this.updateTimer&&(clearTimeout(this.updateTimer),this.updateTimer=null)}animate(){this.setTargetForce();const t=this.friction,e=this.option("maxVelocity");for(const i of v)t?(this.velocity[i]*=1-t,e&&!this.isScaling&&(this.velocity[i]=Math.max(Math.min(this.velocity[i],e),-1*e)),this.current[i]+=this.velocity[i]):this.current[i]=this.target[i];this.setTransform(),this.setEdgeForce(),!this.isResting||this.isDragging?this.rAF=requestAnimationFrame((()=>this.animate())):this.stop("current")}setTargetForce(){for(const t of v)"e"===t&&this.isBouncingX||"f"===t&&this.isBouncingY||(this.velocity[t]=(1/(1-this.friction)-1)*(this.target[t]-this.current[t]))}checkBounds(t=0,e=0){const{current:i}=this,n=i.e+t,s=i.f+e,o=this.getBounds(),{x:a,y:r}=o,l=a.min,c=a.max,h=r.min,d=r.max;let u=0,p=0;return l!==1/0&&n<l?u=l-n:c!==1/0&&n>c&&(u=c-n),h!==1/0&&s<h?p=h-s:d!==1/0&&s>d&&(p=d-s),Math.abs(u)<1e-4&&(u=0),Math.abs(p)<1e-4&&(p=0),Object.assign(Object.assign({},o),{xDiff:u,yDiff:p,inBounds:!u&&!p})}clampTargetBounds(){const{target:t}=this,{x:e,y:i}=this.getBounds();e.min!==1/0&&(t.e=Math.max(t.e,e.min)),e.max!==1/0&&(t.e=Math.min(t.e,e.max)),i.min!==1/0&&(t.f=Math.max(t.f,i.min)),i.max!==1/0&&(t.f=Math.min(t.f,i.max))}calculateContentDim(t=this.current){const{content:e,contentRect:i}=this,{fitWidth:n,fitHeight:s,fullWidth:o,fullHeight:a}=i;let r=o,l=a;if(this.option("zoom")||0!==this.angle){const i=!(e instanceof HTMLImageElement||"none"!==window.getComputedStyle(e).maxWidth&&"none"!==window.getComputedStyle(e).maxHeight),c=i?o:n,h=i?a:s,d=this.getMatrix(t),u=new DOMPoint(0,0).matrixTransform(d),p=new DOMPoint(0+c,0).matrixTransform(d),f=new DOMPoint(0+c,0+h).matrixTransform(d),g=new DOMPoint(0,0+h).matrixTransform(d),m=Math.abs(f.x-u.x),b=Math.abs(f.y-u.y),v=Math.abs(g.x-p.x),y=Math.abs(g.y-p.y);r=Math.max(m,v),l=Math.max(b,y)}return{contentWidth:r,contentHeight:l}}setEdgeForce(){if(this.ignoreBounds||this.isDragging||this.panMode===O||this.targetScale<this.scale)return this.isBouncingX=!1,void(this.isBouncingY=!1);const{target:t}=this,{x:e,y:i,xDiff:n,yDiff:s}=this.checkBounds(),o=this.option("maxVelocity");let a=this.velocity.e,r=this.velocity.f;0!==n?(this.isBouncingX=!0,n*a<=0?a+=.14*n:(a=.14*n,e.min!==1/0&&(this.target.e=Math.max(t.e,e.min)),e.max!==1/0&&(this.target.e=Math.min(t.e,e.max))),o&&(a=Math.max(Math.min(a,o),-1*o))):this.isBouncingX=!1,0!==s?(this.isBouncingY=!0,s*r<=0?r+=.14*s:(r=.14*s,i.min!==1/0&&(this.target.f=Math.max(t.f,i.min)),i.max!==1/0&&(this.target.f=Math.min(t.f,i.max))),o&&(r=Math.max(Math.min(r,o),-1*o))):this.isBouncingY=!1,this.isBouncingX&&(this.velocity.e=a),this.isBouncingY&&(this.velocity.f=r)}enable(){const{content:t}=this,e=new DOMMatrixReadOnly(window.getComputedStyle(t).transform);for(const t of v)this.current[t]=this.target[t]=e[t];this.updateMetrics(),this.attachObserver(),this.attachEvents(),this.state=b.Ready,this.emit("ready")}onClick(t){var e;"click"===t.type&&0===t.detail&&(this.dragOffset.x=0,this.dragOffset.y=0),this.isDragging&&(null===(e=this.pointerTracker)||void 0===e||e.clear(),this.trackingPoints=[],this.startDecelAnim());const i=t.target;if(!i||t.defaultPrevented)return;if(i.hasAttribute("disabled"))return t.preventDefault(),void t.stopPropagation();if((()=>{const t=window.getSelection();return t&&"Range"===t.type})()&&!i.closest("button"))return;const n=i.closest("[data-panzoom-action]"),s=i.closest("[data-panzoom-change]"),o=n||s,a=o&&S(o)?o.dataset:null;if(a){const e=a.panzoomChange,i=a.panzoomAction;if((e||i)&&t.preventDefault(),e){let i={};try{i=JSON.parse(e)}catch(t){console&&console.warn("The given data was not valid JSON")}return void this.applyChange(i)}if(i)return void(this[i]&&this[i]())}if(Math.abs(this.dragOffset.x)>3||Math.abs(this.dragOffset.y)>3)return t.preventDefault(),void t.stopPropagation();if(i.closest("[data-fancybox]"))return;const r=this.content.getBoundingClientRect(),l=this.dragStart;if(l.time&&!this.canZoomOut()&&(Math.abs(r.x-l.x)>2||Math.abs(r.y-l.y)>2))return;this.dragStart.time=0;const c=e=>{this.option("zoom",t)&&e&&"string"==typeof e&&/(iterateZoom)|(toggle(Zoom|Full|Cover|Max)|(zoomTo(Fit|Cover|Max)))/.test(e)&&"function"==typeof this[e]&&(t.preventDefault(),this[e]({event:t}))},h=this.option("click",t),d=this.option("dblClick",t);d?(this.clicks++,1==this.clicks&&(this.clickTimer=setTimeout((()=>{1===this.clicks?(this.emit("click",t),!t.defaultPrevented&&h&&c(h)):(this.emit("dblClick",t),t.defaultPrevented||c(d)),this.clicks=0,this.clickTimer=null}),350))):(this.emit("click",t),!t.defaultPrevented&&h&&c(h))}addTrackingPoint(t){const e=this.trackingPoints.filter((t=>t.time>Date.now()-100));e.push(t),this.trackingPoints=e}onPointerDown(t,e,i){var n;if(!1===this.option("touch",t))return!1;this.pwt=0,this.dragOffset={x:0,y:0,time:0},this.trackingPoints=[];const s=this.content.getBoundingClientRect();if(this.dragStart={x:s.x,y:s.y,top:s.top,left:s.left,time:Date.now()},this.clickTimer)return!1;if(this.panMode===O&&this.targetScale>1)return t.preventDefault(),t.stopPropagation(),!1;const o=t.composedPath()[0];if(!i.length){if(["TEXTAREA","OPTION","INPUT","SELECT","VIDEO","IFRAME"].includes(o.nodeName)||o.closest("[contenteditable],[data-selectable],[data-draggable],[data-clickable],[data-panzoom-change],[data-panzoom-action]"))return!1;null===(n=window.getSelection())||void 0===n||n.removeAllRanges()}if("mousedown"===t.type)["A","BUTTON"].includes(o.nodeName)||t.preventDefault();else if(Math.abs(this.velocity.a)>.3)return!1;return this.target.e=this.current.e,this.target.f=this.current.f,this.stop(),this.isDragging||(this.isDragging=!0,this.addTrackingPoint(e),this.emit("touchStart",t)),!0}onPointerMove(t,i,s){if(!1===this.option("touch",t))return;if(!this.isDragging)return;if(i.length<2&&this.panOnlyZoomed&&e(this.targetScale)<=e(this.minScale))return;if(this.emit("touchMove",t),t.defaultPrevented)return;this.addTrackingPoint(i[0]);const{content:o}=this,a=d(s[0],s[1]),r=d(i[0],i[1]);let l=0,c=0;if(i.length>1){const t=o.getBoundingClientRect();l=a.clientX-t.left-.5*t.width,c=a.clientY-t.top-.5*t.height}const u=h(s[0],s[1]),p=h(i[0],i[1]);let f=u?p/u:1,g=r.clientX-a.clientX,m=r.clientY-a.clientY;this.dragOffset.x+=g,this.dragOffset.y+=m,this.dragOffset.time=Date.now()-this.dragStart.time;let b=e(this.targetScale)===e(this.minScale)&&this.option("lockAxis");if(b&&!this.lockedAxis)if("xy"===b||"y"===b||"touchmove"===t.type){if(Math.abs(this.dragOffset.x)<6&&Math.abs(this.dragOffset.y)<6)return void t.preventDefault();const e=Math.abs(180*Math.atan2(this.dragOffset.y,this.dragOffset.x)/Math.PI);this.lockedAxis=e>45&&e<135?"y":"x",this.dragOffset.x=0,this.dragOffset.y=0,g=0,m=0}else this.lockedAxis=b;if(n(t.target,this.content)&&(b="x",this.dragOffset.y=0),b&&"xy"!==b&&this.lockedAxis!==b&&e(this.targetScale)===e(this.minScale))return;t.cancelable&&t.preventDefault(),this.container.classList.add(this.cn("isDragging"));const v=this.checkBounds(g,m);this.option("rubberband")?("x"!==this.isInfinite&&(v.xDiff>0&&g<0||v.xDiff<0&&g>0)&&(g*=Math.max(0,.5-Math.abs(.75/this.contentRect.fitWidth*v.xDiff))),"y"!==this.isInfinite&&(v.yDiff>0&&m<0||v.yDiff<0&&m>0)&&(m*=Math.max(0,.5-Math.abs(.75/this.contentRect.fitHeight*v.yDiff)))):(v.xDiff&&(g=0),v.yDiff&&(m=0));const y=this.targetScale,w=this.minScale,x=this.maxScale;y<.5*w&&(f=Math.max(f,w)),y>
vendor: 14,183 bytes, lines 392-393
3921.5*x&&(f=Math.min(f,x)),"y"===this.lockedAxis&&e(y)===e(w)&&(g=0),"x"===this.lockedAxis&&e(y)===e(w)&&(m=0),this.applyChange({originX:l,originY:c,panX:g,panY:m,scale:f,friction:this.option("dragFriction"),ignoreBounds:!0})}onPointerUp(t,e,i){if(i.length)return this.dragOffset.x=0,this.dragOffset.y=0,void(this.trackingPoints=[]);this.container.classList.remove(this.cn("isDragging")),this.isDragging&&(this.addTrackingPoint(e),this.panOnlyZoomed&&this.contentRect.width-this.contentRect.fitWidth<1&&this.contentRect.height-this.contentRect.fitHeight<1&&(this.trackingPoints=[]),n(t.target,this.content)&&"y"===this.lockedAxis&&(this.trackingPoints=[]),this.emit("touchEnd",t),this.isDragging=!1,this.lockedAxis=!1,this.state!==b.Destroy&&(t.defaultPrevented||this.startDecelAnim()))}startDecelAnim(){var t;const i=this.isScaling;this.rAF&&(cancelAnimationFrame(this.rAF),this.rAF=null),this.isBouncingX=!1,this.isBouncingY=!1;for(const t of v)this.velocity[t]=0;this.target.e=this.current.e,this.target.f=this.current.f,P(this.container,"is-scaling"),P(this.container,"is-animating"),this.isTicking=!1;const{trackingPoints:n}=this,s=n[0],o=n[n.length-1];let a=0,r=0,l=0;o&&s&&(a=o.clientX-s.clientX,r=o.clientY-s.clientY,l=o.time-s.time);const c=(null===(t=window.visualViewport)||void 0===t?void 0:t.scale)||1;1!==c&&(a*=c,r*=c);let h=0,d=0,u=0,p=0,f=this.option("decelFriction");const g=this.targetScale;if(l>0){u=Math.abs(a)>3?a/(l/30):0,p=Math.abs(r)>3?r/(l/30):0;const t=this.option("maxVelocity");t&&(u=Math.max(Math.min(u,t),-1*t),p=Math.max(Math.min(p,t),-1*t))}u&&(h=u/(1/(1-f)-1)),p&&(d=p/(1/(1-f)-1)),("y"===this.option("lockAxis")||"xy"===this.option("lockAxis")&&"y"===this.lockedAxis&&e(g)===this.minScale)&&(h=u=0),("x"===this.option("lockAxis")||"xy"===this.option("lockAxis")&&"x"===this.lockedAxis&&e(g)===this.minScale)&&(d=p=0);const m=this.dragOffset.x,b=this.dragOffset.y,y=this.option("dragMinThreshold")||0;Math.abs(m)<y&&Math.abs(b)<y&&(h=d=0,u=p=0),(this.option("zoom")&&(g<this.minScale-1e-5||g>this.maxScale+1e-5)||i&&!h&&!d)&&(f=.35),this.applyChange({panX:h,panY:d,friction:f}),this.emit("decel",u,p,m,b)}onWheel(t){var e=[-t.deltaX||0,-t.deltaY||0,-t.detail||0].reduce((function(t,e){return Math.abs(e)>Math.abs(t)?e:t}));const i=Math.max(-1,Math.min(1,e));if(this.emit("wheel",t,i),this.panMode===O)return;if(t.defaultPrevented)return;const n=this.option("wheel");"pan"===n?(t.preventDefault(),this.panOnlyZoomed&&!this.canZoomOut()||this.applyChange({panX:2*-t.deltaX,panY:2*-t.deltaY,bounce:!1})):"zoom"===n&&!1!==this.option("zoom")&&this.zoomWithWheel(t)}onMouseMove(t){this.panWithMouse(t)}onKeydown(t){"Escape"===t.key&&this.toggleFS()}onResize(){this.updateMetrics(),this.checkBounds().inBounds||this.requestTick()}setTransform(){this.emit("beforeTransform");const{current:t,target:i,content:n,contentRect:s}=this,o=Object.assign({},T);for(const n of v){const s="e"==n||"f"===n?M:1e5;o[n]=e(t[n],s),Math.abs(i[n]-t[n])<("e"==n||"f"===n?.51:.001)&&(t[n]=i[n])}let{a:a,b:r,c:l,d:c,e:h,f:d}=o,u=`matrix(${a}, ${r}, ${l}, ${c}, ${h}, ${d})`,p=n.parentElement instanceof HTMLPictureElement?n.parentElement:n;if(this.option("transformParent")&&(p=p.parentElement||p),p.style.transform===u)return;p.style.transform=u;const{contentWidth:f,contentHeight:g}=this.calculateContentDim();s.width=f,s.height=g,this.emit("afterTransform")}updateMetrics(t=!1){var i;if(!this||this.state===b.Destroy)return;if(this.isContentLoading)return;const n=Math.max(1,(null===(i=window.visualViewport)||void 0===i?void 0:i.scale)||1),{container:s,content:o}=this,a=o instanceof HTMLImageElement,r=s.getBoundingClientRect(),l=getComputedStyle(this.container);let c=r.width*n,h=r.height*n;const d=parseFloat(l.paddingTop)+parseFloat(l.paddingBottom),u=c-(parseFloat(l.paddingLeft)+parseFloat(l.paddingRight)),p=h-d;this.containerRect={width:c,height:h,innerWidth:u,innerHeight:p};const f=parseFloat(o.dataset.width||"")||(t=>{let e=0;return e=t instanceof HTMLImageElement?t.naturalWidth:t instanceof SVGElement?t.width.baseVal.value:Math.max(t.offsetWidth,t.scrollWidth),e||0})(o),g=parseFloat(o.dataset.height||"")||(t=>{let e=0;return e=t instanceof HTMLImageElement?t.naturalHeight:t instanceof SVGElement?t.height.baseVal.value:Math.max(t.offsetHeight,t.scrollHeight),e||0})(o);let m=this.option("width",f)||k,v=this.option("height",g)||k;const y=m===k,w=v===k;"number"!=typeof m&&(m=f),"number"!=typeof v&&(v=g),y&&(m=f*(v/g)),w&&(v=g/(f/m));let x=o.parentElement instanceof HTMLPictureElement?o.parentElement:o;this.option("transformParent")&&(x=x.parentElement||x);const E=x.getAttribute("style")||"";x.style.setProperty("transform","none","important"),a&&(x.style.width="",x.style.height=""),x.offsetHeight;const S=o.getBoundingClientRect();let P=S.width*n,C=S.height*n,T=P,M=C;P=Math.min(P,m),C=Math.min(C,v),a?({width:P,height:C}=((t,e,i,n)=>{const s=i/t,o=n/e,a=Math.min(s,o);return{width:t*=a,height:e*=a}})(m,v,P,C)):(P=Math.min(P,m),C=Math.min(C,v));let O=.5*(M-C),L=.5*(T-P);this.contentRect=Object.assign(Object.assign({},this.contentRect),{top:S.top-r.top+O,bottom:r.bottom-S.bottom+O,left:S.left-r.left+L,right:r.right-S.right+L,fitWidth:P,fitHeight:C,width:P,height:C,fullWidth:m,fullHeight:v}),x.style.cssText=E,a&&(x.style.width=`${P}px`,x.style.height=`${C}px`),this.setTransform(),!0!==t&&this.emit("refresh"),this.ignoreBounds||(e(this.targetScale)<e(this.minScale)?this.zoomTo(this.minScale,{friction:0}):this.targetScale>this.maxScale?this.zoomTo(this.maxScale,{friction:0}):this.state===b.Init||this.checkBounds().inBounds||this.requestTick()),this.updateControls()}calculateBounds(){const{contentWidth:t,contentHeight:i}=this.calculateContentDim(this.target),{targetScale:n,lockedAxis:s}=this,{fitWidth:o,fitHeight:a}=this.contentRect;let r=0,l=0,c=0,h=0;const d=this.option("infinite");if(!0===d||s&&d===s)r=-1/0,c=1/0,l=-1/0,h=1/0;else{let{containerRect:s,contentRect:d}=this,u=e(o*n,M),p=e(a*n,M),{innerWidth:f,innerHeight:g}=s;if(s.width===u&&(f=s.width),s.width===p&&(g=s.height),t>f){c=.5*(t-f),r=-1*c;let e=.5*(d.right-d.left);r+=e,c+=e}if(o>f&&t<f&&(r-=.5*(o-f),c-=.5*(o-f)),i>g){h=.5*(i-g),l=-1*h;let t=.5*(d.bottom-d.top);l+=t,h+=t}a>g&&i<g&&(r-=.5*(a-g),c-=.5*(a-g))}return{x:{min:r,max:c},y:{min:l,max:h}}}getBounds(){const t=this.option("bounds");return t!==k?t:this.calculateBounds()}updateControls(){const t=this,i=t.container,{panMode:n,contentRect:s,targetScale:o,minScale:r}=t;let l=r,c=t.option("click")||!1;c&&(l=t.getNextScale(c));let h=t.canZoomIn(),d=t.canZoomOut(),u=n===L&&!!this.option("touch"),p=d&&u;if(u&&(e(o)<e(r)&&!this.panOnlyZoomed&&(p=!0),(e(s.width,1)>e(s.fitWidth,1)||e(s.height,1)>e(s.fitHeight,1))&&(p=!0)),e(s.width*o,1)<e(s.fitWidth,1)&&(p=!1),n===O&&(p=!1),a(i,this.cn("isDraggable"),p),!this.option("zoom"))return;let f=h&&e(l)>e(o),g=!f&&!p&&d&&e(l)<e(o);a(i,this.cn("canZoomIn"),f),a(i,this.cn("canZoomOut"),g)
393;for(const t of i.querySelectorAll("[data-panzoom-action]")){let e=!1,i=!1;switch(t.dataset.panzoomAction){case"zoomIn":h?e=!0:i=!0;break;case"zoomOut":d?e=!0:i=!0;break;case"toggleZoom":case"iterateZoom":h||d?e=!0:i=!0;const n=t.querySelector("g");n&&(n.style.display=h?"":"none")}e?(t.removeAttribute("disabled"),t.removeAttribute("tabindex")):i&&(t.setAttribute("disabled",""),t.setAttribute("tabindex","-1"))}}panTo({x:t=this.target.e,y:e=this.target.f,scale:i=this.targetScale,friction:n=this.option("friction"),angle:s=0,originX:o=0,originY:a=0,flipX:r=!1,flipY:l=!1,ignoreBounds:c=!1}){this.state!==b.Destroy&&this.applyChange({panX:t-this.target.e,panY:e-this.target.f,scale:i/this.targetScale,angle:s,originX:o,originY:a,friction:n,flipX:r,flipY:l,ignoreBounds:c})}applyChange({panX:t=0,panY:i=0,scale:n=1,angle:s=0,originX:o=-this.current.e,originY:a=-this.current.f,friction:r=this.option("friction"),flipX:l=!1,flipY:c=!1,ignoreBounds:h=!1,bounce:d=this.option("bounce")}){const u=this.state;if(u===b.Destroy)return;this.rAF&&(cancelAnimationFrame(this.rAF),this.rAF=null),this.friction=r||0,this.ignoreBounds=h;const{current:p}=this,f=p.e,g=p.f,m=this.getMatrix(this.target);let y=(new DOMMatrix).translate(f,g).translate(o,a).translate(t,i);if(this.option("zoom")){if(!h){const t=this.targetScale,e=this.minScale,i=this.maxScale;t*n<e&&(n=e/t),t*n>i&&(n=i/t)}y=y.scale(n)}y=y.translate(-o,-a).translate(-f,-g).multiply(m),s&&(y=y.rotate(s)),l&&(y=y.scale(-1,1)),c&&(y=y.scale(1,-1));for(const t of v)"e"!==t&&"f"!==t&&(y[t]>this.minScale+1e-5||y[t]<this.minScale-1e-5)?this.target[t]=y[t]:this.target[t]=e(y[t],M);(this.targetScale<this.scale||Math.abs(n-1)>.1||this.panMode===O||!1===d)&&!h&&this.clampTargetBounds(),u===b.Init?this.animate():this.isResting||(this.state=b.Panning,this.requestTick())}stop(t=!1){if(this.state===b.Init||this.state===b.Destroy)return;const e=this.isTicking;this.rAF&&(cancelAnimationFrame(this.rAF),this.rAF=null),this.isBouncingX=!1,this.isBouncingY=!1;for(const e of v)this.velocity[e]=0,"current"===t?this.current[e]=this.target[e]:"target"===t&&(this.target[e]=this.current[e]);this.setTransform(),P(this.container,"is-scaling"),P(this.container,"is-animating"),this.isTicking=!1,this.state=b.Ready,e&&(this.emit("endAnimation"),this.updateControls())}requestTick(){this.isTicking||(this.emit("startAnimation"),this.updateControls(),C(this.container,"is-animating"),this.isScaling&&C(this.container,"is-scaling")),this.isTicking=!0,this.rAF||(this.rAF=requestAnimationFrame((()=>this.animate())))}panWithMouse(t,i=this.option("mouseMoveFriction")){if(this.pmme=t,this.panMode!==O||!t)return;if(e(this.targetScale)<=e(this.minScale))return;this.emit("mouseMove",t);const{container:n,containerRect:s,contentRect:o}=this,a=s.width,r=s.height,l=n.getBoundingClientRect(),c=(t.clientX||0)-l.left,h=(t.clientY||0)-l.top;let{contentWidth:d,contentHeight:u}=this.calculateContentDim(this.target);const p=this.option("mouseMoveFactor");p>1&&(d!==a&&(d*=p),u!==r&&(u*=p));let f=.5*(d-a)-c/a*100/100*(d-a);f+=.5*(o.right-o.left);let g=.5*(u-r)-h/r*100/100*(u-r);g+=.5*(o.bottom-o.top),this.applyChange({panX:f-this.target.e,panY:g-this.target.f,friction:i})}zoomWithWheel(t){if(this.state===b.Destroy||this.state===b.Init)return;const i=Date.now();if(i-this.pwt<45)return void t.preventDefault();this.pwt=i;var n=[-t.deltaX||0,-t.deltaY||0,-t.detail||0].reduce((function(t,e){return Math.abs(e)>Math.abs(t)?e:t}));const s=Math.max(-1,Math.min(1,n)),{targetScale:o,maxScale:a,minScale:r}=this;let l=o*(100+45*s)/100;e(l)<e(r)&&e(o)<=e(r)?(this.cwd+=Math.abs(s),l=r):e(l)>e(a)&&e(o)>=e(a)?(this.cwd+=Math.abs(s),l=a):(this.cwd=0,l=Math.max(Math.min(l,a),r)),this.cwd>this.option("wheelLimit")||(t.preventDefault(),e(l)!==e(o)&&this.zoomTo(l,{event:t}))}canZoomIn(){return this.option("zoom")&&(e(this.contentRect.width,1)<e(this.contentRect.fitWidth,1)||e(this.targetScale)<e(this.maxScale))}canZoomOut(){return this.option("zoom")&&e(this.targetScale)>e(this.minScale)}zoomIn(t=1.25,e){this.zoomTo(this.targetScale*t,e)}zoomOut(t=.8,e){this.zoomTo(this.targetScale*t,e)}zoomToFit(t){this.zoomTo("fit",t)}zoomToCover(t){this.zoomTo("cover",t)}zoomToFull(t){this.zoomTo("full",t)}zoomToMax(t){this.zoomTo("max",t)}toggleZoom(t){this.zoomTo(this.getNextScale("toggleZoom"),t)}toggleMax(t){this.zoomTo(this.getNextScale("toggleMax"),t)}toggleCover(t){this.zoomTo(this.getNextScale("toggleCover"),t)}iterateZoom(t){this.zoomTo("next",t)}zoomTo(t=1,{friction:e=k,originX:i=k,originY:n=k,event:s}={}){if(this.isContentLoading||this.state===b.Destroy)return;const{targetScale:o,fullScale:a,maxScale:r,coverScale:l}=this;if(this.stop(),this.panMode===O&&(s=this.pmme||s),s||i===k||n===k){const t=this.content.getBoundingClientRect(),e=this.container.getBoundingClientRect(),o=s?s.clientX:e.left+.5*e.width,a=s?s.clientY:e.top+.5*e.height;i=o-t.left-.5*t.width,n=a-t.top-.5*t.height}let c=1;"number"==typeof t?c=t:"full"===t?c=a:"cover"===t?c=l:"max"===t?c=r:"fit"===t?c=1:"next"===t&&(c=this.getNextScale("iterateZoom")),c=c/o||1,e=e===k?c>1?.15:.25:e,this.applyChange({scale:c,originX:i,originY:n,friction:e}),s&&this.panMode===O&&this.panWithMouse(s,e)}rotateCCW(){this.applyChange({angle:-90})}rotateCW(){this.applyChange({angle:90})}flipX(){this.applyChange({flipX:!0})}flipY(){this.applyChange({flipY:!0})}fitX(){this.stop("target");const{containerRect:t,contentRect:e,target:i}=this;this.applyChange({panX:.5*t.width-(e.left+.5*e.fitWidth)-i.e,panY:.5*t.height-(e.top+.5*e.fitHeight)-i.f,scale:t.width/e.fitWidth/this.targetScale,originX:0,originY:0,ignoreBounds:!0})}fitY(){this.stop("target");const{containerRect:t,contentRect:e,target:i}=this;this.applyChange({panX:.5*t.width-(e.left+.5*e.fitWidth)-i.e,panY:.5*t.innerHeight-(e.top+.5*e.fitHeight)-i.f,scale:t.height/e.fitHeight/this.targetScale,originX:0,originY:0,ignoreBounds:!0})}toggleFS(){const{container:t}=this,e=this.cn("inFullscreen"),i=this.cn("htmlHasFullscreen");t.classList.toggle(e);const n=t.classList.contains(e);n?(document.documentElement.classList.add(i),document.addEventListener("keydown",this.onKeydown,!0)):(document.documentElement.classList.remove(i),document.removeEventListener("keydown",this.onKeydown,!0)),this.updateMetrics(),this.emit(n?"enterFS":"exitFS")}getMatrix(t=this.current){const{a:e,b:i,c:n,d:s,e:o,f:a}=t;return new DOMMatrix([e,i,n,s,o,a])}reset(t){if(this.state!==b.Init&&this.state!==b.Destroy){this.stop("current");for(const t of v)this.target[t]=T[t];this.target.a=this.minScale,this.target.d=this.minScale,this.clampTargetBounds(),this.isResting||(this.friction=void 0===t?this.option("friction"):t,this.state=b.Panning,this.requestTick())}}destroy(){this.stop(),this.state=b.Destroy,this.detachEvents(),this.detachObserver();const{container:t,content:e}=this,i=this.option("classes")||{};for(const e of Object.values(i))t.classList.remove(e+"");e&&(e.removeEventListener("load",this.onLoad),e.removeEventListener("error",this.onError)),this.detachPlugins()}}Object.defineProperty(I,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:w}),Object.defineProperty(I,"Plugins",{enumerable:!0,configurable:!0,writable:!0,value:{}});const D=function(t,e){let i=!0;return(...n)=>{i&&(i=!1,t(...n),setTimeout((()=>{i=!0}),e))}},F=(t,e)=>{let i=[];
vendor: 5,417 bytes, line 393
393return t.childNodes.forEach((t=>{t.nodeType!==Node.ELEMENT_NODE||e&&!t.matches(e)||i.push(t)})),i};var j;!function(t){t[t.Init=0]="Init",t[t.Ready=1]="Ready",t[t.Destroy=2]="Destroy"}(j||(j={}));const B=t=>{if("string"==typeof t||t instanceof HTMLElement)t={html:t};else{const e=t.thumb;void 0!==e&&("string"==typeof e&&(t.thumbSrc=e),e instanceof HTMLImageElement&&(t.thumbEl=e,t.thumbElSrc=e.src,t.thumbSrc=e.src),delete t.thumb)}return Object.assign({html:"",el:null,isDom:!1,class:"",customClass:"",index:-1,dim:0,gap:0,pos:0,transition:!1},t)},_=(t={})=>Object.assign({index:-1,slides:[],dim:0,pos:-1},t);class $ extends g{constructor(t,e){super(e),Object.defineProperty(this,"instance",{enumerable:!0,configurable:!0,writable:!0,value:t})}attach(){}detach(){}}class H extends ${constructor(){super(...arguments),Object.defineProperty(this,"isDynamic",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"list",{enumerable:!0,configurable:!0,writable:!0,value:null})}onRefresh(){this.refresh()}build(){let t=this.list;if(!t){t=document.createElement("ul"),C(t,this.cn("list")),t.setAttribute("role","tablist");const e=this.instance.container;e.appendChild(t),C(e,this.cn("hasDots")),this.list=t}return t}refresh(){var t;const e=this.instance.pages.length,i=Math.min(2,this.option("minCount")),n=Math.max(2e3,this.option("maxCount")),s=this.option("dynamicFrom");if(e<i||e>n)return void this.cleanup();const o="number"==typeof s&&e>5&&e>=s,r=!this.list||this.isDynamic!==o||this.list.children.length!==e;r&&this.cleanup();const l=this.build();if(a(l,this.cn("isDynamic"),!!o),r)for(let t=0;t<e;t++)l.append(this.createItem(t));let c,h=0;for(const e of[...l.children]){const i=h===this.instance.page;i&&(c=e),a(e,this.cn("isCurrent"),i),null===(t=e.children[0])||void 0===t||t.setAttribute("aria-selected",i?"true":"false");for(const t of["isBeforePrev","isPrev","isNext","isAfterNext"])P(e,this.cn(t));h++}if(c=c||l.firstChild,o&&c){const t=c.previousElementSibling,e=t&&t.previousElementSibling;C(t,this.cn("isPrev")),C(e,this.cn("isBeforePrev"));const i=c.nextElementSibling,n=i&&i.nextElementSibling;C(i,this.cn("isNext")),C(n,this.cn("isAfterNext"))}this.isDynamic=o}createItem(t=0){var e;const i=document.createElement("li");i.setAttribute("role","presentation");const n=s(this.instance.localize(this.option("dotTpl"),[["%d",t+1]]).replace(/\%i/g,t+""));return i.appendChild(n),null===(e=i.children[0])||void 0===e||e.setAttribute("role","tab"),i}cleanup(){this.list&&(this.list.remove(),this.list=null),this.isDynamic=!1,P(this.instance.container,this.cn("hasDots"))}attach(){this.instance.on(["refresh","change"],this.onRefresh)}detach(){this.instance.off(["refresh","change"],this.onRefresh),this.cleanup()}}Object.defineProperty(H,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:{classes:{list:"f-carousel__dots",isDynamic:"is-dynamic",hasDots:"has-dots",dot:"f-carousel__dot",isBeforePrev:"is-before-prev",isPrev:"is-prev",isCurrent:"is-current",isNext:"is-next",isAfterNext:"is-after-next"},dotTpl:'<button type="button" data-carousel-page="%i" aria-label="{{GOTO}}"><span class="f-carousel__dot" aria-hidden="true"></span></button>',dynamicFrom:11,maxCount:1/0,minCount:2}});const N="disabled",W="next",q="prev";class X extends ${constructor(){super(...arguments),Object.defineProperty(this,"container",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"prev",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"next",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"isDom",{enumerable:!0,configurable:!0,writable:!0,value:!1})}onRefresh(){const t=this.instance,e=t.pages.length,i=t.page;if(e<2)return void this.cleanup();this.build();let n=this.prev,s=this.next;n&&s&&(n.removeAttribute(N),s.removeAttribute(N),t.isInfinite||(i<=0&&n.setAttribute(N,""),i>=e-1&&s.setAttribute(N,"")))}addBtn(t){var e;const i=this.instance,n=document.createElement("button");n.setAttribute("tabindex","0"),n.setAttribute("title",i.localize(`{{${t.toUpperCase()}}}`)),C(n,this.cn("button")+" "+this.cn(t===W?"isNext":"isPrev"));const s=i.isRTL?t===W?q:W:t;var o;return n.innerHTML=i.localize(this.option(`${s}Tpl`)),n.dataset[`carousel${o=t,o?o.match("^[a-z]")?o.charAt(0).toUpperCase()+o.substring(1):o:""}`]="true",null===(e=this.container)||void 0===e||e.appendChild(n),n}build(){const t=this.instance.container,e=this.cn("container");let{container:i,prev:n,next:s}=this;i||(i=t.querySelector("."+e),this.isDom=!!i),i||(i=document.createElement("div"),C(i,e),t.appendChild(i)),this.container=i,s||(s=i.querySelector("[data-carousel-next]")),s||(s=this.addBtn(W)),this.next=s,n||(n=i.querySelector("[data-carousel-prev]")),n||(n=this.addBtn(q)),this.prev=n}cleanup(){this.isDom||(this.prev&&this.prev.remove(),this.next&&this.next.remove(),this.container&&this.container.remove()),this.prev=null,this.next=null,this.container=null,this.isDom=!1}attach(){this.instance.on(["refresh","change"],this.onRefresh)}detach(){this.instance.off(["refresh","change"],this.onRefresh),this.cleanup()}}Object.defineProperty(X,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:{classes:{container:"f-carousel__nav",button:"f-button",isNext:"is-next",isPrev:"is-prev"},nextTpl:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" tabindex="-1"><path d="M9 3l9 9-9 9"/></svg>
393',prevTpl:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" tabindex="-1"><path d="M15 3l-9 9 9 9"/></svg>'}});class Y extends ${constructor(){super(...arguments),Object.defineProperty(this,"selectedIndex",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"target",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"nav",{enumerable:!0,configurable:!0,writable:!0,value:null})}addAsTargetFor(t){this.target=this.instance,this.nav=t,this.attachEvents()}addAsNavFor(t){this.nav=this.instance,this.target=t,this.attachEvents()}attachEvents(){const{nav:t,target:e}=this;t&&e&&(t.options.initialSlide=e.options.initialPage,t.state===j.Ready?this.onNavReady(t):t.on("ready",this.onNavReady),e.state===j.Ready?this.onTargetReady(e):e.on("ready",this.onTargetReady))}onNavReady(t){t.on("createSlide",this.onNavCreateSlide),t.on("Panzoom.click",this.onNavClick),t.on("Panzoom.touchEnd",this.onNavTouch),this.onTargetChange()}onTargetReady(t){t.on("change",this.onTargetChange),t.on("Panzoom.refresh",this.onTargetChange),this.onTargetChange()}onNavClick(t,e,i){this.onNavTouch(t,t.panzoom,i)}onNavTouch(t,e,i){var n,s;if(Math.abs(e.dragOffset.x)>3||Math.abs(e.dragOffset.y)>3)return;const o=i.target,{nav:a,target:r}=this;if(!a||!r||!o)return;const l=o.closest("[data-index]");if(i.stopPropagation(),i.preventDefault(),!l)return;const c=parseInt(l.dataset.index||"",10)||0,h=r.getPageForSlide(c),d=a.getPageForSlide(c);a.slideTo(d),r.slideTo(h,{friction:(null===(s=null===(n=this.nav)||void 0===n?void 0:n.plugins)||void 0===s?void 0:s.Sync.option("friction"))||0}),this.markSelectedSlide(c)}onNavCreateSlide(t,e){e.index===this.selectedIndex&&this.markSelectedSlide(e.index)}onTargetChange(){var t,e;const{target:i,nav:n}=this;if(!i||!n)return;if(n.state!==j.Ready||i.state!==j.Ready)return;const s=null===(e=null===(t=i.pages[i.page])||void 0===t?void 0:t.slides[0])||void 0===e?void 0:e.index,o=n.getPageForSlide(s);this.markSelectedSlide(s),n.slideTo(o,null===n.prevPage&&null===i.prevPage?{friction:0}:void 0)}markSelectedSlide(t){const e=this.nav;e&&e.state===j.Ready&&(this.selectedIndex=t,[...e.slides].map((e=>{e.el&&e.el.classList[e.index===t?"add":"remove"]("is-nav-selected")})))}attach(){const t=this;let e=t.options.target,i=t.options.nav;e?t.addAsNavFor(e):i&&t.addAsTargetFor(i)}detach(){const t=this,e=t.nav,i=t.target;e&&(e.off("ready",t.onNavReady),e.off("createSlide",t.onNavCreateSlide),e.off("Panzoom.click",t.onNavClick),e.off("Panzoom.touchEnd",t.onNavTouch)),t.nav=null,i&&(i.off("ready",t.onTargetReady),i.off("refresh",t.onTargetChange),i.off("change",t.onTargetChange)),t.target=null}}Object.defineProperty(Y,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:{friction:.35}});const V={Navigation:X,Dots:H,Sync:Y},Z="animationend",G="isSelected",U="slide";class J extends m{get axis(){return this.isHorizontal?"e":"f"}get isEnabled(){return this.state===j.Ready}get isInfinite(){let t=!1;const{contentDim:e,viewportDim:i,pages:n,slides:s}=this,o=s[0];return n.length>=2&&o&&e+o.dim>=i&&(t=this.option("infinite")),t}get isRTL(){return"rtl"===this.option("direction")}get isHorizontal(){return"x"===this.option("axis")}constructor(t,e={},i={}){if(super(),Object.defineProperty(this,"bp",{enumerable:!0,configurable:!0,writable:!0,value:""}),Object.defineProperty(this,"lp",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"userOptions",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"userPlugins",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:j.Init}),Object.defineProperty(this,"page",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"prevPage",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"container",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"viewport",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"track",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"slides",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"pages",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"panzoom",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"inTransition",{enumerable:!0,configurable:!0,writable:!0,value:new Set}),Object.defineProperty(this,"contentDim",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"viewportDim",{enumerable:!0,configurable:!0,writable:!0,value:0}),"string"==typeof t&&(t=document.querySelector(t)),!t||!S(t))throw new Error("No Element found");this.container=t,this.slideNext=D(this.slideNext.bind(this),150),this.slidePrev=D(this.slidePrev.bind(this),150),this.userOptions=e,this.userPlugins=i,queueMicrotask((()=>{this.processOptions()}))}processOptions(){var t,e;const i=p({},J.defaults,this.userOptions);let n="";const s=i.breakpoints;if(s&&u(s))for(const[t,e]of Object.entries(s))window.matchMedia(t).matches&&u(e)&&(n+=t,p(i,e));n===this.bp&&this.state!==j.Init||(this.bp=n,this.state===j.Ready&&(i.initialSlide=(null===(e=null===(t=this.pages[this.page])||void 0===t?void 0:t.slides[0])||void 0===e?void 0:e.index)||0),this.state!==j.Init&&this.destroy(),super.setOptions(i),!1===this.option("enabled")?this.attachEvents():setTimeout((()=>{this.init()}),0))}
vendor: 19,796 bytes, lines 393-394
393init(){this.state=j.Init,this.emit("init"),this.attachPlugins(Object.assign(Object.assign({},J.Plugins),this.userPlugins)),this.emit("attachPlugins"),this.initLayout(),this.initSlides(),this.updateMetrics(),this.setInitialPosition(),this.initPanzoom(),this.attachEvents(),this.state=j.Ready,this.emit("ready")}initLayout(){const{container:t}=this,e=this.option("classes");C(t,this.cn("container")),a(t,e.isLTR,!this.isRTL),a(t,e.isRTL,this.isRTL),a(t,e.isVertical,!this.isHorizontal),a(t,e.isHorizontal,this.isHorizontal);let i=this.option("viewport")||t.querySelector(`.${e.viewport}`);i||(i=document.createElement("div"),C(i,e.viewport),i.append(...F(t,`.${e.slide}`)),t.prepend(i)),i.addEventListener("scroll",this.onScroll);let n=this.option("track")||t.querySelector(`.${e.track}`);n||(n=document.createElement("div"),C(n,e.track),n.append(...Array.from(i.childNodes))),n.setAttribute("aria-live","polite"),i.contains(n)||i.prepend(n),this.viewport=i,this.track=n,this.emit("initLayout")}initSlides(){const{track:t}=this;if(!t)return;const e=[...this.slides],i=[];[...F(t,`.${this.cn(U)}`)].forEach((t=>{if(S(t)){const e=B({el:t,isDom:!0,index:this.slides.length});i.push(e)}}));for(let t of[...this.option("slides",[])||[],...e])i.push(B(t));this.slides=i;for(let t=0;t<this.slides.length;t++)this.slides[t].index=t;for(const t of i)this.emit("beforeInitSlide",t,t.index),this.emit("initSlide",t,t.index);this.emit("initSlides")}setInitialPage(){const t=this.option("initialSlide");this.page="number"==typeof t?this.getPageForSlide(t):parseInt(this.option("initialPage",0)+"",10)||0}setInitialPosition(){const{track:t,pages:e,isHorizontal:i}=this;if(!t||!e.length)return;let n=this.page;e[n]||(this.page=n=0);const s=(e[n].pos||0)*(this.isRTL&&i?1:-1),o=i?`${s}px`:"0",a=i?"0":`${s}px`;t.style.transform=`translate3d(${o}, ${a}, 0) scale(1)`,this.option("adaptiveHeight")&&this.setViewportHeight()}initPanzoom(){this.panzoom&&(this.panzoom.destroy(),this.panzoom=null);const t=this.option("Panzoom")||{};this.panzoom=new I(this.viewport,p({},{content:this.track,zoom:!1,panOnlyZoomed:!1,lockAxis:this.isHorizontal?"x":"y",infinite:this.isInfinite,click:!1,dblClick:!1,touch:t=>!(this.pages.length<2&&!t.options.infinite),bounds:()=>this.getBounds(),maxVelocity:t=>Math.abs(t.target[this.axis]-t.current[this.axis])<2*this.viewportDim?100:0},t)),this.panzoom.on("*",((t,e,...i)=>{this.emit(`Panzoom.${e}`,t,...i)})),this.panzoom.on("decel",this.onDecel),this.panzoom.on("refresh",this.onRefresh),this.panzoom.on("beforeTransform",this.onBeforeTransform),this.panzoom.on("endAnimation",this.onEndAnimation)}attachEvents(){const t=this.container;t&&(t.addEventListener("click",this.onClick,{passive:!1,capture:!1}),t.addEventListener("slideTo",this.onSlideTo)),window.addEventListener("resize",this.onResize)}createPages(){let t=[];const{contentDim:e,viewportDim:i}=this;let n=this.option("slidesPerPage");n=("auto"===n||e<=i)&&!1!==this.option("fill")?1/0:parseFloat(n+"");let s=0,o=0,a=0;for(const e of this.slides)(!t.length||o+e.dim-i>.05||a>=n)&&(t.push(_()),s=t.length-1,o=0,a=0),t[s].slides.push(e),o+=e.dim+e.gap,a++;return t}processPages(){const t=this.pages,{contentDim:i,viewportDim:n,isInfinite:s}=this,o=this.option("center"),a=this.option("fill"),r=a&&o&&i>n&&!s;if(t.forEach(((t,e)=>{var s;t.index=e,t.pos=(null===(s=t.slides[0])||void 0===s?void 0:s.pos)||0,t.dim=0;for(const[e,i]of t.slides.entries())t.dim+=i.dim,e<t.slides.length-1&&(t.dim+=i.gap);r&&t.pos+.5*t.dim<.5*n?t.pos=0:r&&t.pos+.5*t.dim>=i-.5*n?t.pos=i-n:o&&(t.pos+=-.5*(n-t.dim))})),t.forEach((t=>{a&&!s&&i>n&&(t.pos=Math.max(t.pos,0),t.pos=Math.min(t.pos,i-n)),t.pos=e(t.pos,1e3),t.dim=e(t.dim,1e3),Math.abs(t.pos)<=.1&&(t.pos=0)})),s)return t;const l=[];let c;return t.forEach((t=>{const e=Object.assign({},t);c&&e.pos===c.pos?(c.dim+=e.dim,c.slides=[...c.slides,...e.slides]):(e.index=l.length,c=e,l.push(e))})),l}getPageFromIndex(t=0){const e=this.pages.length;let i;return t=parseInt((t||0).toString())||0,i=this.isInfinite?(t%e+e)%e:Math.max(Math.min(t,e-1),0),i}getSlideMetrics(t){var i,n;const s=this.isHorizontal?"width":"height";let o=0,a=0,r=t.el;const l=!(!r||r.parentNode);if(r?o=parseFloat(r.dataset[s]||"")||0:(r=document.createElement("div"),r.style.visibility="hidden",(this.track||document.body).prepend(r)),C(r,this.cn(U)+" "+t.class+" "+t.customClass),o)r.style[s]=`${o}px`,r.style["width"===s?"height":"width"]="";else{l&&(this.track||document.body).prepend(r),o=r.getBoundingClientRect()[s]*Math.max(1,(null===(i=window.visualViewport)||void 0===i?void 0:i.scale)||1);let t=r[this.isHorizontal?"offsetWidth":"offsetHeight"];t-1>o&&(o=t)}const c=getComputedStyle(r);return"content-box"===c.boxSizing&&(this.isHorizontal?(o+=parseFloat(c.paddingLeft)||0,o+=parseFloat(c.paddingRight)||0):(o+=parseFloat(c.paddingTop)||0,o+=parseFloat(c.paddingBottom)||0)),a=parseFloat(c[this.isHorizontal?"marginRight":"marginBottom"])||0,l?null===(n=r.parentElement)||void 0===n||n.removeChild(r):t.el||r.remove(),{dim:e(o,1e3),gap:e(a,1e3)}}getBounds(){const{isInfinite:t,isRTL:e,isHorizontal:i,pages:n}=this;let s={min:0,max:0};if(t)s={min:-1/0,max:1/0};else if(n.length){const t=n[0].pos,o=n[n.length-1].pos;s=e&&i?{min:t,max:o}:{min:-1*o,max:-1*t}}return{x:i?s:{min:0,max:0},y:i?{min:0,max:0}:s}}repositionSlides(){let t,{isHorizontal:i,isRTL:n,isInfinite:s,viewport:o,viewportDim:a,contentDim:r,page:l,pages:c,slides:h,panzoom:d}=this,u=0,p=0,f=0,g=0;d?g=-1*d.current[this.axis]:c[l]&&(g=c[l].pos||0),t=i?n?"right":"left":"top",n&&i&&(g*=-1);for(const i of h){const n=i.el;n?("top"===t?(n.style.right="",n.style.left=""):n.style.top="",i.index!==u?n.style[t]=0===p?"":`${e(p,1e3)}px`:n.style[t]="",f+=i.dim+i.gap,u++):p+=i.dim+i.gap}if(s&&f&&o){let n=getComputedStyle(o),s="padding",l=i?"Right":"Bottom",c=parseFloat(n[s+(i?"Left":"Top")]);g-=c,a+=c,a+=parseFloat(n[s+l]);for(const i of h)i.el&&(e(i.pos)<e(a)&&e(i.pos+i.dim+i.gap)<e(g)&&e(g)>e(r-a)&&(i.el.style[t]=`${e(p+f,1e3)}px`),e(i.pos+i.gap)>=e(r-a)&&e(i.pos)>e(g+a)&&e(g)<e(a)&&(i.el.style[t]=`-${e(f,1e3)}px`))}let m,b,v=[...this.inTransition];if(v.length>1&&(m=c[v[0]],b=c[v[1]]),m&&b){let i=0;for(const n of h)n.el?this.inTransition.has(n.index)&&m.slides.indexOf(n)<0&&(n.el.style[t]=`${e(i+(m.pos-b.pos),1e3)}px`):i+=n.dim+n.gap}}createSlideEl(t){const{track:e,slides:i}=this;if(!e||!t)return;if(t.el&&t.el.parentNode)return;const n=t.el||document.createElement("div");C(n,this.cn(U)),C(n,t.class),C(n,t.customClass);const s=t.html;s&&(s instanceof HTMLElement?n.appendChild(s):n.innerHTML=t.html+"");const o=[];i.forEach(((t,e)=>{t.el&&o.push(e)}));const a=t.index;let r=null;o.length&&(r=i[o.reduce(((t,e)=>Math.abs(e-a)<Math.abs(t-a)?e:t))]);const l=r&&r.el&&r.el.parentNode?r.index<t.index?r.el.nextSibling:r.el:null;e.insertBefore(n,e.contains(l)?l:null),t.el=n,this.emit("createSlide",t)}removeSlideEl(t,e=!1){const i=null==t?void 0:t.el;if(!i||!i.parentNode)return;const n=this.cn(G);if(i.classList.contains(n)&&(P(i,n),this.emit("unselectSlide",t)),t.isDom&&!e)return i.removeAttribute("aria-hidden"),i.removeAttribute("data-index"),void(i.style.left="");this.emit("removeSlide",t);const s=new CustomEvent(Z);i.dispatchEvent(s),t.el&&(t.el.remove(),t.el=null)}transitionTo(t=0,e=this.option("transition")){var i,n,s,o;if(!e)return!1;const a=this.page,{pages:r,panzoom:l}=this;t=parseInt((t||0).toString())||0;const c=this.getPageFromIndex(t);if(!l||!r[c]||r.length<2||Math.abs(((null===(n=null===(i=r[a])||void 0===i?void 0:i.slides[0])||void 0===n?void 0:n.dim)||0)-this.viewportDim)>1)return!1;let h=t>a?1:-1;this.isInfinite&&(0===a&&t===r.length-1&&(h=-1),a===r.length-1&&0===t&&(h=1));const d=r[c].pos*(this.isRTL?1:-1);if(a===c&&Math.abs(d-l.target[this.axis])<1)return!1;this.clearTransitions();const u=l.isResting;C(this.container,this.cn("inTransition"));const p=(null===(s=r[a])||void 0===s?void 0:s.slides[0])||null,f=(null===(o=r[c])||void 0===o?void 0:o.slides[0])||null;this.inTransition.add(f.index),this.createSlideEl(f);let g=p.el,m=f.el;u||e===U||(e="fadeFast",g=null);const b=this.isRTL?"next":"prev",v=this.isRTL?"prev":"next";return g&&(this.inTransition.add(p.index),p.transition=e,g.addEventListener(Z,this.onAnimationEnd),g.classList.add(`f-${e}Out`,`to-${h>0?v:b}`)),m&&(f.transition=e,m.addEventListener(Z,this.onAnimationEnd),m.classList.add(`f-${e}In`,`from-${h>0?b:v}`)),l.current[this.axis]=d,l.target[this.axis]=d,l.requestTick(),this.onChange(c),!0}manageSlideVisiblity(){const t=new Set,e=new Set,i=this.getVisibleSlides(parseFloat(this.option("preload",0)+"")||0);for(const n of this.slides)i.has(n)?t.add(n):e.add(n);for(const e of this.inTransition)t.add(this.slides[e]);for(const e of t)this.createSlideEl(e),this.lazyLoadSlide(e);for(const i of e)t.has(i)||this.removeSlideEl(i);this.markSelectedSlides(),this.repositionSlides()}markSelectedSlides(){if(!this.pages[this.page]||!this.pages[this.page].slides)return;const t="aria-hidden";let e=this.cn(G);if(e)for(const i of this.slides){const n=i.el;n&&(n.dataset.index=`${i.index}`,n.classList.contains("f-thumbs__slide")?this.getVisibleSlides(0).has(i)?n.removeAttribute(t):n.setAttribute(t,"true"):this.pages[this.page].slides.includes(i)?(n.classList.contains(e)||(C(n,e),this.emit("selectSlide",i)),n.removeAttribute(t)):(n.classList.contains(e)&&(P(n,e),this.emit("unselectSlide",i)),n.setAttribute(t,"true")))}}flipInfiniteTrack(){const{axis:t,isHorizontal:e,isInfinite:i,isRTL:n,viewportDim:s,contentDim:o}=this,a=this.panzoom;if(!a||!i)return;let r=a.current[t],l=a.target[t]-r,c=0,h=.5*s;n&&e?(r<-h&&(c=-1,r+=o),r>o-h&&(c=1,r-=o)):(r>h&&(c=1,r-=o),r<-o+h&&(c=-1,r+=o)),c&&(a.current[t]=r,a.target[t]=r+l)}lazyLoadImg(t,e){const i=this,n="f-fadeIn",o="is-preloading";let a=!1,r=null;const l=()=>{a||(a=!0,r&&(r.remove(),r=null),P(e,o),e.complete&&(C(e,n),setTimeout((()=>{P(e,n)}),350)),this.option("adaptiveHeight")&&t.el&&this.pages[this.page].slides.indexOf(t)>-1&&(i.updateMetrics(),i.setViewportHeight()),this.emit("load",t))};C(e,o),e.src=e.dataset.lazySrcset||e.dataset.lazySrc||"",delete e.dataset.lazySrc,delete e.dataset.lazySrcset,e.addEventListener("error",(()=>{l()})),e.addEventListener("load",(()=>{l()})),setTimeout((()=>{const i=e.parentNode;i&&t.el&&(e.complete?l():a||(r=s(E),i.insertBefore(r,e)))}),300)}lazyLoadSlide(t){const e=t&&t.el;if(!e)return;const i=new Set;let n=Array.from(e.querySelectorAll("[data-lazy-src],[data-lazy-srcset]"));e.dataset.lazySrc&&n.push(e),n.map((t=>{t instanceof HTMLImageElement?i.add(t):t instanceof HTMLElement&&t.dataset.lazySrc&&(t.style.backgroundImage=`url('${t.dataset.lazySrc}')`,delete t.dataset.lazySrc)}));for(const e of i)this.lazyLoadImg(t,e)}onAnimationEnd(t){var e;const i=t.target,n=i?parseInt(i.dataset.index||"",10)||0:-1,s=this.slides[n],o=t.animationName;if(!i||!s||!o)return;const a=!!this.inTransition.has(n)&&s.transition;a&&o.substring(0,a.length+2)===`f-${a}`&&this.inTransition.delete(n),this.inTransition.size||this.clearTransitions(),n===this.page&&(null===(e=this.panzoom)||void 0===e?void 0:e.isResting)&&this.emit("settle")}onDecel(t,e=0,i=0,n=0,s=0){if(this.option("dragFree"))return void this.setPageFromPosition();const{isRTL:o,isHorizontal:a,axis:r,pages:l}=this,c=l.length,h=Math.abs(Math.atan2(i,e)/(Math.PI/180));let d=0;if(d=h>45&&h<135?a?0:i:a?e:0,!c)return;let u=this.page,p=o&&a?1:-1;const f=t.current[r]*p;let{pageIndex:g}=this.getPageFromPosition(f);Math.abs(d)>5?(l[u].dim<document.documentElement["client"+(this.isHorizontal?"Width":"Height")]-1&&(u=g),u=o&&a?d<0?u-1:u+1:d<0?u+1:u-1):u=0===n&&0===s?u:g,this.slideTo(u,{transition:!1,friction:t.option("decelFriction")})}onClick(t){const e=t.target,i=e&&S(e)?e.dataset:null;let n,s;i&&(void 0!==i.carouselPage?(s="slideTo",n=i.carouselPage):void 0!==i.carouselNext?s="slideNext":void 0!==i.carouselPrev&&(s="slidePrev")),s?(t.preventDefault(),t.stopPropagation(),e&&!e.hasAttribute("disabled")&&this[s](n)):this.emit("click",t)}onSlideTo(t){const e=t.detail||0;this.slideTo(this.getPageForSlide(e),{friction:0})}onChange(t,e=0){const i=this.page;this.prevPage=i,this.page=t,this.option("adaptiveHeight")&&this.setViewportHeight(),t!==i&&(this.markSelectedSlides(),this.emit("change",t,i,e))}onRefresh(){let t=this.contentDim,e=this.viewportDim;this.updateMetrics(),this.contentDim===t&&this.viewportDim===e||this.slideTo(this.page,{friction:0,transition:!1})}onScroll(){var t;null===(t=this.viewport)||void 0===t||t.scroll(0,0)}onResize(){this.option("breakpoints")&&this.processOptions()}onBeforeTransform(t){this.lp!==t.current[this.axis]&&(this.flipInfiniteTrack(),this.manageSlideVisiblity()),this.lp=t.current.e}onEndAnimation(){this.inTransition.size||this.emit("settle")}reInit(t=null,e=null){this.destroy(),this.state=j.Init,this.prevPage=null,this.userOptions=t||this.userOptions,this.userPlugins=e||this.userPlugins,this.processOptions()}slideTo(t=0,{friction:e=this.option("friction"),transition:i=this.option("transition")}={}){if(this.state===j.Destroy)return;t=parseInt((t||0).toString())||0;const n=this.getPageFromIndex(t),{axis:s,isHorizontal:o,isRTL:a,pages:r,panzoom:l}=this,c=r.length,h=a&&o?1:-1;if(!l||!c)return;if(this.page!==n){const e=new Event("beforeChange",{bubbles:!0,cancelable:!0});if(this.emit("beforeChange",e,t),e.defaultPrevented)return}if(this.transitionTo(t,i))return;let d=r[n].pos;if(this.isInfinite){const e=this.contentDim,i=l.target[s]*h;2===c?d+=e*Math.floor(parseFloat(t+"")/2):d=[d,d-e,d+e].reduce((function(t,e){return Math.abs(e-i)<Math.abs(t-i)?e:t}))}d*=h,Math.abs(l.target[s]-d)<1||(l.panTo({x:o?d:0,y:o?0:d,friction:e}),this.onChange(n))}slideToClosest(t){if(this.panzoom){const{pageIndex:e}=this.getPageFromPosition();this.slideTo(e,t)}}slideNext(){this.slideTo(this.page+1)}
394slidePrev(){this.slideTo(this.page-1)}clearTransitions(){this.inTransition.clear(),P(this.container,this.cn("inTransition"));const t=["to-prev","to-next","from-prev","from-next"];for(const e of this.slides){const i=e.el;if(i){i.removeEventListener(Z,this.onAnimationEnd),i.classList.remove(...t);const n=e.transition;n&&i.classList.remove(`f-${n}Out`,`f-${n}In`)}}this.manageSlideVisiblity()}addSlide(t,e){var i,n,s,o;const a=this.panzoom,r=(null===(i=this.pages[this.page])||void 0===i?void 0:i.pos)||0,l=(null===(n=this.pages[this.page])||void 0===n?void 0:n.dim)||0,c=this.contentDim<this.viewportDim;let h=Array.isArray(e)?e:[e];const d=[];for(const t of h)d.push(B(t));this.slides.splice(t,0,...d);for(let t=0;t<this.slides.length;t++)this.slides[t].index=t;for(const t of d)this.emit("beforeInitSlide",t,t.index);if(this.page>=t&&(this.page+=d.length),this.updateMetrics(),a){const e=(null===(s=this.pages[this.page])||void 0===s?void 0:s.pos)||0,i=(null===(o=this.pages[this.page])||void 0===o?void 0:o.dim)||0,n=this.pages.length||1,h=this.isRTL?l-i:i-l,d=this.isRTL?r-e:e-r;c&&1===n?(t<=this.page&&(a.current[this.axis]-=h,a.target[this.axis]-=h),a.panTo({[this.isHorizontal?"x":"y"]:-1*e})):d&&t<=this.page&&(a.target[this.axis]-=d,a.current[this.axis]-=d,a.requestTick())}for(const t of d)this.emit("initSlide",t,t.index)}prependSlide(t){this.addSlide(0,t)}appendSlide(t){this.addSlide(this.slides.length,t)}removeSlide(t){const e=this.slides.length;t=(t%e+e)%e;const i=this.slides[t];if(i){this.removeSlideEl(i,!0),this.slides.splice(t,1);for(let t=0;t<this.slides.length;t++)this.slides[t].index=t;this.updateMetrics(),this.slideTo(this.page,{friction:0,transition:!1}),this.emit("destroySlide",i)}}updateMetrics(){const{panzoom:t,viewport:i,track:n,slides:s,isHorizontal:o,isInfinite:a}=this;if(!n)return;const r=o?"width":"height",l=o?"offsetWidth":"offsetHeight";if(i){let t=Math.max(i[l],e(i.getBoundingClientRect()[r],1e3)),n=getComputedStyle(i),s="padding",a=o?"Right":"Bottom";t-=parseFloat(n[s+(o?"Left":"Top")])+parseFloat(n[s+a]),this.viewportDim=t}let c,h=0;for(const[t,i]of s.entries()){let n=0,o=0;!i.el&&c?(n=c.dim,o=c.gap):(({dim:n,gap:o}=this.getSlideMetrics(i)),c=i),n=e(n,1e3),o=e(o,1e3),i.dim=n,i.gap=o,i.pos=h,h+=n,(a||t<s.length-1)&&(h+=o)}h=e(h,1e3),this.contentDim=h,t&&(t.contentRect[r]=h,t.contentRect[o?"fullWidth":"fullHeight"]=h),this.pages=this.createPages(),this.pages=this.processPages(),this.state===j.Init&&this.setInitialPage(),this.page=Math.max(0,Math.min(this.page,this.pages.length-1)),this.manageSlideVisiblity(),this.emit("refresh")}getProgress(t,i=!1,n=!1){void 0===t&&(t=this.page);const s=this,o=s.panzoom,a=s.contentDim,r=s.pages[t]||0;if(!r||!o)return t>this.page?-1:1;let l=-1*o.current.e,c=e((l-r.pos)/(1*r.dim),1e3),h=c,d=c;this.isInfinite&&!0!==n&&(h=e((l-r.pos+a)/(1*r.dim),1e3),d=e((l-r.pos-a)/(1*r.dim),1e3));let u=[c,h,d].reduce((function(t,e){return Math.abs(e)<Math.abs(t)?e:t}));return i?u:u>1?1:u<-1?-1:u}setViewportHeight(){const{page:t,pages:e,viewport:i,isHorizontal:n}=this;if(!i||!e[t])return;let s=0;n&&this.track&&(this.track.style.height="auto",e[t].slides.forEach((t=>{t.el&&(s=Math.max(s,t.el.offsetHeight))}))),i.style.height=s?`${s}px`:""}getPageForSlide(t){for(const e of this.pages)for(const i of e.slides)if(i.index===t)return e.index;return-1}getVisibleSlides(t=0){var e;const i=new Set;let{panzoom:n,contentDim:s,viewportDim:o,pages:a,page:r}=this;if(o){s=s+(null===(e=this.slides[this.slides.length-1])||void 0===e?void 0:e.gap)||0;let l=0;l=n&&n.state!==b.Init&&n.state!==b.Destroy?-1*n.current[this.axis]:a[r]&&a[r].pos||0,this.isInfinite&&(l-=Math.floor(l/s)*s),this.isRTL&&this.isHorizontal&&(l*=-1);const c=l-o*t,h=l+o*(t+1),d=this.isInfinite?[-1,0,1]:[0];for(const t of this.slides)for(const e of d){const n=t.pos+e*s,o=n+t.dim+t.gap;n<h&&o>c&&i.add(t)}}return i}getPageFromPosition(t){const{viewportDim:e,contentDim:i,slides:n,pages:s,panzoom:o}=this,a=s.length,r=n.length,l=n[0],c=n[r-1],h=this.option("center");let d=0,u=0,p=0,f=void 0===t?-1*((null==o?void 0:o.target[this.axis])||0):t;h&&(f+=.5*e),this.isInfinite?(f<l.pos-.5*c.gap&&(f-=i,p=-1),f>c.pos+c.dim+.5*c.gap&&(f-=i,p=1)):f=Math.max(l.pos||0,Math.min(f,c.pos));let g=c,m=n.find((t=>{const e=t.pos-.5*g.gap,i=t.pos+t.dim+.5*t.gap;return g=t,f>=e&&f<i}));return m||(m=c),u=this.getPageForSlide(m.index),d=u+p*a,{page:d,pageIndex:u}}setPageFromPosition(){const{pageIndex:t}=this.getPageFromPosition();this.onChange(t)}destroy(){if([j.Destroy].includes(this.state))return;this.state=j.Destroy;const{container:t,viewport:e,track:i,slides:n,panzoom:s}=this,o=this.option("classes");t.removeEventListener("click",this.onClick,{passive:!1,capture:!1}),t.removeEventListener("slideTo",this.onSlideTo),window.removeEventListener("resize",this.onResize),s&&(s.destroy(),this.panzoom=null),n&&n.forEach((t=>{this.removeSlideEl(t)})),this.detachPlugins(),e&&(e.removeEventListener("scroll",this.onScroll),e.offsetParent&&i&&i.offsetParent&&e.replaceWith(...i.childNodes));for(const[e,i]of Object.entries(o))"container"!==e&&i&&t.classList.remove(i);this.track=null,this.viewport=null,this.page=0,this.slides=[];const a=this.events.get("ready");this.events=new Map,a&&this.events.set("ready",a)}}Object.defineProperty(J,"Panzoom",{enumerable:!0,configurable:!0,writable:!0,value:I}),Object.defineProperty(J,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:{viewport:null,track:null,enabled:!0,slides:[],axis:"x",transition:"fade",preload:1,slidesPerPage:"auto",initialPage:0,friction:.12,Panzoom:{decelFriction:.12},center:!0,infinite:!0,fill:!0,dragFree:!1,adaptiveHeight:!1,direction:"ltr",classes:{container:"f-carousel",viewport:"f-carousel__viewport",track:"f-carousel__track",slide:"f-carousel__slide",isLTR:"is-ltr",isRTL:"is-rtl",isHorizontal:"is-horizontal",isVertical:"is-vertical",inTransition:"in-transition",isSelected:"is-selected"},l10n:{NEXT:"Next slide",PREV:"Previous slide",GOTO:"Go to slide #%d"}}}),Object.defineProperty(J,"Plugins",{enumerable:!0,configurable:!0,writable:!0,value:V}
vendor: 5,814 bytes, line 394
394);const K=function(t){if(!S(t))return 0;const e=window.scrollY,i=window.innerHeight,n=e+i,s=t.getBoundingClientRect(),o=s.y+e,a=s.height,r=o+a;if(e>r||n<o)return 0;if(e<o&&n>r)return 100;if(o<e&&r>n)return 100;let l=a;o<e&&(l-=e-o),r>n&&(l-=r-n);const c=l/i*100;return Math.round(c)},Q=!("undefined"==typeof window||!window.document||!window.document.createElement);let tt;const et=["a[href]","area[href]",'input:not([disabled]):not([type="hidden"]):not([aria-hidden])',"select:not([disabled]):not([aria-hidden])","textarea:not([disabled]):not([aria-hidden])","button:not([disabled]):not([aria-hidden]):not(.fancybox-focus-guard)","iframe","object","embed","video","audio","[contenteditable]",'[tabindex]:not([tabindex^="-"]):not([disabled]):not([aria-hidden])'].join(","),it=t=>{if(t&&Q){void 0===tt&&document.createElement("div").focus({get preventScroll(){return tt=!0,!1}});try{if(tt)t.focus({preventScroll:!0});else{const e=window.scrollY||document.body.scrollTop,i=window.scrollX||document.body.scrollLeft;t.focus(),document.body.scrollTo({top:e,left:i,behavior:"auto"})}}catch(t){}}},nt=()=>{const t=document;let e,i="",n="",s="";return t.fullscreenEnabled?(i="requestFullscreen",n="exitFullscreen",s="fullscreenElement"):t.webkitFullscreenEnabled&&(i="webkitRequestFullscreen",n="webkitExitFullscreen",s="webkitFullscreenElement"),i&&(e={request:function(e=t.documentElement){return"webkitRequestFullscreen"===i?e[i](Element.ALLOW_KEYBOARD_INPUT):e[i]()},exit:function(){return t[s]&&t[n]()},isFullscreen:function(){return t[s]}}),e},st={animated:!0,autoFocus:!0,backdropClick:"close",Carousel:{classes:{container:"fancybox__carousel",viewport:"fancybox__viewport",track:"fancybox__track",slide:"fancybox__slide"}},closeButton:"auto",closeExisting:!1,commonCaption:!1,compact:()=>window.matchMedia("(max-width: 578px), (max-height: 578px)").matches,contentClick:"toggleZoom",contentDblClick:!1,defaultType:"image",defaultDisplay:"block",dragToClose:!0,Fullscreen:{autoStart:!1},groupAll:!1,groupAttr:"data-fancybox",hideClass:"f-fadeOut",hideScrollbar:!0,idle:3500,keyboard:{Escape:"close",Delete:"close",Backspace:"close",PageUp:"next",PageDown:"prev",ArrowUp:"prev",ArrowDown:"next",ArrowRight:"next",ArrowLeft:"prev"},l10n:Object.assign(Object.assign({},y),{CLOSE:"Close",NEXT:"Next",PREV:"Previous",MODAL:"You can close this modal content with the ESC key",ERROR:"Something Went Wrong, Please Try Again Later",IMAGE_ERROR:"Image Not Found",ELEMENT_NOT_FOUND:"HTML Element Not Found",AJAX_NOT_FOUND:"Error Loading AJAX : Not Found",AJAX_FORBIDDEN:"Error Loading AJAX : Forbidden",IFRAME_ERROR:"Error Loading Page",TOGGLE_ZOOM:"Toggle zoom level",TOGGLE_THUMBS:"Toggle thumbnails",TOGGLE_SLIDESHOW:"Toggle slideshow",TOGGLE_FULLSCREEN:"Toggle full-screen mode",DOWNLOAD:"Download"}),parentEl:null,placeFocusBack:!0,showClass:"f-zoomInUp",startIndex:0,tpl:{closeButton:'<button data-fancybox-close class="f-button is-close-btn" title="{{CLOSE}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" tabindex="-1"><path d="M20 20L4 4m16 0L4 20"/></svg></button>',main:'<div class="fancybox__container" role="dialog" aria-modal="true" aria-label="{{MODAL}}" tabindex="-1">\n    <div class="fancybox__backdrop"></div>\n    <div class="fancybox__carousel"></div>\n    <div class="fancybox__footer"></div>\n  </div>'},trapFocus:!0,wheel:"zoom"};var ot,at;!function(t){t[t.Init=0]="Init",t[t.Ready=1]="Ready",t[t.Closing=2]="Closing",t[t.CustomClosing=3]="CustomClosing",t[t.Destroy=4]="Destroy"}(ot||(ot={})),function(t){t[t.Loading=0]="Loading",t[t.Opening=1]="Opening",t[t.Ready=2]="Ready",t[t.Closing=3]="Closing"}(at||(at={}));let rt="",lt=!1,ct=!1,ht=null;const dt=()=>{let t="",e="";const i=Pe.getInstance();if(i){const n=i.carousel,s=i.getSlide();if(n&&s){let o=s.slug||void 0,a=s.triggerEl||void 0;e=o||i.option("slug")||"",!e&&a&&a.dataset&&(e=a.dataset.fancybox||""),e&&"true"!==e&&(t="#"+e+(!o&&n.slides.length>1?"-"+(s.index+1):""))}}return{hash:t,slug:e,index:1}},ut=()=>{const t=new URL(document.URL).hash,e=t.slice(1).split("-"),i=e[e.length-1],n=i&&/^\+?\d+$/.test(i)&&parseInt(e.pop()||"1",10)||1;return{hash:t,slug:e.join("-"),index:n}},pt=()=>{const{slug:t,index:e}=ut();if(!t)return;let i=document.querySelector(`[data-slug="${t}"]`);if(i&&i.dispatchEvent(new CustomEvent("click",{bubbles:!0,cancelable:!0})),Pe.getInstance())return;const n=document.querySelectorAll(`[data-fancybox="${t}"]`);n.length&&(i=n[e-1],i&&i.dispatchEvent(new CustomEvent("click",{bubbles:!0,cancelable:!0})))},ft=()=>{if(!1===Pe.defaults.Hash)return;const t=Pe.getInstance();if(!1===(null==t?void 0:t.options.Hash))return;const{slug:e,index:i}=ut(),{slug:n}=dt();t&&(e===n?t.jumpTo(i-1):(lt=!0,t.close())),pt()},gt=()=>{ht&&clearTimeout(ht),queueMicrotask((()=>{ft()}))},mt=()=>{window.addEventListener("hashchange",gt,!1),setTimeout((()=>{ft()}),500)};Q&&(/complete|interactive|loaded/.test(document.readyState)?mt():document.addEventListener("DOMContentLoaded",mt));const bt="is-zooming-in";class vt extends ${onCreateSlide(t,e,i){const n=this.instance.optionFor(i,"src")||"";i.el&&"image"===i.type&&"string"==typeof n&&this.setImage(i,n)}onRemoveSlide(t,e,i){i.panzoom&&i.panzoom.destroy(),i.panzoom=void 0,i.imageEl=void 0}onChange(t,e,i,n){P(this.instance.container,bt);for(const t of e.slides){const e=t.panzoom;e&&t.index!==i&&e.reset(.35)}}onClose(){var t;const e=this.instance,i=e.container,n=e.getSlide();if(!i||!i.parentElement||!n)return;const{el:s,contentEl:o,panzoom:a,thumbElSrc:r}=n;if(!s||!r||!o||!a||a.isContentLoading||a.state===b.Init||a.state===b.Destroy)return;a.updateMetrics();let l=this.getZoomInfo(n);if(!l)return;this.instance.state=ot.CustomClosing,i.classList.remove(bt),i.classList.add("is-zooming-out"),o.style.backgroundImage=`url('${r}')`;const c=i.getBoundingClientRect();
vendor: 9,724 bytes, line 394
3941===((null===(t=window.visualViewport)||void 0===t?void 0:t.scale)||1)&&Object.assign(i.style,{position:"absolute",top:`${i.offsetTop+window.scrollY}px`,left:`${i.offsetLeft+window.scrollX}px`,bottom:"auto",right:"auto",width:`${c.width}px`,height:`${c.height}px`,overflow:"hidden"});const{x:h,y:d,scale:u,opacity:p}=l;if(p){const t=((t,e,i,n)=>{const s=e-t;return e=>1+((e-t)/s*-1||0)})(a.scale,u);a.on("afterTransform",(()=>{o.style.opacity=t(a.scale)+""}))}a.on("endAnimation",(()=>{e.destroy()})),a.target.a=u,a.target.b=0,a.target.c=0,a.target.d=u,a.panTo({x:h,y:d,scale:u,friction:p?.2:.33,ignoreBounds:!0}),a.isResting&&e.destroy()}setImage(t,e){const i=this.instance;t.src=e,this.process(t,e).then((e=>{const{contentEl:n,imageEl:s,thumbElSrc:o,el:a}=t;if(i.isClosing()||!n||!s)return;n.offsetHeight;const r=!!i.isOpeningSlide(t)&&this.getZoomInfo(t);if(this.option("protected")&&a){a.addEventListener("contextmenu",(t=>{t.preventDefault()}));const t=document.createElement("div");C(t,"fancybox-protected"),n.appendChild(t)}if(o&&r){const s=e.contentRect,a=Math.max(s.fullWidth,s.fullHeight);let c=null;!r.opacity&&a>1200&&(c=document.createElement("img"),C(c,"fancybox-ghost"),c.src=o,n.appendChild(c));const h=()=>{c&&(C(c,"f-fadeFastOut"),setTimeout((()=>{c&&(c.remove(),c=null)}),200))};(l=o,new Promise(((t,e)=>{const i=new Image;i.onload=t,i.onerror=e,i.src=l}))).then((()=>{i.hideLoading(t),t.state=at.Opening,this.instance.emit("reveal",t),this.zoomIn(t).then((()=>{h(),this.instance.done(t)}),(()=>{})),c&&setTimeout((()=>{h()}),a>2500?800:200)}),(()=>{i.hideLoading(t),i.revealContent(t)}))}else{const n=this.optionFor(t,"initialSize"),s=this.optionFor(t,"zoom"),o={event:i.prevMouseMoveEvent||i.options.event,friction:s?.12:0};let a=i.optionFor(t,"showClass")||void 0,r=!0;i.isOpeningSlide(t)&&("full"===n?e.zoomToFull(o):"cover"===n?e.zoomToCover(o):"max"===n?e.zoomToMax(o):r=!1,e.stop("current")),r&&a&&(a=e.isDragging?"f-fadeIn":""),i.hideLoading(t),i.revealContent(t,a)}var l}),(()=>{i.setError(t,"{{IMAGE_ERROR}}")}))}process(t,e){return new Promise(((i,n)=>{var o;const a=this.instance,r=t.el;a.clearContent(t),a.showLoading(t);let l=this.optionFor(t,"content");if("string"==typeof l&&(l=s(l)),!l||!S(l)){if(l=document.createElement("img"),l instanceof HTMLImageElement){let i="",n=t.caption;i="string"==typeof n&&n?n.replace(/<[^>]+>/gi,"").substring(0,1e3):`Image ${t.index+1} of ${(null===(o=a.carousel)||void 0===o?void 0:o.pages.length)||1}`,l.src=e||"",l.alt=i,l.draggable=!1,t.srcset&&l.setAttribute("srcset",t.srcset),this.instance.isOpeningSlide(t)&&(l.fetchPriority="high")}t.sizes&&l.setAttribute("sizes",t.sizes)}C(l,"fancybox-image"),t.imageEl=l,a.setContent(t,l,!1),t.panzoom=new I(r,p({transformParent:!0},this.option("Panzoom")||{},{content:l,width:(e,i)=>a.optionFor(t,"width","auto",i)||"auto",height:(e,i)=>a.optionFor(t,"height","auto",i)||"auto",wheel:()=>{const t=a.option("wheel");return("zoom"===t||"pan"==t)&&t},click:(e,i)=>{var n,s;if(a.isCompact||a.isClosing())return!1;if(t.index!==(null===(n=a.getSlide())||void 0===n?void 0:n.index))return!1;if(i){const t=i.composedPath()[0];if(["A","BUTTON","TEXTAREA","OPTION","INPUT","SELECT","VIDEO"].includes(t.nodeName))return!1}let o=!i||i.target&&(null===(s=t.contentEl)||void 0===s?void 0:s.contains(i.target));return a.option(o?"contentClick":"backdropClick")||!1},dblClick:()=>a.isCompact?"toggleZoom":a.option("contentDblClick")||!1,spinner:!1,panOnlyZoomed:!0,wheelLimit:1/0,on:{ready:t=>{i(t)},error:()=>{n()},destroy:()=>{n()}}}))}))}zoomIn(t){return new Promise(((e,i)=>{const n=this.instance,s=n.container,{panzoom:o,contentEl:a,el:r}=t;o&&o.updateMetrics();const l=this.getZoomInfo(t);if(!(l&&r&&a&&o&&s))return void i();const{x:c,y:h,scale:d,opacity:u}=l,p=()=>{t.state!==at.Closing&&(u&&(a.style.opacity=Math.max(Math.min(1,1-(1-o.scale)/(1-d)),0)+""),o.scale>=1&&o.scale>o.targetScale-.1&&e(o))},f=t=>{(t.scale<.99||t.scale>1.01)&&!t.isDragging||(P(s,bt),a.style.opacity="",t.off("endAnimation",f),t.off("touchStart",f),t.off("afterTransform",p),e(t))};o.on("endAnimation",f),o.on("touchStart",f),o.on("afterTransform",p),o.on(["error","destroy"],(()=>{i()})),o.panTo({x:c,y:h,scale:d,friction:0,ignoreBounds:!0}),o.stop("current");const g={event:"mousemove"===o.panMode?n.prevMouseMoveEvent||n.options.event:void 0},m=this.optionFor(t,"initialSize");C(s,bt),n.hideLoading(t),"full"===m?o.zoomToFull(g):"cover"===m?o.zoomToCover(g):"max"===m?o.zoomToMax(g):o.reset(.172)}))}getZoomInfo(t){const{el:e,imageEl:i,thumbEl:n,panzoom:s}=t,o=this.instance,a=o.container;if(!e||!i||!n||!s||K(n)<3||!this.optionFor(t,"zoom")||!a||o.state===ot.Destroy)return!1;if("0"===getComputedStyle(a).getPropertyValue("--f-images-zoom"))return!1;const r=window.visualViewport||null;if(1!==(r?r.scale:1))return!1;let{top:l,left:c,width:h,height:d}=n.getBoundingClientRect(),{top:u,left:p,fitWidth:f,fitHeight:g}=s.contentRect;if(!(h&&d&&f&&g))return!1;const m=s.container.getBoundingClientRect();p+=m.left,u+=m.top;const b=-1*(p+.5*f-(c+.5*h)),v=-1*(u+.5*g-(l+.5*d)),y=h/f;let w=this.option("zoomOpacity")||!1;return"auto"===w&&(w=Math.abs(h/d-f/g)>.1),{x:b,y:v,scale:y,opacity:w}}attach(){const t=this,e=t.instance;e.on("Carousel.change",t.onChange),e.on("Carousel.createSlide",t.onCreateSlide),e.on("Carousel.removeSlide",t.onRemoveSlide),e.on("close",t.onClose)}detach(){const t=this,e=t.instance;e.off("Carousel.change",t.onChange),e.off("Carousel.createSlide",t.onCreateSlide),e.off("Carousel.removeSlide",t.onRemoveSlide),e.off("close",t.onClose)}}Object.defineProperty(vt,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:{initialSize:"fit",Panzoom:{maxScale:1},protected:!1,zoom:!0,zoomOpacity:"auto"}}),"function"==typeof SuppressedError&&SuppressedError;const yt="html",wt="image",xt="map",Et="youtube",St="vimeo",Pt="html5video",Ct=(t,e={})=>{const i=new URL(t),n=new URLSearchParams(i.search),s=new URLSearchParams;for(const[t,i]of[...n,...Object.entries(e)]){let e=i+"";if("t"===t){let t=e.match(/((\d*)m)?(\d*)s?/);t&&s.set("start",60*parseInt(t[2]||"0")+parseInt(t[3]||"0")+"")}else s.set(t,e)}let o=s+"",a=t.match(/#t=((.*)?\d+s)/);return a&&(o+=`#t=${a[1]}`),o},Tt=["image","html","ajax","inline","clone","iframe","map","pdf","html5video","youtube","vimeo"];class Mt extends ${onBeforeInitSlide(t,e,i){this.processType(i)}onCreateSlide(t,e,i){this.setContent(i)}onClearContent(t,e){e.xhr&&(e.xhr.abort(),e.xhr=null);const i=e.iframeEl;i&&(i.onload=i.onerror=null,i.src="//about:blank",e.iframeEl=null);const n=e.contentEl,s=e.placeholderEl;if("inline"===e.type&&n&&s)n.classList.remove("fancybox__content"),"none"!==n.style.display&&(n.style.display="none"),s.parentNode&&s.parentNode.insertBefore(n,s),s.remove(),e.contentEl=void 0,e.placeholderEl=void 0;else for(;e.el&&e.el.firstChild;)e.el.removeChild(e.el.firstChild)}onSelectSlide(t,e,i){i.state===at.Ready&&this.playVideo()}onUnselectSlide(t,e,i){var n,s;if(i.type===Pt){try{null===(s=null===(n=i.el)||void 0===n?void 0:n.querySelector("video"))||void 0===s||s.pause()}catch(t){}return}let o;i.type===St?o={method:"pause",value:"true"}:i.type===Et&&(o={event:"command",func:"pauseVideo"}),o&&i.iframeEl&&i.iframeEl.contentWindow&&i.iframeEl.contentWindow.postMessage(JSON.stringify(o),"*"),i.poller&&clearTimeout(i.poller)}onDone(t,e){t.isCurrentSlide(e)&&!t.isClosing()&&this.playVideo()}onRefresh(t,e){e.slides.forEach((t=>{t.el&&(this.resizeIframe(t),this.setAspectRatio(t))}))}onMessage(t){try{let e=JSON.parse(t.data);if("https://player.vimeo.com"===t.origin){if("ready"===e.event)for(let e of Array.from(document.getElementsByClassName("fancybox__iframe")))e instanceof HTMLIFrameElement&&e.contentWindow===t.source&&(e.dataset.ready="true")}else if(t.origin.match(/^https:\/\/(www.)?youtube(-nocookie)?.com$/)&&"onReady"===e.event){const t=document.getElementById(e.id);t&&(t.dataset.ready="true")}}catch(t){}}loadAjaxContent(t){const e=this.instance.optionFor(t,"src")||"";this.instance.showLoading(t);const i=this.instance,n=new XMLHttpRequest;i.showLoading(t),n.onreadystatechange=function(){n.readyState===XMLHttpRequest.DONE&&i.state===ot.Ready&&(i.hideLoading(t),200===n.status?i.setContent(t,n.responseText):i.setError(t,404===n.status?"{{AJAX_NOT_FOUND}}":"{{AJAX_FORBIDDEN}}"))};const s=t.ajax||null;n.open(s?"POST":"GET",e+""),n.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),n.setRequestHeader("X-Requested-With","XMLHttpRequest"),n.send(s),t.xhr=n}setInlineContent(t){let e=null;if(S(t.src))e=t.src;else if("string"==typeof t.src){const i=t.src.split("#",2).pop();e=i?document.getElementById(i):null}if(e){if("clone"===t.type||e.closest(".fancybox__slide")){e=e.cloneNode(!0);const i=e.dataset.animationName;i&&(e.classList.remove(i),delete e.dataset.animationName);let n=e.getAttribute("id");n=n?`${n}--clone`:`clone-${this.instance.id}-${t.index}`,e.setAttribute("id",n)}else if(e.parentNode){const i=document.createElement("div");i.classList.add("fancybox-placeholder"),e.parentNode.insertBefore(i,e),t.placeholderEl=i}this.instance.setContent(t,e)}else this.instance.setError(t,"{{ELEMENT_NOT_FOUND}}")}setIframeContent(t){const{src:e,el:i}=t;if(!e||"string"!=typeof e||!i)return;i.classList.add("is-loading");const n=this.instance,s=document.createElement("iframe");s.className="fancybox__iframe",s.setAttribute("id",`fancybox__iframe_${n.id}_${t.index}`);for(const[e,i]of Object.entries(this.optionFor(t,"iframeAttr")||{}))s.setAttribute(e,i);s.onerror=()=>{n.setError(t,"{{IFRAME_ERROR}}")},t.iframeEl=s;const o=this.optionFor(t,"preload");if("iframe"!==t.type||!1===o)return s.setAttribute("src",t.src+""),n.setContent(t,s,!1),this.resizeIframe(t),void n.revealContent(t);n.showLoading(t),s.onload=()=>
vendor: 9,511 bytes, line 394
394{if(!s.src.length)return;const e="true"!==s.dataset.ready;s.dataset.ready="true",this.resizeIframe(t),e?n.revealContent(t):n.hideLoading(t)},s.setAttribute("src",e),n.setContent(t,s,!1)}resizeIframe(t){const{type:e,iframeEl:i}=t;if(e===Et||e===St)return;const n=null==i?void 0:i.parentElement;if(!i||!n)return;let s=t.autoSize;void 0===s&&(s=this.optionFor(t,"autoSize"));let o=t.width||0,a=t.height||0;o&&a&&(s=!1);const r=n&&n.style;if(!1!==t.preload&&!1!==s&&r)try{const t=window.getComputedStyle(n),e=parseFloat(t.paddingLeft)+parseFloat(t.paddingRight),s=parseFloat(t.paddingTop)+parseFloat(t.paddingBottom),l=i.contentWindow;if(l){const t=l.document,i=t.getElementsByTagName(yt)[0],n=t.body;r.width="",n.style.overflow="hidden",o=o||i.scrollWidth+e,r.width=`${o}px`,n.style.overflow="",r.flex="0 0 auto",r.height=`${n.scrollHeight}px`,a=i.scrollHeight+s}}catch(t){}if(o||a){const t={flex:"0 1 auto",width:"",height:""};o&&"auto"!==o&&(t.width=`${o}px`),a&&"auto"!==a&&(t.height=`${a}px`),Object.assign(r,t)}}playVideo(){const t=this.instance.getSlide();if(!t)return;const{el:e}=t;if(!e||!e.offsetParent)return;if(!this.optionFor(t,"videoAutoplay"))return;if(t.type===Pt)try{const t=e.querySelector("video");if(t){const e=t.play();void 0!==e&&e.then((()=>{})).catch((e=>{t.muted=!0,t.play()}))}}catch(t){}if(t.type!==Et&&t.type!==St)return;const i=()=>{if(t.iframeEl&&t.iframeEl.contentWindow){let e;if("true"===t.iframeEl.dataset.ready)return e=t.type===Et?{event:"command",func:"playVideo"}:{method:"play",value:"true"},e&&t.iframeEl.contentWindow.postMessage(JSON.stringify(e),"*"),void(t.poller=void 0);t.type===Et&&(e={event:"listening",id:t.iframeEl.getAttribute("id")},t.iframeEl.contentWindow.postMessage(JSON.stringify(e),"*"))}t.poller=setTimeout(i,250)};i()}processType(t){if(t.html)return t.type=yt,t.src=t.html,void(t.html="");const e=this.instance.optionFor(t,"src","");if(!e||"string"!=typeof e)return;let i=t.type,n=null;if(n=e.match(/(youtube\.com|youtu\.be|youtube\-nocookie\.com)\/(?:watch\?(?:.*&)?v=|v\/|u\/|shorts\/|embed\/?)?(videoseries\?list=(?:.*)|[\w-]{11}|\?listType=(?:.*)&list=(?:.*))(?:.*)/i)){const s=this.optionFor(t,Et),{nocookie:o}=s,a=function(t,e){var i={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.indexOf(n)<0&&(i[n]=t[n]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(n=Object.getOwnPropertySymbols(t);s<n.length;s++)e.indexOf(n[s])<0&&Object.prototype.propertyIsEnumerable.call(t,n[s])&&(i[n[s]]=t[n[s]])}return i}(s,["nocookie"]),r=`www.youtube${o?"-nocookie":""}.com`,l=Ct(e,a),c=encodeURIComponent(n[2]);t.videoId=c,t.src=`https://${r}/embed/${c}?${l}`,t.thumbSrc=t.thumbSrc||`https://i.ytimg.com/vi/${c}/mqdefault.jpg`,i=Et}else if(n=e.match(/^.+vimeo.com\/(?:\/)?([\d]+)((\/|\?h=)([a-z0-9]+))?(.*)?/)){const s=Ct(e,this.optionFor(t,St)),o=encodeURIComponent(n[1]),a=n[4]||"";t.videoId=o,t.src=`https://player.vimeo.com/video/${o}?${a?`h=${a}${s?"&":""}`:""}${s}`,i=St}if(!i&&t.triggerEl){const e=t.triggerEl.dataset.type;Tt.includes(e)&&(i=e)}i||"string"==typeof e&&("#"===e.charAt(0)?i="inline":(n=e.match(/\.(mp4|mov|ogv|webm)((\?|#).*)?$/i))?(i=Pt,t.videoFormat=t.videoFormat||"video/"+("ogv"===n[1]?"ogg":n[1])):e.match(/(^data:image\/[a-z0-9+\/=]*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\?|#).*)?$)/i)?i=wt:e.match(/\.(pdf)((\?|#).*)?$/i)&&(i="pdf")),(n=e.match(/(?:maps\.)?google\.([a-z]{2,3}(?:\.[a-z]{2})?)\/(?:(?:(?:maps\/(?:place\/(?:.*)\/)?\@(.*),(\d+.?\d+?)z))|(?:\?ll=))(.*)?/i))?(t.src=`https://maps.google.${n[1]}/?ll=${(n[2]?n[2]+"&z="+Math.floor(parseFloat(n[3]))+(n[4]?n[4].replace(/^\//,"&"):""):n[4]+"").replace(/\?/,"&")}&output=${n[4]&&n[4].indexOf("layer=c")>0?"svembed":"embed"}`,i=xt):(n=e.match(/(?:maps\.)?google\.([a-z]{2,3}(?:\.[a-z]{2})?)\/(?:maps\/search\/)(.*)/i))&&(t.src=`https://maps.google.${n[1]}/maps?q=${n[2].replace("query=","q=").replace("api=1","")}&output=embed`,i=xt),i=i||this.instance.option("defaultType"),t.type=i,i===wt&&(t.thumbSrc=t.thumbSrc||t.src)}setContent(t){const e=this.instance.optionFor(t,"src")||"";if(t&&t.type&&e){switch(t.type){case yt:this.instance.setContent(t,e);break;case Pt:const i=this.option("videoTpl");i&&this.instance.setContent(t,i.replace(/\{\{src\}\}/gi,e+"").replace(/\{\{format\}\}/gi,this.optionFor(t,"videoFormat")||"").replace(/\{\{poster\}\}/gi,t.poster||t.thumbSrc||""));break;case"inline":case"clone":this.setInlineContent(t);break;case"ajax":this.loadAjaxContent(t);break;case"pdf":case xt:case Et:case St:t.preload=!1;case"iframe":this.setIframeContent(t)}this.setAspectRatio(t)}}setAspectRatio(t){const e=t.contentEl;if(!(t.el&&e&&t.type&&[Et,St,Pt].includes(t.type)))return;let i,n=t.width||"auto",s=t.height||"auto";if("auto"===n||"auto"===s){i=this.optionFor(t,"videoRatio");const e=(i+"").match(/(\d+)\s*\/\s?(\d+)/);i=e&&e.length>2?parseFloat(e[1])/parseFloat(e[2]):parseFloat(i+"")}else n&&s&&(i=n/s);if(!i)return;e.style.aspectRatio="",e.style.width="",e.style.height="",e.offsetHeight;const o=e.getBoundingClientRect(),a=o.width||1,r=o.height||1;e.style.aspectRatio=i+"",i<a/r?(s="auto"===s?r:Math.min(r,s),e.style.width="auto",e.style.height=`${s}px`):(n="auto"===n?a:Math.min(a,n),e.style.width=`${n}px`,e.style.height="auto")}attach(){const t=this,e=t.instance;e.on("Carousel.beforeInitSlide",t.onBeforeInitSlide),e.on("Carousel.createSlide",t.onCreateSlide),e.on("Carousel.selectSlide",t.onSelectSlide),e.on("Carousel.unselectSlide",t.onUnselectSlide),e.on("Carousel.Panzoom.refresh",t.onRefresh),e.on("done",t.onDone),e.on("clearContent",t.onClearContent),window.addEventListener("message",t.onMessage)}detach(){const t=this,e=t.instance;e.off("Carousel.beforeInitSlide",t.onBeforeInitSlide),e.off("Carousel.createSlide",t.onCreateSlide),e.off("Carousel.selectSlide",t.onSelectSlide),e.off("Carousel.unselectSlide",t.onUnselectSlide),e.off("Carousel.Panzoom.refresh",t.onRefresh),e.off("done",t.onDone),e.off("clearContent",t.onClearContent),window.removeEventListener("message",t.onMessage)}}Object.defineProperty(Mt,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:{ajax:null,autoSize:!0,iframeAttr:{allow:"autoplay; fullscreen",scrolling:"auto"},preload:!0,videoAutoplay:!0,videoRatio:16/9,videoTpl:'<video class="fancybox__html5video" playsinline controls controlsList="nodownload" poster="{{poster}}">\n  <source src="{{src}}" type="{{format}}" />Sorry, your browser doesn\'t support embedded videos.</video>',videoFormat:"",vimeo:{byline:1,color:"00adef",controls:1,dnt:1,muted:0},youtube:{controls:1,enablejsapi:1,nocookie:1,rel:0,fs:1}}});const Ot="play",Lt="pause",At="ready";class kt extends ${constructor(){super(...arguments),Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:At}),Object.defineProperty(this,"inHover",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"timer",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"progressBar",{enumerable:!0,configurable:!0,writable:!0,value:null})}get isActive(){return this.state!==At}onReady(t){this.option("autoStart")&&(t.isInfinite||t.page<t.pages.length-1)&&this.start()}onChange(){this.removeProgressBar(),this.pause()}onSettle(){this.resume()}onVisibilityChange(){"visible"===document.visibilityState?this.resume():this.pause()}onMouseEnter(){this.inHover=!0,this.pause()}onMouseLeave(){var t;this.inHover=!1,(null===(t=this.instance.panzoom)||void 0===t?void 0:t.isResting)&&this.resume()}onTimerEnd(){const t=this.instance;"play"===this.state&&(t.isInfinite||t.page!==t.pages.length-1?t.slideNext():t.slideTo(0))}removeProgressBar(){this.progressBar&&(this.progressBar.remove(),this.progressBar=null)}createProgressBar(){var t;if(!this.option("showProgress"))return null;this.removeProgressBar();const e=this.instance,i=(null===(t=e.pages[e.page])||void 0===t?void 0:t.slides)||[];let n=this.option("progressParentEl");if(n||(n=(1===i.length?i[0].el:null)||e.viewport),!n)return null;const s=document.createElement("div");return C(s,"f-progress"),n.prepend(s),this.progressBar=s,s.offsetHeight,s}set(){const t=this,e=t.instance;if(e.pages.length<2)return;if(t.timer)return;const i=t.option("timeout");t.state=Ot,C(e.container,"has-autoplay");let n=t.createProgressBar();n&&(n.style.transitionDuration=`${i}ms`,n.style.transform="scaleX(1)"),t.timer=setTimeout((()=>{t.timer=null,t.inHover||t.onTimerEnd()}),i),t.emit("set")}clear(){const t=this;t.timer&&(clearTimeout(t.timer),t.timer=null),t.removeProgressBar()}start(){const t=this;if(t.set(),t.state!==At){if(t.option("pauseOnHover")){const e=t.instance.container;e.addEventListener("mouseenter",t.onMouseEnter,!1),e.addEventListener("mouseleave",t.onMouseLeave,!1)}document.addEventListener("visibilitychange",t.onVisibilityChange,!1),t.emit("start")}}stop(){const t=this,e=t.state,i=t.instance.container;t.clear(),t.state=At,i.removeEventListener("mouseenter",t.onMouseEnter,!1),i.removeEventListener("mouseleave",t.onMouseLeave,!1),document.removeEventListener("visibilitychange",t.onVisibilityChange,!1),P(i,"has-autoplay"),e!==At&&t.emit("stop")}pause(){const t=this;t.state===Ot&&(t.state=Lt,t.clear(),t.emit(Lt))}resume(){const t=this,e=t.instance;if(e.isInfinite||e.page!==e.pages.length-1)if(t.state!==Ot){if(t.state===Lt&&!t.inHover){const e=new Event("resume",{bubbles:!0,cancelable:!0});t.emit("resume",e),e.defaultPrevented||t.set()}}else t.set();else t.stop()}toggle(){this.state===Ot||this.state===Lt?this.stop():this.start()}attach(){const t=this,e=t.instance;
vendor: 11,834 bytes, lines 394-395
394e.on("ready",t.onReady),e.on("Panzoom.startAnimation",t.onChange),e.on("Panzoom.endAnimation",t.onSettle),e.on("Panzoom.touchMove",t.onChange)}detach(){const t=this,e=t.instance;e.off("ready",t.onReady),e.off("Panzoom.startAnimation",t.onChange),e.off("Panzoom.endAnimation",t.onSettle),e.off("Panzoom.touchMove",t.onChange),t.stop()}}Object.defineProperty(kt,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:{autoStart:!0,pauseOnHover:!0,progressParentEl:null,showProgress:!0,timeout:3e3}});class zt extends ${constructor(){super(...arguments),Object.defineProperty(this,"ref",{enumerable:!0,configurable:!0,writable:!0,value:null})}onPrepare(t){const e=t.carousel;if(!e)return;const i=t.container;i&&(e.options.Autoplay=p({autoStart:!1},this.option("Autoplay")||{},{pauseOnHover:!1,timeout:this.option("timeout"),progressParentEl:()=>this.option("progressParentEl")||null,on:{
395start:()=>{t.emit("startSlideshow")},set:e=>{var n;i.classList.add("has-slideshow"),(null===(n=t.getSlide())||void 0===n?void 0:n.state)!==at.Ready&&e.pause()},stop:()=>{i.classList.remove("has-slideshow"),t.isCompact||t.endIdle(),t.emit("endSlideshow")},resume:(e,i)=>{var n,s,o;!i||!i.cancelable||(null===(n=t.getSlide())||void 0===n?void 0:n.state)===at.Ready&&(null===(o=null===(s=t.carousel)||void 0===s?void 0:s.panzoom)||void 0===o?void 0:o.isResting)||i.preventDefault()}}}),e.attachPlugins({Autoplay:kt}),this.ref=e.plugins.Autoplay)}onReady(t){const e=t.carousel,i=this.ref;i&&e&&this.option("playOnStart")&&(e.isInfinite||e.page<e.pages.length-1)&&i.start()}onDone(t,e){const i=this.ref,n=t.carousel;if(!i||!n)return;const s=e.panzoom;s&&s.on("startAnimation",(()=>{t.isCurrentSlide(e)&&i.stop()})),t.isCurrentSlide(e)&&i.resume()}onKeydown(t,e){var i;const n=this.ref;n&&e===this.option("key")&&"BUTTON"!==(null===(i=document.activeElement)||void 0===i?void 0:i.nodeName)&&n.toggle()}attach(){const t=this,e=t.instance;e.on("Carousel.init",t.onPrepare),e.on("Carousel.ready",t.onReady),e.on("done",t.onDone),e.on("keydown",t.onKeydown)}detach(){const t=this,e=t.instance;e.off("Carousel.init",t.onPrepare),e.off("Carousel.ready",t.onReady),e.off("done",t.onDone),e.off("keydown",t.onKeydown)}}Object.defineProperty(zt,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:{key:" ",playOnStart:!1,progressParentEl:t=>{var e;return(null===(e=t.instance.container)||void 0===e?void 0:e.querySelector(".fancybox__toolbar [data-fancybox-toggle-slideshow]"))||t.instance.container},timeout:3e3}});const Rt={classes:{container:"f-thumbs f-carousel__thumbs",viewport:"f-thumbs__viewport",track:"f-thumbs__track",slide:"f-thumbs__slide",isResting:"is-resting",isSelected:"is-selected",isLoading:"is-loading",hasThumbs:"has-thumbs"},minCount:2,parentEl:null,thumbTpl:'<button class="f-thumbs__slide__button" tabindex="0" type="button" aria-label="{{GOTO}}" data-carousel-index="%i"><img class="f-thumbs__slide__img" data-lazy-src="{{%s}}" alt="" /></button>',type:"modern"};var It;!function(t){t[t.Init=0]="Init",t[t.Ready=1]="Ready",t[t.Hidden=2]="Hidden"}(It||(It={}));const Dt="isResting",Ft="thumbWidth",jt="thumbHeight",Bt="thumbClipWidth";let _t=class extends ${constructor(){super(...arguments),Object.defineProperty(this,"type",{enumerable:!0,configurable:!0,writable:!0,value:"modern"}),Object.defineProperty(this,"container",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"track",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"carousel",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"thumbWidth",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"thumbClipWidth",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"thumbHeight",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"thumbGap",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"thumbExtraGap",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:It.Init})}get isModern(){return"modern"===this.type}onInitSlide(t,e){const i=e.el?e.el.dataset:void 0;i&&(e.thumbSrc=i.thumbSrc||e.thumbSrc||"",e[Bt]=parseFloat(i[Bt]||"")||e[Bt]||0,e[jt]=parseFloat(i.thumbHeight||"")||e[jt]||0),this.addSlide(e)}onInitSlides(){this.build()}onChange(){var t;if(!this.isModern)return;const e=this.container,i=this.instance,n=i.panzoom,s=this.carousel,o=s?s.panzoom:null,r=i.page;if(n&&s&&o){if(n.isDragging){P(e,this.cn(Dt));let n=(null===(t=s.pages[r])||void 0===t?void 0:t.pos)||0;n+=i.getProgress(r)*(this[Bt]+this.thumbGap);let a=o.getBounds();-1*n>a.x.min&&-1*n<a.x.max&&o.panTo({x:-1*n,friction:.12})}else a(e,this.cn(Dt),n.isResting);this.shiftModern()}}onRefresh(){this.updateProps();for(const t of this.instance.slides||[])this.resizeModernSlide(t);this.shiftModern()}isDisabled(){const t=this.option("minCount")||0;if(t){const e=this.instance;let i=0;for(const t of e.slides||[])t.thumbSrc&&i++;if(i<t)return!0}const e=this.option("type");return["modern","classic"].indexOf(e)<0}getThumb(t){const e=this.option("thumbTpl")||"";return{html:this.instance.localize(e,[["%i",t.index],["%d",t.index+1],["%s",t.thumbSrc||"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"]])}}addSlide(t){const e=this.carousel;e&&e.addSlide(t.index,this.getThumb(t))}getSlides(){const t=[];for(const e of this.instance.slides||[])t.push(this.getThumb(e));return t}resizeModernSlide(t){this.isModern&&(t[Ft]=t[Bt]&&t[jt]?Math.round(this[jt]*(t[Bt]/t[jt])):this[Ft])}updateProps(){const t=this.container;if(!t)return;const e=e=>parseFloat(getComputedStyle(t).getPropertyValue("--f-thumb-"+e))||0;this.thumbGap=e("gap"),this.thumbExtraGap=e("extra-gap"),this[Ft]=e("width")||40,this[Bt]=e("clip-width")||40,this[jt]=e("height")||40}build(){const t=this;if(t.state!==It.Init)return;if(t.isDisabled())return void t.emit("disabled");const e=t.instance,i=e.container,n=t.getSlides(),s=t.option("type");t.type=s;const o=t.option("parentEl"),a=t.cn("container"),r=t.cn("track");let l=null==o?void 0:o.querySelector("."+a);l||(l=document.createElement("div"),C(l,a),o?o.appendChild(l):i.after(l)),C(l,`is-${s}`),C(i,t.cn("hasThumbs")),t.container=l,t.updateProps();let c=l.querySelector("."+r);c||(c=document.createElement("div"),C(c,t.cn("track")),l.appendChild(c)),t.track=c;const h=p({},{track:c,infinite:!1,center:!0,fill:"classic"===s,dragFree:!0,slidesPerPage:1,transition:!1,preload:.25,friction:.12,Panzoom:{maxVelocity:0},Dots:!1,Navigation:!1,classes:{container:"f-thumbs",viewport:"f-thumbs__viewport",track:"f-thumbs__track",slide:"f-thumbs__slide"}},t.option("Carousel")||{},{Sync:{target:e},slides:n}),d=new e.constructor(l,h);d.on("createSlide",((e,i)=>{t.setProps(i.index),t.emit("createSlide",i,i.el)})),d.on("ready",(()=>{t.shiftModern(),t.emit("ready")})),d.on("refresh",(()=>{t.shiftModern()})),d.on("Panzoom.click",((e,i,n)=>{t.onClick(n)})),t.carousel=d,t.state=It.Ready}onClick(t){t.preventDefault(),t.stopPropagation();const e=this.instance,{pages:i,page:n}=e,s=t=>{if(t){const e=t.closest("[data-carousel-index]");if(e)return[parseInt(e.dataset.carouselIndex||"",10)||0,e]}return[-1,void 0]},o=(t,e)=>{const i=document.elementFromPoint(t,e);return i?s(i):[-1,void 0]};let[a,r]=s(t.target);if(a>-1)return;const l=this[Bt],c=t.clientX,h=t.clientY;let[d,u]=o(c-l,h),[p,f]=o(c+l,h);u&&f?(a=Math.abs(c-u.getBoundingClientRect().right)<Math.abs(c-f.getBoundingClientRect().left)?d:p,a===n&&(a=a===d?p:d)):u?a=d:f&&(a=p),a>-1&&i[a]&&e.slideTo(a)}getShift(t){var e;const i=this,{instance:n}=i,s=i.carousel;if(!n||!s)return 0;const o=i[Ft],a=i[Bt],r=i.thumbGap,l=i.thumbExtraGap;if(!(null===(e=s.slides[t])||void 0===e?void 0:e.el))return 0;const c=.5*(o-a),h=n.pages.length-1;let d=n.getProgress(0),u=n.getProgress(h),p=n.getProgress(t,!1,!0),f=0,g=c+l+r;const m=d<0&&d>-1,b=u>0&&u<1;return 0===t?(f=g*Math.abs(d),b&&1===d&&(f-=g*Math.abs(u))):t===h?(f=g*Math.abs(u)*-1,m&&-1===u&&(f+=g*Math.abs(d))):m||b?(f=-1*g,f+=g*Math.abs(d),f+=g*(1-Math.abs(u))):f=g*p,f}setProps(t){var i;const n=this;if(!n.isModern)return;const{instance:s}=n,o=n.carousel;if(s&&o){const a=null===(i=o.slides[t])||void 0===i?void 0:i.el;if(a&&a.childNodes.length){let i=e(1-Math.abs(s.getProgress(t))),o=e(n.getShift(t));a.style.setProperty("--progress",i?i+"":""),a.style.setProperty("--shift",o+"")}}}shiftModern(){const t=this;if(!t.isModern)return;const{instance:e,track:i}=t,n=e.panzoom,s=t.carousel;if(!(e&&i&&n&&s))return;if(n.state===b.Init||n.state===b.Destroy)return;for(const i of e.slides)t.setProps(i.index);let o=(t[Bt]+t.thumbGap)*(s.slides.length||0);i.style.setProperty("--width",o+"")}cleanup(){const t=this;t.carousel&&t.carousel.destroy(),t.carousel=null,t.container&&t.container.remove(),t.container=null,t.track&&t.track.remove(),t.track=null,t.state=It.Init,P(t.instance.container,t.cn("hasThumbs"))}attach(){const t=this,e=t.instance;e.on("initSlide",t.onInitSlide),e.state===j.Init?e.on("initSlides",t.onInitSlides):t.onInitSlides(),e.on(["change","Panzoom.afterTransform"],t.onChange),e.on("Panzoom.refresh",t.onRefresh)}detach(){const t=this,e=t.instance;e.off("initSlide",t.onInitSlide),e.off("initSlides",t.onInitSlides),e.off(["change","Panzoom.afterTransform"],t.onChange),e.off("Panzoom.refresh",t.onRefresh),t.cleanup()}};Object.defineProperty(_t,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:Rt});const Ht=Object.assign(Object.assign({},Rt),{key:"t",showOnStart:!0,parentEl:null}),Nt="is-masked",Wt="aria-hidden";class $t extends ${constructor(){super(...arguments),Object.defineProperty(this,"ref",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"hidden",{enumerable:!0,configurable:!0,writable:!0,value:!1})}get isEnabled(){const t=this.ref;return t&&!t.isDisabled()}get isHidden(){return this.hidden}onClick(t,e){e.stopPropagation()}onCreateSlide(t,e){var i,n,s;const o=(null===(s=null===(n=null===(i=this.instance)||void 0===i?void 0:i.carousel)||void 0===n?void 0:n.slides[e.index])||void 0===s?void 0:s.type)||"",a=e.el;if(a&&o){let t=`for-${o}`;["video","youtube","vimeo","html5video"].includes(o)&&(t+=" for-video"),C(a,t)}}onInit(){var t;const e=this,i=e.instance,n=i.carousel;if(e.ref||!n)return;const s=e.option("parentEl")||i.footer||i.container;if(!s)return;const o=p({},e.options,{parentEl:s,classes:{container:"f-thumbs fancybox__thumbs"},Carousel:{Sync:{friction:i.option("Carousel.friction")||0}},on:{ready:t=>{const i=t.container;i&&this.hidden&&(e.refresh(),i.style.transition="none",e.hide(),i.offsetHeight,queueMicrotask((()=>{i.style.transition="",e.show()})))}}});o.Carousel=o.Carousel||{},o.Carousel.on=p((null===(t=e.options.Carousel)||void 0===t?void 0:t.on)||{},{click:this.onClick,createSlide:this.onCreateSlide}),n.options.Thumbs=o,n.attachPlugins({Thumbs:_t}),e.ref=n.plugins.Thumbs,e.option("showOnStart")||(e.ref.state=It.Hidden,e.hidden=!0)}onResize(){var t;const e=null===(t=this.ref)||void 0===t?void 0:t.container;e&&(e.style.maxHeight="")}onKeydown(t,e){const i=this.option("key");i&&i===e&&this.toggle()}toggle(){const t=this.ref;if(t&&!t.isDisabled())return t.state===It.Hidden?(t.state=It.Init,void t.build()):void(this.hidden?this.show():this.hide())}show(){const t=this.ref;if(!t||t.isDisabled())return;const e=t.container;e&&(this.refresh(),e.offsetHeight,e.removeAttribute(Wt),e.classList.remove(Nt),this.hidden=!1)}hide(){const t=this.ref,e=t&&t.container;e&&(this.refresh(),e.offsetHeight,e.classList.add(Nt),e.setAttribute(Wt,"true")),this.hidden=!0}refresh(){const t=this.ref;if(!t||!t.state)return;const e=t.container,i=(null==e?void 0:e.firstChild)||null;e&&i&&i.childNodes.length&&(e.style.maxHeight=`${i.getBoundingClientRect().height}px`)}
vendor: 4,390 bytes, line 395
395attach(){const t=this,e=t.instance;e.state===ot.Init?e.on("Carousel.init",t.onInit):t.onInit(),e.on("resize",t.onResize),e.on("keydown",t.onKeydown)}detach(){var t;const e=this,i=e.instance;i.off("Carousel.init",e.onInit),i.off("resize",e.onResize),i.off("keydown",e.onKeydown),null===(t=i.carousel)||void 0===t||t.detachPlugins(["Thumbs"]),e.ref=null}}Object.defineProperty($t,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:Ht});const qt={panLeft:{icon:'<svg><path d="M5 12h14M5 12l6 6M5 12l6-6"/></svg>',change:{panX:-100}},panRight:{icon:'<svg><path d="M5 12h14M13 18l6-6M13 6l6 6"/></svg>',change:{panX:100}},panUp:{icon:'<svg><path d="M12 5v14M18 11l-6-6M6 11l6-6"/></svg>',change:{panY:-100}},panDown:{icon:'<svg><path d="M12 5v14M18 13l-6 6M6 13l6 6"/></svg>',change:{panY:100}},zoomIn:{icon:'<svg><circle cx="11" cy="11" r="7.5"/><path d="m21 21-4.35-4.35M11 8v6M8 11h6"/></svg>',action:"zoomIn"},zoomOut:{icon:'<svg><circle cx="11" cy="11" r="7.5"/><path d="m21 21-4.35-4.35M8 11h6"/></svg>',action:"zoomOut"},toggle1to1:{icon:'<svg><path d="M3.51 3.07c5.74.02 11.48-.02 17.22.02 1.37.1 2.34 1.64 2.18 3.13 0 4.08.02 8.16 0 12.23-.1 1.54-1.47 2.64-2.79 2.46-5.61-.01-11.24.02-16.86-.01-1.36-.12-2.33-1.65-2.17-3.14 0-4.07-.02-8.16 0-12.23.1-1.36 1.22-2.48 2.42-2.46Z"/><path d="M5.65 8.54h1.49v6.92m8.94-6.92h1.49v6.92M11.5 9.4v.02m0 5.18v0"/></svg>',action:"toggleZoom"},toggleZoom:{icon:'<svg><g><line x1="11" y1="8" x2="11" y2="14"></line></g><circle cx="11" cy="11" r="7.5"/><path d="m21 21-4.35-4.35M8 11h6"/></svg>',action:"toggleZoom"},iterateZoom:{icon:'<svg><g><line x1="11" y1="8" x2="11" y2="14"></line></g><circle cx="11" cy="11" r="7.5"/><path d="m21 21-4.35-4.35M8 11h6"/></svg>',action:"iterateZoom"},rotateCCW:{icon:'<svg><path d="M15 4.55a8 8 0 0 0-6 14.9M9 15v5H4M18.37 7.16v.01M13 19.94v.01M16.84 18.37v.01M19.37 15.1v.01M19.94 11v.01"/></svg>',action:"rotateCCW"},rotateCW:{icon:'<svg><path d="M9 4.55a8 8 0 0 1 6 14.9M15 15v5h5M5.63 7.16v.01M4.06 11v.01M4.63 15.1v.01M7.16 18.37v.01M11 19.94v.01"/></svg>',action:"rotateCW"},flipX:{icon:'<svg style="stroke-width: 1.3"><path d="M12 3v18M16 7v10h5L16 7M8 7v10H3L8 7"/></svg>',action:"flipX"},flipY:{icon:'<svg style="stroke-width: 1.3"><path d="M3 12h18M7 16h10L7 21v-5M7 8h10L7 3v5"/></svg>',action:"flipY"},fitX:{icon:'<svg><path d="M4 12V6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v6M10 18H3M21 18h-7M6 15l-3 3 3 3M18 15l3 3-3 3"/></svg>',action:"fitX"},fitY:{icon:'<svg><path d="M12 20H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h6M18 14v7M18 3v7M15 18l3 3 3-3M15 6l3-3 3 3"/></svg>',action:"fitY"},reset:{icon:'<svg><path d="M20 11A8.1 8.1 0 0 0 4.5 9M4 5v4h4M4 13a8.1 8.1 0 0 0 15.5 2m.5 4v-4h-4"/></svg>',action:"reset"},toggleFS:{icon:'<svg><g><path d="M14.5 9.5 21 3m0 0h-6m6 0v6M3 21l6.5-6.5M3 21v-6m0 6h6"/></g><g><path d="m14 10 7-7m-7 7h6m-6 0V4M3 21l7-7m0 0v6m0-6H4"/></g></svg>',action:"toggleFS"}};var Xt;!function(t){t[t.Init=0]="Init",t[t.Ready=1]="Ready",t[t.Disabled=2]="Disabled"}(Xt||(Xt={}));const Yt={tabindex:"-1",width:"24",height:"24",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},Vt="has-toolbar",Zt="fancybox__toolbar";class Gt extends ${constructor(){super(...arguments),Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:Xt.Init}),Object.defineProperty(this,"container",{enumerable:!0,configurable:!0,writable:!0,value:null})}onReady(t){var e;if(!t.carousel)return;let i=this.option("display"),n=this.option("absolute"),s=this.option("enabled");if("auto"===s){const t=this.instance.carousel;let e=0;if(t)for(const i of t.slides)(i.panzoom||"image"===i.type)&&e++;e||(s=!1)}s||(i=void 0);let o=0;const a={left:[],middle:[],right:[]};if(i)for(const t of["left","middle","right"])for(const n of i[t]){const i=this.createEl(n);i&&(null===(e=a[t])||void 0===e||e.push(i),o++)}let r=null;if(o&&(r=this.createContainer()),r){for(const[t,e]of Object.entries(a)){const i=document.createElement("div");C(i,Zt+"__column is-"+t);for(const t of e)i.appendChild(t);"auto"!==n||"middle"!==t||e.length||(n=!0),r.appendChild(i)}!0===n&&C(r,"is-absolute"),this.state=Xt.Ready,this.onRefresh()}else this.state=Xt.Disabled}onClick(t){var e,i;const n=this.instance,s=n.getSlide(),o=null==s?void 0:s.panzoom,a=t.target,r=a&&S(a)?a.dataset:null;if(!r)return;if(void 0!==r.fancyboxToggleThumbs)return t.preventDefault(),t.stopPropagation(),void(null===(e=n.plugins.Thumbs
vendor: 4,826 bytes, line 395
395)||void 0===e||e.toggle());if(void 0!==r.fancyboxToggleFullscreen)return t.preventDefault(),t.stopPropagation(),void this.instance.toggleFullscreen();if(void 0!==r.fancyboxToggleSlideshow){t.preventDefault(),t.stopPropagation();const e=null===(i=n.carousel)||void 0===i?void 0:i.plugins.Autoplay;let s=e.isActive;return o&&"mousemove"===o.panMode&&!s&&o.reset(),void(s?e.stop():e.start())}const l=r.panzoomAction,c=r.panzoomChange;if((c||l)&&(t.preventDefault(),t.stopPropagation()),c){let e={};try{e=JSON.parse(c)}catch(t){}o&&o.applyChange(e)}else l&&o&&o[l]&&o[l]()}onChange(){this.onRefresh()}onRefresh(){if(this.instance.isClosing())return;const t=this.container;if(!t)return;const e=this.instance.getSlide();if(!e||e.state!==at.Ready)return;const i=e&&!e.error&&e.panzoom;for(const e of t.querySelectorAll("[data-panzoom-action]"))i?(e.removeAttribute("disabled"),e.removeAttribute("tabindex")):(e.setAttribute("disabled",""),e.setAttribute("tabindex","-1"));let n=i&&i.canZoomIn(),s=i&&i.canZoomOut();for(const e of t.querySelectorAll('[data-panzoom-action="zoomIn"]'))n?(e.removeAttribute("disabled"),e.removeAttribute("tabindex")):(e.setAttribute("disabled",""),e.setAttribute("tabindex","-1"));for(const e of t.querySelectorAll('[data-panzoom-action="zoomOut"]'))s?(e.removeAttribute("disabled"),e.removeAttribute("tabindex")):(e.setAttribute("disabled",""),e.setAttribute("tabindex","-1"));for(const e of t.querySelectorAll('[data-panzoom-action="toggleZoom"],[data-panzoom-action="iterateZoom"]')){s||n?(e.removeAttribute("disabled"),e.removeAttribute("tabindex")):(e.setAttribute("disabled",""),e.setAttribute("tabindex","-1"));const t=e.querySelector("g");t&&(t.style.display=n?"":"none")}}onDone(t,e){var i;null===(i=e.panzoom)||void 0===i||i.on("afterTransform",(()=>{this.instance.isCurrentSlide(e)&&this.onRefresh()})),this.instance.isCurrentSlide(e)&&this.onRefresh()}createContainer(){const t=this.instance.container;if(!t)return null;const e=this.option("parentEl")||t;let i=e.querySelector("."+Zt);return i||(i=document.createElement("div"),C(i,Zt),e.prepend(i)),i.addEventListener("click",this.onClick,{passive:!1,capture:!0}),t&&C(t,Vt),this.container=i,i}createEl(t){const e=this.instance,i=e.carousel;if(!i)return null;if("toggleFS"===t)return null;if("fullscreen"===t&&!nt())return null;let n=null;const o=i.slides.length||0;let a=0,r=0;for(const t of i.slides)(t.panzoom||"image"===t.type)&&a++,("image"===t.type||t.downloadSrc)&&r++;if(o<2&&["infobar","prev","next"].includes(t))return n;if(void 0!==qt[t]&&!a)return null;if("download"===t&&!r)return null;if("thumbs"===t){const t=e.plugins.Thumbs;if(!t||!t.isEnabled)return null}if("slideshow"===t&&(!i.plugins.Autoplay||o<2))return null;if(void 0!==qt[t]){const e=qt[t];n=document.createElement("button"),n.setAttribute("title",this.instance.localize(`{{${t.toUpperCase()}}}`)),C(n,"f-button"),e.action&&(n.dataset.panzoomAction=e.action),e.change&&(n.dataset.panzoomChange=JSON.stringify(e.change)),n.appendChild(s(this.instance.localize(e.icon)))}else{const e=(this.option("items")||[])[t];e&&(n=s(this.instance.localize(e.tpl)),"function"==typeof e.click&&n.addEventListener("click",(t=>{t.preventDefault(),t.stopPropagation(),"function"==typeof e.click&&e.click.call(this,this,t)})))}const l=null==n?void 0:n.querySelector("svg");if(l)for(const[t,e]of Object.entries(Yt))l.getAttribute(t)||l.setAttribute(t,String(e));return n}removeContainer(){const t=this.container;t&&t.remove(),this.container=null,this.state=Xt.Disabled;const e=this.instance.container;e&&P(e,Vt)}attach(){const t=this,e=t.instance;e.on("Carousel.initSlides",t.onReady),e.on("done",t.onDone),e.on(["reveal","Carousel.change"],t.onChange),t.onReady(t.instance)}detach(){const t=this,e=t.instance;e.off("Carousel.initSlides",t.onReady),e.off("done",t.onDone),e.off(["reveal","Carousel.change"],t.onChange),t.removeContainer()}}Object.defineProperty(Gt,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:{absolute:"auto",display:{left:["infobar"],middle:[],right:["iterateZoom","slideshow","fullscreen","thumbs","close"]},enabled:"auto",items:{infobar:{tpl:'<div class="fancybox__infobar" tabindex="-1"><span data-fancybox-current-index></span>/<span data-fancybox-count></span></div>'},download:{tpl:'<a class="f-button" title="{{DOWNLOAD}}" data-fancybox-download href="javasript:;"><svg><path d="M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2M7 11l5 5 5-5M12 4v12"/></svg></a>'},prev:{tpl:'<button class="f-button" title="{{PREV}}" data-fancybox-prev><svg><path d="m15 6-6 6 6 6"/></svg></button>'},next:{tpl:'<button class="f-button" title="{{NEXT}}" data-fancybox-next><svg><path d="m9 6 6 6-6 6"/></svg></button>'},slideshow:{tpl:'<button class="f-button" title="{{TOGGLE_SLIDESHOW}}" data-fancybox-toggle-slideshow><svg><g><path d="M8 4v16l13 -8z"></path></g><g>
395<path d="M8 4v15M17 4v15"/></g></svg></button>'},fullscreen:{tpl:'<button class="f-button" title="{{TOGGLE_FULLSCREEN}}" data-fancybox-toggle-fullscreen><svg><g><path d="M4 8V6a2 2 0 0 1 2-2h2M4 16v2a2 2 0 0 0 2 2h2M16 4h2a2 2 0 0 1 2 2v2M16 20h2a2 2 0 0 0 2-2v-2"/></g><g><path d="M15 19v-2a2 2 0 0 1 2-2h2M15 5v2a2 2 0 0 0 2 2h2M5 15h2a2 2 0 0 1 2 2v2M5 9h2a2 2 0 0 0 2-2V5"/></g></svg></button>'},thumbs:{tpl:'<button class="f-button" title="{{TOGGLE_THUMBS}}" data-fancybox-toggle-thumbs><svg><circle cx="5.5" cy="5.5" r="1"/><circle cx="12" cy="5.5" r="1"/><circle cx="18.5" cy="5.5" r="1"/><circle cx="5.5" cy="12" r="1"/><circle cx="12" cy="12" r="1"/><circle cx="18.5" cy="12" r="1"/><circle cx="5.5" cy="18.5" r="1"/><circle cx="12" cy="18.5" r="1"/><circle cx="18.5" cy="18.5" r="1"/></svg></button>'},close:{tpl:'<button class="f-button" title="{{CLOSE}}" data-fancybox-close><svg><path d="m19.5 4.5-15 15M4.5 4.5l15 15"/></svg></button>'}},parentEl:null}});const Ut={Hash:class extends ${onReady(){lt=!1}onChange(t){ht&&clearTimeout(ht);const{hash:e}=dt(),{hash:i}=ut(),n=t.isOpeningSlide(t.getSlide());n&&(rt=i===e?"":i),e&&e!==i&&(ht=setTimeout((()=>{try{if(t.state===ot.Ready){let t="replaceState";n&&!ct&&(t="pushState",ct=!0),window.history[t]({},document.title,window.location.pathname+window.location.search+e)}}catch(t){}}),300))}onClose(t){if(ht&&clearTimeout(ht),!lt&&ct)return ct=!1,lt=!1,void window.history.back();if(!lt)try{window.history.replaceState({},document.title,window.location.pathname+window.location.search+(rt||""))}catch(t){}}attach(){const t=this.instance;t.on("ready",this.onReady),t.on(["Carousel.ready","Carousel.change"],this.onChange),t.on("close",this.onClose)}detach(){const t=this.instance;t.off("ready",this.onReady),t.off(["Carousel.ready","Carousel.change"],this.onChange),t.off("close",this.onClose)}static parseURL(){return ut()}static startFromUrl(){pt()}static destroy(){window.removeEventListener("hashchange",gt,!1)}},Html:Mt,Images:vt,Slideshow:zt,Thumbs:$t,Toolbar:Gt},Jt="with-fancybox",Kt="hide-scrollbar",Qt="--fancybox-scrollbar-compensate",te="--fancybox-body-margin",ee="aria-hidden",ie="is-using-tab",ne="is-animated",se="is-compact",oe="is-loading",ae="is-opening",re="has-caption",le="disabled",ce="tabindex",he="download",de="href",ue="src",pe=t=>"string"==typeof t,fe=function(){var t=window.getSelection();return!!t&&"Range"===t.type};let ge,me=null,be=null,ve=0,ye=0,we=0,xe=0;const Ee=new Map;let Se=0;class Pe extends m{get isIdle(){return this.idle}get isCompact(){return this.option("compact")}constructor(t=[],e={},i={}){super(e),Object.defineProperty(this,"userSlides",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"userPlugins",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"idle",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"idleTimer",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"clickTimer",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"pwt",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"ignoreFocusChange",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"startedFs",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:ot.Init}),Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"container",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"caption",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"footer",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"carousel",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"lastFocus",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"prevMouseMoveEvent",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),ge||(ge=nt()),this.id=e.id||++Se,Ee.set(this.id,this),this.userSlides=t,this.userPlugins=i,queueMicrotask((()=>{this.init()}))}init(){if(this.state===ot.Destroy)return;this.state=ot.Init,this.attachPlugins(Object.assign(Object.assign({}
vendor: 19,582 bytes, lines 395-396
395,Pe.Plugins),this.userPlugins)),this.emit("init"),this.emit("attachPlugins"),!0===this.option("hideScrollbar")&&(()=>{if(!Q)return;const t=document,e=t.body,i=t.documentElement;if(e.classList.contains(Kt))return;let n=window.innerWidth-i.getBoundingClientRect().width;const s=parseFloat(window.getComputedStyle(e).marginRight);n<0&&(n=0),i.style.setProperty(Qt,`${n}px`),s&&e.style.setProperty(te,`${s}px`),e.classList.add(Kt)})(),this.initLayout(),this.scale();const t=()=>{this.initCarousel(this.userSlides),this.state=ot.Ready,this.attachEvents(),this.emit("ready"),setTimeout((()=>{this.container&&this.container.setAttribute(ee,"false")}),16)};this.option("Fullscreen.autoStart")&&ge&&!ge.isFullscreen()?ge.request().then((()=>{this.startedFs=!0,t()})).catch((()=>t())):t()}initLayout(){var t,e;const i=this.option("parentEl")||document.body,n=s(this.localize(this.option("tpl.main")||""));if(n){if(n.setAttribute("id",`fancybox-${this.id}`),n.setAttribute("aria-label",this.localize("{{MODAL}}")),n.classList.toggle(se,this.isCompact),C(n,this.option("mainClass")||""),C(n,ae),this.container=n,this.footer=n.querySelector(".fancybox__footer"),i.appendChild(n),C(document.documentElement,Jt),me&&be||(me=document.createElement("span"),C(me,"fancybox-focus-guard"),me.setAttribute(ce,"0"),me.setAttribute(ee,"true"),me.setAttribute("aria-label","Focus guard"),be=me.cloneNode(),null===(t=n.parentElement)||void 0===t||t.insertBefore(me,n),null===(e=n.parentElement)||void 0===e||e.append(be)),n.addEventListener("mousedown",(t=>{ve=t.pageX,ye=t.pageY,P(n,ie)})),this.option("closeExisting"))for(const t of Ee.values())t.id!==this.id&&t.close();else this.option("animated")&&(C(n,ne),setTimeout((()=>{this.isClosing()||P(n,ne)}),350));this.emit("initLayout")}}initCarousel(t){const e=this.container;if(!e)return;const n=e.querySelector(".fancybox__carousel");if(!n)return;const s=this.carousel=new J(n,p({},{slides:t,transition:"fade",Panzoom:{lockAxis:this.option("dragToClose")?"xy":"x",infinite:!!this.option("dragToClose")&&"y"},Dots:!1,Navigation:{classes:{container:"fancybox__nav",button:"f-button",isNext:"is-next",isPrev:"is-prev"}},initialPage:this.option("startIndex"),l10n:this.option("l10n")},this.option("Carousel")||{}));s.on("*",((t,e,...i)=>{this.emit(`Carousel.${e}`,t,...i)})),s.on(["ready","change"],(()=>{this.manageCaption()})),this.on("Carousel.removeSlide",((t,e,i)=>{this.clearContent(i),i.state=void 0})),s.on("Panzoom.touchStart",(()=>{var t,e;this.isCompact||this.endIdle(),(null===(t=document.activeElement)||void 0===t?void 0:t.closest(".f-thumbs"))&&(null===(e=this.container)||void 0===e||e.focus())})),s.on("settle",(()=>{this.idleTimer||this.isCompact||!this.option("idle")||this.setIdle(),this.option("autoFocus")&&!this.isClosing&&this.checkFocus()})),this.option("dragToClose")&&(s.on("Panzoom.afterTransform",((t,e)=>{const n=this.getSlide();if(n&&i(n.el))return;const s=this.container;if(s){const t=Math.abs(e.current.f),i=t<1?"":Math.max(.5,Math.min(1,1-t/e.contentRect.fitHeight*1.5));s.style.setProperty("--fancybox-ts",i?"0s":""),s.style.setProperty("--fancybox-opacity",i+"")}})),s.on("Panzoom.touchEnd",((t,e,n)=>{var s;const o=this.getSlide();if(o&&i(o.el))return;if(e.isMobile&&document.activeElement&&-1!==["TEXTAREA","INPUT"].indexOf(null===(s=document.activeElement)||void 0===s?void 0:s.nodeName))return;const a=Math.abs(e.dragOffset.y);"y"===e.lockedAxis&&(a>=200||a>=50&&e.dragOffset.time<300)&&(n&&n.cancelable&&n.preventDefault(),this.close(n,"f-throwOut"+(e.current.f<0?"Up":"Down")))}))),s.on("change",(t=>{var e;let i=null===(e=this.getSlide())||void 0===e?void 0:e.triggerEl;if(i){const e=new CustomEvent("slideTo",{bubbles:!0,cancelable:!0,detail:t.page});i.dispatchEvent(e)}})),s.on(["refresh","change"],(t=>{const e=this.container;if(!e)return;for(const i of e.querySelectorAll("[data-fancybox-current-index]"))i.innerHTML=t.page+1;for(const i of e.querySelectorAll("[data-fancybox-count]"))i.innerHTML=t.pages.length;if(!t.isInfinite){for(const i of e.querySelectorAll("[data-fancybox-next]"))t.page<t.pages.length-1?(i.removeAttribute(le),i.removeAttribute(ce)):(i.setAttribute(le,""),i.setAttribute(ce,"-1"));for(const i of e.querySelectorAll("[data-fancybox-prev]"))t.page>0?(i.removeAttribute(le),i.removeAttribute(ce)):(i.setAttribute(le,""),i.setAttribute(ce,"-1"))}const i=this.getSlide();if(!i)return;let n=i.downloadSrc||"";n||"image"!==i.type||i.error||!pe(i[ue])||(n=i[ue]);for(const t of e.querySelectorAll("[data-fancybox-download]")){const e=i.downloadFilename;n?(t.removeAttribute(le),t.removeAttribute(ce),t.setAttribute(de,n),t.setAttribute(he,e||n),t.setAttribute("target","_blank")):(t.setAttribute(le,""),t.setAttribute(ce,"-1"),t.removeAttribute(de),t.removeAttribute(he))}})),this.emit("initCarousel")}attachEvents(){const t=this,e=t.container;if(!e)return;e.addEventListener("click",t.onClick,{passive:!1,capture:!1}),e.addEventListener("wheel",t.onWheel,{passive:!1,capture:!1}),document.addEventListener("keydown",t.onKeydown,{passive:!1,capture:!0}),document.addEventListener("visibilitychange",t.onVisibilityChange,!1),document.addEventListener("mousemove",t.onMousemove),t.option("trapFocus")&&document.addEventListener("focus",t.onFocus,!0),window.addEventListener("resize",t.onResize);const i=window.visualViewport;i&&(i.addEventListener("scroll",t.onResize),i.addEventListener("resize",t.onResize))}detachEvents(){const t=this,e=t.container;if(!e)return;document.removeEventListener("keydown",t.onKeydown,{passive:!1,capture:!0}),e.removeEventListener("wheel",t.onWheel,{passive:!1,capture:!1}),e.removeEventListener("click",t.onClick,{passive:!1,capture:!1}),document.removeEventListener("mousemove",t.onMousemove),window.removeEventListener("resize",t.onResize);const i=window.visualViewport;i&&(i.removeEventListener("resize",t.onResize),i.removeEventListener("scroll",t.onResize)),document.removeEventListener("visibilitychange",t.onVisibilityChange,!1),document.removeEventListener("focus",t.onFocus,!0)}scale(){const t=this.container;if(!t)return;const e=window.visualViewport,i=Math.max(1,(null==e?void 0:e.scale)||1);let n="",s="",o="";if(e&&i>1){let t=`${e.offsetLeft}px`,a=`${e.offsetTop}px`;n=e.width*i+"px",s=e.height*i+"px",o=`translate3d(${t}, ${a}, 0) scale(${1/i})`}t.style.transform=o,t.style.width=n,t.style.height=s}onClick(t){var e;const{container:i,isCompact:n}=this;if(!i||this.isClosing())return;!n&&this.option("idle")&&this.resetIdle();const s=t.composedPath()[0];if(s.closest(".fancybox-spinner")||s.closest("[data-fancybox-close]"))return t.preventDefault(),void this.close(t);if(s.closest("[data-fancybox-prev]"))return t.preventDefault(),void this.prev();if(s.closest("[data-fancybox-next]"))return t.preventDefault(),void this.next();if("click"===t.type&&0===t.detail)return;if(Math.abs(t.pageX-ve)>30||Math.abs(t.pageY-ye)>30)return;const o=document.activeElement;if(fe()&&o&&i.contains(o))return;if(n&&"image"===(null===(e=this.getSlide())||void 0===e?void 0:e.type))return void(this.clickTimer?(clearTimeout(this.clickTimer),this.clickTimer=null):this.clickTimer=setTimeout((()=>{this.toggleIdle(),this.clickTimer=null}),350));if(this.emit("click",t),t.defaultPrevented)return;let a=!1;if(s.closest(".fancybox__content")){if(o){if(o.closest("[contenteditable]"))return;s.matches(et)||o.blur()}if(fe())return;a=this.option("contentClick")}else s.closest(".fancybox__carousel")&&!s.matches(et)&&(a=this.option("backdropClick"));"close"===a?(t.preventDefault(),
396this.close(t)):"next"===a?(t.preventDefault(),this.next()):"prev"===a&&(t.preventDefault(),this.prev())}onWheel(t){const e=t.target;let i=this.option("wheel",t);e.closest(".fancybox__thumbs")&&(i="slide");const s="slide"===i,o=[-t.deltaX||0,-t.deltaY||0,-t.detail||0].reduce((function(t,e){return Math.abs(e)>Math.abs(t)?e:t})),a=Math.max(-1,Math.min(1,o)),r=Date.now();this.pwt&&r-this.pwt<300?s&&t.preventDefault():(this.pwt=r,this.emit("wheel",t,a),t.defaultPrevented||("close"===i?(t.preventDefault(),this.close(t)):"slide"===i&&(n(e)||(t.preventDefault(),this[a>0?"prev":"next"]()))))}onScroll(){window.scrollTo(we,xe)}onKeydown(t){if(!this.isTopmost())return;this.isCompact||!this.option("idle")||this.isClosing()||this.resetIdle();const e=t.key,i=this.option("keyboard");if(!i)return;const n=t.composedPath()[0],s=document.activeElement&&document.activeElement.classList,o=s&&s.contains("f-button")||n.dataset.carouselPage||n.dataset.carouselIndex;if("Escape"!==e&&!o&&S(n)&&(n.isContentEditable||-1!==["TEXTAREA","OPTION","INPUT","SELECT","VIDEO"].indexOf(n.nodeName)))return;if("Tab"===t.key?C(this.container,ie):P(this.container,ie),t.ctrlKey||t.altKey||t.shiftKey)return;this.emit("keydown",e,t);const a=i[e];a&&"function"==typeof this[a]&&(t.preventDefault(),this[a]())}onResize(){const t=this.container;if(!t)return;const e=this.isCompact;t.classList.toggle(se,e),this.manageCaption(this.getSlide()),this.isCompact?this.clearIdle():this.endIdle(),this.scale(),this.emit("resize")}onFocus(t){this.isTopmost()&&this.checkFocus(t)}onMousemove(t){this.prevMouseMoveEvent=t,!this.isCompact&&this.option("idle")&&this.resetIdle()}onVisibilityChange(){"visible"===document.visibilityState?this.checkFocus():this.endIdle()}manageCloseBtn(t){const e=this.optionFor(t,"closeButton")||!1;if("auto"===e){const t=this.plugins.Toolbar;if(t&&t.state===Xt.Ready)return}if(!e)return;if(!t.contentEl||t.closeBtnEl)return;const i=this.option("tpl.closeButton");if(i){const e=s(this.localize(i));t.closeBtnEl=t.contentEl.appendChild(e),t.el&&C(t.el,"has-close-btn")}}manageCaption(t=void 0){var e,i;const n="fancybox__caption",s=this.container;if(!s)return;P(s,re);const o=this.isCompact||this.option("commonCaption"),a=!o;if(this.caption&&this.stop(this.caption),a&&this.caption&&(this.caption.remove(),this.caption=null),o&&!this.caption)for(const t of(null===(e=this.carousel)||void 0===e?void 0:e.slides)||[])t.captionEl&&(t.captionEl.remove(),t.captionEl=void 0,P(t.el,re),null===(i=t.el)||void 0===i||i.removeAttribute("aria-labelledby"));if(t||(t=this.getSlide()),!t||o&&!this.isCurrentSlide(t))return;const r=t.el;let l=this.optionFor(t,"caption","");if(!l)return void(o&&this.caption&&this.animate(this.caption,"f-fadeOut",(()=>{this.caption&&(this.caption.innerHTML="")})));let c=null;if(a){if(c=t.captionEl||null,r&&!c){const e=n+`_${this.id}_${t.index}`;c=document.createElement("div"),C(c,n),c.setAttribute("id",e),t.captionEl=r.appendChild(c),C(r,re),r.setAttribute("aria-labelledby",e)}}else c=this.caption,c||(c=s.querySelector("."+n)),c||(c=document.createElement("div"),c.dataset.fancyboxCaption="",C(c,n),(this.footer||s).prepend(c)),C(s,re),this.caption=c;c&&(c.innerHTML="",pe(l)||"number"==typeof l?c.innerHTML=l+"":l instanceof HTMLElement&&c.appendChild(l))}checkFocus(t){this.focus(t)}focus(t){var e;if(this.ignoreFocusChange)return;const i=document.activeElement||null,n=(null==t?void 0:t.target)||null,s=this.container,o=null===(e=this.carousel)||void 0===e?void 0:e.viewport;if(!s||!o)return;if(!t&&i&&s.contains(i))return;const a=this.getSlide(),r=a&&a.state===at.Ready?a.el:null;if(!r||r.contains(i)||s===i)return;t&&t.cancelable&&t.preventDefault(),this.ignoreFocusChange=!0;const l=Array.from(s.querySelectorAll(et));let c=[],h=null;for(let t of l){const e=!t.offsetParent||!!t.closest('[aria-hidden="true"]'),i=r&&r.contains(t),n=!o.contains(t);if(t===s||(i||n)&&!e){c.push(t);const e=t.dataset.origTabindex;void 0!==e&&e&&(t.tabIndex=parseFloat(e)),t.removeAttribute("data-orig-tabindex"),!t.hasAttribute("autoFocus")&&h||(h=t)}else{const e=void 0===t.dataset.origTabindex?t.getAttribute("tabindex")||"":t.dataset.origTabindex;e&&(t.dataset.origTabindex=e),t.tabIndex=-1}}let d=null;t?(!n||c.indexOf(n)<0)&&(d=h||s,c.length&&(i===be?d=c[0]:this.lastFocus!==s&&i!==me||(d=c[c.length-1]))):d=a&&"image"===a.type?s:h||s,d&&it(d),this.lastFocus=document.activeElement,this.ignoreFocusChange=!1}next(){const t=this.carousel;t&&t.pages.length>1&&t.slideNext()}prev(){const t=this.carousel;t&&t.pages.length>1&&t.slidePrev()}jumpTo(...t){this.carousel&&this.carousel.slideTo(...t)}isTopmost(){var t;return(null===(t=Pe.getInstance())||void 0===t?void 0:t.id)==this.id}animate(t=null,e="",i){if(!t||!e)return void(i&&i());this.stop(t);const n=s=>{s.target===t&&t.dataset.animationName&&(t.removeEventListener("animationend",n),delete t.dataset.animationName,i&&i(),P(t,e))};t.dataset.animationName=e,t.addEventListener("animationend",n),C(t,e)}stop(t){t&&t.dispatchEvent(new CustomEvent("animationend",{bubbles:!1,cancelable:!0,currentTarget:t}))}setContent(t,e="",i=!0){if(this.isClosing())return;const n=t.el;if(!n)return;let o=null;if(S(e)?o=e:(o=s(e+""),S(o)||(o=document.createElement("div"),o.innerHTML=e+"")),["img","picture","iframe","video","audio"].includes(o.nodeName.toLowerCase())){const t=document.createElement("div");t.appendChild(o),o=t}S(o)&&t.filter&&!t.error&&(o=o.querySelector(t.filter)),o&&S(o)?(C(o,"fancybox__content"),t.id&&o.setAttribute("id",t.id),"none"!==o.style.display&&"none"!==getComputedStyle(o).getPropertyValue("display")||(o.style.display=t.display||this.option("defaultDisplay")||"flex"),n.classList.add(`has-${t.error?"error":t.type||"unknown"}`),n.prepend(o),t.contentEl=o,i&&this.revealContent(t),this.manageCloseBtn(t),this.manageCaption(t)):this.setError(t,"{{ELEMENT_NOT_FOUND}}")}revealContent(t,e){const i=t.el,n=t.contentEl;i&&n&&(this.emit("reveal",t),this.hideLoading(t),t.state=at.Opening,(e=this.isOpeningSlide(t)?void 0===e?this.optionFor(t,"showClass"):e:"f-fadeIn")?this.animate(n,e,(()=>{this.done(t)})):this.done(t))}done(t){this.isClosing()||(t.state=at.Ready,this.emit("done",t),C(t.el,"is-done"),this.isCurrentSlide(t)&&this.option("autoFocus")&&queueMicrotask((()=>{var e;null===(e=t.panzoom)||void 0===e||e.updateControls(),this.option("autoFocus")&&this.focus()})),this.isOpeningSlide(t)&&(P(this.container,ae),!this.isCompact&&this.option("idle")&&this.setIdle()))}isCurrentSlide(t){const e=this.getSlide();return!(!t||!e)&&e.index===t.index}isOpeningSlide(t){var e,i;return null===(null===(e=this.carousel)||void 0===e?void 0:e.prevPage)&&t&&t.index===(null===(i=this.getSlide())||void 0===i?void 0:i.index)}showLoading(t){t.state=at.Loading;const e=t.el;e&&(C(e,oe),this.emit("loading",t),t.spinnerEl||setTimeout((()=>{if(!this.isClosing()&&!t.spinnerEl&&t.state===at.Loading){let i=s(E);C(i,"fancybox-spinner"),t.spinnerEl=i,e.prepend(i),this.animate(i,"f-fadeIn")}}),250))}hideLoading(t){const e=t.el;if(!e)return;const i=t.spinnerEl;this.isClosing()?null==i||i.remove():(P(e,oe),i&&this.animate(i,"f-fadeOut",(()=>{i.remove()})),t.state===at.Loading&&(this.emit("loaded",t),t.state=at.Ready))}setError(t,e){if(this.isClosing())return;const i=new Event("error",{bubbles:!0,cancelable:!0});if(this.emit("error",i,t),i.defaultPrevented)return;t.error=e,this.hideLoading(t),this.clearContent(t);const n=document.createElement("div");n.classList.add("fancybox-error"),n.innerHTML=this.localize(e||"<p>{{ERROR}}</p>"),this.setContent(t,n)}clearContent(t){if(void 0===t.state)return;this.emit("clearContent",t),t.contentEl&&(t.contentEl.remove(),t.contentEl=void 0);const e=t.el;e&&(P(e,"has-error"),P(e,"has-unknown"),P(e,`has-${t.type||"unknown"}`)),t.closeBtnEl&&t.closeBtnEl.remove(),t.closeBtnEl=void 0,t.captionEl&&t.captionEl.remove(),t.captionEl=void 0,t.spinnerEl&&t.spinnerEl.remove(),t.spinnerEl=void 0}getSlide(){var t;const e=this.carousel;return(null===(t=null==e?void 0:e.pages[null==e?void 0:e.page])||void 0===t?void 0:t.slides[0])||void 0}close(t,e){if(this.isClosing())return;const i=new Event("shouldClose",{bubbles:!0,cancelable:!0});if(this.emit("shouldClose",i,t),i.defaultPrevented)return;t&&t.cancelable&&(t.preventDefault(),t.stopPropagation());const n=()=>{this.proceedClose(t,e)};this.startedFs&&ge&&ge.isFullscreen()?Promise.resolve(ge.exit()).then((()=>n())):n()}clearIdle(){this.idleTimer&&clearTimeout(this.idleTimer),this.idleTimer=null}setIdle(t=!1){const e=()=>{this.clearIdle(),this.idle=!0,C(this.container,"is-idle"),this.emit("setIdle")};if(this.clearIdle(),!this.isClosing())if(t)e();else{const t=this.option("idle");t&&(this.idleTimer=setTimeout(e,t))}}endIdle(){this.clearIdle(),this.idle&&!this.isClosing()&&(this.idle=!1,P(this.container,"is-idle"),this.emit("endIdle"))}resetIdle(){this.endIdle(),this.setIdle()}toggleIdle(){this.idle?this.endIdle():this.setIdle(!0)}toggleFullscreen(){ge&&(ge.isFullscreen()?ge.exit():ge.request().then((()=>{this.startedFs=!0})))}isClosing(){return[ot.Closing,ot.CustomClosing,ot.Destroy].includes(this.state)}proceedClose(t,e){var i,n;this.state=ot.Closing,this.clearIdle(),this.detachEvents();const s=this.container,o=this.carousel,a=this.getSlide(),r=a&&this.option("placeFocusBack")?a.triggerEl||this.option("triggerEl"):null;if(r&&(K(r)?it(r):r.focus()),s&&(P(s,ae),C(s,"is-closing"),s.setAttribute(ee,"true"),this.option("animated")&&C(s,ne),s.style.pointerEvents="none"),o){o.clearTransitions(),null===(i=o.panzoom)||void 0===i||i.destroy(),null===(n=o.plugins.Navigation)||void 0===n||n.detach();for(const t of o.slides){t.state=at.Closing,this.hideLoading(t);const e=t.contentEl;e&&this.stop(e);const i=null==t?void 0:t.panzoom;i&&(i.stop(),i.detachEvents(),i.detachObserver()),this.isCurrentSlide(t)||o.emit("removeSlide",t)}}we=window.scrollX,xe=window.scrollY,window.addEventListener("scroll",this.onScroll),this.emit("close",t),this.state!==ot.CustomClosing?(void 0===e&&a&&(e=this.optionFor(a,"hideClass")),e&&a?(this.animate(a.contentEl,e,(()=>{o&&o.emit("removeSlide",a)})),setTimeout((()=>{this.destroy()}),500)):this.destroy()):setTimeout((()=>{this.destroy()}),500)}destroy(){var t;if(this.state===ot.Destroy)return;window.removeEventListener("scroll",this.onScroll),this.state=ot.Destroy,null===(t=this.carousel)||void 0===t||t.destroy();const e=this.container;e&&e.remove(),Ee.delete(this.id);const i=Pe.getInstance();i?i.focus():(me&&(me.remove(),me=null),be&&(be.remove(),be=null),P(document.documentElement,Jt),(()=>{if(!Q)return;const t=document,e=t.body;e.classList.remove(Kt),e.style.setProperty(te,""),t.documentElement.style.setProperty(Qt,"")})(),this.emit("destroy"))}static bind(t,e,i){if(!Q)return;let n,s="",o={};if(void 0===t?n=document.body:pe(t)?(n=document.body,s=t,"object"==typeof e&&(o=e||{})):(n=t,pe(e)&&(s=e),"object"==typeof i&&(o=i||{})),!n||!S(n))return;s=s||"[data-fancybox]";const a=Pe.openers.get(n)||new Map;a.set(s,o),Pe.openers.set(n,a),1===a.size&&n.addEventListener("click",Pe.fromEvent)}static unbind(t,e){let i,n="";if(pe(t)?(i=document.body,n=t):(i=t,pe(e)&&(n=e)),!i)return;const s=Pe.openers.get(i);s&&n&&s.delete(n),n&&s||(Pe.openers.delete(i),i.removeEventListener("click",Pe.fromEvent))}static destroy(){let t;for(;t=Pe.getInstance();)t.destroy();for(const t of Pe.openers.keys())t.removeEventListener("click",Pe.fromEvent);Pe.openers=new Map}static fromEvent(t){if(t.defaultPrevented)return;if(t.button&&0!==t.button)return;if(t.ctrlKey||t.metaKey||t.shiftKey)return;let e=t.composedPath()[0];const i=e.closest("[data-fancybox-trigger]");if(i){const t=i.dataset.fancyboxTrigger||"",n=document.querySelectorAll(`[data-fancybox="${t}"]`),s=parseInt(i.dataset.fancyboxIndex||"",10)||0;e=n[s]||e}if(!(e&&e instanceof Element))return;let n,s,o,a;if([...Pe.openers].reverse().find((([t,i])=>!(!t.contains(e)||![...i].reverse().find((([i,r])=>{let l=e.closest(i);return!!l&&(n=t,s=i,o=l,a=r,!0)}))))),!n||!s||!o)return;a=a||{},t.preventDefault(),e=o;let r=[],l=p({},st,a);l.event=t,l.triggerEl=e,l.delegate=i;const c=l.groupAll,h=l.groupAttr,d=h&&e?e.getAttribute(`${h}`):"";
396if((!e||d||c)&&(r=[].slice.call(n.querySelectorAll(s))),e&&!c&&(r=d?r.filter((t=>t.getAttribute(`${h}`)===d)):[e]),!r.length)return;const u=Pe.getInstance();return u&&u.options.triggerEl&&r.indexOf(u.options.triggerEl)>-1?void 0:(e&&(l.startIndex=r.indexOf(e)),Pe.fromNodes(r,l))}static fromSelector(t,e,i){let n=null,s="",o={};if(pe(t)?(n=document.body,s=t,"object"==typeof e&&(o=e||{})):t instanceof HTMLElement&&pe(e)&&(n=t,s=e,"object"==typeof i&&(o=i||{})),!n||!s)return!1;const a=Pe.openers.get(n);return!!a&&(o=p({},a.get(s)||{},o),!!o&&Pe.fromNodes(Array.from(n.querySelectorAll(s)),o))}static fromNodes(t,e){e=p({},st,e||{});const i=[];for(const n of t){const t=n.dataset||{},s=t[ue]||n.getAttribute(de)||n.getAttribute("currentSrc")||n.getAttribute(ue)||void 0;let o;const a=e.delegate;let r;a&&i.length===e.startIndex&&(o=a instanceof HTMLImageElement?a:a.querySelector("img:not([aria-hidden])")),o||(o=n instanceof HTMLImageElement?n:n.querySelector("img:not([aria-hidden])")),o&&(r=o.currentSrc||o[ue]||void 0,!r&&o.dataset&&(r=o.dataset.lazySrc||o.dataset[ue]||void 0));const l={src:s,triggerEl:n,thumbEl:o,thumbElSrc:r,thumbSrc:r};for(const e in t){let i=t[e]+"";i="false"!==i&&("true"===i||i),l[e]=i}i.push(l)}return new Pe(i,e)}static getInstance(t){return t?Ee.get(t):Array.from(Ee.values()).reverse().find((t=>!t.isClosing()&&t))||null}static getSlide(){var t;return(null===(t=Pe.getInstance())||void 0===t?void 0:t.getSlide())||null}static show(t=[],e={}){return new Pe(t,e)}static next(){const t=Pe.getInstance();t&&t.next()}static prev(){const t=Pe.getInstance();t&&t.prev()}static close(t=!0,...e){if(t)for(const t of Ee.values())t.close(...e);else{const t=Pe.getInstance();t&&t.close(...e)}}}Object.defineProperty(Pe,"version",{enumerable:!0,configurable:!0,writable:!0,value:"5.0.35"}),Object.defineProperty(Pe,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:st}),Object.defineProperty(Pe,"Plugins",{enumerable:!0,configurable:!0,writable:!0,value:Ut}),Object.defineProperty(Pe,"openers",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),t.Carousel=J,t.Fancybox=Pe,t.Panzoom=I}));/*! lightbox and modals for Hooked Marketing. Commercial license required. */
397const PlumbingLinks=document.querySelectorAll(".plumbing-services-modal-trigger, .plumbing-services-trigger a");if(PlumbingLinks)for(const t of PlumbingLinks)t.addEventListener("click",(t=>{t.preventDefault(),Fancybox.show([{src:"#plumbing-services-menu",type:"inline"}],{compact:!1,closeButton:!1,tpl:{main:'<div class="fancybox__container hooked--modal-container" role="dialog" aria-modal="true" aria-label="{{MODAL}}" tabindex="-1">\n      <div class="fancybox__backdrop hooked_modal_backdrop"></div>\n      <div class="fancybox__carousel"></div>\n          <button data-fancybox-close class="f-button is-close-btn" title="{{CLOSE}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" tabindex="-1"><path d="M20 20L4 4m16 0L4 20"/></svg></button>\n      </div>'}})}));const imageLinkSelectors=["a[href*=jpg]","a[href*=png]","a[href*=gif]","a[href*=jpeg]","a[href*=JPG]","a[href*=JPEG]","a[href*=apng]","a[href*=avif]","a[href*=webp]","a[href*=jfif]","a[href*=pjpeg]","a[href*=pjp]"];imageLinkSelectors.forEach((t=>{document.querySelectorAll(t).forEach((t=>t.classList.add("link-to-image")))}));const mediaTextImages=document.querySelectorAll(".wp-block-media-text__media .link-to-image");mediaTextImages.forEach((t=>t.classList.add("hooked-light-box")));const postImageLinks=document.querySelectorAll(".post-image a.link-to-image");postImageLinks.forEach((t=>t.classList.add("hooked-light-box")));const blockImageLinks=document.querySelectorAll(".wp-block-image a.link-to-image");blockImageLinks.forEach((t=>t.classList.add("hooked-light-box")));const galleryWrappers2=document.querySelectorAll(".wp-hooked-gallery-wrapper");galleryWrappers2.forEach((t=>{const e=t.querySelector(".instance").textContent.trim();t.querySelectorAll(".wp-block-image a").forEach((t=>{t.classList.remove("image-link"),t.setAttribute("data-fancybox",`row-gallery-${e}`)}))}));const galleryWrappers3=document.querySelectorAll(".aside-area .wp-hooked-gallery-wrapper");galleryWrappers3.forEach((t=>{const e=t.querySelector(".instance").textContent.trim();t.querySelectorAll(".wp-block-image a").forEach((t=>{t.classList.remove("image-link"),t.setAttribute("data-fancybox",`sidebar-gallery-${e}`)}))}));const galleryWrappers=document.querySelectorAll(".wp-hooked-gallery-wrapper");
397galleryWrappers.forEach((t=>{t.querySelectorAll(".wp-block-gallery a").forEach((t=>{const e=t.getAttribute("href");e&&(e.endsWith(".jpg")||e.endsWith(".png")||e.endsWith(".gif")||e.endsWith(".jpeg")||e.endsWith(".JPG")||e.endsWith(".JPEG")||e.endsWith(".apng")||e.endsWith(".avif")||e.endsWith(".webp")||e.endsWith(".jfif")||e.endsWith(".pjpeg")||e.endsWith(".pjp"))&&t.classList.add("wp-block-gallery-lightbox")}))}));const galleryLightboxes=document.querySelectorAll(".wp-block-gallery-lightbox");galleryLightboxes.forEach((t=>{const e=t.closest("figure"),i=e?.querySelector("figcaption"),n=i?.textContent.trim()||"";i||console.warn("Figcaption not found for lightbox:",t);const s=n?`<p>${n}</p>`:"<p>&nbsp;</p>";t.setAttribute("data-caption",s)}));const imageLinks=document.querySelectorAll(".wp-block-image a");imageLinks.forEach((t=>{const e=t.getAttribute("href");e&&(e.endsWith(".jpg")||e.endsWith(".png")||e.endsWith(".gif")||e.endsWith(".jpeg")||e.endsWith(".JPG")||e.endsWith(".JPEG")||e.endsWith(".apng")||e.endsWith(".avif")||e.endsWith(".webp")||e.endsWith(".jfif")||e.endsWith(".pjpeg")||e.endsWith(".pjp"))&&t.insertAdjacentHTML("beforeend",'<span class="lightbox-indicator" aria-hidden="true"></span>')}));const featuredImageLinks=document.querySelectorAll(".post-featured-image > a");featuredImageLinks.forEach((t=>{t.insertAdjacentHTML("beforeend",'<span class="lightbox-indicator" aria-hidden="true"></span>')})),Fancybox.bind("[data-fancybox], .hooked-light-box",{compact:!1,Toolbar:{absolute:!0,display:{left:[],middle:[],right:["infobar","prev","next","close"]}},Thumbs:{type:"classic",Carousel:{axis:"x",slidesPerPage:1,Navigation:!1,center:!0,fill:!0,dragFree:!0,breakpoints:{"(min-width: 1000px)":{axis:"y"}}}}}),Fancybox.bind("[data-hooked-video]",{compact:!1,closeButton:!1,tpl:{main:'<div class="fancybox__container hooked--video-container" role="dialog" aria-modal="true" aria-label="{{MODAL}}" tabindex="-1">\n  <div class="fancybox__backdrop hooked_video_backdrop"></div>\n  <div class="fancybox__carousel"></div>\n      <button data-fancybox-close class="f-button is-close-btn" title="{{CLOSE}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" tabindex="-1"><path d="M20 20L4 4m16 0L4 20"/></svg></button>\n</div>'}}),Fancybox.bind("[hooked-modal-menu], [data-fancybox-modal]",{compact:!1,closeButton:!1,tpl:{main:'<div class="fancybox__container hooked--modal-container" role="dialog" aria-modal="true" aria-label="{{MODAL}}" tabindex="-1">\n  <div class="fancybox__backdrop hooked_modal_backdrop"></div>\n  <div class="fancybox__carousel"></div>\n      <button data-fancybox-close class="f-button is-close-btn" title="{{CLOSE}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" tabindex="-1"><path d="M20 20L4 4m16 0L4 20"/></svg></button>\n</div>'}});</script>
397<script>var balance_fallback = 'https://showtimeexpressplumbing.com/wp-content/themes/hooked-showtime-plumbing/assets/js/balance-text-min.js';</script>
397<script type="speculationrules">
398{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/hooked-showtime-plumbing/*","/wp-content/themes/genesis/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
399</script>
399
400
401<!-- CallRail WordPress Integration -->
402<script type="text/javascript">window.crwpVer = 1;</script>
402<script id="jquery-core-js" src="https://showtimeexpressplumbing.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
vendor: 1 bytes, line 402
402
403<script id="jquery-core-js-after">
404	
405	(function(window, $, undefined) {
406
407    	'use strict';
408
409    	$(document).ready(function() {
410
411			/// Hero Form Wrappers
412           $('.form--hero-container .hero-name, .form--hero-container .hero-email, .form--hero-container .hero-phone').wrapAll('<div class="quick-form-row-1 quick-form-row-flex" />');
413		   		   			
414           $('.form--hero-container .hero-message, .form--hero-container .hero-optin, .form--hero-container .wpforms-submit-container').wrapAll('<div class="quick-form-row-3--not-flex" />');
415	 			
416    	       		
417		} );//end doc ready	
418      		
419      		
420	})(this, jQuery);
421//# sourceURL=jquery-core-js-after
422</script>
vendor: 1 bytes, line 422
422
423<script id="hooked-imagesloaded-js" src="https://showtimeexpressplumbing.com/wp-content/themes/hooked-showtime-plumbing/assets/vendor/imagesloaded/imagesloaded.pkgd.min.js?ver=4.1.4"></script>
vendor: 1 bytes, line 423
423
424<script id="hooked-isotope-js" src="https://showtimeexpressplumbing.com/wp-content/themes/hooked-showtime-plumbing/assets/vendor/metafizzy/dist/isotope.pkgd.min.js?ver=3.0.6"></script>
vendor: 1 bytes, line 424
424
425<script id="hooked-isotope-packery-layout-mode-js" src="https://showtimeexpressplumbing.com/wp-content/themes/hooked-showtime-plumbing/assets/vendor/metafizzy/dist/packery-mode.pkgd.min.js?ver=3.0.1"></script>
vendor: 1 bytes, line 425
425
426<script id="hooked-infinite-scroll-js" src="https://showtimeexpressplumbing.com/wp-content/themes/hooked-showtime-plumbing/assets/vendor/metafizzy/dist/infinite-scroll.pkgd.min.js?ver=4.0.1"></script>
vendor: 1 bytes, line 426
426
427<script id="hooked-reviews-masonry-args-js" src="https://showtimeexpressplumbing.com/wp-content/themes/hooked-showtime-plumbing/assets/js/reviews-masonry-args-min.js?ver=3.0.1"></script>
vendor: 1 bytes, line 427
427
428<script id="googlesitekit-events-provider-content-events-js-before">
429window._googlesitekit = window._googlesitekit || {};
430window._googlesitekit.contentEvents = {"postID":427,"isSinglePost":false,"hasVimeoEmbed":false};
431//# sourceURL=googlesitekit-events-provider-content-events-js-before
432</script>
vendor: 1 bytes, line 432
432
433<script id="googlesitekit-events-provider-content-events-js" src="https://showtimeexpressplumbing.com/wp-content/plugins/google-site-kit/dist/assets/js/googlesitekit-events-provider-content-events-c7172f3fd0e4d5ad62ef.js" defer></script>
vendor: 1 bytes, line 433
433
434<script id="googlesitekit-events-provider-wpforms-js" src="https://showtimeexpressplumbing.com/wp-content/plugins/google-site-kit/dist/assets/js/googlesitekit-events-provider-wpforms-fdbd42f50702ca1e0c36.js" defer></script>
vendor: 1 bytes, line 434
434
435<script id="hooked-global-js-js-extra">
436var nav_objectL10n = {"openMenu":"open menu","closeMenu":"close menu"};
437var theme_path = {"child_theme_path":"https://showtimeexpressplumbing.com/wp-content/themes/hooked-showtime-plumbing"};
438//# sourceURL=hooked-global-js-js-extra
439</script>
vendor: 1 bytes, line 439
439
440<script id="hooked-global-js-js" src="https://showtimeexpressplumbing.com/wp-content/themes/hooked-showtime-plumbing/assets/js/global-jquery-min.js?ver=3.0.1"></script>
vendor: 1 bytes, line 440
440
441<script id="swapjs-js" src="//cdn.callrail.com/companies/635615944/wp-0-5-3/swap.js?ver=7.0.6"></script>
vendor: 1 bytes, line 441
441
442<script id="wpforms-smart-phone-field-core-js" src="https://showtimeexpressplumbing.com/wp-content/plugins/wpforms/assets/pro/js/frontend/fields/phone.min.js?ver=2.0.2.1"></script>
vendor: 1 bytes, line 442
442
443<script id="wpforms-validation-js" src="https://showtimeexpressplumbing.com/wp-content/plugins/wpforms/assets/lib/jquery.validate.min.js?ver=1.21.0"></script>
vendor: 1 bytes, line 443
443
444<script id="wpforms-maskedinput-js" src="https://showtimeexpressplumbing.com/wp-content/plugins/wpforms/assets/lib/jquery.inputmask.min.js?ver=5.0.9"></script>
vendor: 1 bytes, line 444
444
445<script id="wpforms-mailcheck-js" src="https://showtimeexpressplumbing.com/wp-content/plugins/wpforms/assets/lib/mailcheck.min.js?ver=1.1.2"></script>
vendor: 1 bytes, line 445
445
446<script id="wpforms-punycode-js" src="https://showtimeexpressplumbing.com/wp-content/plugins/wpforms/assets/lib/punycode.min.js?ver=1.0.0"></script>
vendor: 1 bytes, line 446
446
447<script id="wpforms-generic-utils-js" src="https://showtimeexpressplumbing.com/wp-content/plugins/wpforms/assets/js/share/utils.min.js?ver=2.0.2.1"></script>
vendor: 1 bytes, line 447
447
448<script id="wpforms-js" src="https://showtimeexpressplumbing.com/wp-content/plugins/wpforms/assets/js/frontend/wpforms.min.js?ver=2.0.2.1"></script>
vendor: 1 bytes, line 448
448
449<script id="wpforms-modern-js" src="https://showtimeexpressplumbing.com/wp-content/plugins/wpforms/assets/js/frontend/wpforms-modern.min.js?ver=2.0.2.1"></script>
vendor: 87 bytes, lines 449-450
449
450<script id="wpforms-recaptcha-js" src="https://www.google.com/recaptcha/api.js?render=
4506LcUkoorAAAAAE1gO2tbvh3EfMPGr5VIBHH01l07
vendor: 12 bytes, line 450
450"></script>
451<script id="wpforms-recaptcha-js-after">
452var wpformsDispatchEvent = function (el, ev, custom) {
453				var e = document.createEvent(custom ? "CustomEvent" : "HTMLEvents");
454				custom ? e.initCustomEvent(ev, true, true, false) : e.initEvent(ev, true, true);
455				el.dispatchEvent(e);
456			};
457		var wpformsRecaptchaV3Execute = function ( callback ) {
458					grecaptcha.execute( "6LcUkoorAAAAAE1gO2tbvh3EfMPGr5VIBHH01l07", { action: "wpforms" } ).then( function ( token ) {
459						Array.prototype.forEach.call( document.getElementsByName( "wpforms[recaptcha]" ), function ( el ) {
460							el.value = token;
461						} );
462						if ( typeof callback === "function" ) {
463							return callback();
464						}
465					} );
466				}
467				grecaptcha.ready( function () {
468					wpformsDispatchEvent( document, "wpformsRecaptchaLoaded", true );
469				} );
470			
471//# sourceURL=wpforms-recaptcha-js-after
472</script>
vendor: 1 bytes, line 472
472
473<script id="wpforms-analytics-js" src="https://showtimeexpressplumbing.com/wp-content/plugins/wpforms/assets/js/frontend/analytics.min.js?ver=2.0.2.1"></script>
vendor: 1 bytes, line 473
473
474<script id="wpforms-analytics-pro-js" src="https://showtimeexpressplumbing.com/wp-content/plugins/wpforms/assets/pro/js/frontend/analytics-pro.min.js?ver=2.0.2.1"></script>
vendor: 1 bytes, line 474
474
475<script id="wpforms-address-field-js" src="https://showtimeexpressplumbing.com/wp-content/plugins/wpforms/assets/js/frontend/fields/address.min.js?ver=2.0.2.1"></script>
vendor: 1 bytes, line 475
475
476<script type='text/javascript'>
477/* <![CDATA[ */
478var wpforms_settings = {"val_required":"This field is required.","val_email":"Please enter a valid email address.","val_email_suggestion":"Did you mean {suggestion}?","val_email_suggestion_title":"Click to accept this suggestion.","val_email_restricted":"This email address is not allowed.","val_number":"Please enter a valid number.","val_number_positive":"Please enter a valid positive number.","val_minimum_price":"Amount entered is less than the required minimum.","val_confirm":"Field values do not match.","val_checklimit":"You have exceeded the number of allowed selections: {#}.","val_limit_characters":"{count} of {limit} max characters.","val_limit_words":"{count} of {limit} max words.","val_min":"Please enter a value greater than or equal to {0}.","val_max":"Please enter a value less than or equal to {0}.","val_recaptcha_fail_msg":"Google reCAPTCHA verification failed, please try again later.","val_turnstile_fail_msg":"Cloudflare Turnstile verification failed, please try again later.","val_inputmask_incomplete":"Please fill out the field in required format.","uuid_cookie":"1","locale":"en","country":"","country_list_label":"Country list","wpforms_plugin_url":"https:\/\/showtimeexpressplumbing.com\/wp-content\/plugins\/wpforms\/","gdpr":"","ajaxurl":"https:\/\/showtimeexpressplumbing.com\/wp-admin\/admin-ajax.php","mailcheck_enabled":"1","mailcheck_domains":[],"mailcheck_toplevel_domains":["dev"],"is_ssl":"1","nonce":"6c86e7c519","currency_code":"USD","currency_thousands":",","currency_decimals":"2","currency_decimal":".","currency_symbol":"$","currency_symbol_pos":"left","val_requiredpayment":"Payment is required.","val_creditcard":"Please enter a valid credit card number.","css_vars":["field-border-radius","field-border-style","field-border-size","field-background-color","field-border-color","field-text-color","field-menu-color","label-color","label-sublabel-color","label-error-color","button-border-radius","button-border-style","button-border-size","button-background-color","button-border-color","button-text-color","page-break-color","background-image","background-position","background-repeat","background-size","background-width","background-height","background-color","background-url","container-padding","container-border-style","container-border-width","container-border-color","container-border-radius","field-size-input-height","field-size-input-spacing","field-size-font-size","field-size-line-height","field-size-padding-h","field-size-checkbox-size","field-size-sublabel-spacing","field-size-icon-size","label-size-font-size","label-size-line-height","label-size-sublabel-font-size","label-size-sublabel-line-height","button-size-font-size","button-size-height","button-size-padding-h","button-size-margin-top","container-shadow-size-box-shadow"],"val_post_max_size":"The total size of the selected files {totalSize} MB exceeds the allowed limit {maxSize} MB.","val_time12h":"Please enter time in 12-hour AM\/PM format (eg 8:45 AM).","val_time24h":"Please enter time in 24-hour format (eg 22:45).","val_time_limit":"Please enter time between {minTime} and {maxTime}.","val_url":"Please enter a valid URL.","val_fileextension":"File type is not allowed.","val_filesize":"File exceeds max size allowed. File was not uploaded.","post_max_size":"314572800","isModernMarkupEnabled":"1","formErrorMessagePrefix":"Form error message","errorMessagePrefix":"Error message","submitBtnDisabled":"Submit button is disabled during form submission.","readOnlyDisallowedFields":["captcha","repeater","map","content","divider","hidden","html","entry-preview","pagebreak","layout","payment-total"],"error_updating_token":"Error updating token. Please try again or contact support if the issue persists.","network_error":"Network error or server is unreachable. Check your connection or try again later.","token_cache_lifetime":"86400","hn_data":[],"analytics_composite_field_types":["name","address","date-time","email","password","paypal-commerce"],"analytics_base64":"1","address_field":{"list_countries_without_states":["GB","DE","CH","NL"]},"val_phone":"Please enter a valid phone number.","val_password_strength":"A stronger password is required. Consider using upper and lower case letters, numbers, and symbols.","entry_preview_iframe_styles":["https:\/\/showtimeexpressplumbing.com\/wp-includes\/js\/tinymce\/skins\/lightgray\/content.min.css?ver=7.0.6","https:\/\/showtimeexpressplumbing.com\/wp-includes\/css\/dashicons.min.css?ver=7.0.6","https:\/\/showtimeexpressplumbing.com\/wp-includes\/js\/tinymce\/skins\/wordpress\/wp-content.css?ver=7.0.6","https:\/\/showtimeexpressplumbing.com\/wp-content\/plugins\/wpforms\/assets\/pro\/css\/fields\/richtext\/editor-content.min.css"],"indicatorStepsPattern":"Step {current} of {total}"}
479/* ]]> */
480</script>
480
481</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.