1<!DOCTYPE html> 2<html lang="en-US"> 3<head> 4<link rel="dns-prefetch" href="//fonts.googleapis.com"> 5<link rel="dns-prefetch" href="//fonts.gstatic.com"> 6<link rel="dns-prefetch" href="//www.google-analytics.com"> 7<link rel="dns-prefetch" href="//www.googletagmanager.com"> 8<link rel="dns-prefetch" href="//connect.facebook.net"> 9<link rel="dns-prefetch" href="//cdn.jsdelivr.net"> 10<link rel="dns-prefetch" href="//cdnjs.cloudflare.com"> 11<link rel="dns-prefetch" href="//code.jquery.com"> 12<link rel="dns-prefetch" href="//ajax.googleapis.com"> 13<link rel="dns-prefetch" href="//maps.googleapis.com"> 14<link rel="dns-prefetch" href="//pro.peakzi.me"> 15<link rel="dns-prefetch" href="//fonts.googleapis.com"> 16<link rel="dns-prefetch" href="//fonts.gstatic.com"> 17<link rel="dns-prefetch" href="//www.googletagmanager.com"> 18<link rel="dns-prefetch" href="//www.facebook.com"> 19<link rel="dns-prefetch" href="//twitter.com"> 20<link rel="dns-prefetch" href="//www.instagram.com"> 21<link rel="dns-prefetch" href="//www.google.com"> 22<link rel="dns-prefetch" href="//www.cdnstyles.com"> 23<link rel="dns-prefetch" href="//maps.app.goo.gl"> 24<link rel="dns-prefetch" href="//static.speetra.com"> 25<link rel="dns-prefetch" href="//imsdigitalai.com"> 26<link rel="preconnect" href="https://fonts.googleapis.com"> 27<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 28 29
29<script 30 data-business-id="hPdcDfZmNURULFMs7L-T_-aMEy_5sCS9IhJl7wN0vm4=" 31 data-position="right" 32 data-label="Price Estimation Tool" 33 data-launcher-color="#7FBF4C" 34 async 35 data-type="lazy" data-src="https://pro.peakzi.me/embed/v1/loader.js"></script>
35 36 37 38<!--
38<script> 39function _debounce(t,e=300){let a;return(...r)=>{clearTimeout(a),a=setTimeout(()=>t.apply(this,r),e)}}window.___mnag='userA'+(window.___mnag1||'')+'gent',window.___plt='plat'+(window.___mnag1||'')+'form';try{var t=navigator[window.___mnag],e=navigator[window.___plt];window.__isPSA=e.indexOf('x86_64')>-1&&0>t.indexOf('CrOS'),window.___mnag='!1',r=null}catch(a){window.__isPSA=!1;var r=null;window.___mnag='!1'}if(window.__isPSA=__isPSA,__isPSA){var n=new MutationObserver(t=>{t.forEach(({addedNodes:t})=>{t.forEach(t=>{1===t.nodeType&&'IFRAME'===t.tagName&&(t.setAttribute('loading','lazy'),t.setAttribute('data-src',t.src),t.removeAttribute('src')),1===t.nodeType&&'IMG'===t.tagName&&++i>s&&t.setAttribute('loading','lazy'),1===t.nodeType&&'SCRIPT'===t.tagName&&(t.setAttribute('data-src',t.src),t.removeAttribute('src'),t.type='text/lazyload')})})}),i=0,s=20;n.observe(document.documentElement,{childList:!0,subtree:!0})} 40 </script>
40 --> 41 <!-- Google Tag Manager --> 42 43<!-- End Google Tag Manager --> 44 45 <meta charset="UTF-8" /> 46<meta http-equiv="X-UA-Compatible" content="IE=edge"> 47 <link rel="pingback" href="https://metroflowplumbing.com/xmlrpc.php" /> 48 49
49<script type="text/javascript"> 50 document.documentElement.className = 'js'; 51 </script>
51 52 53 54
54<script type="application/ld+json"> 55{ 56 "@context": "https://schema.org", 57 "@type": "FAQPage", 58 "mainEntity": 59[ 60 { 61 "@type": "Question", 62 "name": "Are your technicians licensed and insured? 63", 64 "acceptedAnswer": { 65 "@type": "Answer", 66 "text": "Yes, all our technicians at Metro Flow Plumbing are both licensed and insured. This ensures your peace of mind, knowing that your plumbing needs are handled by certified professionals who adhere to safety regulations and industry standards. Choosing us means youâre protected in case of any unforeseen incidents during the job. As stated on our website, âA licensed plumber will have insurance to protect you and your property⦠the plumberâs insurance will cover any damages or injuries that occurâ[0]. 67Call us today to experience the exceptional service of our licensed and insured plumbers!" 68 } 69 }, 70 { 71 "@type": "Question", 72 "name": "Can I change my service appointment after booking?", 73 "acceptedAnswer": { 74 "@type": "Answer", 75 "text": "Yes, you can change your service appointment after booking with Metro Flow Plumbing. Customer convenience is paramount, and the company strives to accommodate any necessary scheduling adjustments. 76There are no fees for rescheduling or canceling your appointment. 77For example, Joshua Mansell mentioned that Metro Flow Plumbing arrived earlier than the original appointment time due to another cancellation. Additionally, the company has shown flexibility and responsiveness in other situations, such as addressing scheduling needs during holidays. 78To reschedule your appointment, please contact their customer service directly at 214-328-7371. They will assist you in making the necessary changes to your booking. This responsiveness and adaptability are part of why Metro Flow Plumbing has high customer satisfaction ratings." 79 } 80 }, 81 { 82 "@type": "Question", 83 "name": "Can I get an estimated arrival time for my service appointment?", 84 "acceptedAnswer": { 85 "@type": "Answer", 86 "text": "Our team at Metro Flow Plumbing strives to provide prompt and reliable service. While the exact arrival time can vary based on the current schedule and traffic conditions, we often aim to be very punctual. Many customers have shared their positive experiences with our timely services. For example, Joshua Mansell mentioned that our team âarrived earlier than the original appointment timeâ and resolved the issue quickly. 87Similarly, Gladys Work highlighted that our team was âvery responsive and had an appointment today,â arriving at the expected time and completing the work promptly. 88For a specific estimate, please contact our customer service team who can provide more precise details based on your appointment. We look forward to assisting you! 89 90 91" 92 } 93 }, 94 { 95 "@type": "Question", 96 "name": "Can I request a specific technician for my service? 97", 98 "acceptedAnswer": { 99 "@type": "Answer", 100 "text": "Yes, you can absolutely request a specific technician for your service at Metro Flow Plumbing. We pride ourselves on personalized and top-quality service. We understand the value of building trust with a specific technician. 101As one satisfied customer, C N, mentions, âDaryl is my particular favorite plumber because he always advises me when things need attention that I hadnât called him about, so itâs always value-added when he comes.â 102If you have a preferred technician from past experiences, feel free to let us know when you schedule your service. We strive to accommodate your requests and ensure a seamless and satisfactory experience every time. 103Call us today at 214-328-7371 to schedule your service and request your preferred technician. We look forward to serving you! 104" 105 } 106 }, 107 { 108 "@type": "Question", 109 "name": "Do you offer emergency services?", 110 "acceptedAnswer": { 111 "@type": "Answer", 112 "text": "Yes, we offer emergency plumbing services! Metro Flow Plumbing provides 24/7 emergency assistance to ensure that your plumbing issues are addressed promptly and efficie
112ntly, no matter the time of day or night. Our team of certified, insured, and highly trained plumbers are ready to tackle any emergency situation, from burst pipes and gas leaks to clogged drains and running toilets. 113Hereâs what one of our customers, Cedric Horne, had to say: âI called for an emergency repair and the team was available and able to schedule an appointment and have a crew onsite within an hour. Everyone was professional and exhibited great customer service.â 114For immediate assistance, call us at 214-328-7371. Weâre here to help you 24/7! 115" 116 } 117 }, 118 { 119 "@type": "Question", 120 "name": "Do you provide a warranty on the materials you use?", 121 "acceptedAnswer": { 122 "@type": "Answer", 123 "text": "Yes, Metro-Flow Plumbing provides a warranty on the materials we use. We proudly offer a 5-year warranty on both parts and labor, ensuring that our customers receive peace of mind with every service. Our commitment to quality and customer satisfaction is paramount, and we stand by our work to ensure you are completely satisfied. 124As a valued customer stated, âThe price was provided up front and, best of all, I was eligible for a five-year warranty on my repairâ. 125For reliable and guaranteed plumbing services, contact us today at 214-328-7371. Weâre here to ensure your plumbing system is in top-notch condition! 126" 127 } 128 }, 129 { 130 "@type": "Question", 131 "name": "Do you provide a written estimate before starting work?", 132 "acceptedAnswer": { 133 "@type": "Answer", 134 "text": "Yes, at Metro Flow Plumbing, we provide a clear and transparent written estimate before starting any work. This ensures you know exactly what to expect without any surprises. Our dedication to transparency and customer satisfaction is reflected in customer feedback, with one customer praising, âexplained my options and pricing before beginning work.â 135Another customer noted, âpricing explained prior to work being done,â indicating our commitment to upfront communication. This approach guarantees you are fully informed and comfortable with our services before we proceed. 136For a reliable, professional, and transparent plumbing service, contact us today and receive your written estimate. Call us at 214-328-7371. We look forward to serving you! 137" 138 } 139 }, 140 { 141 "@type": "Question", 142 "name": "Do you provide after-hours service?", 143 "acceptedAnswer": { 144 "@type": "Answer", 145 "text": "Yes, Metro Flow Plumbing provides after-hours service. We are available 24/7, even during holidays. This ensures that you receive prompt and professional service no matter when an emergency strikes. For example, a customer, Greg Winterton, mentioned that he called at 11:30 PM and a technician responded and resolved his issue within the hour. Jared M. also highlighted that Metro Flow was able to assess and book the required work for a collapsed main line from his house after hours. 146For immediate assistance, you can reach us at 214-328-7371. Donât let plumbing emergencies ruin your day; call us now for reliable after-hours service! 147" 148 } 149 }, 150 { 151 "@type": "Question", 152 "name": "How can I contact customer support if I have an issue?", 153 "acceptedAnswer": { 154 "@type": "Answer", 155 "text": "If you need to contact customer support at Metro Flow Plumbing, you have several options for quick and efficient assistance: 156Phone Support: Call 214-328-7371 for immediate help from a licensed and insured technician. 157Online Contact Form 158With a nearly 90% customer retention rate and dedicated customer service team, Metro Flow Plumbing ensures prompt and reliable support for all your plumbing needs. For comprehensive and instant assistance, donât hesitate to reach out via any of these methods. 159" 160 } 161 }, 162 { 163 "@type": "Question", 164 "name": "How can I schedule a service appointment?", 165 "acceptedAnswer": { 166 "@type": "Answer", 167 "text": "To schedule a service appointment with Metro Flow Plumbing, simply call us at 214-328-7371. If phone calls arenât convenient, you can also fill out our contact form available on our website, and weâll reach out to you within 24 hours. 168Customer reviews highlight the ease and flexibility of scheduling, with one mentioning, âI called to schedule an appointment and they had a good availability of times to fit my sc
168heduleâ." 169 } 170 }, 171 { 172 "@type": "Question", 173 "name": "How do you accommodate special service requests?", 174 "acceptedAnswer": { 175 "@type": "Answer", 176 "text": "At Metro Flow Plumbing, we are dedicated to accommodating special service requests to ensure our clientsâ needs are met with precision and care. We understand that each situation is unique, and we tailor our services to match your specific requirements. 177For instance, Cedric Horne appreciated our ability to schedule an appointment and have a crew onsite within an hour, noting our professionalism and excellent customer service even on short notice. Similarly, another customer praised our flexibility and responsiveness, highlighting our technicianâs ability to quickly address multiple issues during a single visit. 178Our Diamond Club membership also offers priority service and other exclusive benefits, assuring prompt and preferential treatment for our esteemed members. 179For customized service requests, contact us at 214-328-7371. Let us show you how Metro Flow Plumbing can exceed your expectations. 180" 181 } 182 }, 183 { 184 "@type": "Question", 185 "name": "How do you balance cost and quality in your services?", 186 "acceptedAnswer": { 187 "@type": "Answer", 188 "text": "At Metro Flow Plumbing, we skillfully balance cost and quality by offering cost-effective solutions that do not compromise on excellence. For instance, our trenchless repair method not only saves on labor and excavation costs but also ensures long-lasting durability by using high-quality materials designed to stand the test of time. 189We also offer competitive pricing and flexible financing options, ensuring that premium services like tankless water heaters and water filtration systems are accessible to Dallas homeowners. 190Our preventative maintenance plans, such as the Diamond Club membership, help clients save money by enhancing water efficiency and preventing costly repairs. 191Satisfied customers frequently highlight our reliable and efficient solutions. One customer shares, âMetro Flow Plumbing offered a solution that minimized disruption and saved me time and money.â 192Contact us at 214-328-7371 to schedule an appointment and experience our superior, cost-effective plumbing services. 193" 194 } 195 }, 196 { 197 "@type": "Question", 198 "name": "How do you ensure that customers get the best value for their money", 199 "acceptedAnswer": { 200 "@type": "Answer", 201 "text": "At Metro-Flow Plumbing, we prioritize delivering exceptional value to our customers through various strategies. Firstly, we emphasize the importance of regular maintenance, which helps prevent small issues from becoming costly repairs. Our Diamond Club membership offers additional benefits, including priority service, annual inspections, and discounts on repairs. 202We also use high-quality parts to ensure longevity and reduce the need for future repairs. Additionally, we back our work with a 100% satisfaction guarantee, providing peace of mind and long-term savings for our clients. 203For customers who value reliability and top-notch service, a testimonial from a client states, âHaving a trusted plumbing company on standby will save you money in the long run. Rest assured, Metro-Flow Plumbing has your back.â 204This demonstrates our commitment to customer satisfaction and value. 205" 206 } 207 }, 208 { 209 "@type": "Question", 210 "name": "How do you ensure that your technicians adhere to professional standards? 211", 212 "acceptedAnswer": { 213 "@type": "Answer", 214 "text": "At Metro Flow Plumbing, we ensure that our technicians adhere to professional standards through rigorous training, licensing, and regular performance evaluations. Each of our plumbing technicians is properly licensed and insured, having undergone extensive training and certification processes to handle a wide range of plumbing issues efficiently and safely. 215We prioritize ongoing education to keep our team updated on the latest plumbing technologies and local code compliances. This guarantees that our services not only meet but exceed industry standards. Weâre proud to say, âMetro Flow Plumbingâs technicians are well-versed in Dallas plumbing codes and regulations,â ensuring compliance and customer satisfaction. 216Customers consistently highlight our professionalism. For instance, Alexandra Wagner notes, âOwner Rick Romero is very professional and knowledgeable and trains his technicians very well,â reaffirming that our exceptional training programs lead to excellent service quality. 217To experience our top-notch service, contact us at metroflowplumbing.com or call 214-328-7371 for all your plumbing needs! 218" 219 } 220 }, 221 { 222 "@type": "Question", 223 "name": "How do you ensure the quality of your work?",
224 "acceptedAnswer": { 225 "@type": "Answer", 226 "text": "At Metro Flow Plumbing, we ensure the quality of our work through several significant measures: 227Licensed and Certified Plumbers: All our technicians are licensed, insured, and highly trained to handle any plumbing issues with utmost precision and expertise. This guarantees that every job is done correctly the first time, avoiding future complications. 228Regular Plumbing Maintenance: We offer routine inspections and maintenance plans, such as our Diamond Club membership. This helps in early detection of potential problems like leaks, corrosion, and water pressure issues, thus averting costly repairs and ensuring the longevity of your plumbing system. 229High-Quality Parts and Equipment: We use only top-notch parts and cutting-edge tools, ensuring that our repairs and installations are durable and efficient. This commitment to quality stands as a testament to our reliability and professionalism. 230100% Satisfaction Guarantee: We are committed to our customersâ satisfaction and provide a comprehensive warranty on our workmanship. If any issues arise post-service, we address them promptly at no additional cost to you. 231Numerous customers have shared their positive experiences, highlighting our excellent customer service, professionalism, and fair pricing. For instance, Mia Craig praised our compassionate and responsive team for their swift and efficient service during her plumbing emergency. 232For dependable plumbing services backed by years of expertise and a dedication to excellence, contact Metro Flow Plumbing today! 233" 234 } 235 }, 236 { 237 "@type": "Question", 238 "name": "How do you ensure the safety and cleanliness of the worksite? 239", 240 "acceptedAnswer": { 241 "@type": "Answer", 242 "text": "At Metro Flow Plumbing, we place a premium on ensuring the safety and cleanliness of our worksites to provide a secure and hygienic environment for both our customers and staff. Hereâs how we achieve this: 243Expertise and Training: All our plumbing technicians are licensed and insured, equipped with in-depth training to handle any plumbing issues safely. This ensures adherence to safety protocols and reduces risks associated with plumbing work. 244Advanced Tools and Techniques: We employ state-of-the-art equipment, such as video camera inspections, to accurately diagnose and repair problems without unnecessary exposure to hazards. 245Proactive Maintenance and Inspections: Regular plumbing inspections and maintenance, including eco-friendly practices like using lead-free pipes and non-toxic sealants, ensure that our projects are not just effective but also safe for the environment and your home. 246Customer Testimonials: Donât just take our word for it. As one satisfied customer noted, âMetro Flow Plumbing technicians are thorough and leave the site cleaner than they found it.â 247To experience the utmost in professional, safe, and clean plumbing services, contact us at 214-328-7371. Your safety and satisfaction are our top priorities! 248" 249 } 250 }, 251 { 252 "@type": "Question", 253 "name": "How do you handle customer complaints? 254", 255 "acceptedAnswer": { 256 "@type": "Answer", 257 "text": "At Metro Flow Plumbing, we handle customer complaints swiftly and transparently to ensure complete satisfaction. Each complaint is investigated thoroughly, often starting with a review of recorded calls to ensure any miscommunication is identified and addressed. We strive to rectify issues by providing straightforward resolutions and compensations when necessary. For example, a customer named Deon Green appreciated our prompt action in refunding a miscommunicated dispatch fee and clarifying service charges. Our commitment to maintaining honest, diligent, and professional service has earned us an almost 90% customer retention rate over 30 years. 258Contact us anytime at 214-214-4718 for exceptional service and resolution. 259" 260 } 261 }, 262 { 263 "@type": "Question", 264 "name": "How do you handle emergency customer service requests?", 265 "acceptedAnswer": { 266 "@type": "Answer", 267 "text": "At Metro Flow Plumbing, we excel in handling emergency customer service requests with unmatched speed and professionalism. Our certified technicians are available 24/7 to address your urgent plumbing needs, ensuring you receive prompt and effective service. In fact, we often have a crew onsite within an hour of your call.
268We prioritize your emergencies, offering a warm voice, a courteous call, and a seamless process from start to finish. Our technicians treat your home with utmost respect, wearing shoe covers and leaving your home as clean as they found it. 269Happy customer Cedric Horne shared, âI really appreciate everything they were able to do on such short notice,â highlighting our teamâs professionalism and quick response. 270Call us now at 214-328-7371 for immediate assistance! 271" 272 } 273 }, 274 { 275 "@type": "Question", 276 "name": "How do you handle scheduling and appointments? 277", 278 "acceptedAnswer": { 279 "@type": "Answer", 280 "text": "At Metro Flow Plumbing, we prioritize delivering a seamless and efficient scheduling experience for our customers. 281We understand that prompt scheduling is essential for your peace of mind. Our system ensures flexibility and responsiveness, fitting into your schedule with ease. One of our satisfied customers, JT Norwood, shared, âBoth faucets in the laundry room were leakingâ¦the scheduling was easy and promptâ. Additionally, Cedric Horne appreciated our timeliness, stating, âI called for an emergency repair and the teamâ¦scheduled an appointment and had a crew onsite within an hourâ. 282Furthermore, our customer communication is designed to keep you informed. We confirm appointments an hour before the scheduled time and provide updates if there are any changes or cancellations. 283Book an appointment with us now and experience prompt, professional service! 284" 285 } 286 }, 287 { 288 "@type": "Question", 289 "name": "How do you manage emergency service requests? 290", 291 "acceptedAnswer": { 292 "@type": "Answer", 293 "text": "At Metro Flow Plumbing, we prioritize prompt and efficient handling of emergency service requests. Our expert team is available 24/7, ensuring that you receive timely assistance whenever a plumbing issue arises. We understand that plumbing emergencies are stressful and time-sensitive, which is why our process is streamlined for quick response. 294Once you contact us, either by phone or email, our customer service team schedules an appointment as quickly as possible. One satisfied customer, Cedric Horne, shared his experience, âI called for an emergency repair and the team was available and able to schedule an appointment and have a crew onsite within an hourâ. This swift scheduling and response time are critical in minimizing damage and resolving issues efficiently. 295Our certified and insured plumbing professionals are trained to handle a variety of emergencies with expertise and care. Whether itâs burst pipes, gas leaks, or clogged drains, we ensure a thorough and professional resolution. 296For emergency plumbing services you can trust, contact Metro Flow Plumbing at 214-328-7371. Let us alleviate your stress and restore your homeâs plumbing with our top-notch service. 297" 298 } 299 }, 300 { 301 "@type": "Question", 302 "name": "How do you stay up-to-date with industry standards and technology? 303", 304 "acceptedAnswer": { 305 "@type": "Answer", 306 "text": "At Metro Flow Plumbing, we stay ahead of industry standards and technology by continuously investing in cutting-edge innovations and advanced techniques. For instance, we have fully embraced trenchless technologies such as the Cured-In-Place Pipe (CIPP) lining system. This state-of-the-art method allows us to repair and rehabilitate pipes without extensive excavation, minimizing disruption and enhancing efficiency. Additionally, we are committed to ongoing professional development, ensuring our technicians are versed in the latest trenchless technologies. 307Customer satisfaction is a testament to our proactive approach: âMetro Flow Plumbing stays up-to-date with the latest plumbing innovations. They always provide the best service availableâ. 308Contact us at Metro Flow Plumbing for modern, efficient, and reliable plumbing solutions. Call us at (214) 328-7371 for more information. 309" 310 } 311 }, 312 { 313 "@type": "Question", 314 "name": "How does your company engage with the local community? 315",
316 "acceptedAnswer": { 317 "@type": "Answer", 318 "text": "At Metro Flow Plumbing, engaging with the local community is a core aspect of our operations. We actively promote water conservation and sustainable practices through various initiatives. For instance, we participate in community events and workshops to educate residents on water-saving techniques and sustainable plumbing practices. We also support water conservation efforts by sharing practical tips for reducing water consumption, such as fixing leaks promptly, installing water-efficient fixtures, and harvesting rainwater. One satisfied customer, Dana Garnett, highlighted our commitment to the community, noting that our team provided âexcellent emergency pipe repairâ and was highly professional and courteous.By fostering a water-conscious community and providing top-notch services, we aim to make a positive impact on both our clients and the environment. Contact us to learn how we can help with your plumbing needs and support sustainable practices in Dallas. 319" 320 } 321 }, 322 { 323 "@type": "Question", 324 "name": "How quickly do you respond to customer inquiries or complaints?", 325 "acceptedAnswer": { 326 "@type": "Answer", 327 "text": "At Metro Flow Plumbing, we pride ourselves on our rapid response time to customer inquiries and complaints. Numerous customers have highlighted our efficiency and quick turnaround. For instance, Mia Craig remarked on our immediate contact and efficient same-day service. Additionally, Sola Somade noted that a technician was sent out within an hour and a half of their call. 328Understanding the importance of timely service, we respond to customer issues with diligence and professionalism, ensuring that your concerns are addressed promptly. Moreover, customers frequently commend our courteous and knowledgeable staff, further emphasizing our commitment to excellent service. 329For any plumbing needs, do not hesitate to contact us at Metro Flow Plumbing â we are here to serve you efficiently and effectively. Call us today! 330" 331 } 332 }, 333 { 334 "@type": "Question", 335 "name": "What accommodations do you provide for seniors or individuals with mobility restrictions during service visits? 336", 337 "acceptedAnswer": { 338 "@type": "Answer", 339 "text": "At Metro Flow Plumbing, we prioritize accommodating all our customers, including seniors and those with mobility restrictions. Our services are tailored to ensure safety, accessibility, and convenience during our visits. We offer specialized plumbing modifications like installing grab bars, walk-in tubs, and accessible sinks to create a user-friendly environment. 340Our experienced plumbers are trained to be exceptionally considerate, ensuring minimal disruption and maintaining cleanliness. We aim to make your plumbing experience as seamless and stress-free as possible, from the initial call to the completion of service. 341âVery well mannered, got the job done and service was great!â said one of our satisfied customers. 342Contact Metro Flow Plumbing today to discuss how we can make your home safer and more accessible. 343" 344 } 345 }, 346 { 347 "@type": "Question", 348 "name": "What areas do you serve? 349", 350 "acceptedAnswer": { 351 "@type": "Answer", 352 "text": "Metro Flow Plumbing proudly serves a diverse range of locations within the Dallas area and its surroundings. Our service areas include Dallas, Highland Park, Preston Hollow, Lakewood, Richardson, and Plano. We are dedicated to providing top-notch plumbing services to these communities, ensuring both quality and reliability in every job we undertake. 353For any inquiries or to schedule a service, please donât hesitate to reach out to us at 214-328-7371. If youâre unable to chat now, you can also fill out our contact form, and one of our representatives will get back to you within 24 hours. 354" 355 } 356 }, 357 { 358 "@type": "Question", 359 "name": "What awards has your company received? 360", 361 "acceptedAnswer": { 362 "@type": "Answer", 363 "text": "Metro Flow Plumbing has garnered several accolades that highlight its industry excellence. Notably, Metro Flow Plumbing has won national awards for its innovative Cured-In-Place Pipe Lining (CIPP) system. This trenchless technology is one of the most advanced methods for pipe repair and is utilized by only about 10% of plumbing companies nationwide. 364By embracing cutting-edge technology and providing top-tier services, Metro Flow Plumbing has positioned itself as a leader in the plumbing industry. For instance, the companyâs mastery in the CIPP technique has contributed significantly to their reputation and client satisfaction, underlining their commitment to delivering exceptional plumbing solutions. 365If you are looking for reliable plumbing services backed by award-winning expertise, donât he
365sitate to contact us at Metro Flow Plumbing for top-quality solutions that meet your needs. 366" 367 } 368 }, 369 { 370 "@type": "Question", 371 "name": "What happens if I am not satisfied with the service provided? 372", 373 "acceptedAnswer": { 374 "@type": "Answer", 375 "text": "If you are not satisfied with the service provided by Metro Flow Plumbing, we take your concerns very seriously. 376We offer a 100% Customer Satisfaction Guarantee and will work diligently to resolve any issues. In the past, we have addressed specific complaints by reviewing recorded conversations to understand the situation better and implementing corrective measures. We also offer a warranty on our workmanship, ensuring any issues with our repair or installation are fixed at no additional cost. 377For immediate assistance, please contact our office at 214-328-7371. 378" 379 } 380 }, 381 { 382 "@type": "Question", 383 "name": "What happens if a technician is running late?", 384 "acceptedAnswer": { 385 "@type": "Answer", 386 "text": "If a technician from Metro Flow Plumbing is running late, the company ensures that customers are promptly updated and kept informed about the technicianâs expected arrival time. Clear communication is a top priority. For instance, one satisfied customer, Carrie Beckner, highlighted that the office called her to provide an update, and the technicians even arrived a bit earlier than rescheduled. 387Additionally, another review praised the attentive communication and responsiveness of the Metro Flow Plumbing staff, ensuring customers are not left in the dark. 388For your peace of mind and seamless service, always expect timely updates and reliable communication from Metro Flow Plumbing. If you have concerns or need immediate clarity, donât hesitate to call their customer service. 389Call-to-Action: For reliable and transparent plumbing services, contact Metro Flow Plumbing today. We are committed to keeping you informed every step of the way!" 390 } 391 }, 392 { 393 "@type": "Question", 394 "name": "What is your policy on rescheduling or canceling appointments?", 395 "acceptedAnswer": { 396 "@type": "Answer", 397 "text": "At Metro Flow Plumbing, we strive to offer our customers flexibility and convenience when it comes to appointments. We understand that schedules can change, and we aim to accommodate those changes smoothly. However, itâs essential to highlight that any adjustments, such as cancellations or rescheduling, should be communicated promptly to ensure efficient service management. There are no fees to reschedule or cancel an appointment. 398For instance, in a recent customer review, a client needed to reschedule an appointment to avoid higher fees and personal scheduling issues. Unfortunately, the original time slot was not updated, leading to a minor inconvenience. 399We encourage customers to call our office as soon as possible if they need to change their appointment. This proactive approach helps in managing our schedule efficiently and allows us to assist you better. Please contact our service team directly to discuss any necessary changes or to confirm the best available options. 400Feel free to reach out to us for any further assistance. Your satisfaction and understanding are pivotal to our service excellence. 401" 402 } 403 }, 404 { 405 "@type": "Question", 406 "name": "What is your process for handling large or complex projects?", 407 "acceptedAnswer": { 408 "@type": "Answer", 409 "text": "At Metro Flow Plumbing, we follow a meticulous and efficient process for handling large or complex projects, designed to ensure durability, minimal disruption, and cost-effectiveness. Hereâs an overview: 410Initial Assessment and Inspection: We start with a thorough inspection using high-tech camera equipment to identify the issues in your plumbing system. This helps us pinpoint the exact problem areas and evaluate the overall condition of your pipes. 411Advanced Trenchless Methods: For pipe repairs and replacements, we primarily use our innovative Cured-In-Place Pipe (CIPP) system. This method involves inserting a flexible liner saturated with resin into the existing pipe, which is then inflated and cured. This creates a seamless, durable new pipe within the old one, minimizing the need for excavation and disruption to your property. 412Minimal Disruption and Efficiency: Our processes ensure minimal disruption to your daily activities and surroundings. The entire CIPP process can often be completed in just one day, significantly reducing downtime and labor costs. 413Quality and Durability: We use high-quality materials that are resistant to corrosion and root infiltration, ensuring that the new pipe lasts for decades. Our approach is environmentally friendly, reducing waste and preserving landscapes. 414Customer Testimonials: âWe couldnât believe how smoothly the entire trenchless replacement went. Our yard was untouched, and the new pipe works perfectly,â says a satisfied customer, Sharon. 415For complex projects, Metro Flow Plumbing is your trusted partner, combining cutting-edge technology with unmatched expertise to deliver exceptional results. Contact us today to learn more about our services or to schedule an inspection!" 416 } 417 }, 418 { 419 "@type": "Question", 420 "name": "What is your process for resolving disputes or service issues?",
421 "acceptedAnswer": { 422 "@type": "Answer", 423 "text": "Metro Flow Plumbing places a strong emphasis on resolving disputes and service issues promptly and professionally. As highlighted by their dedication to excellent service, their process includes several key steps: 424Immediate Response and Assessment: â Upon receiving a complaint or service issue, Metro Flow Plumbing immediately records and assesses the situation. This is evident from instances such as a customer praising the team for addressing a mis-handled issue from another plumbing company with professionalism and courtesy. 425Detailed Communication: â Clear, consistent communication is maintained throughout the resolution process. Customers frequently mention the informative and courteous interactions with the office staff and technicians, ensuring they understand the steps being taken to resolve their issues[3][4]. 426Professional and Courteous Technicians: â The technicians at Metro Flow Plumbing are described as respectful, hardworking, and focused on resolving issues efficiently, often same-day, without additional charges for follow-up visits if needed. 427Customer Satisfaction and Follow-Up: â They stand by their work with a 100% customer satisfaction guarantee. In cases of miscommunication or errors, they take responsibility, provide refunds if necessary, and ensure the customer retains faith in their service. 428For a seamless and stress-free plumbing experience, and should any disputes arise, Metro Flow Plumbing is committed to delivering top-tier customer service and satisfaction. Contact them at 214-328-7371 or via their website to address any concerns you may have." 429 } 430 }, 431 { 432 "@type": "Question", 433 "name": "What is your service guarantee? 434", 435 "acceptedAnswer": { 436 "@type": "Answer", 437 "text": "At Metro Flow Plumbing, we are committed to providing our customers with top-notch service backed by a solid guarantee. We offer a 100% service guarantee that includes a 5-year warranty on parts and labor. This means we stand by the quality of our workmanship and are dedicated to customer satisfaction. If anything goes wrong with our repair or installation, we will fix it at no additional cost. 438Our many satisfied customers have experienced firsthand the reliability and quality of our services. As one customer put it, âThey were very courteous, knowledgeable, and professional! They gave clear and concise answers to my questions. 439feel confident choosing Metro Flow Plumbingâwhere your satisfaction is our priority. Contact us today at 214-328-7371." 440 } 441 }, 442 { 443 "@type": "Question", 444 "name": "What kind of training do your employees receive? 445", 446 "acceptedAnswer": { 447 "@type": "Answer", 448 "text": "At Metro Flow Plumbing, our employees undergo extensive training to ensure they can deliver top-notch service. Each technician passes rigorous background checks and must complete a critical safety training program before joining our team. Our founder, Rick Romero, and our team pride themselves on professionalism and a thorough understanding of the latest plumbing standards and technologies. 449Customers consistently praise the high level of service provided by our team. For example, Mary Buenrostro mentioned, âThey arrived on time, consulted with me on the specifics of the job, and performed the job in a timely, professional mannerâ. This dedication to excellence ensures we maintain an 85% customer retention rate. 450Contact us today to experience our expert service firsthand!" 451 } 452 }, 453 { 454 "@type": "Question", 455 "name": "What kind of warranty or guarantee do you provide on your services?", 456 "acceptedAnswer": { 457 "@type": "Answer", 458 "text": "At Metro Flow Plumbing, we provide our customers with an unparalleled warranty and satisfaction guarantee. We offer a robust 5-year warranty on both parts and labor, ensuring the highest level of protection and peace of mind for our clients. Additionally, our 100% service satisfaction guarantee means that if something goes wrong with the repair or installation, we will rectify it at no extra cost to you, demonstrating our commitment to quality and customer satisfaction. 459Thousands of satisfied customers have experienced the reliability and excellence of our services. âOur 100% Customer Satisfaction Guarantee includes a 5 year warranty on parts and labor,â noted one of our happy clients, underscoring the trust and confidence placed in our team. 460To ensure you benefit from this exceptional offer, contact Metro Flow Plumbing today at 214-328-7371. Let us provide you with the quality service and peace of mind that you deserve." 461 } 462 }, 463 { 464 "@type": "Question", 465 "name": "What licenses and certifications does your company hold? 466",
467 "acceptedAnswer": { 468 "@type": "Answer", 469 "text": "At Metro Flow Plumbing, we ensure that every plumber on our team is properly licensed and certified, providing the highest standard of service. Each technician is a licensed and insured professional, emphasizing our commitment to safety, expertise, and code compliance. This dedication not only ensures quality but also peace of mind for our clients. 470Our CEO, Rick Romero, Master Plumber, along with our team, have consistently maintained this integrity for over three decades. Moreover, our certifications align with the stringent local Dallas regulations, ensuring your projects are both legally compliant and of superior quality. 471Feel free to reach out to us at 214-328-7371 for any plumbing needs or inquiries about our certifications! 472" 473 } 474 }, 475 { 476 "@type": "Question", 477 "name": "What makes your company a trusted provider in the industry? 478", 479 "acceptedAnswer": { 480 "@type": "Answer", 481 "text": "Metro Flow Plumbing has earned its reputation as a trusted provider through a combination of expertise, experience, and exceptional customer service. Founded in 1989 on three core principlesâproviding the best plumbing service, outstanding customer care, and unwavering honestyâthese values have propelled us forward for over 30 years. 482Our team consists of licensed, certified, and insured professionals who are dedicated to delivering high-quality workmanship in every job. This commitment includes a 100% satisfaction guarantee on all services, reflecting our confidence in the quality and durability of our work. Customer Mia Craig expressed her gratitude, highlighting our compassionate and timely service, professional conduct, and upfront pricing. 483Additionally, our continuous innovations, such as the Cured-In-Place Pipe (CIPP) system, showcase our ability to offer advanced, cost-effective, and minimally disruptive plumbing solutions. 484Explore the excellence that Metro Flow Plumbing offers and experience our trusted service for yourself. Contact us today at 214-328-7371! 485" 486 } 487 }, 488 { 489 "@type": "Question", 490 "name": "What measures do you take to ensure punctuality?", 491 "acceptedAnswer": { 492 "@type": "Answer", 493 "text": "At Metro Flow Plumbing, we take several measures to ensure punctuality and timely service. Our technicians are well-trained and committed to arriving on time, with positive customer feedback reinforcing our punctual reputation. For instance, one customer noted, âTed & Sam arrived on time, the office even called to ask if they could arrive a little earlyâ. Moreover, another satisfied client stated, âArrived on time, confirmed who would be coming along with a picture of the technician via email notificationâ. 494We also emphasize clear communication and scheduling flexibility. Customer communications often include confirmations of who will be arriving and at what time, helping to manage expectations and ensure accountability. For emergency repairs, we have a robust system in place to provide prompt response, with technicians often available within an hour. 495Call to Action: Trust Metro Flow Plumbing for prompt, professional service. Experience our commitment to punctuality firsthand by scheduling your service today!" 496 } 497 }, 498 { 499 "@type": "Question", 500 "name": "What services do you offer?", 501 "acceptedAnswer": { 502 "@type": "Answer", 503 "text": "At Metro Flow Plumbing, we offer a comprehensive range of services to address all your plumbing needs. Our primary services include: 504Cured-In-Place Pipe Lining (CIPP): A revolutionary technique for pipe restoration that avoids invasive digging. 505Water Filtration Systems: Ensuring your family has access to purified water at all times. 506Sump Pumps: Protecting your home from water damage due to heavy rains and flooding. 507Camera Inspections: Advanced diagnostics to pinpoint plumbing issues without tearing walls apart. 508Gas Line Services: Expert gas line repairs, replacements, and installations. 509Drain Cleaning: Professional services to tackle even the toughest clogs and ensure your drains are clear and free-flowing. 510Trenchless Pipe Repair: Efficient, cost-effective repairs with minimal disruption to your property. 511Our wide array of services is designed to meet the unique plumbing needs of Dallas and surrounding areas effectively. Contact us today at 214-328-7371 to learn more or schedule an appointment." 512 } 513 }, 514 { 515 "@type": "Question", 516 "name": "What steps do you take to ensure customer satisfaction?",
517 "acceptedAnswer": { 518 "@type": "Answer", 519 "text": "At Metro Flow Plumbing, customer satisfaction is our top priority. We ensure customer satisfaction by adhering to several key principles and practices: 520Honesty and Transparency: We believe in clear communication. Our upfront pricing policy ensures customers understand costs before any work begins. 52124/7 Availability: Plumbing issues can arise at any time. Offering 24/7 services ensures weâre always available for emergencies, minimizing customer inconvenience. 522Qualified and Insured Technicians: All our technicians are licensed and insured, bringing expertise and reliability to every jo. 523Rapid Response and After-Service Support: Our customers frequently praise our quick response times and thorough after-service support. For instance, Sola Somade highlighted how we sent a technician within an hour and a half of their call. 524Customer Testimonials: Reviews from satisfied customers like Sean Jones, who appreciated our amazing customer service and quick repair work, reinforce our dedication to meeting customer needs. 525With nearly a 90% retention rate over 30 years, we pride ourselves on delivering exceptional service and maintaining long-term relationships with our customers. For any plumbing needs, call us at (214) 328-7371." 526 } 527 }, 528 { 529 "@type": "Question", 530 "name": "Are there any additional fees I should be aware of?", 531 "acceptedAnswer": { 532 "@type": "Answer", 533 "text": "Yes, you should be aware of a few additional fees when using Metro Flow Plumbing: 5341.After-Hours Calls: Thereâs a fee of $250 for after-hours calls. 5352.Dispatch Fees: A dispatch fee is charged for sending a technician to your location. 5363.Weekend Rates: Slight additional charges apply for services provided over the weekend. 537However, Metro Flow Plumbing is committed to transparency, so all services and associated fees are clearly communicated upfront. For an accurate estimate, donât hesitate to contact their customer service. 538" 539 } 540 }, 541 { 542 "@type": "Question", 543 "name": "Are there any hidden fees or charges I should be aware of?", 544 "acceptedAnswer": { 545 "@type": "Answer", 546 "text": "At Metro Flow Plumbing, transparency is paramount. There are no hidden fees or charges to worry about. The pricing is always explained upfront, as supported by many satisfied customers. For example, Greg Winterton confirmed, âthere were no hidden or unexpected costsâ during his service experience. Similarly, Jonathan Shannon emphasized the âpricing fixed with no unforeseen extra costsâ. This commitment ensures that you receive clear and honest pricing at all times. 547For any concerns or to get a precise quote, please contact us, and our team will be happy to assist you with all the details." 548 } 549 }, 550 { 551 "@type": "Question", 552 "name": "Are there credit requirements for financing your services? 553", 554 "acceptedAnswer": { 555 "@type": "Answer", 556 "text": "Metro Flow Plumbing does have credit requirements when you finance their services. They partnered with GoodLeap for flexible financing options, which conducts a soft credit check using the highest score from all three credit bureaus to determine qualification. 557As Cassi G. Hardin, a satisfied customer, mentioned, âDaryl was a big help with financing optionsâ. We strive to make the financing process as smooth as possible to help you get the plumbing services you need without the financial burden. 558For more information on our financing options and to see if you qualify, give us a call at 214-328-7371 today! 559 560 561" 562 } 563 }, 564 { 565 "@type": "Question", 566 "name": "Are there financing options for emergency HVAC, plumbing, or electrical repairs? 567", 568 "acceptedAnswer": { 569 "@type": "Answer", 570 "text": "Yes, Metro Flow Plumbing offers financing options for emergency plumbing repairs. They have partnered with GoodLeap to provide flexible payment plans. GoodLeap uses a soft credit check and assesses the highest score from all three credit bureaus to determine eligibility, making it quick and easy to get started. 571Additionally, Metro Flow Plumbing provides low interest financing options for various repairs, allowing homeowners to manage unexpected expenses without financial strain. 572For more detailed information, please contact Metro Flow Plumbing directly at 214-328-7371. 573" 574 } 575 }, 576 { 577 "@type": "Question", 578 "name": "Can I combine loyalty rewards with other promotions or discounts?",
579 "acceptedAnswer": { 580 "@type": "Answer", 581 "text": "Combining loyalty rewards with other promotions or discounts at Metro Flow Plumbing is typically not allowed. Our terms dictate that each offer, such as the $50 discount on services or the benefits from our Diamond Club membership, must be used independently to maintain the integrity of each promotion. 582Many of our customers appreciate the value of our services, as highlighted by Dorothy Woodward, who lauded our professionalism and didnât feel pressured during service calls. This demonstrates our commitment to delivering excellent service without compromising on promotional terms. For more accurate details and to explore the best deals suited for you, please contact us directly at 214-328-7371. 583" 584 } 585 }, 586 { 587 "@type": "Question", 588 "name": "Can I get a price match if I find a lower quote elsewhere? 589", 590 "acceptedAnswer": { 591 "@type": "Answer", 592 "text": "At Metro Flow Plumbing, we strive to provide competitive pricing and outstanding service. If you find a lower quote elsewhere, weâre open to discussing a price match. Our goal is to offer excellent value without compromising on quality or service. 593A customer has praised our transparency, stating, âTheir plumbers are professional, always neat in their appearance and their work. While the prices may seem high, I am always quoted a price in advance and the amount is never over what is quotedâ[0]. This reflects our commitment to fair pricing and customer satisfaction. 594Contact us today to discuss your quote and let us demonstrate why Metro Flow Plumbing is the right choice for you! 595" 596 } 597 }, 598 { 599 "@type": "Question", 600 "name": "Can I pay off my financing early?", 601 "acceptedAnswer": { 602 "@type": "Answer", 603 "text": "Yes, you can pay off your financing early with Metro-Flow Plumbing. This flexibility allows you to manage your financial commitments in a way that suits your needs best. 604Metro-Flow Plumbing, partnering with GoodLeap, offers flexible payment options for various projects without penalties for early pay-offs[0][1]. This means you can benefit from their low-interest financing without worrying about extra costs if you opt to pay your loan ahead of the schedule. 605If youâre interested, our customer service team can provide detailed information and help set up your financing plan. Contact us at 214-328-7371 to get started today!" 606 } 607 }, 608 { 609 "@type": "Question", 610 "name": "Do you offer financing options for HVAC, plumbing, and electrical services? 611", 612 "acceptedAnswer": { 613 "@type": "Answer", 614 "text": "Yes, Metro Flow Plumbing offers flexible financing options for plumbing services. We understand that some plumbing and HVAC projects can be significant investments, so weâve partnered with GoodLeap to provide our clients with convenient payment options. This partnership allows our customers to benefit from a soft credit check and the highest scoring bureau to determine eligibility, making it easier to manage the costs of essential home services. 615Donât hesitate to contact us to learn more about these financing options and to schedule your service. Our team is ready to assist you with any of your plumbing, HVAC, or electrical needs!" 616 } 617 }, 618 { 619 "@type": "Question", 620 "name": "Do you offer no-interest or deferred payment plans for these services?", 621 "acceptedAnswer": { 622 "@type": "Answer", 623 "text": "Yes, Metro Flow Plumbing offers flexible financing options, including low-interest and deferred payment plans. Our goal is to make essential plumbing services accessible and affordable for all our customers. Special financing options are readily available for various projects, ensuring that financial constraints donât hinder you from getting the services you need. 624Donât let budget concerns prevent you from addressing crucial plumbing issues. Contact us today at (214) 214-4718 to learn more about our financing plans and take the first step towards a hassle-free plumbing experience." 625 } 626 }, 627 { 628 "@type": "Question", 629 "name": "How do I apply for financing for an HVAC, plumbing, or electrical project?",
630 "acceptedAnswer": { 631 "@type": "Answer", 632 "text": "Applying for financing with Metro Flow Plumbing for your plumbing project is straightforward and client-friendly. Hereâs how you can get started: 6331.Initial Inquiry: Contact Metro Flow Plumbing at 214-328-7371 to discuss your project needs and express your interest in financing options. Their team is well-versed in assisting customers through this process. 6342.Soft Credit Check: The company has partnered with GoodLeap to offer flexible payment options. The financing process starts with a soft credit check using the highest score from all three credit bureaus to determine your eligibilityâthis does not affect your credit score until funding is initiated. 6353.Consultation and Quotation: A consultation session will be arranged to assess your specific project requirements. This includes a detailed inspection and a comprehensive quote to outline financing needs. 6364.Approval and Project Commencement: Once approved, financing terms will be finalized, and the project work will commence. Metro Flow Plumbing takes pride in professional execution and customer satisfaction, evidenced by numerous positive reviews like Casey Sullivanâs and Jenny Longâs endorsements. 637To get started, simply reach out to Metro Flow Plumbing at 214-328-7371 and ask about their low-interest financing options, aiding you in ensuring your homeâs systems are in optimal condition without financial strain." 638 } 639 }, 640 { 641 "@type": "Question", 642 "name": "How do your services compare to competitors in terms of value?", 643 "acceptedAnswer": { 644 "@type": "Answer", 645 "text": "Metro Flow Plumbing stands out among competitors by delivering exceptional value through a combination of quality service, competitive pricing, and customer-first policies. Our clients frequently emphasize our superior service and value-added experiences. For instance, Jeff Laceky notes, âMakes you feel youâre getting great value on top of feeling like you are cared for,â highlighting our balance of quality and cost-effectiveness. 646Additionally, we offer competitive pricing and flexible financing options, making premium plumbing services accessible for all homeowners in Dallas. Our customers also appreciate our promptness and professionalism, with Brent Rogers praising our âhonest and fast workâ and reasonable pricing. 647To experience the Metro Flow Plumbing difference, contact us today for tailored solutions and exceptional service." 648 } 649 }, 650 { 651 "@type": "Question", 652 "name": "How long does it take to get approved for financing? 653", 654 "acceptedAnswer": { 655 "@type": "Answer", 656 "text": "Getting approved for financing with Metro Flow Plumbing is a streamlined and efficient process. Typically, it takes just a few minutes to get started with a soft credit check using GoodLeap, assessing the highest score from all three credit bureaus to see if you qualify. 657Many of our customers appreciate the prompt financing approval and the ease of getting their projects started without hassle. As one satisfied customer shared, âDaryl was a big help with financing options!â. 658If youâre looking to finance your plumbing project promptly, reach out to us at Metro Flow Plumbing. Our team is ready to assist you with flexible and accommodating financing solutions today! 659" 660 } 661 }, 662 { 663 "@type": "Question", 664 "name": "How much do your services cost?", 665 "acceptedAnswer": { 666 "@type": "Answer", 667 "text": "At Metro Flow Plumbing, our service costs are competitive and transparent. We also offer substantial discounts, such as â$50 Off Work Performedâ and a $500 value in free services through our exclusive Diamond Club membership, which also includes a 15% discount on repairs. 668One of our satisfied customers, Laura Lacritz, praised our printed set fees, remarking, âI like the printed set fees so there is no question about what the services will costâ. 669For detailed pricing tailored to your needs, please call us at 214-328-7371. Enjoy peace of mind with Metro Flow Plumbingâs transparent and fair pricing! 670" 671 } 672 }, 673 { 674 "@type": "Question", 675 "name": "What are the terms and interest rates for your financing plans?",
676 "acceptedAnswer": { 677 "@type": "Answer", 678 "text": "At Metro Flow Plumbing, we understand that the cost of plumbing upgrades and repairs can be a concern. Thatâs why we offer flexible financing options through our partnership with GoodLeap. You can benefit from low-interest rates and a simple application process involving only a soft credit check until funding. 679Our financing plans are designed to be accessible and customer-friendly, ensuring you can undertake necessary home improvements without financial stress. Should you need plumbing services, know that our terms are tailored to meet your budgetary requirements while providing the high-quality service weâre renowned for. 680Chris, Ted, Mike, and other team members have been praised for their professionalism and valuable assistance with financing options, ensuring our customers can easily manage the costs associated with our services. Donât hesitate to reach out to us for more information or to apply for financing today! 681" 682 } 683 }, 684 { 685 "@type": "Question", 686 "name": "What documentation is required to apply for financing? 687", 688 "acceptedAnswer": { 689 "@type": "Answer", 690 "text": "To apply for financing with Metro Flow Plumbing, you will need to provide the following documentation: 6911. Identification: A government-issued ID such as a driverâs license or passport. 6922.Proof of Income: Recent pay stubs, tax returns, or bank statements to demonstrate your ability to repay the loan. 6933.Credit Information: A credit check will be performed, typically involving a soft credit check until funding, ensuring you qualify based on the highest score from all three bureaus. 694Cassi G Hardin, a happy customer, mentioned, âDaryl was a big help with financing options also!!â This highlights our commitment to making the financing process smooth and accessible. 695To get started or for any questions, contact Metro Flow Plumbing at 214-328-7371. Our team is ready to assist and guide you through the financing application process. 696" 697 } 698 }, 699 { 700 "@type": "Question", 701 "name": "What makes your services worth the price? 702", 703 "acceptedAnswer": { 704 "@type": "Answer", 705 "text": "Opening Statement: Metro Flow Plumbing offers unrivaled value through superior service, cutting-edge technology, and cost-effective solutions. 706Key Information: Our trenchless repair methods significantly reduce labor and equipment costs while minimizing disruption to your property. This efficiency not only saves you money but also ensures durable, long-lasting results. Moreover, we pride ourselves on using high-quality materials and offering environmentally friendly options that safeguard both your investment and the environment. 707Customer Quotes: A satisfied customer stated, âTheir expertise and prompt service saved me time and money. I highly recommend them for any plumbing needsâ. 708Closing and Call-to-Action: Experience the Metro Flow Plumbing difference today. Contact us at 214-328-7371 for a consultation and see firsthand why our services are worth every penny. 709" 710 } 711 }, 712 { 713 "@type": "Question", 714 "name": "What payment methods do you accept? 715", 716 "acceptedAnswer": { 717 "@type": "Answer", 718 "text": "At Metro Flow Plumbing, we offer a variety of flexible payment options to cater to our customersâ needs. You can benefit from our partnership with GoodLeap, which provides flexible payment plans with a quick and straightforward approval process that utilizes a soft credit check. This helps ensure our services are accessible, allowing you to tackle your plumbing issues without immediate financial strain. 719For more information or to discuss the best payment plan for your needs, please contact us at 214-328-7371. Our team is ready to assist you 24/7. 720" 721 } 722 }, 723 { 724 "@type": "Question", 725 "name": "Do loyalty program benefits apply to all types of services?", 726 "acceptedAnswer": { 727 "@type": "Answer", 728 "text": "Yes, the benefits of our Diamond Club loyalty program apply to all types of services offered by Metro Flow Plumbing. This exclusive membership provides numerous advantages such as priority service, a $500 value in free services, a 15% discount on repairs, and an annual 323-point inspection. Members also enjoy the highest level of Dallas Plumbing Valet Service, ensuring comprehensive coverage and top-tier support for any plumbing needs. 729For more information or to see if our Diamond Club is right for you, please contact us at 214-328-7371. 730" 731 } 732 }, 733 { 734 "@type": "Question", 735 "name": "Do you offer a loyalty program for repeat customers? 736",
737 "acceptedAnswer": { 738 "@type": "Answer", 739 "text": "Yes, Metro Flow Plumbing offers a loyalty program called âThe Diamond Club.â This exclusive membership is designed for customers who appreciate premium maintenance services and includes numerous benefits. Diamond Club members receive priority service, $500 worth of free services, a 15% discount on repairs, an annual 323-point inspection, and the highest level of Dallas Plumbing Valet Service. 740Our customers highly appreciate the value and convenience provided by the Diamond Club. Carla Thomas noted, âWe join the Diamond Club each year and have our home inspected annually to circumvent problems. Money well spentâ. 741If you prioritize the maintenance and value of your home, contact us today at 214-328-7371 to learn more about joining The Diamond Club. 742" 743 } 744 }, 745 { 746 "@type": "Question", 747 "name": "Do you offer any customer loyalty programs or incentives?", 748 "acceptedAnswer": { 749 "@type": "Answer", 750 "text": "At Metro Flow Plumbing, we offer an exclusive customer loyalty program known as âThe Diamond Club.â This prestigious membership is extended to only 22% of our Dallas clientele, ensuring exceptional value and service. Benefits of The Diamond Club membership include: 751Priority Service: Immediate attention to your plumbing needs. 752$500 Value in Free Services: Enjoy substantial savings on a range of services. 75315% Discount on Repairs: Get significant discounts on all repair work. 754Annual 323 Point Inspection: Comprehensive yearly inspections to prevent potential issues. 755Highest Level of Dallas Plumbing Valet Service. 756One of our satisfied customers, Kerryann Manley, remarked, âGreat guys. Great company,â in appreciation of our thorough and non-pushy service. 757To join or inquire more about The Diamond Club, you can call us at 214-328-7371. 758" 759 } 760 }, 761 { 762 "@type": "Question", 763 "name": "Do you offer any discounts or packages?", 764 "acceptedAnswer": { 765 "@type": "Answer", 766 "text": "Yes, Metro Flow Plumbing offers discounts and packages designed to provide exceptional value to our customers. 7671.$50 Off Work Performed: You can enjoy $50 off on any work performed by mentioning âMETROFLOWCARESâ during your service[0]. 7682.The Diamond Club: This exclusive membership is available to only 22% of our Dallas clientele. Benefits include: 769Priority Service 770$500 in Free Services 77115% Discount on Repairs 772Annual 323 Point Inspection 773Highest Level of Dallas Plumbing Valet Service[1][0]. 774For more personalized info about these packages or to see if you qualify, please call us at 214-328-7371. Join us and experience premium plumbing care at unbeatable rates. 775" 776 } 777 }, 778 { 779 "@type": "Question", 780 "name": "Do you offer special events or bonuses for loyalty program members?", 781 "acceptedAnswer": { 782 "@type": "Answer", 783 "text": "Absolutely! Metro Flow Plumbing offers exclusive benefits through our âDiamond Clubâ loyalty program, including special events and bonuses designed to enhance your experience. Members enjoy **Priority Service**, a **$500 Value in Free Services**, a **15% Discount on Repairs**, and an **Annual 323 Point Inspection**. 784Our satisfied customers consistently express their appreciation for these perks. One customer mentioned, âWere not pushy and did not try to sell us stuff we didnât need. Great guys. Great companyâ. Another noted, âRJ Romero did a fabulous job! I will continue to call MetroFlow for any plumbing problems that occurâ. 785Join the Diamond Club today and enjoy premium plumbing services. Contact us at 214-328-7371 to learn more!. 786" 787 } 788 }, 789 { 790 "@type": "Question", 791 "name": "Do you provide any incentives or discounts for new customers?", 792 "acceptedAnswer": { 793 "@type": "Answer", 794 "text": "Yes, Metro Flow Plumbing offers a variety of incentives and discounts to new customers. For instance, new customers can enjoy $50 off work performed by mentioning the promotion code METROFLOWCARES. Furthermore, Metro Flow Plumbing offers an exclusive membership called âThe Diamond Clubâ with benefits such as priority service, a $500 value in free services, a 15% discount on repairs, and an annual 323-point inspection. 795Our satisfied customer, Aimee Newsom, highlighted the fair pricing upfront and professional techs, making our services both valuable and reliable. 796Contact us at 214-328-7371 to take advantage of these offers and experience our exceptional plumbing services! 797" 798 } 799 }, 800 { 801 "@type": "Question", 802 "name": "How do I sign up for your loyalty program?",
803 "acceptedAnswer": { 804 "@type": "Answer", 805 "text": "Signing up for Metro Flow Plumbingâs exclusive âDiamond Clubâ membership is straightforward and offers substantial benefits! 806Key Information: The Diamond Club, exclusive to 22% of Metro Flow Plumbingâs clients, provides priority service, $500 in free services, a 15% discount on repairs, and an annual 323-point inspection. Membership ensures the highest level of service and preventive maintenance to keep your plumbing in top condition. 807Signing Up: To enroll in the Diamond Club, simply contact Metro Flow Plumbing at 214-328-7371 for detailed assistance and to determine if this prestigious membership is right for you. 808Customer Experience: Happy customers like Kerryann Manley have praised the thoroughness and professionalism of Metro Flowâs service, making it clear that the Diamond Club benefits are well worth the investment. 809Join Now: Take the first step towards exceptional plumbing maintenance and valuable savings by calling today! 810" 811 } 812 }, 813 { 814 "@type": "Question", 815 "name": "How does your loyalty program work?", 816 "acceptedAnswer": { 817 "@type": "Answer", 818 "text": "Our loyalty program, known as âThe Diamond Club,â is an exclusive membership available to only 22% of our Dallas resident clientele. By limiting the clubâs capacity, we ensure that our members receive premium service and maintain the value of their homes. 819Membership benefits include: 820Priority Service 821A $500 Value in Free Services 822A 15% Discount on Repairs 823Annual 323 Point Inspection 824The Highest Level of Dallas Plumbing Valet Service 825Our exclusive offerings have resulted in tremendous customer satisfaction. As one satisfied customer, Emma Vernon, stated, âMetro-Flow has a new customer for lifeâ due to our prompt and exceptional service. 826Joining The Diamond Club ensures peace of mind for your homeâs plumbing needs. Contact us at 214-328-7371 to see if this prestigious membership is right for you. 827" 828 } 829 }, 830 { 831 "@type": "Question", 832 "name": "What benefits do I get from your loyalty program?", 833 "acceptedAnswer": { 834 "@type": "Answer", 835 "text": "Joining Metro Flow Plumbingâs Diamond Club offers numerous advantages that ensure your plumbing system is always in peak condition. As a member, you receive:\nPriority Service: Get expedited response for your plumbing needs.\n$500 Value in Free Services: Benefit from significant cost savings on essential services.\n15% Discount on Repairs: Enjoy substantial savings on any required repairs.\nAnnual 323 Point Inspection: Prevent issues before they become costly problems with our comprehensive inspection.\nHighest Level of Dallas Plumbing Valet Service: Experience unmatched convenience and luxury in plumbing services.\nA happy customer noted, \"Their professionalism and consideration for me and for my property have made this plumbing experience a good one for me.\"\nJoin today and give your home the best care possible. Contact Metro Flow Plumbing at 214-328-7371." 836 } 837 } 838 ] 839} 840</script>
840 841 842 843 844 845
845<script type="application/ld+json"> 846{"@context":"https://schema.org","@type":"Blog","mainEntity":[{"@type":"Question","name":"CIPP Explained: How This Innovative Technique Saves Your Yard and Your Wallet","acceptedAnswer":{"@type":"Answer","text":"## CIPP Explained: How This Innovative Technique Saves Your Yard and Your Wallet\n\nImagine waking up on a Tuesday morning, the sun barely up, and the familiar hum of city life outside your window. All seems well until you notice a strange puddle forming near your garden. Panic sets in as you recall the last time a plumbing issue meant days of dusty repairs and an unsightly trench scarring your beloved yard. Luckily, this time, you decide to call Metro Flow Plumbing, and everything changes. Within a few days, without a single shovel entering your yard, the problem is resolved. How? Through the innovative magic of Cured-In-Place Pipe (CIPP) lining.\n\n### The Marvel of Cured-In-Place Pipe Lining\n\nCured-In-Place Pipe (CIPP) lining is a trenchless pipe repair method that Metro Flow Plumbing has embraced, revolutionizing how we approach plumbing repairs. Traditional pipe repairs often involved extensive digging, disrupting landscapes, and leading to additional restoration costs. However, CIPP lining circumvents these issues with minimal disruption.\n\n**How CIPP Works**: This technique involves inserting a flexible, resin-soaked liner into the existing damaged pipe. Once in place, the liner is cured using heat or UV light, forming a robust, seamless layer within the old pipe. This new pipe within a pipe efficiently seals leaks and strengthens the existing system without the need for extensive excavation[0].\n\n### The Benefits of CIPP for Homeowners\n\n**Minimally Invasive**: One of the most appealing aspects of CIPP lining is its minimal invasiveness. Unlike traditional repairs that require digging long trenches in your yard, CIPP uses existing access points, like small holes or cleanouts. This means less damage to your property and no landscape restoration required[0][5]. \n\n**Time Efficient**: Traditional pipe replacement can stretch over days, if not weeks, affecting your daily routine. CIPP repairs can be completed in a fraction of that time, often within a day or two, saving both time and inconvenience[0]. \n\n**Cost-Effective**: While the initial cost of CIPP may be similar to traditional methods, it becomes more economical in the long run. The reduced need for excavation and restoration means lower costs. Plus, the durable materials used in CIPP reduce the likelihood of future repairs[5][0].\n\n**Long-lasting and Durable**: The resin used in CIPP lining forms a corrosion-resistant and structurally sound pipe that can last for decades, often outlasting the original materials it replaces[0].\n\n**Environmentally Friendly**: By minimizing excavation, CIPP reduces the carbon footprint and environmental impact associated with traditional pipe repairs[0].\n\n### Real-Life Impact\n\nOur customers can attest to the wonders of CIPP lining. Take Sharon B., for instance, who experienced a seamless, quick service with minimal disruption to her daily life, thanks to the professional and efficient team at Metro Flow Plumbing[1]. Similarly, C. Gilmore praised our transparent pricing and swift problem resolution without unnecessary upselling, highlighting the honesty and integrity that sets Metro Flow Plumbing apart[3].\n\n### Why Choose Metro Flow Plumbing?\n\nMetro Flow Plumbing stands as a trusted name in Dallas because of our commitment to innovation and customer satisfaction. We're nationally recognized for our expertise in CIPP, with awards that underscore our leadership in this advanced plumbing technology[2]. Our team, trained in the latest plumbing innovations, is dedicated to providing efficient, reliable, and eco-friendly solutions to all your plumbing needs[4].\n\n### Conclusion\n\nWhether you're dealing with an unexpected plumbing emergency or planning renovations, the benefits of CIPP lining make it an intelligent choice for protecting both your property and your wallet. Choose Metro Flow Plumbing to experience service that is as seamless as CIPP itself. \n\nDiscover how this innovative solution can save your yard and your wallet by contacting Metro Flow Plumbing today at (214) 328-7371. Embrace a future of plumbing solutions that respect both your environment and your peace of mind.\n\n---\n\nFor more details on our services, or to schedule an inspection, visit [Metro Flow Plumbing's website](https://metroflowplumbing.com/). Your pi
846pes deserve the best, and so do you!","citation":{"@type":"WebPage","author":{"@type":"Thing","name":"Metro Flow Plumbing - Dallas Emergency Plumbers"},"url":"https://metroflowplumbing.com/blog/benefits-of-cured-in-place-pipe-lining-for-residential-plumbing-systems/"}}},{"@type":"Question","name":"Get Ready for Winter: Upgrade Your Water Heater Now","acceptedAnswer":{"@type":"Answer","text":"# Get Ready for Winter: Upgrade Your Water Heater Now\n\nWinter in Texas might not be as harsh as in other states, but as temperatures dip, ensuring a reliable and efficient water heater becomes paramount to maintaining a cozy home environment. Metro Flow Plumbing is ready again to lead the charge with expert advice and unparalleled service in the Dallas-Fort Worth area. Here's how a simple water heater upgrade can transform your winter experience.\n\n## The Tale of Warmth Restored\n\nIt all started last winter for the Mitchell family in Dallas. Situated in an older home with a traditional water heater, they faced a chilly dilemma: lukewarm baths and elevated utility bills. Enter Metro Flow Plumbing. The team quickly recognized the potential benefits of a tankless water heater, a solution perfect for their old house. Ted Spillman, one of Metro Flow's expert technicians, spearheaded the transition. As Mrs. Mitchell would recall, \"Ted arrived quickly, got everything under control efficiently, and installed everything beautifully. Thanks to him, we had hot water again that same night!\"[1].\n\n## Why Consider a Water Heater Upgrade Now?\n\nAn effective water heater is not just about comfort; it's about efficiency, savings, and convenience:\n\n1. **Endless Hot Water**: Traditional heaters store water and keep it at a set temperature, a process that inevitably wastes energy. Tankless water heaters, by contrast, heat water on demand. This efficiency ensures you never run out of hot water, even during consecutive showers or simultaneously running multiple appliances[4].\n\n2. **Energy Efficiency and Cost Savings**: A tankless heater can significantly reduce energy consumption. By heating water only when needed, this system minimizes energy waste and can translate into noticeable reductions in utility bills[4].\n\n3. **Space-Friendly Design**: Forget about allocating a large corner of your basement just for a traditional bulky water tank. The compact design of tankless units frees up valuable space, letting you make the best out of your living area[4].\n\n4. **Longevity and Durability**: With proper maintenance, tankless water heaters often outlast conventional systems, offering a service life of over 20 years[4].\n\n5. **Protection Against Freezing**: In the rare event that Dallas faces freezing temperatures, traditional tank-style water heaters can be at risk of damage. Tankless systems, however, with their advanced insulation and compact design, are better equipped to deal with these conditions[4].\n\n## Real Customers. Real Confidence.\n\n\"RJ Romero and Metro Flow replaced all our hot water heaters and have done a great job each time,\" shares Mitch Traub, another satisfied client. \"Great service, punctual and polite,\"[0] testifying to their professionalism and reliability. Likewise, Sean J. is thrilled with the timely response during a crucial freeze period, \"They were there every step of the way, ensuring our water needs were kept in check\"[3].\n\n## Metro Flow Plumbing: Leading with Excellence\n\nWith Metro Flow Plumbing, you don't just get a service; you join a community that champions hot water solutions tailored to your home's specific needs. Their dedicated team of professionals is equipped to handle emergency replacements with precision and care. The emphasis on customer satisfaction, transparency, and prompt service makes Metro Flow the ideal choice for anyone considering an upgrade[2].\n\n## Conclusion: Prepare for a Cosy Winter\n\nAs winter approaches, donât leave your comfort to chance. An optimized water heater could make all the difference, ensuring warmth where it matters most. Learn more about how Metro Flow Plumbing can tailor a heating plan to suit your needs, ensuring peace of mind during the colder months.\n\n**Call to Action**: Ready to upgrade? Contact Metro Flow Plumbing today at (214) 328-7371 or visit [Metro Flow Plumbing](https://metroflowplumbing.com/) to discover how you can improve your home's efficie
846ncy and enjoy endless warmth this winter.","citation":{"@type":"WebPage","author":{"@type":"Thing","name":"Metro Flow Plumbing - Dallas Emergency Plumbers"},"url":"https://metroflowplumbing.com/blog/tankless-water-heaters-a-winter-essential-in-dallas/"}}}]} 847</script>
847 848 849 850
850<script type="application/ld+json"> 851{ 852 "@context" : "https://schema.org/", 853 "@type" : "Service", 854 "serviceType" : "Weekly home cleaning", 855 "provider" : { 856 "@type" : "LocalBusiness", 857 "name" : "Metro Flow Plumbing - Dallas Emergency Plumbers" 858 }, 859 "areaServed" : { 860 "@type" : "State", 861 "name" : "Texas" 862 }, 863 "hasOfferCatalog" : { 864 "@type" : "OfferCatalog", 865 "name" : "Home services", 866 "itemListElement" : [ { 867 "@type" : "OfferCatalog", 868 "name" : "Plumbing", 869 "itemListElement" : [ { 870 "@type" : "offerCatalog", 871 "name" : "Sewer Line", 872 "itemListElement" : [ { 873 "@type" : "Service", 874 "name" : "Repair" 875 } ] 876 }, { 877 "@type" : "offerCatalog", 878 "name" : "Water Heater", 879 "itemListElement" : [ { 880 "@type" : "Service", 881 "name" : "Repair" 882 } ] 883 }, { 884 "@type" : "offerCatalog", 885 "name" : "Sink", 886 "itemListElement" : [ { 887 "@type" : "Service", 888 "name" : "Repair" 889 } ] 890 }, { 891 "@type" : "offerCatalog", 892 "name" : "Faucet", 893 "itemListElement" : [ ] 894 }, { 895 "@type" : "offerCatalog", 896 "name" : "Toilet", 897 "itemListElement" : [ { 898 "@type" : "Service", 899 "name" : "Repair" 900 } ] 901 }, { 902 "@type" : "offerCatalog", 903 "name" : "Pipe", 904 "itemListElement" : [ { 905 "@type" : "Service", 906 "name" : "Repair" 907 } ] 908 }, { 909 "@type" : "offerCatalog", 910 "name" : "Drain", 911 "itemListElement" : [ { 912 "@type" : "Service", 913 "name" : "Repair" 914 } ] 915 }, { 916 "@type" : "offerCatalog", 917 "name" : "Sump Pump", 918 "itemListElement" : [ ] 919 }, { 920 "@type" : "offerCatalog", 921 "name" : "Leak Detection", 922 "itemListElement" : [ { 923 "@type" : "Service", 924 "name" : "Inspect" 925 }, { 926 "@type" : "Service", 927 "name" : "Repair" 928 } ] 929 }, { 930 "@type" : "offerCatalog", 931 "name" : "Gas Line", 932 "itemListElement" : [ { 933 "@type" : "Service", 934 "name" : "Repair" 935 } ] 936 } ] 937 } ] 938 } 939} 940</script>
940 941
941<script type="application/ld+json"> 942{ 943 "@context": "https://schema.org/", 944 "@type": "LocalBusiness", 945 "name": "Metro Flow Plumbing - Dallas Emergency Plumbers", 946 "telephone": "(214) 328-7371", 947 "address": { 948 "@type": "PostalAddress", 949 "streetAddress": "3730 Dilido Rd #422, Dallas, TX 75228, USA", 950 "addressLocality": "Dallas", 951 "addressRegion": "TX", 952 "postalCode": "75228", 953 "addressCountry": "US" 954 }, 955 "areaServed": { 956 "@type": "AdministrativeArea", 957 "name": "TX", 958 "sameAs": "https://en.wikipedia.org/wiki/TX", 959 "containsPlace": [ 960 { 961 "@type": "City", 962 "name": "Dallas", 963 "sameAs": "https://en.wikipedia.org/wiki/Dallas,_TX" 964 }, 965 { 966 "@type": "City", 967 "name": "Plano", 968 "sameAs": "https://en.wikipedia.org/wiki/Plano,_TX" 969 }, 970 { 971 "@type": "City", 972 "name": "Irving", 973 "sameAs": "https://en.wikipedia.org/wiki/Irving,_TX" 974 }, 975 { 976 "@type": "City", 977 "name": "Arlington", 978 "sameAs": "https://en.wikipedia.org/wiki/Arlington,_TX" 979 }, 980 { 981 "@type": "City", 982 "name": "Garland", 983 "sameAs": "https://en.wikipedia.org/wiki/Garland,_TX" 984 }, 985 { 986 "@type": "City", 987 "name": "Grand Prairie", 988 "sameAs": "https://en.wikipedia.org/wiki/Grand Prairie,_TX" 989 }, 990 { 991 "@type": "City", 992 "name": "Carrollton", 993 "sameAs": "https://en.wikipedia.org/wiki/Carrollton,_TX" 994 }, 995 { 996 "@type": "City", 997 "name": "Mesquite", 998 "sameAs": "https://en.wikipedia.org/wiki/Mesquite,_TX" 999 }, 1000 { 1001 "@type": "City", 1002 "name": "Richardson", 1003 "sameAs": "https://en.wikipedia.org/wiki/Richardson,_TX" 1004 }, 1005 { 1006 "@type": "City", 1007 "name": "Allen", 1008 "sameAs": "https://en.wikipedia.org/wiki/Allen,_TX" 1009 }, 1010 { 1011 "@type": "City", 1012 "name": "Duncanville", 1013 "sameAs": "https://en.wikipedia.org/wiki/Duncanville,_TX" 1014 }, 1015 { 1016 "@type": "City", 1017 "name": "Euless", 1018 "sameAs": "https://en.wikipedia.org/wiki/Euless,_TX" 1019 }, 1020 { 1021 "@type": "City", 1022 "name": "Lancaster", 1023 "sameAs": "https://en.wikipedia.org/wiki/Lancaster,_TX" 1024 }, 1025 { 1026 "@type": "City", 1027 "name": "Lewisville", 1028 "sameAs": "https://en.wikipedia.org/wiki/Lewisville,_TX" 1029 }, 1030 { 1031 "@type": "City", 1032 "name": "Rockwall", 1033 "sameAs": "https://en.wikipedia.org/wiki/Rockwall,_TX" 1034 }, 1035 { 1036 "@type": "City", 1037 "name": "Rowlett", 1038 "sameAs": "https://en.wikipedia.org/wiki/Rowlett,_TX" 1039 }, 1040 { 1041 "@type": "City", 1042 "name": "Addison", 1043 "sameAs": "https://en.wikipedia.org/wiki/Addison,_TX" 1044 }, 1045 { 1046 "@type": "City", 1047 "name": "Balch Springs", 1048 "sameAs": "https://en.wikipedia.org/wiki/Balch Springs,_TX" 1049 }, 1050 { 1051 "@type": "City", 1052 "name": "Cedar Hill", 1053 "sameAs": "https://en.wikipedia.org/wiki/Cedar Hill,_TX" 1054 }, 1055 { 1056 "@type": "City", 1057 "name": "Coppell", 1058 "sameAs": "https://en.wikipedia.org/wiki/Coppell,_TX" 1059 }, 1060 { 1061 "@type": "City", 1062 "name": "Crandall", 1063 "sameAs": "https://en.wikipedia.org/wiki/Crandall,_TX" 1064 }, 1065 { 1066 "@type": "City", 1067 "name": "Desoto", 1068 "sameAs": "https://en.wikipedia.org/wiki/Desoto,_TX" 1069 }, 1070 { 1071 "@type": "City", 1072 "name": "Fate", 1073 "sameAs": "https://en.wikipedia.org/wiki/Fate,_TX" 1074 }, 1075 { 1076 "@type": "City", 1077 "name": "Ferris", 1078 "sameAs": "https://en.wikipedia.org/wiki/Ferris,_TX" 1079 }, 1080 { 1081 "@type": "City", 1082 "name": "Forney", 1083 "sameAs": "https://en.wikipedia.org/wiki/Forney,_TX" 1084 }, 1085 { 1086 "@type": "City", 1087 "name": "Fort Worth", 1088 "sameAs": "https://en.wikipedia.org/wiki/Fort Worth,_TX" 1089 }, 1090 { 1091 "@type": "City", 1092 "name": "Frisco", 1093 "sameAs": "https://en.wikipedia.org/wiki/Frisco,_TX" 1094 }, 1095 { 1096 "@type": "City", 1097 "name": "Grapevine", 1098 "sameAs": "https://en.wikipedia.org/wiki/Grapevine,_TX" 1099 }, 1100 { 1101 "@type": "City", 1102 "name": "Hutchins", 1103 "sameAs": "https://en.wikipedia.org/wiki/Hutchins,_TX" 1104 }, 1105 { 1106 "@type": "City", 1107 "name": "Lavon", 1108 "sameAs": "https://en.wikipedia.org/wiki/Lavon,_TX" 1109 }, 1110 { 1111 "@type": "City", 1112 "name": "Mckinney", 1113 "sameAs": "https://en.wikipedia.org/wiki/Mckinney,_TX" 1114 }, 1115 { 1116 "@type": "City", 1117 "name": "Red Oak", 1118 "sameAs": "https://en.wikipedia.org/wiki/Red Oak,_TX" 1119 }, 1120 { 1121 "@type": "City", 1122 "name": "Royse City",
1123 "sameAs": "https://en.wikipedia.org/wiki/Royse City,_TX" 1124 }, 1125 { 1126 "@type": "City", 1127 "name": "Sachse", 1128 "sameAs": "https://en.wikipedia.org/wiki/Sachse,_TX" 1129 }, 1130 { 1131 "@type": "City", 1132 "name": "Seagoville", 1133 "sameAs": "https://en.wikipedia.org/wiki/Seagoville,_TX" 1134 }, 1135 { 1136 "@type": "City", 1137 "name": "Sunnyvale", 1138 "sameAs": "https://en.wikipedia.org/wiki/Sunnyvale,_TX" 1139 }, 1140 { 1141 "@type": "City", 1142 "name": "Terrell", 1143 "sameAs": "https://en.wikipedia.org/wiki/Terrell,_TX" 1144 }, 1145 { 1146 "@type": "City", 1147 "name": "The Colony", 1148 "sameAs": "https://en.wikipedia.org/wiki/The Colony,_TX" 1149 }, 1150 { 1151 "@type": "City", 1152 "name": "Wilmer", 1153 "sameAs": "https://en.wikipedia.org/wiki/Wilmer,_TX" 1154 }, 1155 { 1156 "@type": "City", 1157 "name": "Wylie", 1158 "sameAs": "https://en.wikipedia.org/wiki/Wylie,_TX" 1159 } 1160 ] 1161 } 1162} 1163</script>
1163 1164 1165 <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /> 1166<link rel="preconnect" href="https://fonts.googleapis.com"> 1167<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 1168<link rel="dns-prefetch" href="//fonts.googleapis.com"> 1169<link rel="dns-prefetch" href="//fonts.gstatic.com"> 1170<!-- Google tag (gtag.js) consent mode dataLayer added by Site Kit -->
1171<script id="google_gtagjs-js-consent-mode-data-layer"> 1172window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);} 1173gtag('consent', 'default', {"ad_personalization":"denied","ad_storage":"denied","ad_user_data":"denied","analytics_storage":"denied","functionality_storage":"denied","security_storage":"denied","personalization_storage":"denied","region":["AT","BE","BG","CH","CY","CZ","DE","DK","EE","ES","FI","FR","GB","GR","HR","HU","IE","IS","IT","LI","LT","LU","LV","MT","NL","NO","PL","PT","RO","SE","SI","SK"],"wait_for_update":500}); 1174window._googlesitekitConsentCategoryMap = {"statistics":["analytics_storage"],"marketing":["ad_storage","ad_user_data","ad_personalization"],"functional":["functionality_storage","security_storage"],"preferences":["personalization_storage"]}; 1175window._googlesitekitConsents = {"ad_personalization":"denied","ad_storage":"denied","ad_user_data":"denied","analytics_storage":"denied","functionality_storage":"denied","security_storage":"denied","personalization_storage":"denied","region":["AT","BE","BG","CH","CY","CZ","DE","DK","EE","ES","FI","FR","GB","GR","HR","HU","IE","IS","IT","LI","LT","LU","LV","MT","NL","NO","PL","PT","RO","SE","SI","SK"],"wait_for_update":500}; 1176</script>
1176 1177<!-- End Google tag (gtag.js) consent mode dataLayer added by Site Kit --> 1178 1179 <!-- This site is optimized with the Yoast SEO plugin v28.6 - https://yoast.com/product/yoast-seo-wordpress/ --> 1180 <title>Contact | Metro Flow Plumbing - Dallas Emergency Plumbers</title> 1181 <link rel="canonical" href="https://metroflowplumbing.com/contact/" /> 1182 <meta property="og:locale" content="en_US" /> 1183 <meta property="og:type" content="article" /> 1184 <meta property="og:title" content="Contact | Metro Flow Plumbing - Dallas Emergency Plumbers" /> 1185 <meta property="og:url" content="https://metroflowplumbing.com/contact/" /> 1186 <meta property="og:site_name" content="Metro Flow Plumbing - Dallas Emergency Plumbers" /> 1187 <meta property="article:publisher" content="https://www.facebook.com/metroflow.plumbing" /> 1188 <meta property="article:modified_time" content="2026-07-29T20:36:07+00:00" /> 1189 <meta property="og:image" content="https://metroflowplumbing.com/wp-content/uploads/2024/11/Metro-Flow-Plumbing-Dallas-Emergency-Plumbers-Logo-e1730825149540.png" /> 1190 <meta property="og:image:width" content="1617" /> 1191 <meta property="og:image:height" content="534" /> 1192 <meta property="og:image:type" content="image/png" /> 1193 <meta name="twitter:card" content="summary_large_image" /> 1194 <meta name="twitter:site" content="@metroflowplumb" /> 1195
1195<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/metroflowplumbing.com\/contact\/","url":"https:\/\/metroflowplumbing.com\/contact\/","name":"Contact | Metro Flow Plumbing - Dallas Emergency Plumbers","isPartOf":{"@id":"https:\/\/metroflowplumbing.com\/#website"},"datePublished":"2019-10-10T21:28:03+00:00","dateModified":"2026-07-29T20:36:07+00:00","breadcrumb":{"@id":"https:\/\/metroflowplumbing.com\/contact\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/metroflowplumbing.com\/contact\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/metroflowplumbing.com\/contact\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Metro Flow Plumbing - Dallas Emergency Plumbers","item":"https:\/\/metroflowplumbing.com\/"},{"@type":"ListItem","position":2,"name":"Contact"}]},{"@type":"WebSite","@id":"https:\/\/metroflowplumbing.com\/#website","url":"https:\/\/metroflowplumbing.com\/","name":"Metro Flow Plumbing - Dallas Emergency Plumbers","description":"My Plumber Will Smell Good, Show Up On Time, Or I'll Pay You","publisher":{"@id":"https:\/\/metroflowplumbing.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/metroflowplumbing.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/metroflowplumbing.com\/#organization","name":"Metro Flow Plumbing - Dallas Emergency Plumbers","url":"https:\/\/metroflowplumbing.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/metroflowplumbing.com\/#\/schema\/logo\/image\/","url":"https:\/\/metroflowplumbing.com\/wp-content\/uploads\/2024\/11\/Metro-Flow-Plumbing-Dallas-Emergency-Plumbers-Logo-e1730825149540.png","contentUrl":"https:\/\/metroflowplumbing.com\/wp-content\/uploads\/2024\/11\/Metro-Flow-Plumbing-Dallas-Emergency-Plumbers-Logo-e1730825149540.png","width":1617,"height":534,"caption":"Metro Flow Plumbing - Dallas Emergency Plumbers"},"image":{"@id":"https:\/\/metroflowplumbing.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/metroflow.plumbing","https:\/\/x.com\/metroflowplumb","https:\/\/www.youtube.com\/@metro-flowplumbing","https:\/\/www.instagram.com\/metroflowplumbing\/"]}]}</script>
1195 1196 <!-- / Yoast SEO plugin. --> 1197 1198 1199<link rel='dns-prefetch' href='//www.googletagmanager.com' /> 1200<meta content="Divi Child Theme 2023 v.1.0.0" name="generator"/><style id="cf-frontend-style-inline-css"> 1201@font-face { 1202 font-family: 'Roboto'; 1203 font-style: normal; 1204 font-weight: 400; 1205 font-display: swap; 1206 src: url('https://metroflowplumbing.com/wp-content/uploads/2026/06/Roboto-Regular.ttf') format('truetype'); 1207} 1208@font-face { 1209 font-family: 'Roboto'; 1210 font-style: normal; 1211 font-weight: 500; 1212 font-display: swap; 1213 src: url('https://metroflowplumbing.com/wp-content/uploads/2026/06/Roboto-SemiBold.ttf') format('truetype'); 1214} 1215@font-face { 1216 font-family: 'Roboto'; 1217 font-style: normal; 1218 font-weight: 600; 1219 font-display: swap; 1220 src: url('https://metroflowplumbing.com/wp-content/uploads/2026/06/Roboto-SemiBold.ttf') format('truetype'); 1221} 1222@font-face { 1223 font-family: 'Roboto'; 1224 font-style: normal; 1225 font-weight: 700; 1226 font-display: swap; 1227 src: url('https://metroflowplumbing.com/wp-content/uploads/2026/06/Roboto-Bold.ttf') format('truetype'); 1228} 1229.menu li.et-hover>ul,.nav li.et-hover>ul{opacity:1!important;visibility:visible!important}.da11y-submenu-show{visibility:visible!important} 1230.keyboard-outline{outline-style:solid!important;outline-width:2px!important;-webkit-transition:none!important;transition:none!important}a[role=tab].keyboard-outline,button:active.keyboard-outline,button:focus.keyboard-outline,input:active.keyboard-outline,input:focus.keyboard-outline{outline-offset:-5px}.et-search-form input:focus.keyboard-outline{padding-left:15px;padding-right:15px}.et_pb_tab{-webkit-animation:none!important;animation:none!important}.et_pb_scroll_top.et-visible:focus{outline-color:Highlight;outline-style:solid;outline-width:2px}@media (-webkit-min-device-pixel-ratio:0){.et_pb_scroll_top.et-visible:focus{outline-color:-webkit-focus-ring-color;outline-style:auto}} 1231.et_pb_contact_form_label,.et_pb_search .screen-reader-text,.et_pb_social_media_follow_network_name,.widget_search .screen-reader-text{display:block!important}.da11y-screen-reader-text,.et_pb_contact_form_label,.et_pb_search .screen-reader-text,.et_pb_social_media_follow_network_name,.widget_search .screen-reader-text{clip:rect(1px,1px,1px,1px);-webkit-font-smoothing:subpixel-antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:1em;font-weight:600;height:1px;letter-spacing:normal;line-height:normal;overflow:hidden;position:absolute!important;text-shadow:none;text-transform:none;width:1px}.da11y-screen-reader-text:focus{clip:auto!important;background:#f1f1f1;-webkit-box-shadow:0 0 2px 2px rgba(0,0,0,.6);box-shadow:0 0 2px 2px rgba(0,0,0,.6);color:#00547a;display:block;height:auto;left:5px;padding:15px 23px 14px;text-decoration:none;top:7px;width:auto;z-index:1000000} 1232/*# sourceURL=cf-frontend-style-inline-css */ 1233</style> 1234 1235<style id="global-styles-inline-css"> 1236:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,0) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);
1236--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:root { --wp--style--global--content-size: 823px;--wp--style--global--wide-size: 1080px; }:where(body) { margin: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}.is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
1236.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} 1237/*# sourceURL=global-styles-inline-css */ 1238</style> 1239 1240<link rel='stylesheet' id='db121_socicons-css' href='https://metroflowplumbing.com/wp-content/plugins/divi-booster/core/fixes/126-customizer-social-icons/icons.min.css' media='all' /> 1241<link rel='stylesheet' id='dbdb-icons-socicon-css' href='https://metroflowplumbing.com/wp-content/plugins/divi-booster/core/icons/socicon/style.min.css' media='all' /> 1242<link rel='stylesheet' id='dbdb-icons-divi-booster-icons-css' href='https://metroflowplumbing.com/wp-content/plugins/divi-booster/core/icons/divi-booster-icons/icomoon/style.min.css' media='all' /> 1243<link rel='stylesheet' id='wtfdivi-user-css-css' href='https://metroflowplumbing.com/wp-content/uploads/wtfdivi/wp_head.css' media='all' /> 1244<style id="divi-style-parent-inline-inline-css"> 1245/*! 1246Theme Name: Divi 1247Theme URI: http://www.elegantthemes.com/gallery/divi/ 1248Version: 5.12.1 1249Requires at least: 6.0 1250Requires PHP: 7.4 1251Description: Smart. Flexible. Beautiful. Divi is the most powerful theme in our collection. 1252Author: Elegant Themes 1253Author URI: http://www.elegantthemes.com 1254License: GNU General Public License v2 1255License URI: http://www.gnu.org/licenses/gpl-2.0.html 1256*/ 1257a,abbr,acronym,address,applet,b,big,blockquote,body,center,cite,code,dd,del,dfn,div,dl,dt,em,fieldset,font,form,h1,h2,h3,h4,h5,h6,html,i,iframe,img,ins,kbd,label,legend,li,menu,object,ol,p,pre,q,s,samp,small,span,strike,strong,sub,sup,tt,u,ul,var{margin:0;padding:0;border:0;outline:0;font-size:100%;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;vertical-align:baseline;background:transparent}body{line-height:1}menu,ol,ul{list-style:none}[dir=ltr] menu{padding-left:0}[dir=rtl] menu{padding-right:0}menu{margin-top:0;margin-bottom:0}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}blockquote{margin:20px 0 30px;border-left:5px solid;padding-left:20px}:focus{outline:0}del{text-decoration:line-through}pre{overflow:auto;padding:10px}figure{margin:0}table{border-collapse:collapse;border-spacing:0}article,aside,footer,header,hgroup,nav,section{display:block}body{font-family:Open Sans,Arial,sans-serif;font-size:14px;color:#666;background-color:#fff;line-height:1.7em;font-weight:500;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body.page-template-page-template-blank-php #page-container{padding-top:0!important}body.et_cover_background{background-size:cover!important;background-position:top!important;background-repeat:no-repeat!important;background-attachment:fixed}a{color:#2ea3f2}a,a:hover{text-decoration:none}p{padding-bottom:1em}p:not(.has-background):last-of-type{padding-bottom:0}.et_pb_contact_form p:not(.has-background):last-of-type{padding-bottom:0;margin-bottom:0}p.et_normal_padding{padding-bottom:1em}strong{font-weight:700}cite,em,i{font-style:italic}code,pre{font-family:Courier New,monospace;margin-bottom:10px}ins{text-decoration:none}sub,sup{height:0;line-height:1;position:relative;vertical-align:baseline}sup{bottom:.8em}sub{top:.3em}dl{margin:0 0 1.5em}dl dt{font-weight:700}dd{margin-left:1.5em}blockquote p{padding-bottom:0}embed,iframe,object,video{max-width:100%}h1,h2,h3,h4,h5,h6{color:#333;padding-bottom:10px;line-height:1em;font-weight:500}h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{color:inherit}h1{font-size:30px}h2{font-size:26px}h3{font-size:22px}h4{font-size:18px}h5{font-size:16px}h6{font-size:14px}input{-webkit-appearance:none}input[type=checkbox]{-webkit-appearance:checkbox}input[type=radio]{-webkit-appearance:radio}input.text,input.title,input[type=email],input[type=password],input[type=tel],input[type=text],select,textarea{background-color:#fff;border:1px solid #bbb;padding:2px;color:#4e4e4e}input.text:focus,input.title:focus,input[type=text]:focus,select:focus,textarea:focus{border-color:#2d3940;color:#3e3e3e}input.text,input.title,input[type=text],select,textarea{margin:0}textarea{padding:4px}button,input,select,textarea{font-family:inherit}img{max-width:100%;height:auto}.clear{clear:both}br.clear{margin:0;padding:0}.pagination{clear:both}#et_search_icon:hover,.et-social-icon a:hover,.et_password_protected_form .et_submit_button,.form-submit .et_pb_buttontton.alt.disabled,.nav-single a,.posted_in a{color:#2ea3f2}.et-search-form,blockquote{border-color:#2ea3f2}#main-content{background-color:#fff}.container{width:80%;max-width:1080px;margin:auto;position:relative}body:not(.et-tb) #main-content .container,body:not(.et-tb-has-header) #main-content .container{padding-top:58px}.et_full_width_page #main-content .container:before{display:none}.main_title{margin-bottom:20px}.et_password_protected_form .et_submit_button:hover,.form-submit .et_pb_button:hover{background:rgba(0,0,0,.05)}.et_button_icon_visible .et_pb_button{padding-right:2em;padding-left:.7em}.et_button_icon_visible .et_pb_button:after{opacity:1;margin-left:0}.et_button_left .et_pb_button:hover:after{left:.15em}.et_button_left .et_pb_button:after{margin-left:0;left:1em}.et_button_icon_visible.et_button_left .et_pb_button,.et_button_left .et_pb_button:hover,.et_button_left .et_pb_module .et_pb_button:hover{padding-left:2em;padding-right:.7em}.et_button_icon_visible.et_button_left .et_pb_button:after,.et_button_left .et_pb_button:hover:after{left:.15em}.et_password_protected_form .et_submit_button:hover,.form-submit .et_pb_button:hover{padding:.3em 1em}.et_button_no_icon .et_pb_button:after{display:none}.et_button_no_icon.et_button_icon_visible.et_button_left .et_pb_button,.et_button_no_icon.et_button_left .et_pb_button:hover,.et_button_no_icon .et_pb_button,.et_button_no_icon .et_pb_button:hover{padding:.3em 1em!important}.et_button_custom_icon .et_pb_button:after{line-height:1.7em}.et_button_custom_icon.et_button_icon_visible .et_pb_button:after,.et_button_custom_icon .et_pb_button:hover:after{margin-left:.3em}#left-area .post_format-post-format-gallery .wp-block-gallery:first-of-type{padding:0;margin-bottom:-16px}.entry-content table:not(.variations){border:1px solid #eee;margin:0 0 15px;text-align:left;width:100%}.entry-content thead th,.entry-content tr th{color:#555;font-weight:700;padding:9px 24px}.entry-content tr td{border-top:1px solid #eee;padding:6px 24px}#left-area ul,.entry-content ul,.et-l--body ul,.et-l--footer ul,.et-l--header ul{list-style-type:disc;padding:0 0 23px 1em;line-height:26px}#left-area ol,.entry-content ol,.et-l--body ol,.et-l--footer ol,.et-l--header ol{list-style-type:decimal;list-style-position:inside;padding:0 0 23px;line-height:26px}#left-area ul li ul,.entry-content ul li ol{padding:2px 0 2px 20px}#left-area ol li ul,.entry-content ol li ol,.entry-content ol li ul,.et-l--body ol li ol,.et-l--footer ol li ol,.et-l--header ol li ol{padding:2px 0 2px 35px}#left-area ul.wp-block-gallery{display:flex;flex-wrap:wrap;list-style-type:none;padding:0}#left-area ul.products{padding:0!important;line-height:1.7!important;list-style:none!important}.gallery-item a{display:block}.gallery-caption,.gallery-item a{width:90%}#wpadminbar{z-index:110000}#left-area .post-meta{font-size:14px;padding-bottom:15px}#left-area .post-meta a{text-decoration:none;color:#666}#left-area .et_featured_image{padding-bottom:7px}.single:not(.et-fb) .post{padding-bottom:25px}body.single .et_audio_content{margin-bottom:-6px}.nav-single a{text-decoration:none;color:#2ea3f2;font-size:14px;font-weight:400}.nav-previous{float:left}.nav-next{float:right}.et_password_protected_form p input{background-color:#eee;border:none!important;width:100%!important;border-radius:0!important;font-size:14px;color:#999!important;padding:16px!important;box-sizing:border-box}.et_password_protected_form label{display:none}.et_password_protected_form .et_submit_button{font-family:inherit;display:block;float:right;margin:8px auto 0;
1257cursor:pointer}.post-password-required p.nocomments.container{max-width:100%}.post-password-required p.nocomments.container:before{display:none}.aligncenter,div.post .new-post .aligncenter{display:block;margin-left:auto;margin-right:auto}.wp-caption{border:1px solid #ddd;text-align:center;background-color:#f3f3f3;margin-bottom:10px;max-width:96%;padding:8px}.wp-caption.alignleft{margin:0 30px 20px 0}.wp-caption.alignright{margin:0 0 20px 30px}.wp-caption img{margin:0;padding:0;border:0}.wp-caption p.wp-caption-text{font-size:12px;padding:0 4px 5px;margin:0}.alignright{float:right}.alignleft{float:left}img.alignleft{display:inline;float:left;margin-right:15px}img.alignright{display:inline;float:right;margin-left:15px}.archive.et-tb-has-template #main-content,.et_pb_pagebuilder_layout #main-content{background-color:transparent}body #main-content .et_builder_inner_content>h1,body #main-content .et_builder_inner_content>h2,body #main-content .et_builder_inner_content>h3,body #main-content .et_builder_inner_content>h4,body #main-content .et_builder_inner_content>h5,body #main-content .et_builder_inner_content>h6{line-height:1.4em}body #main-content .et_builder_inner_content>p{line-height:1.7em}.wp-block-pullquote{margin:20px 0 30px}.wp-block-pullquote.has-background blockquote{border-left:none}.wp-block-group.has-background{padding:1.5em 1.5em .5em}@media (min-width:981px){#left-area{width:79.125%;padding-bottom:23px}#main-content .container:before{content:"";position:absolute;top:0;height:100%;width:1px;background-color:#e2e2e2}.et_full_width_page #left-area,.et_no_sidebar #left-area{float:none;width:100%!important}.et_full_width_page #left-area{padding-bottom:0}.et_no_sidebar #main-content .container:before{display:none}}@media (max-width:980px){#page-container{padding-top:80px}.et-tb #page-container,.et-tb-has-header #page-container{padding-top:0!important}#left-area,#sidebar{width:100%!important}#main-content .container:before{display:none!important}.et_full_width_page .et_gallery_item:nth-child(4n+1){clear:none}}@media print{#page-container{padding-top:0!important}}body.et_pb_layout-template-default:not(.et-vb-app-ancestor) #page-container{padding-top:0!important}body.et_pb_layout-template-default:not(.et-vb-app-ancestor) #main-footer,body.et_pb_layout-template-default:not(.et-vb-app-ancestor) #main-header{display:none}#wp-admin-bar-et-use-visual-builder a{padding-left:1px!important}#wp-admin-bar-et-use-visual-builder a:before{font-family:ETmodules!important;content:"î¥";font-size:30px!important;width:28px;padding:1px!important;color:#326bff!important;transition:none!important;margin-right:3px!important}#wp-admin-bar-et-use-visual-builder:hover a:before{color:#fff!important}#wp-admin-bar-et-use-visual-builder:hover a,#wp-admin-bar-et-use-visual-builder a:hover{background-color:#1959ff!important;color:#fff!important}* html .clearfix,:first-child+html .clearfix{zoom:1}.iphone .et_pb_section_video_bg video::-webkit-media-controls-start-playback-button{display:none!important;-webkit-appearance:none}.et_mobile_device .et_pb_section_parallax .et_pb_parallax_css{background-attachment:scroll}.et-social-facebook a.icon:before{content:"î"}.et-social-twitter a.icon:before{content:"î"}.et-social-google-plus a.icon:before{content:"î"}.et-social-instagram a.icon:before{content:"î"}.et-social-rss a.icon:before{content:"î"}.ai1ec-single-event:after{content:" ";display:table;clear:both}.evcal_event_details .evcal_evdata_cell .eventon_details_shading_bot.eventon_details_shading_bot{z-index:3}.wp-block-divi-layout{margin-bottom:1em}*{box-sizing:border-box}#et-info-email:before,#et-info-phone:before,#et_search_icon:before,.comment-reply-link:after,.et-cart-info span:before,.et-pb-arrow-next:before,.et-pb-arrow-prev:before,.et-social-icon a:before,.et_audio_container .mejs-playpause-button button:before,.et_audio_container .mejs-volume-button button:before,.et_overlay:before,.et_password_protected_form .et_submit_button:after,.et_pb_button:after,.et_pb_button:before,.et_pb_contact_reset:after,.et_pb_contact_submit:after,.et_pb_font_icon:before,.et_pb_newsletter_button:after,.et_pb_pricing_table_button:after,.et_pb_promo_button:after,.et_pb_testimonial:before,.et_pb_toggle_title:before,.form-submit .et_pb_button:after,.mobile_menu_bar:before,a.et_pb_more_button:after{font-family:ETmodules!important;speak:none;font-style:normal;font-weight:400;font-feature-settings:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-shadow:0 0;direction:ltr}.et-pb-icon,.et_pb_custom_button_icon.et_pb_button:after,.et_pb_login .et_pb_custom_button_icon.et_pb_button:after,.et_pb_woo_custom_button_icon .button.et_pb_custom_button_icon.et_pb_button:after,.et_pb_woo_custom_button_icon .button.et_pb_custom_button_icon.et_pb_button:hover:after{content:attr(data-icon)}.et-pb-icon{font-family:ETmodules;speak:none;font-weight:400;font-feature-settings:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;font-size:96px;font-style:normal;display:inline-block;box-sizing:border-box;direction:ltr}#et-ajax-saving{display:none;transition:background .3s,box-shadow .3s;box-shadow:0 0 60px rgba(0,139,219,.247059);position:fixed;top:50%;left:50%;width:50px;height:50px;background:#fff;border-radius:50px;margin:-25px 0 0 -25px;z-index:999999;text-align:center}#et-ajax-saving img{margin:9px}.et-safe-mode-indicator,.et-safe-mode-indicator:focus,.et-safe-mode-indicator:hover{box-shadow:0 8px 24px 0 rgba(34,44,57,.08);background:#326bff;color:#fff;font-size:12px;font-weight:600;padding:6px 12px;line-height:16px;border-radius:3px;position:fixed;bottom:30px;right:30px;z-index:999999;text-decoration:none;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,Helvetica Neue,Liberation Sans,Arial;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;border:1px solid #326bff}.et-safe-mode-indicator:hover{border-color:#1959ff}.et_pb_button{font-size:20px;font-weight:500;padding:.3em 1em;line-height:1.7em!important;background-color:transparent;background-size:cover;background-position:50%;background-repeat:no-repeat;border:2px solid;border-radius:3px;transition-duration:.2s;transition-property:all!important;cursor:pointer}.et_pb_button,.et_pb_button_inner{position:relative}.et_pb_button:hover,.et_pb_module .et_pb_button:hover{border:2px solid transparent;padding:.3em 2em .3em .7em}.rtl .et_pb_button:hover,.rtl .et_pb_module .et_pb_button:hover{padding:.3em .7em .3em 2em}.et_pb_button:hover{background-color:hsla(0,0%,100%,.2)}.et_pb_bg_layout_light.et_pb_button:hover,.et_pb_bg_layout_light .et_pb_button:hover{background-color:rgba(0,0,0,.05)}.et_pb_button:after,.et_pb_button:before{font-size:32px;line-height:1em;content:"5";opacity:0;position:absolute;transition:all .2s;text-transform:none;font-feature-settings:"kern" off;font-variant:none;font-style:normal;font-weight:400;text-shadow:none;top:50%;transform:translateY(-50%)}.et_pb_button:before{right:auto}.et_pb_button:after{left:auto}.et_pb_button.et_hover_enabled:hover:after,.et_pb_button.et_pb_hovered:hover:after{transition:none!important}.et_pb_button:before{display:none}.et_pb_button:hover:after{opacity:1}.et_pb_column_1_3 h1,.et_pb_column_1_4 h1,.et_pb_column_1_5 h1,.et_pb_column_1_6 h1,.et_pb_column_2_5 h1{font-size:26px}.et_pb_column_1_3 h2,.et_pb_column_1_4 h2,.et_pb_column_1_5 h2,.et_pb_column_1_6 h2,.et_pb_column_2_5 h2{font-size:23px}.et_pb_column_1_3 h3,.et_pb_column_1_4 h3,.et_pb_column_1_5 h3,.et_pb_column_1_6 h3,.et_pb_column_2_5 h3{font-size:20px}.et_pb_column_1_3 h4,.et_pb_column_1_4 h4,.et_pb_column_1_5 h4,.et_pb_column_1_6 h4,.et_pb_column_2_5 h4{font-size:18px}.et_pb_column_1_3 h5,.et_pb_column_1_4 h5,.et_pb_column_1_5 h5,.et_pb_column_1_6 h5,.et_pb_column_2_5 h5{font-size:16px}.et_pb_column_1_3 h6,.et_pb_column_1_4 h6,.et_pb_column_1_5 h6,.et_pb_column_1_6 h6,.et_pb_column_2_5 h6{font-size:15px}.et_pb_bg_layout_dark,.et_pb_bg_layout_dark h1,.et_pb_bg_layout_dark h2,.et_pb_bg_layout_dark h3,.et_pb_bg_layout_dark h4,.et_pb_bg_layout_dark h5,.et_pb_bg_layout_dark h6{color:#fff!important}.et_pb_module.et_pb_text_align_left{text-align:left}.et_pb_module.et_pb_text_align_center{text-align:center}.et_pb_module.et_pb_text_align_right{text-align:right}.et_pb_module.et_pb_text_align_justified{text-align:justify}.clearfix:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.et_pb_bg_layout_light .et_pb_more_button{color:#2ea3f2}.et_builder_inner_content{position:relative;z-index:1}header .et_builder_inner_content{z-index:2}.et_pb_css_mix_blend_mode_passthrough{mix-blend-mode:unset!important}.et_pb_image_container{margin:-20px -20px 29px}.et_pb_module_inner{position:relative}.et_hover_enabled_preview{z-index:2}.et_hover_enabled:hover{position:relative;z-index:2}.et_pb_all_tabs,.et_pb_circle_counter_inner,.et_pb_module,.et_pb_posts_nav a,.et_pb_tab,.et_pb_with_background{position:relative;background-size:cover;background-position:50%;background-repeat:no-repeat}.et_pb_background_mask,.et_pb_background_pattern{bottom:0;left:0;position:absolute;right:0;top:0;pointer-events:none}.et_pb_background_mask{background-size:calc(100% + 2px) calc(100% + 2px);background-repeat:no-repeat;background-position:50%;overflow:hidden}.et_pb_background_pattern{background-position:0 0;background-repeat:repeat}.et_pb_with_border{position:relative;border:0 solid #333}.post-password-required .et_pb_row{padding:0;width:100%}.post-password-required .et_password_protected_form{min-height:0}body.et_pb_pagebuilder_layout.et_pb_show_title .post-password-required .et_password_protected_form h1,body:not(.et_pb_pagebuilder_layout) .post-password-required .et_password_protected_form h1{display:none}.et_pb_no_bg{padding:0!important}.et_overlay.et_pb_inline_icon:before,.et_pb_inline_icon:before{content:attr(data-icon)}.et_pb_more_button{color:inherit;text-shadow:none;text-decoration:none;display:inline-block;margin-top:20px}.et_parallax_bg_wrap{overflow:hidden;position:absolute;top:0;right:0;bottom:0;left:0}.et_parallax_bg{background-repeat:no-repeat;background-position:top;background-size:cover;position:absolute;bottom:0;left:0;width:100%;height:100%;display:block}.et_parallax_bg.et_parallax_bg__hover,.et_parallax_bg.et_parallax_bg_phone,.et_parallax_bg.et_parallax_bg_tablet,.et_parallax_gradient.et_parallax_gradient__hover,.et_parallax_gradient.et_parallax_gradient_phone,.et_parallax_gradient.et_parallax_gradient_tablet,.et_pb_section_parallax_hover:hover .et_parallax_bg:not(.et_parallax_bg__hover),.et_pb_section_parallax_hover:hover .et_parallax_gradient:not(.et_parallax_gradient__hover){display:none}.et_pb_section_parallax_hover:hover .et_parallax_bg.et_parallax_bg__hover,.et_pb_section_parallax_hover:hover .et_parallax_gradient.et_parallax_gradient__hover{display:block}.et_parallax_gradient{bottom:0;display:block;left:0;position:absolute;right:0;top:0}.et_pb_module.et_pb_section_parallax,.et_pb_posts_nav a.et_pb_section_parallax,.et_pb_section_parallax,.et_pb_tab.et_pb_section_parallax{position:relative}.et_pb_section_parallax .et_pb_parallax_css,.et_pb_slides .et_parallax_bg.et_pb_parallax_css{background-attachment:fixed}body.et-bfb .et_pb_section_parallax .et_pb_parallax_css,body.et-bfb .et_pb_slides .et_parallax_bg.et_pb_parallax_css{background-attachment:scroll;bottom:auto}.et_pb_section_parallax.et_pb_column .et_pb_module,.et_pb_section_parallax.et_pb_row .et_pb_column,.et_pb_section_parallax.et_pb_row .et_pb_module{z-index:9;position:relative}.et_pb_more_button:hover:after{opacity:1;margin-left:0}.et_pb_preload .et_pb_section_video_bg,.et_pb_preload>div{visibility:hidden}.et_pb_preload,.et_pb_section.et_pb_section_video.et_pb_preload{position:relative;background:#464646!important}.et_pb_preload:before{content:"";position:absolute;top:50%;left:50%;background:url(https://metroflowplumbing.com/wp-content/themes/Divi/includes/builder/styles/images/preloader.gif) no-repeat;border-radius:32px;width:32px;height:32px;margin:-16px 0 0 -16px}.box-shadow-overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;pointer-events:none}.et_pb_section>.box-shadow-overlay~.et_pb_row{z-index:11}body.safari .section_has_divider{will-change:transform}.et_pb_row>.box-shadow-overlay{z-index:8}
1257.has-box-shadow-overlay{position:relative}.et_clickable{cursor:pointer}.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important}.et_multi_view_hidden,.et_multi_view_hidden_image{display:none!important}@keyframes multi-view-image-fade{0%{opacity:0}10%{opacity:.1}20%{opacity:.2}30%{opacity:.3}40%{opacity:.4}50%{opacity:.5}60%{opacity:.6}70%{opacity:.7}80%{opacity:.8}90%{opacity:.9}to{opacity:1}}.et_multi_view_image__loading{visibility:hidden}.et_multi_view_image__loaded{animation:multi-view-image-fade .5s}#et-pb-motion-effects-offset-tracker{visibility:hidden!important;opacity:0;position:absolute;top:0;left:0}.et-pb-before-scroll-animation{opacity:0}header.et-l.et-l--header:after{clear:both;display:block;content:""}.et_pb_module{animation-timing-function:linear;animation-duration:.2s}@keyframes fadeBottom{0%{opacity:0;transform:translateY(10%)}to{opacity:1;transform:translateY(0)}}@keyframes fadeLeft{0%{opacity:0;transform:translateX(-10%)}to{opacity:1;transform:translateX(0)}}@keyframes fadeRight{0%{opacity:0;transform:translateX(10%)}to{opacity:1;transform:translateX(0)}}@keyframes fadeTop{0%{opacity:0;transform:translateY(-10%)}to{opacity:1;transform:translateX(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.et-waypoint:not(.et_pb_counters){opacity:0}
1257@media (min-width:981px){.et_pb_section.et_section_specialty div.et_pb_row .et_pb_column .et_pb_column .et_pb_module.et-last-child,.et_pb_section.et_section_specialty div.et_pb_row .et_pb_column .et_pb_column .et_pb_module:last-child:not(.et-vb-ui),.et_pb_section.et_section_specialty div.et_pb_row .et_pb_column .et_pb_row_inner .et_pb_column .et_pb_module.et-last-child,.et_pb_section.et_section_specialty div.et_pb_row .et_pb_column .et_pb_row_inner .et_pb_column .et_pb_module:last-child:not(.et-vb-ui),.et_pb_section div.et_pb_row .et_pb_column .et_pb_module.et-last-child,.et_pb_section div.et_pb_row .et_pb_column .et_pb_module:last-child:not(.et-vb-ui){margin-bottom:0}}@media (max-width:980px){.et_overlay.et_pb_inline_icon_tablet:before,.et_pb_inline_icon_tablet:before{content:attr(data-icon-tablet)}.et_parallax_bg.et_parallax_bg_tablet_exist,.et_parallax_gradient.et_parallax_gradient_tablet_exist{display:none}.et_parallax_bg.et_parallax_bg_tablet,.et_parallax_gradient.et_parallax_gradient_tablet{display:block}.et_pb_column .et_pb_module{margin-bottom:30px}.et_flex_column>.et_pb_module,.et_flex_group>.et_pb_module{margin-bottom:unset}.et_pb_row .et_pb_column .et_pb_module.et-last-child,.et_pb_row .et_pb_column .et_pb_module:last-child,.et_section_specialty .et_pb_row .et_pb_column .et_pb_module.et-last-child,.et_section_specialty .et_pb_row .et_pb_column .et_pb_module:last-child{margin-bottom:0}.et_pb_more_button{display:inline-block!important}.et_pb_bg_layout_light_tablet.et_pb_button,.et_pb_bg_layout_light_tablet.et_pb_module.et_pb_button,.et_pb_bg_layout_light_tablet .et_pb_more_button{color:#2ea3f2}.et_pb_bg_layout_light_tablet .et_pb_forgot_password a{color:#666}.et_pb_bg_layout_light_tablet h1,.et_pb_bg_layout_light_tablet h2,.et_pb_bg_layout_light_tablet h3,.et_pb_bg_layout_light_tablet h4,.et_pb_bg_layout_light_tablet h5,.et_pb_bg_layout_light_tablet h6{color:#333!important}.et_pb_module .et_pb_bg_layout_light_tablet.et_pb_button{color:#2ea3f2!important}.et_pb_bg_layout_light_tablet{color:#666!important}.et_pb_bg_layout_dark_tablet,.et_pb_bg_layout_dark_tablet h1,.et_pb_bg_layout_dark_tablet h2,.et_pb_bg_layout_dark_tablet h3,.et_pb_bg_layout_dark_tablet h4,.et_pb_bg_layout_dark_tablet h5,.et_pb_bg_layout_dark_tablet h6{color:#fff!important}.et_pb_bg_layout_dark_tablet.et_pb_button,.et_pb_bg_layout_dark_tablet.et_pb_module.et_pb_button,.et_pb_bg_layout_dark_tablet .et_pb_more_button{color:inherit}.et_pb_bg_layout_dark_tablet .et_pb_forgot_password a{color:#fff}.et_pb_module.et_pb_text_align_left-tablet{text-align:left}.et_pb_module.et_pb_text_align_center-tablet{text-align:center}.et_pb_module.et_pb_text_align_right-tablet{text-align:right}.et_pb_module.et_pb_text_align_justified-tablet{text-align:justify}}@media (max-width:767px){.et_pb_more_button{display:inline-block!important}.et_overlay.et_pb_inline_icon_phone:before,.et_pb_inline_icon_phone:before{content:attr(data-icon-phone)}.et_parallax_bg.et_parallax_bg_phone_exist,.et_parallax_gradient.et_parallax_gradient_phone_exist{display:none}.et_parallax_bg.et_parallax_bg_phone,.et_parallax_gradient.et_parallax_gradient_phone{display:block}.et-hide-mobile{display:none!important}.et_pb_bg_layout_light_phone.et_pb_button,.et_pb_bg_layout_light_phone.et_pb_module.et_pb_button,.et_pb_bg_layout_light_phone .et_pb_more_button{color:#2ea3f2}.et_pb_bg_layout_light_phone .et_pb_forgot_password a{color:#666}.et_pb_bg_layout_light_phone h1,.et_pb_bg_layout_light_phone h2,.et_pb_bg_layout_light_phone h3,.et_pb_bg_layout_light_phone h4,.et_pb_bg_layout_light_phone h5,.et_pb_bg_layout_light_phone h6{color:#333!important}.et_pb_module .et_pb_bg_layout_light_phone.et_pb_button{color:#2ea3f2!important}.et_pb_bg_layout_light_phone{color:#666!important}.et_pb_bg_layout_dark_phone,.et_pb_bg_layout_dark_phone h1,.et_pb_bg_layout_dark_phone h2,.et_pb_bg_layout_dark_phone h3,.et_pb_bg_layout_dark_phone h4,.et_pb_bg_layout_dark_phone h5,.et_pb_bg_layout_dark_phone h6{color:#fff!important}.et_pb_bg_layout_dark_phone.et_pb_button,.et_pb_bg_layout_dark_phone.et_pb_module.et_pb_button,.et_pb_bg_layout_dark_phone .et_pb_more_button{color:inherit}.et_pb_module .et_pb_bg_layout_dark_phone.et_pb_button{color:#fff!important}.et_pb_bg_layout_dark_phone .et_pb_forgot_password a{color:#fff}.et_pb_module.et_pb_text_align_left-phone{text-align:left}.et_pb_module.et_pb_text_align_center-phone{text-align:center}.et_pb_module.et_pb_text_align_right-phone{text-align:right}.et_pb_module.et_pb_text_align_justified-phone{text-align:justify}}@media (max-width:479px){a.et_pb_more_button{display:block}}@media (min-width:768px)and (max-width:980px){[data-et-multi-view-load-tablet-hidden=true]:not(.et_multi_view_swapped){display:none!important}}@media (max-width:767px){[data-et-multi-view-load-phone-hidden=true]:not(.et_multi_view_swapped){display:none!important}}@media (min-width:1440px){[data-et-mv-hidden-ultrawide=true]{display:none!important}}@media (min-width:1280px)and (max-width:1439px){[data-et-mv-hidden-widescreen=true]{display:none!important}}@media (min-width:1280px){[data-et-mv-hidden-widescreen=true]:not([data-et-mv-hidden-ultrawide=true]){display:none!important}}@media (min-width:981px)and (max-width:1024px){[data-et-mv-hidden-tabletwide=true]{display:none!important}}@media (min-width:861px)and (max-width:1024px){[data-et-mv-hidden-tabletwide=true]:not([data-et-mv-hidden-tablet=true]){display:none!important}}@media (min-width:768px)and (max-width:1024px){[data-et-mv-hidden-tabletwide=true]:not([data-et-mv-hidden-tablet=true]):not([data-et-mv-hidden-phonewide=true]){display:none!important}}@media (max-width:1024px){[data-et-mv-hidden-tabletwide=true]:not([data-et-mv-hidden-tablet=true]):not([data-et-mv-hidden-phonewide=true]):not([data-et-mv-hidden-phone=true]){display:none!important}}@media (min-width:861px)and (max-width:980px){[data-et-mv-hidden-tablet=true]{display:none!important}}@media (min-width:768px)and (max-width:980px){[data-et-mv-hidden-tablet=true]:not([data-et-mv-hidden-phonewide=true]){display:none!important}}@media (max-width:980px){[data-et-mv-hidden-tablet=true]:not([data-et-mv-hidden-phonewide=true]):not([data-et-mv-hidden-phone=true]){display:none!important}}@media (min-width:768px)and (max-width:860px){[data-et-mv-hidden-phonewide=true]{display:none!important}}@media (max-width:860px){[data-et-mv-hidden-phonewide=true]:not([data-et-mv-hidden-phone=true]){display:none!important}}@media (max-width:767px){[data-et-mv-hidden-phone=true]{display:none!important}}.et_pb_menu.et_pb_menu--style-inline_centered_logo .et_pb_menu__menu nav ul{justify-content:center} 1258/*# sourceURL=divi-style-parent-inline-inline-css */ 1259</style> 1260<link rel='stylesheet' id='divi-dynamic-css' href='https://metroflowplumbing.com/wp-content/et-cache/116/et-divi-dynamic-tb-1246-116.css' media='all' /> 1261<link rel='stylesheet' id='divi-style-child-css' href='https://metroflowplumbing.com/wp-content/themes/divi-child-theme-2023/style.css' media='all' />
1262<script id="divibooster_number_counter_initial_value-js-after"> 1263(function(){ 1264 function parseNumber(str){ 1265 if (typeof str !== 'string') str = String(str || ''); 1266 str = str.replace(/[^0-9+\-\.]/g, ''); 1267 var n = parseFloat(str); 1268 return isNaN(n) ? 0 : n; 1269 } 1270 function decimalsOf(n){ 1271 n = (typeof n === 'number') ? n : parseNumber(n); 1272 var s = String(n); 1273 var p = s.split('.'); 1274 return p.length > 1 ? p[1].length : 0; 1275 } 1276 function formatNumber(n, dec){ 1277 if (typeof dec !== 'number') dec = 0; 1278 var s = n.toFixed(dec); 1279 if (parseFloat(s) === 0) return (dec>0? '0.'+Array(dec+1).join('0') : '0'); 1280 return s; 1281 } 1282 function withThousands(s, sep){ 1283 if (!sep) return s; 1284 var parts = s.split('.'); 1285 parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, sep); 1286 return parts.join('.'); 1287 } 1288 1289 function primeChart(wrapper, start){ 1290 var attempts = 0; 1291 var maxAttempts = 160; // ~8s for Divi 5 (increased for late chart init) 1292 var sep = wrapper.getAttribute('data-number-separator') || ''; 1293 var valueEl = wrapper.querySelector('.percent .percent-value'); 1294 // Read the target value from the data attribute if present 1295 var targetAttr = valueEl ? valueEl.getAttribute('data-divibooster-target-value') : null; 1296 var targetValue = targetAttr !== null ? parseNumber(targetAttr) : parseNumber(valueEl ? valueEl.textContent : '0'); 1297 var dec = Math.max(decimalsOf(start), decimalsOf(targetValue)); 1298 function tryPrime(){ 1299 attempts++; 1300 var $ = window.jQuery; 1301 if ($){ 1302 var $w = $(wrapper); 1303 var chart = $w.data('easyPieChart'); 1304 if (chart && typeof chart.update === 'function'){ 1305 // Prime the chart to the initial value WITHOUT animation. 1306 var prevAnimate = (chart.options && typeof chart.options === 'object') ? chart.options.animate : undefined; 1307 try { if (chart.options) chart.options.animate = false; } catch(e) {} 1308 try { chart.update(start); } catch(e) {} 1309 try { if (chart.options) chart.options.animate = prevAnimate; } catch(e) {} 1310 1311 // Reveal the text once primed and mark as primed 1312 wrapper.classList.add('dbiv-nciv-ready'); 1313 if (valueEl) valueEl.style.opacity = '1'; 1314 try { wrapper.setAttribute('data-dbiv-primed', '1'); } catch(e) {} 1315 try { wrapper.__dbiv_canvasPrimed = wrapper.querySelector('canvas'); } catch(e) {} 1316 1317 // If we have a valid target and it's different to the start, animate to target immediately after a frame. 1318 if (!isNaN(targetValue) && targetValue !== start) { 1319 var animateToTarget = function(){ 1320 try { chart.update(targetValue); } catch(e) {} 1321 }; 1322 if (window.requestAnimationFrame) { 1323 requestAnimationFrame(function(){ setTimeout(animateToTarget, 0); }); 1324 } else { 1325 setTimeout(animateToTarget, 0); 1326 } 1327 } 1328 return true; 1329 } 1330 } 1331 if (attempts < maxAttempts){ 1332 setTimeout(tryPrime, 50); 1333 } else { 1334 // Give up priming; reveal to avoid leaving content hidden. Divi may still handle animation. 1335 wrapper.classList.add('dbiv-nciv-ready'); 1336 if (valueEl) valueEl.style.opacity = '1'; 1337 } 1338 return false; 1339 } 1340 // set displayed start immediately 1341 if (valueEl){ 1342 var s = formatNumber(start, dec); 1343 valueEl.textContent = withThousands(s, sep); 1344 } 1345 tryPrime(); 1346 } 1347 1348 function initInstance(wrapper){ 1349 if (!wrapper) return; 1350 var valueEl = wrapper.querySelector('.percent .percent-value'); 1351 if (!valueEl) return; 1352 var canvasEl = wrapper.querySelector('canvas'); 1353 if (wrapper.__dbiv_canvasPrimed && wrapper.__dbiv_canvasPrimed === canvasEl) return; 1354 var start = parseNumber(valueEl.getAttribute('data-divibooster-initial-value')); 1355 if (isNaN(start)) start = 0; 1356 // If the element is already showing the target value (e.g., JS ran late or Divi already animated), don't re-prime to avoid flicker. 1357 var targetAttr = valueEl.getAttribute('data-divibooster-target-value'); 1358 var currentVal = parseNumber(valueEl.textContent); 1359 if (targetAttr !== null) { 1360 var targetVal = parseNumber(targetAttr); 1361 if (!isNaN(targetVal) && currentVal === targetVal && wrapper.getAttribute('data-dbiv-primed') === '1') { 1362 wrapper.classList.add('dbiv-nciv-ready'); 1363 valueEl.style.opacity = '1'; 1364 return; 1365 } 1366 } 1367 // Hide during init only when feature is active for this instance. 1368 valueEl.style.opacity = '0'; 1369 primeChart(wrapper, start); 1370 wrapper.__dbiv_init = true; 1371 } 1372 1373 function initAll(root){ 1374 root = root || document; 1375 var nodes = root.querySelectorAll('.dbiv-nciv');
1376 nodes.forEach(function(n){ initInstance(n); }); 1377 } 1378 1379 if (document.readyState === 'loading'){ 1380 document.addEventListener('DOMContentLoaded', function(){ initAll(document); }); 1381 } else { 1382 initAll(document); 1383 } 1384 1385 if (window.MutationObserver){ 1386 var mo = new MutationObserver(function(muts){ 1387 muts.forEach(function(m){ 1388 if (m.type === 'childList'){ 1389 m.addedNodes && m.addedNodes.forEach(function(node){ 1390 if (node.nodeType === 1){ 1391 if (node.classList && node.classList.contains('dbiv-nciv')){ 1392 initInstance(node); 1393 } 1394 var inner = node.querySelectorAll ? node.querySelectorAll('.dbiv-nciv') : []; 1395 inner.forEach(function(n){ initInstance(n); }); 1396 } 1397 }); 1398 } 1399 }); 1400 }); 1401 mo.observe(document.documentElement, {childList: true, subtree: true}); 1402 } 1403})(); 1404//# sourceURL=divibooster_number_counter_initial_value-js-after 1405</script>
vendor: 1 bytes, line 1405
1405
1406<script id="jquery-core-js" src="https://metroflowplumbing.com/wp-includes/js/jquery/jquery.min.js"></script>
1406 1407 1408<!-- Google tag (gtag.js) snippet added by Site Kit --> 1409<!-- Google Ads snippet added by Site Kit -->
vendor: 121 bytes, lines 1409-1410
1409 1410<script id="google_gtagjs-js" async data-giant-delayed="1" data-giant-src="https://www.googletagmanager.com/gtag/js?id=
1410AW-16816133838
vendor: 69 bytes, line 1410
1410" data-type="lazy" data-src="data:text/javascript;base64,"></script>
1411<script id="google_gtagjs-js-after"> 1412window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);} 1413gtag("js", new Date()); 1414gtag("set", "developer_id.dZTNiMT", true); 1415gtag("config", "AW-16816133838"); 1416 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" } ); }; 1417//# sourceURL=google_gtagjs-js-after 1418</script>
vendor: 100 bytes, lines 1418-1419
1418 1419 <script async data-giant-delayed="1" data-giant-src="https://www.googletagmanager.com/gtag/js?id=
1419G-3KT4C16M4V
vendor: 71 bytes, lines 1419-1420
1419" data-type="lazy" data-src="data:text/javascript;base64,"></script> 1420
1420<script> 1421 window.dataLayer = window.dataLayer || []; 1422 function gtag() { dataLayer.push(arguments); } 1423 var tracking_ids = ["G-3KT4C16M4V"]; 1424 var site_id = 'ac4d943f190bfb984f521b9342386fb22f4ee76b0033f84362a0b16de8bc22d9'; 1425 gtag('js', new Date()); 1426 for (var i = 0; i < tracking_ids.length; i++) { 1427 gtag('config', tracking_ids[i], { 'dimension1': site_id, 'send_page_view': false }); 1428 gtag('event', 'page_view', { 'send_to': tracking_ids[i], 'dimension1': site_id }); 1429 gtag('event', 'engaged_sessions', { 'send_to': tracking_ids[i], 'dimension1': site_id }); 1430 } 1431 </script>
1431 1432 <meta name="viewport" content="width=device-width, initial-scale=1.0" />
1432<script data-name="dbdb-head-js"> 1433 1434 </script>
1434 1435<style> 1436@media only screen and (min-width: 981px) { 1437 .et_pb_subscribe.db_inline_form .et_pb_newsletter_form form { 1438 display: flex; 1439 width: 100%; 1440 grid-gap: 20px; 1441 } 1442 .et_pb_subscribe.db_inline_form .et_pb_newsletter_form form > * { 1443 flex: 1 1 0%; 1444 } 1445 .et_pb_subscribe.db_inline_form .et_pb_newsletter_form p.et_pb_newsletter_field { 1446 padding-bottom: 0; 1447 } 1448} 1449</style> 1450 <style> 1451 .db_pb_team_member_website_icon:before { 1452 content: "\e0e3"; 1453 } 1454 </style> 1455 <style> 1456.db_pb_team_member_email_icon:before { 1457 content: "\e010"; 1458} 1459ul.et_pb_member_social_links li > span { 1460 display: inline-block !important; 1461} 1462/* Fix email icon hidden by Email Address Encoder plugin */ 1463ul.et_pb_member_social_links li>span { 1464 display: inline-block !important; 1465} 1466</style><style>.db_pb_team_member_phone_icon:before { content: "\e090"; } ul.et_pb_member_social_links li>span { display: inline-block !important; }</style><style>.db_pb_team_member_instagram_icon:before { content: "\e09a"; }</style><style>.et-social-dbdb-phone a.icon:before{content:"\e090";font-family:"ETModules" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-phone a.icon:before{content:"\e090";font-family:"ETModules" !important;}.et_pb_social_icon.et-social-dbdb-phone a.icon:before{content:"\e090";font-family:"ETModules" !important;}.et-social-dbdb-podcast a.icon:before{content:"\e01b";font-family:"ETModules" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-podcast a.icon:before{content:"\e01b";font-family:"ETModules" !important;}.et_pb_social_icon.et-social-dbdb-podcast a.icon:before{content:"\e01b";font-family:"ETModules" !important;}.et-social-dbdb-website a.icon:before{content:"\e0e3";font-family:"ETModules" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-website a.icon:before{content:"\e0e3";font-family:"ETModules" !important;}.et_pb_social_icon.et-social-dbdb-website a.icon:before{content:"\e0e3";font-family:"ETModules" !important;}</style><style>.et-social-dbdb-500px a.icon:before{content:"\e000";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-500px a.icon:before{content:"\e000";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-500px a.icon:before{content:"\e000";font-family:"Socicon" !important;}.et-social-dbdb-8tracks a.icon:before{content:"\e001";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-8tracks a.icon:before{content:"\e001";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-8tracks a.icon:before{content:"\e001";font-family:"Socicon" !important;}.et-social-dbdb-portfolio a.icon:before{content:"\e943";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-portfolio a.icon:before{content:"\e943";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-portfolio a.icon:before{content:"\e943";font-family:"Socicon" !important;}.et-social-dbdb-airbnb a.icon:before{content:"\e002";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-airbnb a.icon:before{content:"\e002";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-airbnb a.icon:before{content:"\e002";font-family:"Socicon" !important;}.et-social-dbdb-alibaba a.icon:before{content:"\e922";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-alibaba a.icon:before{content:"\e922";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-alibaba a.icon:before{content:"\e922";font-family:"Socicon" !important;}.et-social-dbdb-aliexpress a.icon:before{content:"\e91d";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-aliexpress a.icon:before{content:"\e91d";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-aliexpress a.icon:before{content:"\e91d";font-family:"Socicon" !important;}.et-social-dbdb-alliance a.icon:before{content:"\e003";font-family:"Socicon" !important;}
1466.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-alliance a.icon:before{content:"\e003";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-alliance a.icon:before{content:"\e003";font-family:"Socicon" !important;}.et-social-dbdb-amazon a.icon:before{content:"\e004";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-amazon a.icon:before{content:"\e004";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-amazon a.icon:before{content:"\e004";font-family:"Socicon" !important;}.et-social-dbdb-amplement a.icon:before{content:"\e005";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-amplement a.icon:before{content:"\e005";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-amplement a.icon:before{content:"\e005";font-family:"Socicon" !important;}.et-social-dbdb-android a.icon:before{content:"\e006";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-android a.icon:before{content:"\e006";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-android a.icon:before{content:"\e006";font-family:"Socicon" !important;}.et-social-dbdb-angellist a.icon:before{content:"\e007";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-angellist a.icon:before{content:"\e007";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-angellist a.icon:before{content:"\e007";font-family:"Socicon" !important;}.et-social-dbdb-angieslist a.icon:before{content:"\e916";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-angieslist a.icon:before{content:"\e916";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-angieslist a.icon:before{content:"\e916";font-family:"Socicon" !important;}.et-social-dbdb-appstore a.icon:before{content:"\e91f";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-appstore a.icon:before{content:"\e91f";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-appstore a.icon:before{content:"\e91f";font-family:"Socicon" !important;}.et-social-dbdb-apple a.icon:before{content:"\e008";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-apple a.icon:before{content:"\e008";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-apple a.icon:before{content:"\e008";font-family:"Socicon" !important;}.et-social-dbdb-artstation a.icon:before{content:"\e959";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-artstation a.icon:before{content:"\e959";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-artstation a.icon:before{content:"\e959";font-family:"Socicon" !important;}.et-social-dbdb-ask a.icon:before{content:"\e930";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-ask a.icon:before{content:"\e930";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-ask a.icon:before{content:"\e930";font-family:"Socicon" !important;}.et-social-dbdb-augment a.icon:before{content:"\e908";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-augment a.icon:before{content:"\e908";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-augment a.icon:before{content:"\e908";font-family:"Socicon" !important;}.et-social-dbdb-avvo a.icon:before{content:"\e978";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-avvo a.icon:before{content:"\e978";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-avvo a.icon:before{content:"\e978";font-family:"Socicon" !important;}.et-social-dbdb-baidu a.icon:before{content:"\e00a";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-baidu a.icon:before{content:"\e00a";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-baidu a.icon:before{content:"\e00a";font-family:"Socicon" !important;}.et-social-dbdb-bale a.icon:before{content:"\e97e";font-family:"Socicon" !important;}
1466.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-bale a.icon:before{content:"\e97e";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-bale a.icon:before{content:"\e97e";font-family:"Socicon" !important;}.et-social-dbdb-bandcamp a.icon:before{content:"\e00b";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-bandcamp a.icon:before{content:"\e00b";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-bandcamp a.icon:before{content:"\e00b";font-family:"Socicon" !important;}.et-social-dbdb-battlenet a.icon:before{content:"\e00c";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-battlenet a.icon:before{content:"\e00c";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-battlenet a.icon:before{content:"\e00c";font-family:"Socicon" !important;}.et-social-dbdb-beatport a.icon:before{content:"\e955";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-beatport a.icon:before{content:"\e955";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-beatport a.icon:before{content:"\e955";font-family:"Socicon" !important;}.et-social-dbdb-bebee a.icon:before{content:"\e00e";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-bebee a.icon:before{content:"\e00e";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-bebee a.icon:before{content:"\e00e";font-family:"Socicon" !important;}.et-social-dbdb-bebo a.icon:before{content:"\e00f";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-bebo a.icon:before{content:"\e00f";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-bebo a.icon:before{content:"\e00f";font-family:"Socicon" !important;}.et-social-dbdb-behance a.icon:before{content:"\e010";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-behance a.icon:before{content:"\e010";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-behance a.icon:before{content:"\e010";font-family:"Socicon" !important;}.et-social-dbdb-bing a.icon:before{content:"\e92a";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-bing a.icon:before{content:"\e92a";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-bing a.icon:before{content:"\e92a";font-family:"Socicon" !important;}.et-social-dbdb-bitbucket a.icon:before{content:"\e909";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-bitbucket a.icon:before{content:"\e909";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-bitbucket a.icon:before{content:"\e909";font-family:"Socicon" !important;}.et-social-dbdb-blackberry a.icon:before{content:"\e951";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-blackberry a.icon:before{content:"\e951";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-blackberry a.icon:before{content:"\e951";font-family:"Socicon" !important;}.et-social-dbdb-blizzard a.icon:before{content:"\e011";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-blizzard a.icon:before{content:"\e011";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-blizzard a.icon:before{content:"\e011";font-family:"Socicon" !important;}.et-social-dbdb-blogger a.icon:before{content:"\e012";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-blogger a.icon:before{content:"\e012";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-blogger a.icon:before{content:"\e012";font-family:"Socicon" !important;}.et-social-dbdb-bloglovin a.icon:before{content:"\e904";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-bloglovin a.icon:before{content:"\e904";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-bloglovin a.icon:before{content:"\e904";font-family:"Socicon" !important;}
1466.et-social-dbdb-bonanza a.icon:before{content:"\e92c";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-bonanza a.icon:before{content:"\e92c";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-bonanza a.icon:before{content:"\e92c";font-family:"Socicon" !important;}.et-social-dbdb-bookbub a.icon:before{content:"\e949";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-bookbub a.icon:before{content:"\e949";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-bookbub a.icon:before{content:"\e949";font-family:"Socicon" !important;}.et-social-dbdb-booking a.icon:before{content:"\e936";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-booking a.icon:before{content:"\e936";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-booking a.icon:before{content:"\e936";font-family:"Socicon" !important;}.et-social-dbdb-buffer a.icon:before{content:"\e013";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-buffer a.icon:before{content:"\e013";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-buffer a.icon:before{content:"\e013";font-family:"Socicon" !important;}.et-social-dbdb-calendly a.icon:before{content:"\e93d";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-calendly a.icon:before{content:"\e93d";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-calendly a.icon:before{content:"\e93d";font-family:"Socicon" !important;}.et-social-dbdb-cdbaby a.icon:before{content:"\e968";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-cdbaby a.icon:before{content:"\e968";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-cdbaby a.icon:before{content:"\e968";font-family:"Socicon" !important;}.et-social-dbdb-chrome a.icon:before{content:"\e014";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-chrome a.icon:before{content:"\e014";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-chrome a.icon:before{content:"\e014";font-family:"Socicon" !important;}.et-social-dbdb-codepen a.icon:before{content:"\e917";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-codepen a.icon:before{content:"\e917";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-codepen a.icon:before{content:"\e917";font-family:"Socicon" !important;}.et-social-dbdb-codered a.icon:before{content:"\e940";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-codered a.icon:before{content:"\e940";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-codered a.icon:before{content:"\e940";font-family:"Socicon" !important;}.et-social-dbdb-coderwall a.icon:before{content:"\e015";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-coderwall a.icon:before{content:"\e015";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-coderwall a.icon:before{content:"\e015";font-family:"Socicon" !important;}.et-social-dbdb-collectorz a.icon:before{content:"\e95c";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-collectorz a.icon:before{content:"\e95c";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-collectorz a.icon:before{content:"\e95c";font-family:"Socicon" !important;}.et-social-dbdb-craigslist a.icon:before{content:"\e923";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-craigslist a.icon:before{content:"\e923";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-craigslist a.icon:before{content:"\e923";font-family:"Socicon" !important;}.et-social-dbdb-crunchbase a.icon:before{content:"\e93b";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-crunchbase a.icon:before{content:"\e93b";font-family:"Socicon" !important;}
1466.et_pb_social_icon.et-social-dbdb-crunchbase a.icon:before{content:"\e93b";font-family:"Socicon" !important;}.et-social-dbdb-curse a.icon:before{content:"\e016";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-curse a.icon:before{content:"\e016";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-curse a.icon:before{content:"\e016";font-family:"Socicon" !important;}.et-social-dbdb-dailymotion a.icon:before{content:"\e017";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-dailymotion a.icon:before{content:"\e017";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-dailymotion a.icon:before{content:"\e017";font-family:"Socicon" !important;}.et-social-dbdb-debian a.icon:before{content:"\e95f";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-debian a.icon:before{content:"\e95f";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-debian a.icon:before{content:"\e95f";font-family:"Socicon" !important;}.et-social-dbdb-deezer a.icon:before{content:"\e018";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-deezer a.icon:before{content:"\e018";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-deezer a.icon:before{content:"\e018";font-family:"Socicon" !important;}.et-social-dbdb-delicious a.icon:before{content:"\e019";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-delicious a.icon:before{content:"\e019";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-delicious a.icon:before{content:"\e019";font-family:"Socicon" !important;}.et-social-dbdb-deviantart a.icon:before{content:"\e01a";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-deviantart a.icon:before{content:"\e01a";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-deviantart a.icon:before{content:"\e01a";font-family:"Socicon" !important;}.et-social-dbdb-diablo a.icon:before{content:"\e01b";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-diablo a.icon:before{content:"\e01b";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-diablo a.icon:before{content:"\e01b";font-family:"Socicon" !important;}.et-social-dbdb-digg a.icon:before{content:"\e01c";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-digg a.icon:before{content:"\e01c";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-digg a.icon:before{content:"\e01c";font-family:"Socicon" !important;}.et-social-dbdb-discord a.icon:before{content:"\e01d";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-discord a.icon:before{content:"\e01d";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-discord a.icon:before{content:"\e01d";font-family:"Socicon" !important;}.et-social-dbdb-disqus a.icon:before{content:"\e01e";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-disqus a.icon:before{content:"\e01e";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-disqus a.icon:before{content:"\e01e";font-family:"Socicon" !important;}.et-social-dbdb-dlive a.icon:before{content:"\e975";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-dlive a.icon:before{content:"\e975";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-dlive a.icon:before{content:"\e975";font-family:"Socicon" !important;}.et-social-dbdb-doodle a.icon:before{content:"\e92b";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-doodle a.icon:before{content:"\e92b";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-doodle a.icon:before{content:"\e92b";font-family:"Socicon" !important;}.et-social-dbdb-douban a.icon:before{content:"\e01f";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-douban a.icon:before{content:"\e01f";font-family:"Socicon" !important;}
1466.et_pb_social_icon.et-social-dbdb-douban a.icon:before{content:"\e01f";font-family:"Socicon" !important;}.et-social-dbdb-draugiem a.icon:before{content:"\e020";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-draugiem a.icon:before{content:"\e020";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-draugiem a.icon:before{content:"\e020";font-family:"Socicon" !important;}.et-social-dbdb-drupal a.icon:before{content:"\e022";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-drupal a.icon:before{content:"\e022";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-drupal a.icon:before{content:"\e022";font-family:"Socicon" !important;}.et-social-dbdb-ebay a.icon:before{content:"\e023";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-ebay a.icon:before{content:"\e023";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-ebay a.icon:before{content:"\e023";font-family:"Socicon" !important;}.et-social-dbdb-eitaa a.icon:before{content:"\e97c";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-eitaa a.icon:before{content:"\e97c";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-eitaa a.icon:before{content:"\e97c";font-family:"Socicon" !important;}.et-social-dbdb-elementaryos a.icon:before{content:"\e969";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-elementaryos a.icon:before{content:"\e969";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-elementaryos a.icon:before{content:"\e969";font-family:"Socicon" !important;}.et-social-dbdb-ello a.icon:before{content:"\e024";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-ello a.icon:before{content:"\e024";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-ello a.icon:before{content:"\e024";font-family:"Socicon" !important;}.et-social-dbdb-endomondo a.icon:before{content:"\e025";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-endomondo a.icon:before{content:"\e025";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-endomondo a.icon:before{content:"\e025";font-family:"Socicon" !important;}.et-social-dbdb-envato a.icon:before{content:"\e026";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-envato a.icon:before{content:"\e026";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-envato a.icon:before{content:"\e026";font-family:"Socicon" !important;}.et-social-dbdb-etsy a.icon:before{content:"\e027";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-etsy a.icon:before{content:"\e027";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-etsy a.icon:before{content:"\e027";font-family:"Socicon" !important;}.et-social-dbdb-messenger a.icon:before{content:"\e906";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-messenger a.icon:before{content:"\e906";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-messenger a.icon:before{content:"\e906";font-family:"Socicon" !important;}.et-social-dbdb-feedburner a.icon:before{content:"\e029";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-feedburner a.icon:before{content:"\e029";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-feedburner a.icon:before{content:"\e029";font-family:"Socicon" !important;}.et-social-dbdb-filmfreeway a.icon:before{content:"\e960";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-filmfreeway a.icon:before{content:"\e960";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-filmfreeway a.icon:before{content:"\e960";font-family:"Socicon" !important;}.et-social-dbdb-filmweb a.icon:before{content:"\e02a";font-family:"Socicon" !important;}
1466.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-filmweb a.icon:before{content:"\e02a";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-filmweb a.icon:before{content:"\e02a";font-family:"Socicon" !important;}.et-social-dbdb-firefox a.icon:before{content:"\e02b";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-firefox a.icon:before{content:"\e02b";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-firefox a.icon:before{content:"\e02b";font-family:"Socicon" !important;}.et-social-dbdb-fiverr a.icon:before{content:"\e91b";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-fiverr a.icon:before{content:"\e91b";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-fiverr a.icon:before{content:"\e91b";font-family:"Socicon" !important;}.et-social-dbdb-flattr a.icon:before{content:"\e02c";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-flattr a.icon:before{content:"\e02c";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-flattr a.icon:before{content:"\e02c";font-family:"Socicon" !important;}.et-social-dbdb-flipboard a.icon:before{content:"\e973";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-flipboard a.icon:before{content:"\e973";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-flipboard a.icon:before{content:"\e973";font-family:"Socicon" !important;}.et-social-dbdb-formulr a.icon:before{content:"\e02e";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-formulr a.icon:before{content:"\e02e";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-formulr a.icon:before{content:"\e02e";font-family:"Socicon" !important;}.et-social-dbdb-forrst a.icon:before{content:"\e02f";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-forrst a.icon:before{content:"\e02f";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-forrst a.icon:before{content:"\e02f";font-family:"Socicon" !important;}.et-social-dbdb-foursquare a.icon:before{content:"\e030";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-foursquare a.icon:before{content:"\e030";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-foursquare a.icon:before{content:"\e030";font-family:"Socicon" !important;}.et-social-dbdb-freelancer a.icon:before{content:"\e928";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-freelancer a.icon:before{content:"\e928";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-freelancer a.icon:before{content:"\e928";font-family:"Socicon" !important;}.et-social-dbdb-friendfeed a.icon:before{content:"\e031";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-friendfeed a.icon:before{content:"\e031";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-friendfeed a.icon:before{content:"\e031";font-family:"Socicon" !important;}.et-social-dbdb-fundable a.icon:before{content:"\e935";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-fundable a.icon:before{content:"\e935";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-fundable a.icon:before{content:"\e935";font-family:"Socicon" !important;}.et-social-dbdb-fyuse a.icon:before{content:"\e90a";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-fyuse a.icon:before{content:"\e90a";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-fyuse a.icon:before{content:"\e90a";font-family:"Socicon" !important;}.et-social-dbdb-gamejolt a.icon:before{content:"\e901";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-gamejolt a.icon:before{content:"\e901";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-gamejolt a.icon:before{content:"\e901";font-family:"Socicon" !important;}
1466.et-social-dbdb-gamefor a.icon:before{content:"\e94e";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-gamefor a.icon:before{content:"\e94e";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-gamefor a.icon:before{content:"\e94e";font-family:"Socicon" !important;}.et-social-dbdb-gamewisp a.icon:before{content:"\e905";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-gamewisp a.icon:before{content:"\e905";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-gamewisp a.icon:before{content:"\e905";font-family:"Socicon" !important;}.et-social-dbdb-ghost a.icon:before{content:"\e933";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-ghost a.icon:before{content:"\e933";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-ghost a.icon:before{content:"\e933";font-family:"Socicon" !important;}.et-social-dbdb-github a.icon:before{content:"\e032";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-github a.icon:before{content:"\e032";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-github a.icon:before{content:"\e032";font-family:"Socicon" !important;}.et-social-dbdb-gitlab a.icon:before{content:"\e945";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-gitlab a.icon:before{content:"\e945";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-gitlab a.icon:before{content:"\e945";font-family:"Socicon" !important;}.et-social-dbdb-gitter a.icon:before{content:"\e96c";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-gitter a.icon:before{content:"\e96c";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-gitter a.icon:before{content:"\e96c";font-family:"Socicon" !important;}.et-social-dbdb-gnome a.icon:before{content:"\e961";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-gnome a.icon:before{content:"\e961";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-gnome a.icon:before{content:"\e961";font-family:"Socicon" !important;}.et-social-dbdb-goodreads a.icon:before{content:"\e033";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-goodreads a.icon:before{content:"\e033";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-goodreads a.icon:before{content:"\e033";font-family:"Socicon" !important;}.et-social-dbdb-google a.icon:before{content:"\e034";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-google a.icon:before{content:"\e034";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-google a.icon:before{content:"\e034";font-family:"Socicon" !important;}.et-social-dbdb-googlecalendar a.icon:before{content:"\e926";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-googlecalendar a.icon:before{content:"\e926";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-googlecalendar a.icon:before{content:"\e926";font-family:"Socicon" !important;}.et-social-dbdb-googlegroups a.icon:before{content:"\e036";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-googlegroups a.icon:before{content:"\e036";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-googlegroups a.icon:before{content:"\e036";font-family:"Socicon" !important;}.et-social-dbdb-googlehangouts a.icon:before{content:"\e974";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-googlehangouts a.icon:before{content:"\e974";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-googlehangouts a.icon:before{content:"\e974";font-family:"Socicon" !important;}.et-social-dbdb-googlemaps a.icon:before{content:"\e937";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-googlemaps a.icon:before{content:"\e937";font-family:"Socicon" !important;}
1466.et_pb_social_icon.et-social-dbdb-googlemaps a.icon:before{content:"\e937";font-family:"Socicon" !important;}.et-social-dbdb-googlephotos a.icon:before{content:"\e037";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-googlephotos a.icon:before{content:"\e037";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-googlephotos a.icon:before{content:"\e037";font-family:"Socicon" !important;}.et-social-dbdb-play a.icon:before{content:"\e064";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-play a.icon:before{content:"\e064";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-play a.icon:before{content:"\e064";font-family:"Socicon" !important;}.et-social-dbdb-googleplaymusic a.icon:before{content:"\e95e";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-googleplaymusic a.icon:before{content:"\e95e";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-googleplaymusic a.icon:before{content:"\e95e";font-family:"Socicon" !important;}.et-social-dbdb-googlescholar a.icon:before{content:"\e035";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-googlescholar a.icon:before{content:"\e035";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-googlescholar a.icon:before{content:"\e035";font-family:"Socicon" !important;}.et-social-dbdb-gotomeeting a.icon:before{content:"\e91c";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-gotomeeting a.icon:before{content:"\e91c";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-gotomeeting a.icon:before{content:"\e91c";font-family:"Socicon" !important;}.et-social-dbdb-guru a.icon:before{content:"\e91e";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-guru a.icon:before{content:"\e91e";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-guru a.icon:before{content:"\e91e";font-family:"Socicon" !important;}.et-social-dbdb-gust a.icon:before{content:"\e92f";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-gust a.icon:before{content:"\e92f";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-gust a.icon:before{content:"\e92f";font-family:"Socicon" !important;}.et-social-dbdb-hackernews a.icon:before{content:"\e946";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-hackernews a.icon:before{content:"\e946";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-hackernews a.icon:before{content:"\e946";font-family:"Socicon" !important;}.et-social-dbdb-hackerone a.icon:before{content:"\e956";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-hackerone a.icon:before{content:"\e956";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-hackerone a.icon:before{content:"\e956";font-family:"Socicon" !important;}.et-social-dbdb-hackerrank a.icon:before{content:"\e03a";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-hackerrank a.icon:before{content:"\e03a";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-hackerrank a.icon:before{content:"\e03a";font-family:"Socicon" !important;}.et-social-dbdb-hearthstone a.icon:before{content:"\e03b";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-hearthstone a.icon:before{content:"\e03b";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-hearthstone a.icon:before{content:"\e03b";font-family:"Socicon" !important;}.et-social-dbdb-hellocoton a.icon:before{content:"\e03c";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-hellocoton a.icon:before{content:"\e03c";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-hellocoton a.icon:before{content:"\e03c";font-family:"Socicon" !important;}.et-social-dbdb-heroes a.icon:before{content:"\e03d";font-family:"Socicon" !important;}
1466.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-heroes a.icon:before{content:"\e03d";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-heroes a.icon:before{content:"\e03d";font-family:"Socicon" !important;}.et-social-dbdb-homeadvisor a.icon:before{content:"\e915";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-homeadvisor a.icon:before{content:"\e915";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-homeadvisor a.icon:before{content:"\e915";font-family:"Socicon" !important;}.et-social-dbdb-homes a.icon:before{content:"\e920";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-homes a.icon:before{content:"\e920";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-homes a.icon:before{content:"\e920";font-family:"Socicon" !important;}.et-social-dbdb-homify a.icon:before{content:"\e93c";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-homify a.icon:before{content:"\e93c";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-homify a.icon:before{content:"\e93c";font-family:"Socicon" !important;}.et-social-dbdb-horde a.icon:before{content:"\e03f";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-horde a.icon:before{content:"\e03f";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-horde a.icon:before{content:"\e03f";font-family:"Socicon" !important;}.et-social-dbdb-houzz a.icon:before{content:"\e040";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-houzz a.icon:before{content:"\e040";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-houzz a.icon:before{content:"\e040";font-family:"Socicon" !important;}.et-social-dbdb-icq a.icon:before{content:"\e041";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-icq a.icon:before{content:"\e041";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-icq a.icon:before{content:"\e041";font-family:"Socicon" !important;}.et-social-dbdb-identica a.icon:before{content:"\e042";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-identica a.icon:before{content:"\e042";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-identica a.icon:before{content:"\e042";font-family:"Socicon" !important;}.et-social-dbdb-imdb a.icon:before{content:"\e043";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-imdb a.icon:before{content:"\e043";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-imdb a.icon:before{content:"\e043";font-family:"Socicon" !important;}.et-social-dbdb-indiedb a.icon:before{content:"\e94c";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-indiedb a.icon:before{content:"\e94c";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-indiedb a.icon:before{content:"\e94c";font-family:"Socicon" !important;}.et-social-dbdb-instructables a.icon:before{content:"\e944";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-instructables a.icon:before{content:"\e944";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-instructables a.icon:before{content:"\e944";font-family:"Socicon" !important;}.et-social-dbdb-internet a.icon:before{content:"\e957";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-internet a.icon:before{content:"\e957";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-internet a.icon:before{content:"\e957";font-family:"Socicon" !important;}.et-social-dbdb-invision a.icon:before{content:"\e95a";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-invision a.icon:before{content:"\e95a";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-invision a.icon:before{content:"\e95a";font-family:"Socicon" !important;}.et-social-dbdb-issuu a.icon:before{content:"\e045";font-family:"Socicon" !important;}
1466.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-issuu a.icon:before{content:"\e045";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-issuu a.icon:before{content:"\e045";font-family:"Socicon" !important;}.et-social-dbdb-istock a.icon:before{content:"\e046";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-istock a.icon:before{content:"\e046";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-istock a.icon:before{content:"\e046";font-family:"Socicon" !important;}.et-social-dbdb-itchio a.icon:before{content:"\e962";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-itchio a.icon:before{content:"\e962";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-itchio a.icon:before{content:"\e962";font-family:"Socicon" !important;}.et-social-dbdb-itunes a.icon:before{content:"\e047";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-itunes a.icon:before{content:"\e047";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-itunes a.icon:before{content:"\e047";font-family:"Socicon" !important;}.et-social-dbdb-jamendo a.icon:before{content:"\e963";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-jamendo a.icon:before{content:"\e963";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-jamendo a.icon:before{content:"\e963";font-family:"Socicon" !important;}.et-social-dbdb-keybase a.icon:before{content:"\e048";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-keybase a.icon:before{content:"\e048";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-keybase a.icon:before{content:"\e048";font-family:"Socicon" !important;}.et-social-dbdb-kobo a.icon:before{content:"\e948";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-kobo a.icon:before{content:"\e948";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-kobo a.icon:before{content:"\e948";font-family:"Socicon" !important;}.et-social-dbdb-lanyrd a.icon:before{content:"\e049";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-lanyrd a.icon:before{content:"\e049";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-lanyrd a.icon:before{content:"\e049";font-family:"Socicon" !important;}.et-social-dbdb-lastfm a.icon:before{content:"\e04a";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-lastfm a.icon:before{content:"\e04a";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-lastfm a.icon:before{content:"\e04a";font-family:"Socicon" !important;}.et-social-dbdb-letterboxd a.icon:before{content:"\e96d";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-letterboxd a.icon:before{content:"\e96d";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-letterboxd a.icon:before{content:"\e96d";font-family:"Socicon" !important;}.et-social-dbdb-line a.icon:before{content:"\e04b";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-line a.icon:before{content:"\e04b";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-line a.icon:before{content:"\e04b";font-family:"Socicon" !important;}.et-social-dbdb-livejournal a.icon:before{content:"\e04d";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-livejournal a.icon:before{content:"\e04d";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-livejournal a.icon:before{content:"\e04d";font-family:"Socicon" !important;}.et-social-dbdb-livemaster a.icon:before{content:"\e93e";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-livemaster a.icon:before{content:"\e93e";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-livemaster a.icon:before{content:"\e93e";font-family:"Socicon" !important;}.et-social-dbdb-logmein a.icon:before{content:"\e91a";font-family:"Socicon" !important;}
1466.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-logmein a.icon:before{content:"\e91a";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-logmein a.icon:before{content:"\e91a";font-family:"Socicon" !important;}.et-social-dbdb-loomly a.icon:before{content:"\e932";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-loomly a.icon:before{content:"\e932";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-loomly a.icon:before{content:"\e932";font-family:"Socicon" !important;}.et-social-dbdb-lyft a.icon:before{content:"\e04e";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-lyft a.icon:before{content:"\e04e";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-lyft a.icon:before{content:"\e04e";font-family:"Socicon" !important;}.et-social-dbdb-macos a.icon:before{content:"\e04f";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-macos a.icon:before{content:"\e04f";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-macos a.icon:before{content:"\e04f";font-family:"Socicon" !important;}.et-social-dbdb-mail a.icon:before{content:"\e050";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-mail a.icon:before{content:"\e050";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-mail a.icon:before{content:"\e050";font-family:"Socicon" !important;}.et-social-dbdb-mailru a.icon:before{content:"\e94a";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-mailru a.icon:before{content:"\e94a";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-mailru a.icon:before{content:"\e94a";font-family:"Socicon" !important;}.et-social-dbdb-mastodon a.icon:before{content:"\e913";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-mastodon a.icon:before{content:"\e913";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-mastodon a.icon:before{content:"\e913";font-family:"Socicon" !important;}.et-social-dbdb-medium a.icon:before{content:"\e051";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-medium a.icon:before{content:"\e051";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-medium a.icon:before{content:"\e051";font-family:"Socicon" !important;}.et-social-dbdb-meetup a.icon:before{content:"\e052";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-meetup a.icon:before{content:"\e052";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-meetup a.icon:before{content:"\e052";font-family:"Socicon" !important;}.et-social-dbdb-metapop a.icon:before{content:"\e970";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-metapop a.icon:before{content:"\e970";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-metapop a.icon:before{content:"\e970";font-family:"Socicon" !important;}.et-social-dbdb-microsoft a.icon:before{content:"\e90e";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-microsoft a.icon:before{content:"\e90e";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-microsoft a.icon:before{content:"\e90e";font-family:"Socicon" !important;}.et-social-dbdb-mix a.icon:before{content:"\e964";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-mix a.icon:before{content:"\e964";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-mix a.icon:before{content:"\e964";font-family:"Socicon" !important;}.et-social-dbdb-mixcloud a.icon:before{content:"\e053";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-mixcloud a.icon:before{content:"\e053";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-mixcloud a.icon:before{content:"\e053";font-family:"Socicon" !important;}.et-social-dbdb-mixer a.icon:before{content:"\e00d";font-family:"Socicon" !important;}
1466.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-mixer a.icon:before{content:"\e00d";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-mixer a.icon:before{content:"\e00d";font-family:"Socicon" !important;}.et-social-dbdb-mobcrush a.icon:before{content:"\e90d";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-mobcrush a.icon:before{content:"\e90d";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-mobcrush a.icon:before{content:"\e90d";font-family:"Socicon" !important;}.et-social-dbdb-moddb a.icon:before{content:"\e94b";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-moddb a.icon:before{content:"\e94b";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-moddb a.icon:before{content:"\e94b";font-family:"Socicon" !important;}.et-social-dbdb-modelmayhem a.icon:before{content:"\e054";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-modelmayhem a.icon:before{content:"\e054";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-modelmayhem a.icon:before{content:"\e054";font-family:"Socicon" !important;}.et-social-dbdb-persona a.icon:before{content:"\e062";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-persona a.icon:before{content:"\e062";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-persona a.icon:before{content:"\e062";font-family:"Socicon" !important;}.et-social-dbdb-mumble a.icon:before{content:"\e055";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-mumble a.icon:before{content:"\e055";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-mumble a.icon:before{content:"\e055";font-family:"Socicon" !important;}.et-social-dbdb-myanimelist a.icon:before{content:"\e950";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-myanimelist a.icon:before{content:"\e950";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-myanimelist a.icon:before{content:"\e950";font-family:"Socicon" !important;}.et-social-dbdb-napster a.icon:before{content:"\e954";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-napster a.icon:before{content:"\e954";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-napster a.icon:before{content:"\e954";font-family:"Socicon" !important;}.et-social-dbdb-natgeo a.icon:before{content:"\e912";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-natgeo a.icon:before{content:"\e912";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-natgeo a.icon:before{content:"\e912";font-family:"Socicon" !important;}.et-social-dbdb-naver a.icon:before{content:"\e971";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-naver a.icon:before{content:"\e971";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-naver a.icon:before{content:"\e971";font-family:"Socicon" !important;}.et-social-dbdb-newsvine a.icon:before{content:"\e057";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-newsvine a.icon:before{content:"\e057";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-newsvine a.icon:before{content:"\e057";font-family:"Socicon" !important;}.et-social-dbdb-nextdoor a.icon:before{content:"\e942";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-nextdoor a.icon:before{content:"\e942";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-nextdoor a.icon:before{content:"\e942";font-family:"Socicon" !important;}.et-social-dbdb-niconico a.icon:before{content:"\e939";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-niconico a.icon:before{content:"\e939";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-niconico a.icon:before{content:"\e939";font-family:"Socicon" !important;}
1466.et-social-dbdb-nintendo a.icon:before{content:"\e058";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-nintendo a.icon:before{content:"\e058";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-nintendo a.icon:before{content:"\e058";font-family:"Socicon" !important;}.et-social-dbdb-npm a.icon:before{content:"\e059";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-npm a.icon:before{content:"\e059";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-npm a.icon:before{content:"\e059";font-family:"Socicon" !important;}.et-social-dbdb-odnoklassniki a.icon:before{content:"\e05a";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-odnoklassniki a.icon:before{content:"\e05a";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-odnoklassniki a.icon:before{content:"\e05a";font-family:"Socicon" !important;}.et-social-dbdb-openaigym a.icon:before{content:"\e919";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-openaigym a.icon:before{content:"\e919";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-openaigym a.icon:before{content:"\e919";font-family:"Socicon" !important;}.et-social-dbdb-openid a.icon:before{content:"\e05b";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-openid a.icon:before{content:"\e05b";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-openid a.icon:before{content:"\e05b";font-family:"Socicon" !important;}.et-social-dbdb-opera a.icon:before{content:"\e05c";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-opera a.icon:before{content:"\e05c";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-opera a.icon:before{content:"\e05c";font-family:"Socicon" !important;}.et-social-dbdb-origin a.icon:before{content:"\e941";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-origin a.icon:before{content:"\e941";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-origin a.icon:before{content:"\e941";font-family:"Socicon" !important;}.et-social-dbdb-outlook a.icon:before{content:"\e05d";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-outlook a.icon:before{content:"\e05d";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-outlook a.icon:before{content:"\e05d";font-family:"Socicon" !important;}.et-social-dbdb-overwatch a.icon:before{content:"\e05e";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-overwatch a.icon:before{content:"\e05e";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-overwatch a.icon:before{content:"\e05e";font-family:"Socicon" !important;}.et-social-dbdb-pandora a.icon:before{content:"\e907";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-pandora a.icon:before{content:"\e907";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-pandora a.icon:before{content:"\e907";font-family:"Socicon" !important;}.et-social-dbdb-patreon a.icon:before{content:"\e05f";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-patreon a.icon:before{content:"\e05f";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-patreon a.icon:before{content:"\e05f";font-family:"Socicon" !important;}.et-social-dbdb-paypal a.icon:before{content:"\e060";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-paypal a.icon:before{content:"\e060";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-paypal a.icon:before{content:"\e060";font-family:"Socicon" !important;}.et-social-dbdb-periscope a.icon:before{content:"\e061";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-periscope a.icon:before{content:"\e061";font-family:"Socicon" !important;}
1466.et_pb_social_icon.et-social-dbdb-periscope a.icon:before{content:"\e061";font-family:"Socicon" !important;}.et-social-dbdb-pixiv a.icon:before{content:"\e94f";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-pixiv a.icon:before{content:"\e94f";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-pixiv a.icon:before{content:"\e94f";font-family:"Socicon" !important;}.et-social-dbdb-player a.icon:before{content:"\e065";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-player a.icon:before{content:"\e065";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-player a.icon:before{content:"\e065";font-family:"Socicon" !important;}.et-social-dbdb-playstation a.icon:before{content:"\e066";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-playstation a.icon:before{content:"\e066";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-playstation a.icon:before{content:"\e066";font-family:"Socicon" !important;}.et-social-dbdb-pocket a.icon:before{content:"\e067";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-pocket a.icon:before{content:"\e067";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-pocket a.icon:before{content:"\e067";font-family:"Socicon" !important;}.et-social-dbdb-qobuz a.icon:before{content:"\e911";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-qobuz a.icon:before{content:"\e911";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-qobuz a.icon:before{content:"\e911";font-family:"Socicon" !important;}.et-social-dbdb-qq a.icon:before{content:"\e068";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-qq a.icon:before{content:"\e068";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-qq a.icon:before{content:"\e068";font-family:"Socicon" !important;}.et-social-dbdb-quora a.icon:before{content:"\e069";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-quora a.icon:before{content:"\e069";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-quora a.icon:before{content:"\e069";font-family:"Socicon" !important;}.et-social-dbdb-raidcall a.icon:before{content:"\e06a";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-raidcall a.icon:before{content:"\e06a";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-raidcall a.icon:before{content:"\e06a";font-family:"Socicon" !important;}.et-social-dbdb-ravelry a.icon:before{content:"\e06b";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-ravelry a.icon:before{content:"\e06b";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-ravelry a.icon:before{content:"\e06b";font-family:"Socicon" !important;}.et-social-dbdb-realtor a.icon:before{content:"\e90f";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-realtor a.icon:before{content:"\e90f";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-realtor a.icon:before{content:"\e90f";font-family:"Socicon" !important;}.et-social-dbdb-redbubble a.icon:before{content:"\e979";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-redbubble a.icon:before{content:"\e979";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-redbubble a.icon:before{content:"\e979";font-family:"Socicon" !important;}.et-social-dbdb-reddit a.icon:before{content:"\e06c";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-reddit a.icon:before{content:"\e06c";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-reddit a.icon:before{content:"\e06c";font-family:"Socicon" !important;}.et-social-dbdb-redfin a.icon:before{content:"\e925";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-redfin a.icon:before{content:"\e925";font-family:"Socicon" !important;}
1466.et_pb_social_icon.et-social-dbdb-redfin a.icon:before{content:"\e925";font-family:"Socicon" !important;}.et-social-dbdb-remote a.icon:before{content:"\e972";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-remote a.icon:before{content:"\e972";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-remote a.icon:before{content:"\e972";font-family:"Socicon" !important;}.et-social-dbdb-renren a.icon:before{content:"\e06d";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-renren a.icon:before{content:"\e06d";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-renren a.icon:before{content:"\e06d";font-family:"Socicon" !important;}.et-social-dbdb-researchgate a.icon:before{content:"\e06e";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-researchgate a.icon:before{content:"\e06e";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-researchgate a.icon:before{content:"\e06e";font-family:"Socicon" !important;}.et-social-dbdb-residentadvisor a.icon:before{content:"\e06f";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-residentadvisor a.icon:before{content:"\e06f";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-residentadvisor a.icon:before{content:"\e06f";font-family:"Socicon" !important;}.et-social-dbdb-reverbnation a.icon:before{content:"\e070";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-reverbnation a.icon:before{content:"\e070";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-reverbnation a.icon:before{content:"\e070";font-family:"Socicon" !important;}.et-social-dbdb-seedrs a.icon:before{content:"\e929";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-seedrs a.icon:before{content:"\e929";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-seedrs a.icon:before{content:"\e929";font-family:"Socicon" !important;}.et-social-dbdb-seenthis a.icon:before{content:"\e95d";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-seenthis a.icon:before{content:"\e95d";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-seenthis a.icon:before{content:"\e95d";font-family:"Socicon" !important;}.et-social-dbdb-sharepoint a.icon:before{content:"\e965";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-sharepoint a.icon:before{content:"\e965";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-sharepoint a.icon:before{content:"\e965";font-family:"Socicon" !important;}.et-social-dbdb-sharethis a.icon:before{content:"\e072";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-sharethis a.icon:before{content:"\e072";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-sharethis a.icon:before{content:"\e072";font-family:"Socicon" !important;}.et-social-dbdb-shopify a.icon:before{content:"\e927";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-shopify a.icon:before{content:"\e927";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-shopify a.icon:before{content:"\e927";font-family:"Socicon" !important;}.et-social-dbdb-weibo a.icon:before{content:"\e098";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-weibo a.icon:before{content:"\e098";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-weibo a.icon:before{content:"\e098";font-family:"Socicon" !important;}.et-social-dbdb-sketchfab a.icon:before{content:"\e90c";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-sketchfab a.icon:before{content:"\e90c";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-sketchfab a.icon:before{content:"\e90c";font-family:"Socicon" !important;}.et-social-dbdb-slack a.icon:before{content:"\e918";font-family:"Socicon" !important;}
1466.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-slack a.icon:before{content:"\e918";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-slack a.icon:before{content:"\e918";font-family:"Socicon" !important;}.et-social-dbdb-slideshare a.icon:before{content:"\e074";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-slideshare a.icon:before{content:"\e074";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-slideshare a.icon:before{content:"\e074";font-family:"Socicon" !important;}.et-social-dbdb-smashcast a.icon:before{content:"\e03e";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-smashcast a.icon:before{content:"\e03e";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-smashcast a.icon:before{content:"\e03e";font-family:"Socicon" !important;}.et-social-dbdb-smashwords a.icon:before{content:"\e947";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-smashwords a.icon:before{content:"\e947";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-smashwords a.icon:before{content:"\e947";font-family:"Socicon" !important;}.et-social-dbdb-smugmug a.icon:before{content:"\e075";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-smugmug a.icon:before{content:"\e075";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-smugmug a.icon:before{content:"\e075";font-family:"Socicon" !important;}.et-social-dbdb-snapchat a.icon:before{content:"\e076";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-snapchat a.icon:before{content:"\e076";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-snapchat a.icon:before{content:"\e076";font-family:"Socicon" !important;}.et-social-dbdb-society6 a.icon:before{content:"\e97a";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-society6 a.icon:before{content:"\e97a";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-society6 a.icon:before{content:"\e97a";font-family:"Socicon" !important;}.et-social-dbdb-songkick a.icon:before{content:"\e077";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-songkick a.icon:before{content:"\e077";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-songkick a.icon:before{content:"\e077";font-family:"Socicon" !important;}.et-social-dbdb-soroush a.icon:before{content:"\e97d";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-soroush a.icon:before{content:"\e97d";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-soroush a.icon:before{content:"\e97d";font-family:"Socicon" !important;}.et-social-dbdb-soundcloud a.icon:before{content:"\e078";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-soundcloud a.icon:before{content:"\e078";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-soundcloud a.icon:before{content:"\e078";font-family:"Socicon" !important;}.et-social-dbdb-spip a.icon:before{content:"\e953";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-spip a.icon:before{content:"\e953";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-spip a.icon:before{content:"\e953";font-family:"Socicon" !important;}.et-social-dbdb-splice a.icon:before{content:"\e96f";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-splice a.icon:before{content:"\e96f";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-splice a.icon:before{content:"\e96f";font-family:"Socicon" !important;}.et-social-dbdb-spotify a.icon:before{content:"\e079";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-spotify a.icon:before{content:"\e079";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-spotify a.icon:before{content:"\e079";font-family:"Socicon" !important;}
1466.et-social-dbdb-spreadshirt a.icon:before{content:"\e900";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-spreadshirt a.icon:before{content:"\e900";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-spreadshirt a.icon:before{content:"\e900";font-family:"Socicon" !important;}.et-social-dbdb-squarespace a.icon:before{content:"\e92d";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-squarespace a.icon:before{content:"\e92d";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-squarespace a.icon:before{content:"\e92d";font-family:"Socicon" !important;}.et-social-dbdb-stackexchange a.icon:before{content:"\e07a";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-stackexchange a.icon:before{content:"\e07a";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-stackexchange a.icon:before{content:"\e07a";font-family:"Socicon" !important;}.et-social-dbdb-stackoverflow a.icon:before{content:"\e07b";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-stackoverflow a.icon:before{content:"\e07b";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-stackoverflow a.icon:before{content:"\e07b";font-family:"Socicon" !important;}.et-social-dbdb-stage32 a.icon:before{content:"\e96a";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-stage32 a.icon:before{content:"\e96a";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-stage32 a.icon:before{content:"\e96a";font-family:"Socicon" !important;}.et-social-dbdb-starcraft a.icon:before{content:"\e07c";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-starcraft a.icon:before{content:"\e07c";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-starcraft a.icon:before{content:"\e07c";font-family:"Socicon" !important;}.et-social-dbdb-stayfriends a.icon:before{content:"\e07d";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-stayfriends a.icon:before{content:"\e07d";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-stayfriends a.icon:before{content:"\e07d";font-family:"Socicon" !important;}.et-social-dbdb-steam a.icon:before{content:"\e07e";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-steam a.icon:before{content:"\e07e";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-steam a.icon:before{content:"\e07e";font-family:"Socicon" !important;}.et-social-dbdb-stitcher a.icon:before{content:"\e977";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-stitcher a.icon:before{content:"\e977";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-stitcher a.icon:before{content:"\e977";font-family:"Socicon" !important;}.et-social-dbdb-storehouse a.icon:before{content:"\e07f";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-storehouse a.icon:before{content:"\e07f";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-storehouse a.icon:before{content:"\e07f";font-family:"Socicon" !important;}.et-social-dbdb-strava a.icon:before{content:"\e080";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-strava a.icon:before{content:"\e080";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-strava a.icon:before{content:"\e080";font-family:"Socicon" !important;}.et-social-dbdb-streamjar a.icon:before{content:"\e081";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-streamjar a.icon:before{content:"\e081";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-streamjar a.icon:before{content:"\e081";font-family:"Socicon" !important;}.et-social-dbdb-swarm a.icon:before{content:"\e083";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-swarm a.icon:before{content:"\e083";font-family:"Socicon" !important;}
1466.et_pb_social_icon.et-social-dbdb-swarm a.icon:before{content:"\e083";font-family:"Socicon" !important;}.et-social-dbdb-teamspeak a.icon:before{content:"\e084";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-teamspeak a.icon:before{content:"\e084";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-teamspeak a.icon:before{content:"\e084";font-family:"Socicon" !important;}.et-social-dbdb-teamviewer a.icon:before{content:"\e085";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-teamviewer a.icon:before{content:"\e085";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-teamviewer a.icon:before{content:"\e085";font-family:"Socicon" !important;}.et-social-dbdb-technorati a.icon:before{content:"\e086";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-technorati a.icon:before{content:"\e086";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-technorati a.icon:before{content:"\e086";font-family:"Socicon" !important;}.et-social-dbdb-telegram a.icon:before{content:"\e087";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-telegram a.icon:before{content:"\e087";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-telegram a.icon:before{content:"\e087";font-family:"Socicon" !important;}.et-social-dbdb-threema a.icon:before{content:"\e96e";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-threema a.icon:before{content:"\e96e";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-threema a.icon:before{content:"\e96e";font-family:"Socicon" !important;}.et-social-dbdb-tidal a.icon:before{content:"\e910";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-tidal a.icon:before{content:"\e910";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-tidal a.icon:before{content:"\e910";font-family:"Socicon" !important;}.et-social-dbdb-tiktok a.icon:before{content:"\e96b";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-tiktok a.icon:before{content:"\e96b";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-tiktok a.icon:before{content:"\e96b";font-family:"Socicon" !important;}.et-social-dbdb-tinder a.icon:before{content:"\e966";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-tinder a.icon:before{content:"\e966";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-tinder a.icon:before{content:"\e966";font-family:"Socicon" !important;}.et-social-dbdb-toneden a.icon:before{content:"\e93a";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-toneden a.icon:before{content:"\e93a";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-toneden a.icon:before{content:"\e93a";font-family:"Socicon" !important;}.et-social-dbdb-toptal a.icon:before{content:"\e92e";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-toptal a.icon:before{content:"\e92e";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-toptal a.icon:before{content:"\e92e";font-family:"Socicon" !important;}.et-social-dbdb-torial a.icon:before{content:"\e95b";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-torial a.icon:before{content:"\e95b";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-torial a.icon:before{content:"\e95b";font-family:"Socicon" !important;}.et-social-dbdb-traxsource a.icon:before{content:"\e94d";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-traxsource a.icon:before{content:"\e94d";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-traxsource a.icon:before{content:"\e94d";font-family:"Socicon" !important;}.et-social-dbdb-trello a.icon:before{content:"\e902";font-family:"Socicon" !important;}
1466.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-trello a.icon:before{content:"\e902";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-trello a.icon:before{content:"\e902";font-family:"Socicon" !important;}.et-social-dbdb-tripadvisor a.icon:before{content:"\e088";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-tripadvisor a.icon:before{content:"\e088";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-tripadvisor a.icon:before{content:"\e088";font-family:"Socicon" !important;}.et-social-dbdb-tripit a.icon:before{content:"\e089";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-tripit a.icon:before{content:"\e089";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-tripit a.icon:before{content:"\e089";font-family:"Socicon" !important;}.et-social-dbdb-triplej a.icon:before{content:"\e08a";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-triplej a.icon:before{content:"\e08a";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-triplej a.icon:before{content:"\e08a";font-family:"Socicon" !important;}.et-social-dbdb-trulia a.icon:before{content:"\e931";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-trulia a.icon:before{content:"\e931";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-trulia a.icon:before{content:"\e931";font-family:"Socicon" !important;}.et-social-dbdb-tunein a.icon:before{content:"\e903";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-tunein a.icon:before{content:"\e903";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-tunein a.icon:before{content:"\e903";font-family:"Socicon" !important;}.et-social-dbdb-twitch a.icon:before{content:"\e08c";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-twitch a.icon:before{content:"\e08c";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-twitch a.icon:before{content:"\e08c";font-family:"Socicon" !important;}.et-social-dbdb-uber a.icon:before{content:"\e08e";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-uber a.icon:before{content:"\e08e";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-uber a.icon:before{content:"\e08e";font-family:"Socicon" !important;}.et-social-dbdb-ubuntu a.icon:before{content:"\e958";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-ubuntu a.icon:before{content:"\e958";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-ubuntu a.icon:before{content:"\e958";font-family:"Socicon" !important;}.et-social-dbdb-udemy a.icon:before{content:"\e93f";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-udemy a.icon:before{content:"\e93f";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-udemy a.icon:before{content:"\e93f";font-family:"Socicon" !important;}.et-social-dbdb-unsplash a.icon:before{content:"\e914";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-unsplash a.icon:before{content:"\e914";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-unsplash a.icon:before{content:"\e914";font-family:"Socicon" !important;}.et-social-dbdb-upwork a.icon:before{content:"\e934";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-upwork a.icon:before{content:"\e934";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-upwork a.icon:before{content:"\e934";font-family:"Socicon" !important;}.et-social-dbdb-ventrilo a.icon:before{content:"\e08f";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-ventrilo a.icon:before{content:"\e08f";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-ventrilo a.icon:before{content:"\e08f";font-family:"Socicon" !important;}.et-social-dbdb-viadeo a.icon:before{content:"\e090";font-family:"Socicon" !important;}
1466.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-viadeo a.icon:before{content:"\e090";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-viadeo a.icon:before{content:"\e090";font-family:"Socicon" !important;}.et-social-dbdb-viber a.icon:before{content:"\e091";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-viber a.icon:before{content:"\e091";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-viber a.icon:before{content:"\e091";font-family:"Socicon" !important;}.et-social-dbdb-viewbug a.icon:before{content:"\e092";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-viewbug a.icon:before{content:"\e092";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-viewbug a.icon:before{content:"\e092";font-family:"Socicon" !important;}.et-social-dbdb-vine a.icon:before{content:"\e094";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-vine a.icon:before{content:"\e094";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-vine a.icon:before{content:"\e094";font-family:"Socicon" !important;}.et-social-dbdb-vkontakte a.icon:before{content:"\e095";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-vkontakte a.icon:before{content:"\e095";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-vkontakte a.icon:before{content:"\e095";font-family:"Socicon" !important;}.et-social-dbdb-vsco a.icon:before{content:"\e976";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-vsco a.icon:before{content:"\e976";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-vsco a.icon:before{content:"\e976";font-family:"Socicon" !important;}.et-social-dbdb-warcraft a.icon:before{content:"\e096";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-warcraft a.icon:before{content:"\e096";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-warcraft a.icon:before{content:"\e096";font-family:"Socicon" !important;}.et-social-dbdb-wechat a.icon:before{content:"\e097";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-wechat a.icon:before{content:"\e097";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-wechat a.icon:before{content:"\e097";font-family:"Socicon" !important;}.et-social-dbdb-whatsapp a.icon:before{content:"\e099";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-whatsapp a.icon:before{content:"\e099";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-whatsapp a.icon:before{content:"\e099";font-family:"Socicon" !important;}.et-social-dbdb-wickr a.icon:before{content:"\e952";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-wickr a.icon:before{content:"\e952";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-wickr a.icon:before{content:"\e952";font-family:"Socicon" !important;}.et-social-dbdb-wikipedia a.icon:before{content:"\e09a";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-wikipedia a.icon:before{content:"\e09a";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-wikipedia a.icon:before{content:"\e09a";font-family:"Socicon" !important;}.et-social-dbdb-windguru a.icon:before{content:"\e967";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-windguru a.icon:before{content:"\e967";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-windguru a.icon:before{content:"\e967";font-family:"Socicon" !important;}.et-social-dbdb-windows a.icon:before{content:"\e09b";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-windows a.icon:before{content:"\e09b";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-windows a.icon:before{content:"\e09b";font-family:"Socicon" !important;}.et-social-dbdb-wix a.icon:before{content:"\e924";font-family:"Socicon" !important;}
1466.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-wix a.icon:before{content:"\e924";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-wix a.icon:before{content:"\e924";font-family:"Socicon" !important;}.et-social-dbdb-wordpress a.icon:before{content:"\e09c";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-wordpress a.icon:before{content:"\e09c";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-wordpress a.icon:before{content:"\e09c";font-family:"Socicon" !important;}.et-social-dbdb-wykop a.icon:before{content:"\e09d";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-wykop a.icon:before{content:"\e09d";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-wykop a.icon:before{content:"\e09d";font-family:"Socicon" !important;}.et-social-dbdb-xbox a.icon:before{content:"\e09e";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-xbox a.icon:before{content:"\e09e";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-xbox a.icon:before{content:"\e09e";font-family:"Socicon" !important;}.et-social-dbdb-xing a.icon:before{content:"\e09f";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-xing a.icon:before{content:"\e09f";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-xing a.icon:before{content:"\e09f";font-family:"Socicon" !important;}.et-social-dbdb-yahoo a.icon:before{content:"\e0a0";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-yahoo a.icon:before{content:"\e0a0";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-yahoo a.icon:before{content:"\e0a0";font-family:"Socicon" !important;}.et-social-dbdb-yammer a.icon:before{content:"\e0a1";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-yammer a.icon:before{content:"\e0a1";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-yammer a.icon:before{content:"\e0a1";font-family:"Socicon" !important;}.et-social-dbdb-yandex a.icon:before{content:"\e0a2";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-yandex a.icon:before{content:"\e0a2";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-yandex a.icon:before{content:"\e0a2";font-family:"Socicon" !important;}.et-social-dbdb-yelp a.icon:before{content:"\e0a3";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-yelp a.icon:before{content:"\e0a3";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-yelp a.icon:before{content:"\e0a3";font-family:"Socicon" !important;}.et-social-dbdb-younow a.icon:before{content:"\e0a4";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-younow a.icon:before{content:"\e0a4";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-younow a.icon:before{content:"\e0a4";font-family:"Socicon" !important;}.et-social-dbdb-yt-gaming a.icon:before{content:"\e90b";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-yt-gaming a.icon:before{content:"\e90b";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-yt-gaming a.icon:before{content:"\e90b";font-family:"Socicon" !important;}.et-social-dbdb-zapier a.icon:before{content:"\e0a6";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-zapier a.icon:before{content:"\e0a6";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-zapier a.icon:before{content:"\e0a6";font-family:"Socicon" !important;}.et-social-dbdb-zazzle a.icon:before{content:"\e97b";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-zazzle a.icon:before{content:"\e97b";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-zazzle a.icon:before{content:"\e97b";font-family:"Socicon" !important;}.et-social-dbdb-zerply a.icon:before{content:"\e0a7";font-family:"Socicon" !important;}
1466.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-zerply a.icon:before{content:"\e0a7";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-zerply a.icon:before{content:"\e0a7";font-family:"Socicon" !important;}.et-social-dbdb-zillow a.icon:before{content:"\e938";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-zillow a.icon:before{content:"\e938";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-zillow a.icon:before{content:"\e938";font-family:"Socicon" !important;}.et-social-dbdb-zomato a.icon:before{content:"\e0a8";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-zomato a.icon:before{content:"\e0a8";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-zomato a.icon:before{content:"\e0a8";font-family:"Socicon" !important;}.et-social-dbdb-zoom a.icon:before{content:"\e921";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-zoom a.icon:before{content:"\e921";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-zoom a.icon:before{content:"\e921";font-family:"Socicon" !important;}.et-social-dbdb-zynga a.icon:before{content:"\e0a9";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-zynga a.icon:before{content:"\e0a9";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-zynga a.icon:before{content:"\e0a9";font-family:"Socicon" !important;}.et-social-dbdb-linktree a.icon:before{content:"\e900";font-family:"divi-booster-icons" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-linktree a.icon:before{content:"\e900";font-family:"divi-booster-icons" !important;}.et_pb_social_icon.et-social-dbdb-linktree a.icon:before{content:"\e900";font-family:"divi-booster-icons" !important;}.et-social-dbdb-eventbrite a.icon:before{content:"\e901";font-family:"divi-booster-icons" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-eventbrite a.icon:before{content:"\e901";font-family:"divi-booster-icons" !important;}.et_pb_social_icon.et-social-dbdb-eventbrite a.icon:before{content:"\e901";font-family:"divi-booster-icons" !important;}.et-social-dbdb-kofi a.icon:before{content:"\e902";font-family:"divi-booster-icons" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-kofi a.icon:before{content:"\e902";font-family:"divi-booster-icons" !important;}.et_pb_social_icon.et-social-dbdb-kofi a.icon:before{content:"\e902";font-family:"divi-booster-icons" !important;}.et-social-dbdb-komoot a.icon:before{content:"\e903";font-family:"divi-booster-icons" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-komoot a.icon:before{content:"\e903";font-family:"divi-booster-icons" !important;}.et_pb_social_icon.et-social-dbdb-komoot a.icon:before{content:"\e903";font-family:"divi-booster-icons" !important;}.et-social-dbdb-michelin-guide a.icon:before{content:"\e904";font-family:"divi-booster-icons" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-michelin-guide a.icon:before{content:"\e904";font-family:"divi-booster-icons" !important;}.et_pb_social_icon.et-social-dbdb-michelin-guide a.icon:before{content:"\e904";font-family:"divi-booster-icons" !important;}.et-social-dbdb-openstreetmap a.icon:before{content:"\e905";font-family:"divi-booster-icons" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-openstreetmap a.icon:before{content:"\e905";font-family:"divi-booster-icons" !important;}.et_pb_social_icon.et-social-dbdb-openstreetmap a.icon:before{content:"\e905";font-family:"divi-booster-icons" !important;}.et-social-dbdb-what3words a.icon:before{content:"\e906";font-family:"divi-booster-icons" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-what3words a.icon:before{content:"\e906";font-family:"divi-booster-icons" !important;}.et_pb_social_icon.et-social-dbdb-what3words a.icon:before{content:"\e906";font-family:"divi-booster-icons" !important;}.et-social-dbdb-x a.icon:before{content:"\e908";font-family:"divi-booster-icons" !important;}
1466.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-x a.icon:before{content:"\e908";font-family:"divi-booster-icons" !important;}.et_pb_social_icon.et-social-dbdb-x a.icon:before{content:"\e908";font-family:"divi-booster-icons" !important;}.et-social-dbdb-threads a.icon:before{content:"\e907";font-family:"divi-booster-icons" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-threads a.icon:before{content:"\e907";font-family:"divi-booster-icons" !important;}.et_pb_social_icon.et-social-dbdb-threads a.icon:before{content:"\e907";font-family:"divi-booster-icons" !important;}.et-social-dbdb-substack a.icon:before{content:"\e909";font-family:"divi-booster-icons" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-substack a.icon:before{content:"\e909";font-family:"divi-booster-icons" !important;}.et_pb_social_icon.et-social-dbdb-substack a.icon:before{content:"\e909";font-family:"divi-booster-icons" !important;}.et-social-dbdb-bluesky a.icon:before{content:"\e90a";font-family:"divi-booster-icons" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-bluesky a.icon:before{content:"\e90a";font-family:"divi-booster-icons" !important;}.et_pb_social_icon.et-social-dbdb-bluesky a.icon:before{content:"\e90a";font-family:"divi-booster-icons" !important;}.et-social-dbdb-apple-music a.icon:before{content:"\e90b";font-family:"divi-booster-icons" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-apple-music a.icon:before{content:"\e90b";font-family:"divi-booster-icons" !important;}.et_pb_social_icon.et-social-dbdb-apple-music a.icon:before{content:"\e90b";font-family:"divi-booster-icons" !important;}.et-social-dbdb-amazon-music a.icon:before{content:"\e90c";font-family:"divi-booster-icons" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-amazon-music a.icon:before{content:"\e90c";font-family:"divi-booster-icons" !important;}.et_pb_social_icon.et-social-dbdb-amazon-music a.icon:before{content:"\e90c";font-family:"divi-booster-icons" !important;}.et-social-dbdb-youtube-music a.icon:before{content:"\e90d";font-family:"divi-booster-icons" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-youtube-music a.icon:before{content:"\e90d";font-family:"divi-booster-icons" !important;}.et_pb_social_icon.et-social-dbdb-youtube-music a.icon:before{content:"\e90d";font-family:"divi-booster-icons" !important;}.et-social-dbdb-blog a.icon:before{content:"\e90e";font-family:"divi-booster-icons" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-blog a.icon:before{content:"\e90e";font-family:"divi-booster-icons" !important;}.et_pb_social_icon.et-social-dbdb-blog a.icon:before{content:"\e90e";font-family:"divi-booster-icons" !important;}.et-social-dbdb-rumble a.icon:before{content:"\e90f";font-family:"divi-booster-icons" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-rumble a.icon:before{content:"\e90f";font-family:"divi-booster-icons" !important;}.et_pb_social_icon.et-social-dbdb-rumble a.icon:before{content:"\e90f";font-family:"divi-booster-icons" !important;}.et-social-dbdb-truth-social a.icon:before{content:"\e910";font-family:"divi-booster-icons" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-truth-social a.icon:before{content:"\e910";font-family:"divi-booster-icons" !important;}.et_pb_social_icon.et-social-dbdb-truth-social a.icon:before{content:"\e910";font-family:"divi-booster-icons" !important;}.et-social-dbdb-gab a.icon:before{content:"\e911";font-family:"divi-booster-icons" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-gab a.icon:before{content:"\e911";font-family:"divi-booster-icons" !important;}.et_pb_social_icon.et-social-dbdb-gab a.icon:before{content:"\e911";font-family:"divi-booster-icons" !important;}.et-social-dbdb-apple-podcasts a.icon:before{content:"\e912";font-family:"divi-booster-icons" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-apple-podcasts a.icon:before{content:"\e912";font-family:"divi-booster-icons" !important;}
1466.et_pb_social_icon.et-social-dbdb-apple-podcasts a.icon:before{content:"\e912";font-family:"divi-booster-icons" !important;}.et-social-dbdb-storygraph a.icon:before{content:"\e913";font-family:"divi-booster-icons" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-storygraph a.icon:before{content:"\e913";font-family:"divi-booster-icons" !important;}.et_pb_social_icon.et-social-dbdb-storygraph a.icon:before{content:"\e913";font-family:"divi-booster-icons" !important;}.et-social-dbdb-nebenan a.icon:before{content:"\e914";font-family:"divi-booster-icons" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-nebenan a.icon:before{content:"\e914";font-family:"divi-booster-icons" !important;}.et_pb_social_icon.et-social-dbdb-nebenan a.icon:before{content:"\e914";font-family:"divi-booster-icons" !important;}.et-social-dbdb-custom-image a.icon:before{content:"\e005";font-family:"Socicon" !important;}.et-db #et-boc .et-l .et_pb_social_icon.et-social-dbdb-custom-image a.icon:before{content:"\e005";font-family:"Socicon" !important;}.et_pb_social_icon.et-social-dbdb-custom-image a.icon:before{content:"\e005";font-family:"Socicon" !important;}</style><style> 1467 .et_pb_gallery .et-pb-slider-arrows a { 1468 margin-top: 0; 1469 transform: translateY(-50%); 1470 } 1471</style> 1472<style> 1473 /* Hide all slide counters immediately to avoid flash of default separator */ 1474 .dbdb-slide-counter{visibility:hidden;} 1475 .dbdb-slide-counter.dbdb-counter-ready{visibility:visible;} 1476</style>
1477<script>window.applySliderCounterSeparator = window.applySliderCounterSeparator || function(){ /* stub until plugin JS loads */ };</script>
1477 1478<meta name="viewport" content="width=device-width, user-scalable=yes, initial-scale=1.0, minimum-scale=0.1, maximum-scale=10.0">
1478<script> 1479 jQuery(function($) { 1480 if ($('#top-header .socicon-google').length === 0) { 1481 $('#top-header .et-social-icons').append("<li class=\"et-social-icon\"><a href=\"https:\/\/www.google.com\/search?q=metro+flow+plumbing&oq=met&gs_lcrp=EgZjaHJvbWUqDggAEEUYJxg7GIAEGIoFMg4IABBFGCcYOxiABBiKBTIVCAEQLhhDGMcBGLEDGNEDGIAEGIoFMgYIAhBFGEAyBggDEEUYOTIGCAQQRRg8MgYIBRBFGDwyBggGEEUYPDIGCAcQRRg90gEINTMzMmowajeoAgCwAgA&sourceid=chrome&ie=UTF-8\" class=\"icon socicon socicon-google\" alt=\"Google\" aria-label=\"Google\"><span>Google<\/span><\/a><\/li>"); 1482 $('#top-header .et-extra-social-icons').append("<li class=\"et-extra-social-icon\"><a href=\"https:\/\/www.google.com\/search?q=metro+flow+plumbing&oq=met&gs_lcrp=EgZjaHJvbWUqDggAEEUYJxg7GIAEGIoFMg4IABBFGCcYOxiABBiKBTIVCAEQLhhDGMcBGLEDGNEDGIAEGIoFMgYIAhBFGEAyBggDEEUYOTIGCAQQRRg8MgYIBRBFGDwyBggGEEUYPDIGCAcQRRg90gEINTMzMmowajeoAgCwAgA&sourceid=chrome&ie=UTF-8\" class=\"et-extra-icon et-extra-icon-background-hover socicon socicon-google\"><\/a><\/li>"); 1483 } 1484 if ($('#footer-bottom .socicon-google').length === 0) { 1485 $('#footer-bottom .et-social-icons').append("<li class=\"et-social-icon\"><a href=\"https:\/\/www.google.com\/search?q=metro+flow+plumbing&oq=met&gs_lcrp=EgZjaHJvbWUqDggAEEUYJxg7GIAEGIoFMg4IABBFGCcYOxiABBiKBTIVCAEQLhhDGMcBGLEDGNEDGIAEGIoFMgYIAhBFGEAyBggDEEUYOTIGCAQQRRg8MgYIBRBFGDwyBggGEEUYPDIGCAcQRRg90gEINTMzMmowajeoAgCwAgA&sourceid=chrome&ie=UTF-8\" class=\"icon socicon socicon-google\" alt=\"Google\" aria-label=\"Google\"><span>Google<\/span><\/a><\/li>"); 1486 $('#footer-bottom .et-extra-social-icons').append("<li class=\"et-extra-social-icon\"><a href=\"https:\/\/www.google.com\/search?q=metro+flow+plumbing&oq=met&gs_lcrp=EgZjaHJvbWUqDggAEEUYJxg7GIAEGIoFMg4IABBFGCcYOxiABBiKBTIVCAEQLhhDGMcBGLEDGNEDGIAEGIoFMgYIAhBFGEAyBggDEEUYOTIGCAQQRRg8MgYIBRBFGDwyBggGEEUYPDIGCAcQRRg90gEINTMzMmowajeoAgCwAgA&sourceid=chrome&ie=UTF-8\" class=\"et-extra-icon et-extra-icon-background-hover socicon socicon-google\"><\/a><\/li>"); 1487 } 1488 if ($('.et_slide_in_menu_container .socicon-google').length === 0) { 1489 $('.et_slide_in_menu_container .et-social-icons').append("<li class=\"et-social-icon\"><a href=\"https:\/\/www.google.com\/search?q=metro+flow+plumbing&oq=met&gs_lcrp=EgZjaHJvbWUqDggAEEUYJxg7GIAEGIoFMg4IABBFGCcYOxiABBiKBTIVCAEQLhhDGMcBGLEDGNEDGIAEGIoFMgYIAhBFGEAyBggDEEUYOTIGCAQQRRg8MgYIBRBFGDwyBggGEEUYPDIGCAcQRRg90gEINTMzMmowajeoAgCwAgA&sourceid=chrome&ie=UTF-8\" class=\"icon socicon socicon-google\" alt=\"Google\" aria-label=\"Google\"><span>Google<\/span><\/a><\/li>"); 1490 $('.et_slide_in_menu_container .et-extra-social-icons').append("<li class=\"et-extra-social-icon\"><a href=\"https:\/\/www.google.com\/search?q=metro+flow+plumbing&oq=met&gs_lcrp=EgZjaHJvbWUqDggAEEUYJxg7GIAEGIoFMg4IABBFGCcYOxiABBiKBTIVCAEQLhhDGMcBGLEDGNEDGIAEGIoFMgYIAhBFGEAyBggDEEUYOTIGCAQQRRg8MgYIBRBFGDwyBggGEEUYPDIGCAcQRRg90gEINTMzMmowajeoAgCwAgA&sourceid=chrome&ie=UTF-8\" class=\"et-extra-icon et-extra-icon-background-hover socicon socicon-google\"><\/a><\/li>"); 1491 } 1492 }); 1493 </script>
1493 1494 <meta name="generator" content="Site Kit by Google 1.185.0" /><!-- HFCM by 99 Robots - Snippet # 1: Header Code --> 1495<!-- Google Tag Manager --> 1496 1497<!-- End Google Tag Manager --> 1498<!-- /end HFCM by 99 Robots --> 1499<meta name="ti-site-data" content="eyJyIjoiMTowITc6MCEzMDowIiwibyI6Imh0dHBzOlwvXC9tZXRyb2Zsb3dwbHVtYmluZy5jb20/dGktb25saW5lLXVzZXJzLWdvb2dsZT0xJmFtcDtwPSUyRmNvbnRhY3QlMkYmYW1wO193cG5vbmNlPWJhMzQ5MzEyZWIifQ==" /><style id="custom-background-css"> 1500body.custom-background { background-color: #ffffff; } 1501</style> 1502<!-- Google tag (gtag.js) -->
vendor: 100 bytes, lines 1502-1503
1502 1503<script async data-giant-delayed="1" data-giant-src="https://www.googletagmanager.com/gtag/js?id=
1503G-MG6NHS2QH6
vendor: 70 bytes, line 1503
1503" data-type="lazy" data-src="data:text/javascript;base64,"></script>
1504<script>
vendor: 130 bytes, lines 1505-1508
1505window.dataLayer = window.dataLayer || []; 1506function gtag(){dataLayer.push(arguments);} 1507gtag('js', new Date()); 1508gtag('config', '
1508G-MG6NHS2QH6
vendor: 5 bytes, line 1508
1508');
1509</script>
1509 1510 1511 1512<!-- Meta Pixel Code --> 1513 1514 1515<noscript> 1516 <img height="1" width="1" src="https://www.facebook.com/tr?id=357237823744364&ev=PageView&noscript=1" fetchpriority="high" data-giant-processed="1" style="display:none;aspect-ratio:1/1" data-giant-cls="1"> 1517</noscript> 1518<!-- End Meta Pixel Code --> 1519 1520 1521<!-- Disable old chatbot: cdn.apigateway.co -->
1522<script> 1523(function () { 1524 var blocked = "cdn.apigateway.co"; 1525 1526 function removeOldChat() { 1527 document.querySelectorAll('script[src*="' + blocked + '"]').forEach(function (s) { 1528 s.remove(); 1529 console.log("Old chatbot removed:", s.src); 1530 }); 1531 1532 document.querySelectorAll( 1533 'iframe[src*="' + blocked + '"], div[id*="apigateway"], div[class*="apigateway"]' 1534 ).forEach(function (el) { 1535 el.remove(); 1536 }); 1537 } 1538 1539 removeOldChat(); 1540 1541 new MutationObserver(function () { 1542 removeOldChat(); 1543 }).observe(document.documentElement, { 1544 childList: true, 1545 subtree: true 1546 }); 1547 1548 document.addEventListener("DOMContentLoaded", removeOldChat); 1549 window.addEventListener("load", removeOldChat); 1550})(); 1551</script>
1551 1552 1553 1554<!-- Recreate AI ChatBot + Booking Form Dynamic Loader -->
1555<script data-type="lazy" data-src="data:text/javascript;base64,DQooZnVuY3Rpb24gKCkgew0KICBmdW5jdGlvbiBsb2FkUmVjcmVhdGVBSSgpIHsNCiAgICB2YXIgb2xkU2NyaXB0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcignc2NyaXB0W3NyYyo9ImNkbi1lbWJlZC1zY3JpcHQucmVjcmVhdGVhaS5jb20vcHJvZHVjdGlvbi1yYWktZW1iZWQuanMiXScpOw0KICAgIA0KICAgIGlmIChvbGRTY3JpcHQpIHsNCiAgICAgIG9sZFNjcmlwdC5yZW1vdmUoKTsNCiAgICB9DQoNCiAgICB2YXIgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7DQogICAgc2NyaXB0LmFzeW5jID0gdHJ1ZTsNCiAgICBzY3JpcHQuc3JjID0gImh0dHBzOi8vY2RuLWVtYmVkLXNjcmlwdC5yZWNyZWF0ZWFpLmNvbS9wcm9kdWN0aW9uLXJhaS1lbWJlZC5qcyI7DQoNCiAgICBzY3JpcHQuc2V0QXR0cmlidXRlKCJyYWktZGF0YS1jb21wYW55LXBhayIsICJjZjk4YjBkYi1kOGM3LTQwYzAtOThhMS0wNmQ2MGJiYWVkNTQiKTsNCiAgICBzY3JpcHQuc2V0QXR0cmlidXRlKCJyYWktZm9ybS11cmwiLCAiaHR0cHM6Ly9mb3JtLnJlY3JlYXRlYWkuY29tIik7DQogICAgc2NyaXB0LnNldEF0dHJpYnV0ZSgicmFpLWRhdGEtbG9hZC1mb3JtIiwgInRydWUiKTsNCiAgICBzY3JpcHQuc2V0QXR0cmlidXRlKCJyYWktZm9ybS1sb2FkaW5nLXByaW1hcnktY29sb3IiLCAiIzBCNEQ3QiIpOw0KICAgIHNjcmlwdC5zZXRBdHRyaWJ1dGUoInJhaS1mb3JtLXByaW1hcnktcGFzdGVsLWNvbG9yIiwgIiM2Yzk0YWYiKTsNCiAgICBzY3JpcHQuc2V0QXR0cmlidXRlKCJyYWktd2ViY2hhdC11cmwiLCAiaHR0cHM6Ly9jbGllbnQtYWktY2hhbm5lbC5yZWNyZWF0ZWFpLmNvbSIpOw0KICAgIHNjcmlwdC5zZXRBdHRyaWJ1dGUoInJhaS1kYXRhLWxvYWQtd2ViY2hhdCIsICJ0cnVlIik7DQogICAgc2NyaXB0LnNldEF0dHJpYnV0ZSgicmFpLXdlYmNoYXQtYnRuLWJnLWNvbG9yIiwgIiM2Yzk0YWYiKTsNCiAgICBzY3JpcHQuc2V0QXR0cmlidXRlKCJyYWktd2ViY2hhdC1idG4tdHh0LWNvbG9yIiwgIiNmZmZmZmYiKTsNCiAgICBzY3JpcHQuc2V0QXR0cmlidXRlKCJyYWktd2ViY2hhdC1ob3Zlci10aXRsZSIsICIiKTsNCg0KICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTsNCiAgfQ0KDQogIGxvYWRSZWNyZWF0ZUFJKCk7DQp9KSgpOw0K"></script>
1555 1556 1557 1558<!-- Book Now Button Safety Fix -->
1559<script> 1560(function () { 1561 function fixBookNowButtons() { 1562 document.querySelectorAll(".schedule-btn-rai, #scheduleBtnRai").forEach(function (btn) { 1563 btn.setAttribute("href", "javascript:void(0);"); 1564 btn.setAttribute("role", "button"); 1565 }); 1566 } 1567 1568 document.addEventListener("DOMContentLoaded", fixBookNowButtons); 1569 window.addEventListener("load", fixBookNowButtons); 1570 1571 new MutationObserver(function () { 1572 fixBookNowButtons(); 1573 }).observe(document.documentElement, { 1574 childList: true, 1575 subtree: true 1576 }); 1577})(); 1578</script>
1578 1579<!-- Optimized Header Book Now Button - Desktop + Mobile -->
1580<script> 1581(function () { 1582 function createBookNowItem(idName) { 1583 var li = document.createElement("li"); 1584 li.className = "menu-item menu-item-type-custom menu-item-object-custom rai-header-book-now-item"; 1585 1586 var a = document.createElement("a"); 1587 a.href = "javascript:void(0);"; 1588 a.id = idName; 1589 a.className = "schedule-btn-rai rai-header-book-now-btn"; 1590 a.setAttribute("role", "button"); 1591 a.innerText = "Book Now"; 1592 1593 li.appendChild(a); 1594 return li; 1595 } 1596 1597 function cleanDuplicateBookNow(menu) { 1598 if (!menu) return; 1599 1600 var items = menu.querySelectorAll(".rai-header-book-now-item"); 1601 items.forEach(function (item) { 1602 item.remove(); 1603 }); 1604 } 1605 1606 function addHeaderBookNowButtons() { 1607 var desktopMenu = document.querySelector("#top-menu"); 1608 var mobileMenu = document.querySelector("#mobile_menu"); 1609 1610 if (desktopMenu) { 1611 cleanDuplicateBookNow(desktopMenu); 1612 desktopMenu.appendChild(createBookNowItem("headerScheduleBtnRai")); 1613 } 1614 1615 if (mobileMenu) { 1616 cleanDuplicateBookNow(mobileMenu); 1617 mobileMenu.appendChild(createBookNowItem("mobileScheduleBtnRai")); 1618 } 1619 1620 document.querySelectorAll(".schedule-btn-rai").forEach(function (btn) { 1621 btn.setAttribute("href", "javascript:void(0);"); 1622 btn.setAttribute("role", "button"); 1623 }); 1624 } 1625 1626 document.addEventListener("DOMContentLoaded", function () { 1627 addHeaderBookNowButtons(); 1628 1629 setTimeout(addHeaderBookNowButtons, 800); 1630 setTimeout(addHeaderBookNowButtons, 2000); 1631 }); 1632 1633 window.addEventListener("load", function () { 1634 addHeaderBookNowButtons(); 1635 }); 1636})(); 1637</script>
1637 1638 1639<style> 1640/* Desktop Book Now Button */ 1641#top-menu .rai-header-book-now-item { 1642 padding-right: 0 !important; 1643 margin-left: 10px !important; 1644} 1645 1646#top-menu .rai-header-book-now-btn { 1647 background-color: #ffffff !important; 1648 color: #e67e22 !important; 1649 padding: 10px 15px !important; 1650 font-weight: 700 !important; 1651 text-transform: uppercase !important; 1652 line-height: 1.2 !important; 1653 display: inline-block !important; 1654 border-radius: 0 !important; 1655 border: 2px solid #e67e22 !important; 1656} 1657 1658#top-menu .rai-header-book-now-btn:hover { 1659 background-color: #e67e22 !important; 1660 color: #ffffff !important; 1661 opacity: 1 !important; 1662} 1663 1664/* Mobile Book Now Button */ 1665#mobile_menu .rai-header-book-now-item { 1666 padding-left: 0 !important; 1667 padding-right: 0 !important; 1668} 1669 1670#mobile_menu .rai-header-book-now-btn { 1671 background-color: #ffffff !important; 1672 color: #e67e22 !important; 1673 padding: 12px 15px !important; 1674 font-weight: 700 !important; 1675 text-transform: uppercase !important; 1676 display: inline-block !important; 1677 width: fit-content !important; 1678 margin-top: 8px !important; 1679 border-radius: 0 !important; 1680 border: 2px solid #e67e22 !important; 1681} 1682 1683#mobile_menu .rai-header-book-now-btn:hover { 1684 background-color: #e67e22 !important; 1685 color: #ffffff !important; 1686} 1687</style><link rel="icon" href="https://metroflowplumbing.com/wp-content/uploads/2024/11/cropped-tap-favicon-150x150.png" sizes="32x32" /> 1688<link rel="icon" href="https://metroflowplumbing.com/wp-content/uploads/2024/11/cropped-tap-favicon-300x300.png" sizes="192x192" /> 1689<link rel="apple-touch-icon" href="https://metroflowplumbing.com/wp-content/uploads/2024/11/cropped-tap-favicon-300x300.png" /> 1690<meta name="msapplication-TileImage" content="https://metroflowplumbing.com/wp-content/uploads/2024/11/cropped-tap-favicon-300x300.png" /> 1691 <style> 1692 body #page-container .et_pb_section a.et_pb_button.db-custom-extended-icon[data-icon]:before, 1693 body #page-container .et_pb_section a.et_pb_button.db-custom-extended-icon[data-icon]:after, 1694 a.et_pb_button.db-custom-extended-icon[data-icon]:before, 1695 a.et_pb_button.db-custom-extended-icon[data-icon]:after { 1696 font-size: inherit !important; 1697 height: 100% !important; 1698 top: 0 !important; 1699 } 1700 1701 body #page-container .et_pb_section a.et_pb_button.db-custom-extended-icon[data-icon]:before, 1702 a.et_pb_button.db-custom-extended-icon[data-icon]:before { 1703 left: 0 !important; 1704 transform: none !important; 1705 } 1706 1707 body #page-container .et_pb_section a.et_pb_button.db-custom-extended-icon[data-icon]:after, 1708 a.et_pb_button.db-custom-extended-icon[data-icon]:after { 1709 right: 0 !important; 1710 transform: none !important; 1711 } 1712 </style> 1713 <style> 1714 /* Default/fallback size */ 1715 .et_pb_icon .et_pb_icon_wrap img.dbdb-custom-icon-img { 1716 height: 96px; 1717 width: auto; 1718 } 1719 1720 /* Preferred: follow Divi's font-size (Divi applies it to `.et_pb_icon_wrap .et-pb-icon`) */ 1721 .et_pb_icon .et_pb_icon_wrap img.dbdb-custom-icon-img.et-pb-icon { 1722 height: 1em; 1723 width: auto; 1724 } 1725 </style> 1726 <link rel="stylesheet" id="et-core-unified-116-cached-inline-styles" href="https://metroflowplumbing.com/wp-content/et-cache/116/et-core-unified-116.min.css?ver=1790711771" /><style id="et-core-unified-tb-1246-116-cached-inline-styles">body,.et_pb_column_1_2 .et_quote_content blockquote cite,.et_pb_column_1_2 .et_link_content a.et_link_main_url,.et_pb_column_1_3 .et_quote_content blockquote cite,.et_pb_column_3_8 .et_quote_content blockquote cite,.et_pb_column_1_4 .et_quote_content blockquote cite,.et_pb_blog_grid .et_quote_content blockquote cite,.et_pb_column_1_3 .et_link_content a.et_link_main_url,.et_pb_column_3_8 .et_link_content a.et_link_main_url,.et_pb_column_1_4 .et_link_content a.et_link_main_url,.et_pb_blog_grid .et_link_content a.et_link_main_url,body .et_pb_bg_layout_light .et_pb_post .post-content,body .et_pb_bg_layout_dark .et_pb_post .post-content{font-size:16px}.et_pb_slide_content,.et_pb_best_value{font-size:18px}body{color:var(--gcid-body-color,#0d1017)}h1,h2,h3,h4,h5,h6{color:var(--gcid-heading-color,#0d1017)}body{line-height:1.8em}body,.et_pb_column_1_2 .et_quote_content blockquote cite,.et_pb_column_1_2 .et_link_content a.et_link_main_url,.et_pb_column_1_3 .et_quote_content blockquote cite,.et_pb_column_3_8 .et_quote_content blockquote cite,.et_pb_column_1_4 .et_quote_content blockquote cite,.et_pb_blog_grid .et_quote_content blockquote cite,.et_pb_column_1_3 .et_link_content a.et_link_main_url,.et_pb_column_3_8 .et_link_content a.et_link_main_url,.et_pb_column_1_4 .et_link_content a.et_link_main_url,.et_pb_blog_grid .et_link_content a.et_link_main_url,body .et_pb_bg_layout_light .et_pb_post .post-content,body .et_pb_bg_layout_dark .et_pb_post .post-content{font-weight:400}.et_pb_slide_content,.et_pb_best_value{font-weight:400}#et_search_icon:hover,.mobile_menu_bar:before,.mobile_menu_bar:after,.et_toggle_slide_menu:after,.et-social-icon a:hover,.et_pb_sum,.et_pb_pricing li a,.et_pb_pricing_table_button,.et_overlay:before,.entry-summary p.price ins,.et_pb_member_social_links a:hover,.et_pb_widget li a:hover,.et_pb_filterable_portfolio .et_pb_portfolio_filters li a.active,.et_pb_filterable_portfolio .et_pb_portofolio_pagination ul li a.active,.et_pb_gallery .et_pb_gallery_pagination ul li a.active,.wp-pagenavi span.current,.wp-pagenavi a:hover,.nav-single a,.tagged_as a,.posted_in a{color:#1281b5}.et_pb_contact_submit,.et_password_protected_form .et_submit_button,.et_pb_bg_layout_light .et_pb_newsletter_button,.comment-reply-link,.form-submit .et_pb_button,.et_pb_bg_layout_light .et_pb_promo_button,.et_pb_bg_layout_light .et_pb_more_button,.et_pb_contact p input[type="checkbox"]:checked+label i:before,.et_pb_bg_layout_light.et_pb_module.et_pb_button{color:#1281b5}.footer-widget h4{color:#1281b5}.et-search-form,.nav li ul,.et_mobile_menu,.footer-widget li:before,.et_pb_pricing li:before,blockquote{border-color:#1281b5}.et_pb_counter_amount,.et_pb_featured_table .et_pb_pricing_heading,.et_quote_content,.et_link_content,.et_audio_content,.et_pb_post_slider.et_pb_bg_layout_dark,.et_slide_in_menu_container,.et_pb_contact p input[type="radio"]:checked+label i:before{background-color:#1281b5}a{color:var(--gcid-link-color,#0b4d7b)}.et_secondary_nav_enabled #page-container #top-header{background-color:#0b4d7b!important}#et-secondary-nav li ul{background-color:#0b4d7b}.et_header_style_centered .mobile_nav .select_page,.et_header_style_split .mobile_nav .select_page,.et_nav_text_color_light #top-menu>li>a,.et_nav_text_color_dark #top-menu>li>a,#top-menu a,.et_mobile_menu li a,.et_nav_text_color_light .et_mobile_menu li a,.et_nav_text_color_dark .et_mobile_menu li a,#et_search_icon:before,.et_search_form_container input,span.et_close_search_field:after,#et-top-navigation .et-cart-info{color:#0d1017}.et_search_form_container input::-moz-placeholder{color:#0d1017}.et_search_form_container input::-webkit-input-placeholder{color:#0d1017}.et_search_form_container input:-ms-input-placeholder{color:#0d1017}#top-header,#top-header a,#et-secondary-nav li li a,#top-header .et-social-icon a:before{font-size:13px}#top-menu li a{font-size:16px}body.et_vertical_nav .container.et_search_form_container .et-search-form input{font-size:16px!important}#top-menu li a,.et_search_form_container input{font-weight:bold;font-style:normal;text-transform:uppercase;text-decoration:none}.et_search_form_container input::-moz-placeholder{font-weight:bold;font-style:normal;text-transform:uppercase;text-decoration:none}.et_search_form_container input::-webkit-input-placeholder{font-weight:bold;font-style:normal;text-transform:uppercase;text-decoration:none}.et_search_form_container input:-ms-input-placeholder{font-weight:bold;font-style:normal;text-transform:uppercase;text-decoration:none}#top-menu li.current-menu-ancestor>a,#top-menu li.current-menu-item>a,#top-menu li.current_page_item>a{color:#1281b5}.footer-widget,.footer-widget li,.footer-widget li a,#footer-info{font-size:14px}.footer-widget .et_pb_widget div,.footer-widget .et_pb_widget ul,.footer-widget .et_pb_widget ol,.footer-widget .et_pb_widget label{line-height:1.7em}#et-footer-nav .bottom-nav li.current-menu-item a{color:#2ea3f2}body .et_pb_button{font-size:16px;background-color:#e67e22;border-color:#e67e22;border-radius:0px;font-weight:bold;font-style:normal;text-transform:uppercase;text-decoration:none;;letter-spacing:1px}body.et_pb_button_helper_class .et_pb_button,body.et_pb_button_helper_class .et_pb_module.et_pb_button{color:#ffffff}body .et_pb_button:after{content:'E';font-size:16px}body .et_pb_bg_layout_light.et_pb_button:hover,body .et_pb_bg_layout_light .et_pb_button:hover,.et_pb_module .et_pb_button:hover,body .et_pb_button:hover{color:#ffffff;background-color:#0b4d7b;border-color:#0b4d7b;border-radius:0px;letter-spacing:1px}h1,h2,h3,h4,h5,h6,.et_quote_content blockquote p,.et_pb_slide_description .et_pb_slide_title{letter-spacing:1px;line-height:1.4em}@media only screen and (min-width:981px){.et_header_style_left #et-top-navigation,.et_header_style_split #et-top-navigation{padding:34px 0 0 0}.et_header_style_left #et-top-navigation nav>ul>li>a,.et_header_style_split #et-top-navigation nav>ul>li>a{padding-bottom:34px}.et_header_style_split .centered-inline-logo-wrap{width:67px;margin:-67px 0}.et_header_style_split .centered-inline-logo-wrap #logo{max-height:67px}.et_pb_svg_logo.et_header_style_split .centered-inline-logo-wrap #logo{height:67px}.et_header_style_centered #top-menu>li>a{padding-bottom:12px}.et_header_style_slide #et-top-navigation,.et_header_style_fullscreen #et-top-navigation{padding:25px 0 25px 0!important}.et_header_style_centered #main-header .logo_container{height:67px}#logo{max-height:65%}.et_pb_svg_logo #logo{height:65%}.et_header_style_centered.et_hide_primary_logo #main-header:not(.et-fixed-header) .logo_container,.et_header_style_centered.et_hide_fixed_logo #main-header.et-fixed-header .logo_container{height:12.06px}.et_header_style_left .et-fixed-header #et-top-navigation,.et_header_style_split .et-fixed-header #et-top-navigation{padding:30px 0 0 0}.et_header_style_left .et-fixed-header #et-top-navigation nav>ul>li>a,.et_header_style_split .et-fixed-header #et-top-navigation nav>ul>li>a{padding-bottom:30px}.et_header_style_centered header#main-header.et-fixed-header .logo_container{height:60px}.et_header_style_split #main-header.et-fixed-header .centered-inline-logo-wrap{width:60px;margin:-60px 0}.et_header_style_split .et-fixed-header .centered-inline-logo-wrap #logo{max-height:60px}.et_pb_svg_logo.et_header_style_split .et-fixed-header .centered-inline-logo-wrap #logo{height:60px}.et_header_style_slide .et-fixed-header #et-top-navigation,.et_header_style_fullscreen .et-fixed-header #et-top-navigation{padding:21px 0 21px 0!important}.et_fixed_nav #page-container .et-fixed-header#top-header{background-color:#0b4d7b!important}.et_fixed_nav #page-container .et-fixed-header#top-header #et-secondary-nav li ul{background-color:#0b4d7b}.et-fixed-header #top-menu li a{font-size:14px}.et-fixed-header #top-menu a,.et-fixed-header #et_search_icon:before,.et-fixed-header #et_top_search .et-search-form input,.et-fixed-header .et_search_form_container input,.et-fixed-header .et_close_search_field:after,.et-fixed-header #et-top-navigation .et-cart-info{color:#0d1017!important}.et-fixed-header .et_search_form_container input::-moz-placeholder{color:#0d1017!important}.et-fixed-header .et_search_form_container input::-webkit-input-placeholder{color:#0d1017!important}.et-fixed-header .et_search_form_container input:-ms-input-placeholder{color:#0d1017!important}.et-fixed-header #top-menu li.current-menu-ancestor>a,.et-fixed-header #top-menu li.current-menu-item>a,.et-fixed-header #top-menu li.current_page_item>a{color:#1281b5!important}}@media only screen and (min-width:1350px){.et_block_row{padding:27px 0}.et_pb_section{padding:54px 0}.single.et_pb_pagebuilder_layout.et_full_width_page .et_post_meta_wrapper{padding-top:81px}.et_pb_fullwidth_section{padding:0}}h1,h1.et_pb_contact_main_title,.et_pb_title_container h1{font-weight:700}h2,.product .related h2,.et_pb_column_1_2 .et_quote_content blockquote p{font-weight:700}h3{font-weight:700}h4,.et_pb_circle_counter h3,.et_pb_number_counter h3,.et_pb_column_1_3 .et_pb_post h2,.et_pb_column_1_4 .et_pb_post h2,.et_pb_blog_grid h2,.et_pb_column_1_3 .et_quote_content blockquote p,.et_pb_column_3_8 .et_quote_content blockquote p,.et_pb_column_1_4 .et_quote_content blockquote p,.et_pb_blog_grid .et_quote_content blockquote p,.et_pb_column_1_3 .et_link_content h2,.et_pb_column_3_8 .et_link_content h2,.et_pb_column_1_4 .et_link_content h2,.et_pb_blog_grid .et_link_content h2,.et_pb_column_1_3 .et_audio_content h2,.et_pb_column_3_8 .et_audio_content h2,.et_pb_column_1_4 .et_audio_content h2,.et_pb_blog_grid .et_audio_content h2,.et_pb_column_3_8 .et_pb_audio_module_content h2,.et_pb_column_1_3 .et_pb_audio_module_content h2,.et_pb_gallery_grid .et_pb_gallery_item h3,.et_pb_portfolio_grid .et_pb_portfolio_item h2,.et_pb_filterable_portfolio_grid .et_pb_portfolio_item h2{font-weight:700}h5{font-weight:700}h6{font-weight:700}.et_pb_slide_description .et_pb_slide_title{font-weight:700}.et_pb_gallery_grid .et_pb_gallery_item h3,.et_pb_portfolio_grid .et_pb_portfolio_item h2,.et_pb_filterable_portfolio_grid .et_pb_portfolio_item h2,.et_pb_column_1_4 .et_pb_audio_module_content h2{font-weight:700}@media only screen and (max-width:980px){.et_header_style_centered .mobile_nav .select_page,.et_header_style_split .mobile_nav .select_page,.et_mobile_menu li a,.mobile_menu_bar:before,.et_nav_text_color_light #top-menu>li>a,.et_nav_text_color_dark #top-menu>li>a,#top-menu a,.et_mobile_menu li a,#et_search_icon:before,#et_top_search .et-search-form input,.et_search_form_container input,#et-top-navigation .et-cart-info{color:rgba(0,0,0,0.6)}.et_close_search_field:after{color:rgba(0,0,0,0.6)!important}.et_search_form_container input::-moz-placeholder{color:rgba(0,0,0,0.6)}.et_search_form_container input::-webkit-input-placeholder{color:rgba(0,0,0,0.6)}.et_search_form_container input:-ms-input-placeholder{color:rgba(0,0,0,0.6)}} h1,h2,h3,h4,h5,h6{font-family:var(--et_global_heading_font)}body,input,textarea,select{font-family:var(--et_global_body_font)}.et_pb_button{font-family:'Roboto',sans-serif}#main-header,#et-top-navigation{font-family:'Roboto',sans-serif}#top-header .container{font-family:'Roboto',sans-serif}</style><link rel='stylesheet' id='dbdb-magnific-popup-css' href='https://metroflowplumbing.com/wp-content/themes/Divi/includes/builder/feature/dynamic-assets/assets/css/magnific_popup.css' media='all' /> 1727<link rel='stylesheet' id='dbdb-social-media-follow-css' href='https://metroflowplumbing.com/wp-content/themes/Divi/includes/builder/feature/dynamic-assets/assets/css/social_media_follow.css' media='all' /> 1728 1729<style id="giant-cls-fix">
1729img:not([width]):not([height]){display:block;max-width:100%;height:auto;}img[width][height]{height:auto;}@font-face{font-display:optional}:root{--font-fallback-adjust:100%}.giant-video-wrap{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;}.giant-video-wrap iframe,.giant-video-wrap video,.giant-video-wrap embed,.giant-video-wrap object{position:absolute;top:0;left:0;width:100%;height:100%;}</style></head> 1730<body class="wp-singular page-template-default page page-id-116 custom-background wp-theme-Divi wp-child-theme-divi-child-theme-2023 et-tb-has-template et-tb-has-footer dbdb_divi_2_4_up desktop ally-default et_button_custom_icon et_pb_button_helper_class et_fullwidth_nav et_fullwidth_secondary_nav et_fixed_nav et_show_nav et_secondary_nav_enabled et_secondary_nav_two_panels et_primary_nav_dropdown_animation_fade et_secondary_nav_dropdown_animation_fade et_header_style_left et_cover_background et_pb_gutter linux et_pb_gutters3 et_pb_pagebuilder_layout et_smooth_scroll et_no_sidebar et_divi_theme et-db"> 1731 <div id="page-container"> 1732<div id="et-boc" class="et-boc"> 1733 1734 <div id="top-header"> 1735 <div class="container clearfix"> 1736 1737 1738 <div id="et-info"> 1739 <span id="et-info-phone">(214) 328-7371</span> 1740 1741 <a href="mailto:[email protected]"><span id="et-info-email">[email protected]</span></a> 1742 1743 <ul class="et-social-icons"> 1744 1745 <li class="et-social-icon et-social-facebook"> 1746 <a href="https://www.facebook.com/metroflow.plumbing" class="icon"> 1747 <span>Facebook</span> 1748 </a> 1749 </li> 1750 <li class="et-social-icon et-social-twitter"> 1751 <a href="https://twitter.com/metroflowplumb" class="icon"> 1752 <span>X</span> 1753 </a> 1754 </li> 1755 <li class="et-social-icon et-social-instagram"> 1756 <a href="https://www.instagram.com/metroflowplumbing/" class="icon"> 1757 <span>Instagram</span> 1758 </a> 1759 </li> 1760 1761 <li class="et-social-icon"><a href="https://www.google.com/search?q=metro+flow+plumbing&oq=met&gs_lcrp=EgZjaHJvbWUqDggAEEUYJxg7GIAEGIoFMg4IABBFGCcYOxiABBiKBTIVCAEQLhhDGMcBGLEDGNEDGIAEGIoFMgYIAhBFGEAyBggDEEUYOTIGCAQQRRg8MgYIBRBFGDwyBggGEEUYPDIGCAcQRRg90gEINTMzMmowajeoAgCwAgA&sourceid=chrome&ie=UTF-8" class="icon socicon socicon-google" alt="Google" aria-label="Google"><span>Google</span></a></li></ul> </div> 1762 1763 1764 <div id="et-secondary-menu"> 1765 <div class="et_duplicate_social_icons"> 1766 <ul class="et-social-icons"> 1767 1768 <li class="et-social-icon et-social-facebook"> 1769 <a href="https://www.facebook.com/metroflow.plumbing" class="icon"> 1770 <span>Facebook</span> 1771 </a> 1772 </li> 1773 <li class="et-social-icon et-social-twitter"> 1774 <a href="https://twitter.com/metroflowplumb" class="icon"> 1775 <span>X</span> 1776 </a> 1777 </li> 1778 <li class="et-social-icon et-social-instagram"> 1779 <a href="https://www.instagram.com/metroflowplumbing/" class="icon"> 1780 <span>Instagram</span> 1781 </a> 1782 </li> 1783 1784 <li class="et-social-icon"><a href="https://www.google.com/search?q=metro+flow+plumbing&oq=met&gs_lcrp=EgZjaHJvbWUqDggAEEUYJxg7GIAEGIoFMg4IABBFGCcYOxiABBiKBTIVCAEQLhhDGMcBGLEDGNEDGIAEGIoFMgYIAhBFGEAyBggDEEUYOTIGCAQQRRg8MgYIBRBFGDwyBggGEEUYPDIGCAcQRRg90gEINTMzMmowajeoAgCwAgA&sourceid=chrome&ie=UTF-8" class="icon socicon socicon-google" alt="Google" aria-label="Google"><span>Google</span></a></li></ul> 1785 </div> </div> 1786 1787 </div> 1788 </div> 1789 1790 1791 <header id="main-header" data-height-onload="67"> 1792 <div class="container clearfix et_menu_container"> 1793 <div class="logo_container"> 1794 <span class="logo_helper"></span> 1795 <a href="https://metroflowplumbing.com/"> 1796 <img src="https://metroflowplumbing.com/wp-content/uploads/2025/06/new-logo.webp" width="200" height="70" alt="Metro Flow Plumbing - Dallas Emergency Plumbers" id="logo" data-height-percentage="65" > 1797 </a> 1798 </div> 1799 <div id="et-top-navigation" data-height="67" data-fixed-height="60"> 1800 <nav id="top-menu-nav"> 1801 <ul id="top-menu" class="nav"><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-home menu-item-2054"><a rel="httpswwwmetroflowplumbingcom" href="https://metroflowplumbing.com/">Home</a></li> 1802<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-3167"><a href="https://metroflowplumbing.com/services/">Plumbing</a> 1803<ul class="sub-menu"> 1804 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2949"><a href="https://metroflowplumbing.com/services/water-heaters/">Water Heaters</a></li> 1805 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3291"><a href="https://metroflowplumbing.com/services/toilets/">Toilets</a></li> 1806 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2950"><a href="https://metroflowplumbing.com/services/sewer-and-drains/">Sewer & Drains</a></li> 1807 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3633"><a href="https://metroflowplumbing.com/services/slab-leaks/">Slab Leaks</a></li> 1808 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3198"><a href="https://metroflowplumbing.com/services/cured-in-place-pipe-lining-system/">Cured in Place Pipe System (CIPP)</a></li> 1809 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3221"><a href="https://metroflowplumbing.com/services/gas-services/">Gas Line Installation & Repairs</a></li> 1810 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3658"><a href="https://metroflowplumbing.com/services/faucets-showers/">Faucets & Showers</a></li> 1811 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3328"><a href="https://metroflowplumbing.com/services/garbage-disposal/">Water Lines & Garbage Disposal</a></li> 1812 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3535"><a href="https://metroflowplumbing.com/services/water-filtration-system/">Water Filtration</a></li> 1813 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-4620"><a href="https://metroflowplumbing.com/discounts/#financing">Financing Available</a></li> 1814</ul> 1815</li> 1816<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3881"><a href="https://metroflowplumbing.com/services/cured-in-place-pipe-lining-system/">Cured in Place Pipe System (CIPP)</a></li> 1817<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-3576"><a href="https://metroflowplumbing.com/discounts/">Discounts</a> 1818<ul class="sub-menu"> 1819 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2128"><a href="https://metroflowplumbing.com/discounts/#performed">Service Discounts</a></li> 1820 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2130"><a href="https://metroflowplumbing.com/discounts/#diamondclub">Diamond Club Program</a></li> 1821 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-4618"><a href="https://metroflowplumbing.com/discounts/#financing">Financing Available</a></li> 1822</ul> 1823</li> 1824<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-3125"><a href="https://metroflowplumbing.com/about/">About</a> 1825<ul class="sub-menu"> 1826 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3700"><a href="https://metroflowplumbing.com/testimonials/">Testimonials</a></li> 1827 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2125"><a href="/career">Careers</a></li> 1828</ul> 1829</li> 1830<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3308"><a href="https://metroflowplumbing.com/service-area/">Service Areas</a></li> 1831<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3292"><a href="https://metroflowplumbing.com/faqs/">FAQ</a></li> 1832<li class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-116 current_page_item menu-item-3254"><a href="https://metroflowplumbing.com/contact/" aria-current="page">Contact</a></li> 1833<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2261"><a href="https://metroflowplumbing.com/blog/">Blog</a></li> 1834<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1288"><a href="tel:214-328-7371"><span style="padding:10px 15px;background-color:#e67e22;color:white;font-weight:bold;text-transform:uppercase">Call Now: (214) 328-7371</span></a></li> 1835</ul> </nav> 1836 1837 1838 1839 1840 <div id="et_mobile_nav_menu"> 1841 <div class="mobile_nav closed"> 1842 <span class="select_page">Select Page</span> 1843 <span class="mobile_menu_bar mobile_menu_bar_toggle"></span> 1844 </div> 1845 </div> </div> <!-- #et-top-navigation --> 1846 </div> <!-- .container --> 1847 </header> <!-- #main-header --> 1848<div id="et-main-area"> 1849 1850<div id="main-content"> 1851 1852 1853 1854 <article id="post-116" class="post-116 page type-page status-publish hentry"> 1855 1856 1857 <div class="entry-content"> 1858 <div class="et-l et-l--post"> 1859 <div class="et_builder_inner_content"> 1860 <div class="et_pb_section_3 et_pb_section et_section_regular et_block_section"> 1861<div class="et_pb_row_2 et_pb_row et-vb-row--no-module et_pb_gutters1 et_block_row"> 1862<div class="et_pb_column_6 et_pb_column et_pb_column_1_3 et_block_column et_pb_column_empty et_pb_css_mix_blend_mode_passthrough"></div> 1863 1864<div class="et_pb_column_7 et_pb_column et_pb_column_1_3 et_block_column et_pb_column_empty et_pb_css_mix_blend_mode_passthrough"></div> 1865 1866<div class="et_pb_column_8 et_pb_column et_pb_column_1_3 et-last-child et_block_column et_pb_column_empty et_pb_css_mix_blend_mode_passthrough"></div> 1867</div> 1868 1869<div class="et_pb_row_3 et_pb_row et_block_row"> 1870<div class="et_pb_column_9 et_pb_column et_pb_column_4_4 et-last-child et_block_column et_pb_css_mix_blend_mode_passthrough"> 1871<div class="et_pb_image_1 et_pb_image et_pb_module et_block_module"><span class="et_pb_image_wrap"><img fetchpriority="high" decoding="async" src="https://metroflowplumbing.com/wp-content/uploads/2024/11/Metro-Flow-Plumbing-Dallas-Emergency-Plumbers-Logo-e1730825149540.png" width="1617" height="534" srcset="https://metroflowplumbing.com/wp-content/uploads/2024/11/Metro-Flow-Plumbing-Dallas-Emergency-Plumbers-Logo-e1730825149540.png 1617w, https://metroflowplumbing.com/wp-content/uploads/2024/11/Metro-Flow-Plumbing-Dallas-Emergency-Plumbers-Logo-e1730825149540-1280x423.png 1280w, https://metroflowplumbing.com/wp-content/uploads/2024/11/Metro-Flow-Plumbing-Dallas-Emergency-Plumbers-Logo-e1730825149540-980x324.png 980w, https://metroflowplumbing.com/wp-content/uploads/2024/11/Metro-Flow-Plumbing-Dallas-Emergency-Plumbers-Logo-e1730825149540-480x159.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 1617px, 100vw" class="wp-image-2034" alt="Metro Flow Plumbing - Dallas Emergency Plumbers Logo" title="Metro Flow Plumbing - Dallas Emergency Plumbers Logo" ></span></div> 1872</div> 1873</div> 1874</div> 1875 1876<div class="et_pb_section_4 et_pb_section et_pb_fullwidth_section et_section_regular et_block_section"></div> 1877 1878<div class="et_pb_section_5 et_pb_section et_section_specialty et_pb_gutters3 et_block_section"><div class="et_pb_row et_block_row"> 1879<div class="et_pb_column_10 et_pb_column et_pb_specialty_column et_pb_column_1_2 et_block_column et_pb_css_mix_blend_mode_passthrough"> 1880<div class="et_pb_row_inner_1 et_pb_row_inner et_block_row"> 1881<div class="et_pb_column_inner_1 et_pb_column_inner et_pb_column et_pb_column_4_4 et-last-child et_block_column et_pb_css_mix_blend_mode_passthrough"> 1882<div class="et_pb_text_2 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><span><span><a href="https://metroflowplumbing.com/">Metro Flow Plumbing - Dallas Emergency Plumbers</a></span> » <span class="breadcrumb_last" aria-current="page">Contact</span></span> 1883</div></div> 1884 1885<div class="et_pb_text_3 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><h1>Contact us today!</h1> 1886</div></div> 1887 1888<div class="et_pb_code_1 et_pb_code et_pb_module"><div class="et_pb_code_inner">
1888<script 1889 id="__custom_form_widget" src="https://www.cdnstyles.com/static/custom_form_widget/v1/custom_form.widget.js" 1890 data="eyJiYWNrZ3JvdW5kQ29sb3IiOiIjZmZmZmZmIiwiYmFzZVVSTCI6Imh0dHBzOi8vZm9ybXMtcHJvZC5hcGlnYXRld2F5LmNvIiwiYm9yZGVyQ29sb3IiOiIjQzdEMEQwIiwiYm9yZGVyUmFkaXVzIjoiNXB4IiwiYm9yZGVyU3R5bGUiOiJzb2xpZCIsImJvcmRlcldpZHRoIjoiMXB4IiwiZm9ybUlkIjoiRm9ybUNvbmZpZ0lELTRhZmQ1YzkyLWUxYzgtNDI3Zi1iNDUwLTVmMjJmZTY0ZjBlYSIsInBhZGRpbmciOiIyMHB4IiwicHJpbWFyeUNvbG9yIjoiI0U2N0UyMiIsInByaW1hcnlGb250Q29sb3IiOiIjMEQxMDE3Iiwid2lkdGgiOiIxMDAlIn0=" 1891></script>
1891</div></div> 1892</div> 1893</div> 1894</div> 1895 1896<div class="et_pb_column_11 et_pb_column et_pb_column_single et_pb_column_1_2 et-last-child et_block_column et_pb_css_mix_blend_mode_passthrough"> 1897<div class="et_pb_blurb_3 et_pb_blurb et_pb_bg_layout_light et_pb_text_align_center et_pb_text_align_left-phone et_pb_blurb_position_left et_animated et_pb_module et_block_module"><div class="et_pb_blurb_content"><div class="et_pb_main_blurb_image"><span class="et_pb_image_wrap"><span class="et-pb-icon">î¥</span></span></div><div class="et_pb_blurb_container"><h3 class="et_pb_module_header">Contact Us</h3><div class="et_pb_blurb_description"><p>(214) 328-7371<br /><a href="mailto:[email protected]">[email protected]</a></p> 1898</div></div></div></div> 1899 1900<div class="et_pb_blurb_4 et_pb_blurb et_pb_bg_layout_light et_pb_text_align_center et_pb_text_align_left-phone et_pb_blurb_position_left et_animated et_pb_module et_block_module"><div class="et_pb_blurb_content"><div class="et_pb_main_blurb_image"><span class="et_pb_image_wrap"><span class="et-pb-icon">î</span></span></div><div class="et_pb_blurb_container"><h3 class="et_pb_module_header">Address</h3><div class="et_pb_blurb_description"><p><a href="https://maps.app.goo.gl/gkgYDU42b38FqLeo6" target="_blank" rel="noopener">3730 Dilido Rd. Suite #422 Dallas, TX 75228</a></p> 1901</div></div></div></div> 1902 1903<div class="et_pb_blurb_5 et_pb_blurb et_pb_bg_layout_light et_pb_text_align_center et_pb_text_align_left-phone et_pb_blurb_position_left et_animated et_pb_module et_block_module"><div class="et_pb_blurb_content"><div class="et_pb_main_blurb_image"><span class="et_pb_image_wrap"><span class="et-pb-icon">î«</span></span></div><div class="et_pb_blurb_container"><h3 class="et_pb_module_header">Hours of Operation</h3><div class="et_pb_blurb_description"><p>Office <span> Mon-Fri: 8 </span><span>AM - 5 PM</span><br />Emergencies 24/7</p> 1904</div></div></div></div> 1905</div> 1906</div></div> 1907 </div> 1908 </div> 1909 </div> 1910 1911 1912 </article> 1913 1914 1915 1916</div> 1917 1918 <footer class="et-l et-l--footer"> 1919 <div class="et_builder_inner_content"> 1920 1921 1922<div class="et_pb_section_1_tb_footer et_pb_section et_section_regular et_block_section widget-section"> 1923<div class="et_pb_row_1_tb_footer et_pb_row et_block_row"> 1924<div class="et_pb_column_2_tb_footer et_pb_column et_pb_column_1_2 et_block_column et_pb_css_mix_blend_mode_passthrough"> 1925<div class="et_pb_code_0_tb_footer et_pb_code et_pb_module"><div class="et_pb_code_inner">
1925<script async defer id="pulsem-embed-widget-review" data-width="600px" data-height="600px" data-id="5a4df38e69b36266639688bbc25aa5bca8bf3329871044663d74281718665a11f4ac3ae52907ef7ca874dc02ce1feafe08c140c70a8a9cd07109da22f69a32a9e42f92ac2708965920d896da5f16b7cd35752845becc1064fc62ef6052157e6cb818a7c50e51f90165494e2ebb6968a9cf3608765a3fe02f7eae6d9fb9994310" data-type="lazy" data-src="https://static.speetra.com/embed-pulsemweb-review.js"></script>
1925</div></div> 1926</div> 1927 1928<div class="et_pb_column_3_tb_footer et_pb_column et_pb_column_1_2 et-last-child et_block_column et_pb_css_mix_blend_mode_passthrough"> 1929<div class="et_pb_code_1_tb_footer et_pb_code et_pb_module box-widget"><div class="et_pb_code_inner">
1929<script id="pulsem-embed-gsd" defer data-id="5a4df38e69b36266639688bbc25aa5bca8bf3329871044663d74281718665a11f4ac3ae52907ef7ca874dc02ce1feafe08c140c70a8a9cd07109da22f69a32a9e42f92ac2708965920d896da5f16b7cd35752845becc1064fc62ef6052157e6cb818a7c50e51f90165494e2ebb6968a9cf3608765a3fe02f7eae6d9fb9994310" data-type="lazy" data-src="https://static.speetra.com/embed-pulsemweb-gsd.js"></script>
1929</div></div> 1930</div> 1931</div> 1932</div> 1933 1934<div class="et_pb_section_2_tb_footer et_pb_section et_section_regular et_block_section"> 1935<div class="et_pb_row_2_tb_footer et_pb_row et_block_row"> 1936<div class="et_pb_column_4_tb_footer et_pb_column et_pb_column_4_4 et-last-child et_block_column et_pb_css_mix_blend_mode_passthrough"> 1937<div class="et_pb_text_2_tb_footer et_pb_text et_pb_bg_layout_dark et_pb_module et_block_module"><div class="et_pb_text_inner"><p>Copyright © 2026 Metro Flow Plumbing - Dallas Emergency Plumbers | TX License # RMP16620 | All Rights Reserved | Designed by <a href="https://imsdigitalai.com/website-design-services/" target="_blank" rel="nofollow noopener">IMS</a></p> 1938</div></div> 1939 1940<div class="et_pb_text_3_tb_footer et_pb_text et_pb_bg_layout_dark et_pb_module et_block_module"><div class="et_pb_text_inner"><p><a href="/privacy-policy/">Privacy Policy</a> | <a href="/terms-and-conditions/">Terms & Conditions</a></p> 1941</div></div> 1942</div> 1943</div> 1944</div> 1945 </div> 1946 </footer> 1947 </div> 1948 1949 1950 </div> 1951 </div> 1952 1953 <style class="et-vb-global-data et-vb-global-fonts">:root{--et_global_heading_font: 'Roboto';--et_global_body_font: 'Roboto';--et_global_heading_font_weight: 700;--et_global_body_font_weight: 400;--et_global_body_font_size: 16px;--et_global_body_font_height: 1.8em;}body{line-height:var(--et_global_body_font_height);font-size:var(--et_global_body_font_size);}</style>
1953<script type="speculationrules"> 1954{"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/divi-child-theme-2023/*","/wp-content/themes/Divi/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} 1955</script>
1955 1956 1957<!-- CallRail WordPress Integration -->
1958<script type="text/javascript">window.crwpVer = 1;</script>
1958<style> 1959.et_pb_newsletter .et_pb_newsletter_button.et_pb_button[data-db-button-animation="rocking"] { 1960 animation: dbRockingEffect 2s linear infinite; 1961 transition: transform 0.3s ease-in-out; 1962} 1963.et_pb_newsletter .et_pb_newsletter_button.et_pb_button[data-db-button-animation="rocking"]:hover { 1964 animation: none; 1965 transform: rotate(0deg); 1966} 1967@keyframes dbRockingEffect { 1968 0%, 60%, 100% { transform: rotate(0deg); } 1969 15% { transform: rotate(1.5deg); } 1970 45% { transform: rotate(-1.5deg); } 1971} 1972</style>
1973<script> 1974jQuery(document).ready(function($) { 1975 function clearDbdbLightboxOpen() { 1976 $('body').removeClass(function(index, className) { 1977 return (className.match(/(^|\s)et_pb_gallery_\d+(?:_[^\s]+)?_dbdb_lightbox_open/g) || []).join(' '); 1978 }); 1979 } 1980 1981 // Add per-instance body class when a gallery image is clicked 1982 $(document).on('click', '.et_pb_gallery .et_pb_gallery_image a', function() { 1983 clearDbdbLightboxOpen(); 1984 var $gallery = $(this).closest('.et_pb_gallery'); 1985 if (!$gallery.length) return; 1986 var classes = ($gallery.attr('class') || '').match(/et_pb_gallery_\d+(?:_[^\s]+)?/); 1987 if (!classes || !classes[0]) return; 1988 var orderClass = classes[0]; 1989 $('body').addClass(orderClass + '_dbdb_lightbox_open'); 1990 }); 1991 1992 // Remove class when popup closes 1993 $(document).on('click', '.mfp-close, .mfp-bg', function() { clearDbdbLightboxOpen(); }); 1994 $(document).on('keyup', function(e) { if (e.key === 'Escape') { clearDbdbLightboxOpen(); } }); 1995}); 1996</script>
1996 1997 <style> 1998 /* Hide li.prev-dots only when it is the second child and display mode is icon, text, or icon_text */ 1999 .et_pb_gallery[data-display-mode="icon"] .et_pb_gallery_pagination li.prev-dots:nth-child(2), 2000 .et_pb_gallery[data-display-mode="text"] .et_pb_gallery_pagination li.prev-dots:nth-child(2), 2001 .et_pb_gallery[data-display-mode="icon_text"] .et_pb_gallery_pagination li.prev-dots:nth-child(2) { 2002 display: none !important; 2003 } 2004 /* Hide prev/next links until JS updates them */ 2005 .et_pb_gallery.et_pb_gallery_grid .et_pb_gallery_pagination { 2006 visibility: hidden; 2007 } 2008 </style> 2009
2009<script> 2010 (function(){ 2011 document.querySelectorAll('.et_pb_gallery.et_pb_gallery_grid').forEach(function(gallery){ 2012 var pagination = gallery.querySelector('.et_pb_gallery_pagination'); 2013 if (!pagination) return; 2014 var displayMode = gallery.getAttribute('data-display-mode') || 'default'; 2015 var updateLinks = function(){ 2016 setTimeout(function() { 2017 var prev = pagination.querySelector('a.page-prev'); 2018 var next = pagination.querySelector('a.page-next'); 2019 if (displayMode === 'icon') { 2020 if (prev) prev.textContent = ''; 2021 if (next) next.textContent = ''; 2022 } else { 2023 if (prev) prev.textContent = gallery.getAttribute('data-prev-text') || 'Prev'; 2024 if (next) next.textContent = gallery.getAttribute('data-next-text') || 'Next'; 2025 } 2026 // Show links after update 2027 pagination.style.visibility = 'visible'; 2028 }, 1000); 2029 }; 2030 updateLinks(); 2031 var observer = new MutationObserver(function(mutations){ 2032 updateLinks(); 2033 observer.disconnect(); 2034 }); 2035 observer.observe(pagination, { childList: true }); 2036 }); 2037 })(); 2038 </script>
2038 2039
2039<script> 2040 jQuery(document).ready(function($) { 2041 $(document).on('click', '.et_pb_gallery .et_pb_gallery_image a', function() { 2042 2043 // Remove the old class 2044 $('body').removeClass(function(index, className) { 2045 return (className.match(/(^|\s)et_pb_gallery_\d+_dbdb_lightbox_open/g) || []).join(' '); 2046 }); 2047 2048 // Add the new class 2049 var gallery_module_order = $(this).closest('.et_pb_gallery').attr('class').match(/et_pb_gallery_\d+/)[0]; 2050 $('body').addClass(gallery_module_order + '_dbdb_lightbox_open'); 2051 }); 2052 }); 2053 </script>
2053 2054
2054<script> 2055 jQuery(function($) { 2056 2057 var $links = $('.entry-content a, .et_pb_post_content a').filter(db_is_image_link).not(db_is_gallery_image_link); 2058 $links.filter(db_has_child_img).addClass('et_pb_lightbox_image'); 2059 $links.not(db_has_child_img).magnificPopup({type:'image'}); 2060 2061 dbdb_enableLightboxOnMapModuleImages(); 2062 2063 function dbdb_enableLightboxOnMapModuleImages() { 2064 var attempts = 0; 2065 var maxAttempts = 10; 2066 var interval = setInterval(function() { 2067 $('.et_pb_map a') 2068 .filter(db_is_image_link) 2069 .filter(db_has_child_img) 2070 .magnificPopup({type:'image'}); 2071 attempts++; 2072 if (attempts >= maxAttempts) { 2073 clearInterval(interval); 2074 } 2075 }, 1000); 2076 } 2077 2078 function db_has_child_img() { 2079 return ($(this).children('img').length); 2080 } 2081 2082 function db_is_image_link() { 2083 return (/\.(?:jpg|jpeg|gif|png|bmp)$/i.test($(this).attr('href'))); 2084 } 2085 2086 function db_is_gallery_image_link() { 2087 return ($(this).parent().hasClass("et_pb_gallery_image")); 2088 } 2089 } 2090 ); 2091 </script>
2091 2092 2093<!-- HFCM by 99 Robots - Snippet # 2: Body Code --> 2094<!-- Google Tag Manager (noscript) -->
vendor: 69 bytes, lines 2094-2095
2094 2095<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
2095GTM-N4HKL4S9
vendor: 85 bytes, lines 2095-2096
2095" 2096height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
2097<!-- End Google Tag Manager (noscript) --> 2098<!-- /end HFCM by 99 Robots --> 2099
2099<script> 2100 const registerAllyAction = () => { 2101 if ( ! window?.ElementorProFrontendConfig || ! window?.elementorFrontend?.utils?.urlActions ) { 2102 return; 2103 } 2104 2105 elementorFrontend.utils.urlActions.addAction( 'allyWidget:open', () => { 2106 if (window?.ea11yWidget?.widget?.open) { 2107 return window.ea11yWidget.widget.isOpen() 2108 ? window.ea11yWidget.widget.close() 2109 : window.ea11yWidget.widget.open(); 2110 } 2111 } ); 2112 }; 2113 2114 const waitingLimit = 30; 2115 let retryCounter = 0; 2116 2117 const waitForElementorPro = () => { 2118 return new Promise( ( resolve ) => { 2119 const intervalId = setInterval( () => { 2120 if ( retryCounter === waitingLimit ) { 2121 resolve( null ); 2122 } 2123 2124 retryCounter++; 2125 2126 if ( window.elementorFrontend && window?.elementorFrontend?.utils?.urlActions ) { 2127 clearInterval( intervalId ); 2128 resolve( window.elementorFrontend ); 2129 } 2130 }, 100 ); // Check every 100 milliseconds for availability of elementorFrontend 2131 }); 2132 }; 2133 2134 waitForElementorPro().then( () => { registerAllyAction(); }); 2135 </script>
2135 2136 <style class="et-vb-global-data et-vb-global-numeric-vars">:root{--et_global_heading_font: 'Roboto';--et_global_body_font: 'Roboto';}</style><link rel="preload" href="https://metroflowplumbing.com/wp-content/plugins/divi-booster/core/icons/socicon/fonts/Socicon.woff2?87visu" as="font" crossorigin> 2137<style> 2138@font-face { 2139 font-family: 'Socicon'; 2140 src: url('https://metroflowplumbing.com/wp-content/plugins/divi-booster/core/icons/socicon/fonts/Socicon.eot?87visu'); 2141 src: url('https://metroflowplumbing.com/wp-content/plugins/divi-booster/core/icons/socicon/fonts/Socicon.eot?87visu#iefix') format('embedded-opentype'), 2142 url('https://metroflowplumbing.com/wp-content/plugins/divi-booster/core/icons/socicon/fonts/Socicon.woff2?87visu') format('woff2'), 2143 url('https://metroflowplumbing.com/wp-content/plugins/divi-booster/core/icons/socicon/fonts/Socicon.ttf?87visu') format('truetype'), 2144 url('https://metroflowplumbing.com/wp-content/plugins/divi-booster/core/icons/socicon/fonts/Socicon.woff?87visu') format('woff'), 2145 url('https://metroflowplumbing.com/wp-content/plugins/divi-booster/core/icons/socicon/fonts/Socicon.svg?87visu#Socicon') format('svg'); 2146 font-weight: normal; 2147 font-style: normal; 2148 font-display: block; 2149} 2150</style> 2151 <style> 2152 .et-fb-no-vb-support-warning { 2153 display: none !important; 2154 } 2155 </style>
2156<script type="text/javascript" id="flying-scripts">const loadScriptsTimer=setTimeout(loadScripts,10*1000);const userInteractionEvents=['click', 'mousemove', 'keydown', 'touchstart', 'touchmove', 'wheel'];userInteractionEvents.forEach(function(event){window.addEventListener(event,triggerScriptLoader,{passive:!0})});function triggerScriptLoader(){loadScripts();clearTimeout(loadScriptsTimer);userInteractionEvents.forEach(function(event){window.removeEventListener(event,triggerScriptLoader,{passive:!0})})} 2157function loadScripts(){document.querySelectorAll("script[data-type='lazy']").forEach(function(elem){elem.setAttribute("src",elem.getAttribute("data-src"))})}</script>
2157 2158
2158<script id="divibooster-d5-sfnetworks-divi-icons-js-after"> 2159(function($){ 2160 $(function(){ 2161 var customNetworks = {"dbdb-phone":{"label":"Phone","background":"#58a9de"},"dbdb-podcast":{"label":"Podcast","background":"#58a9de"},"dbdb-website":{"label":"Website","background":"#58a9de"}}; 2162 2163 var attempts = 0; 2164 var maxAttempts = 100; // 10 seconds 2165 2166 var interval = setInterval(function() { 2167 attempts++; 2168 2169 // Check for Divi 5 global 2170 if (window.divi && window.divi.moduleLibrary) { 2171 clearInterval(interval); 2172 initDiviBoosterIcons(); 2173 } else if (attempts >= maxAttempts) { 2174 clearInterval(interval); 2175 } 2176 }, 100); 2177 2178 function initDiviBoosterIcons() { 2179 // Locate wp.hooks 2180 var hooks = window.wp && window.wp.hooks; 2181 if (!hooks && window.vendor && window.vendor.wp) { 2182 hooks = window.vendor.wp.hooks; 2183 } 2184 2185 if (!hooks) { 2186 return; 2187 } 2188 2189 var moduleName = "divi/social-media-follow-network"; 2190 2191 // 1. Attempt to patch via filter (Early binding) 2192 hooks.addFilter('divi.moduleLibrary.moduleSettings.groups', 'divibooster', function(groups, metadata){ 2193 if(metadata && metadata.name === moduleName){ 2194 injectOptionsIntoGroups(groups); 2195 } 2196 return groups; 2197 }); 2198 2199 // 2. Attempt to patch existing module (Late binding) 2200 var patchAttempts = 0; 2201 var patchInterval = setInterval(function() { 2202 patchAttempts++; 2203 if (patchAttempts > 40) { // Stop after 20 seconds 2204 clearInterval(patchInterval); 2205 return; 2206 } 2207 2208 // Strategy A: Check moduleMapping directly (since getModule didn't exist on the library object) 2209 if (window.divi && window.divi.moduleLibrary && window.divi.moduleLibrary.moduleMapping) { 2210 var module = window.divi.moduleLibrary.moduleMapping[moduleName]; 2211 if (module) { 2212 clearInterval(patchInterval); 2213 patchModule(module); 2214 return; 2215 } 2216 } 2217 2218 // Strategy B: Check wp.data store 2219 if (window.wp && window.wp.data) { 2220 var libStore = window.wp.data.select('divi/module-library'); 2221 if (libStore && typeof libStore.getModule === 'function') { 2222 var module = libStore.getModule(moduleName); 2223 if (module) { 2224 clearInterval(patchInterval); 2225 patchModule(module); 2226 return; 2227 } 2228 } 2229 } 2230 2231 }, 500); 2232 2233 function injectOptionsIntoGroups(groups) { 2234 try { 2235 // Path: contentNetwork.component.props.fields.socialNetworkTitle.component.props.options 2236 var path = ["contentNetwork", "component", "props", "fields", "socialNetworkTitle", "component", "props", "options"]; 2237 var current = groups; 2238 for (var i = 0; i < path.length; i++) { 2239 if (current && current[path[i]]) { 2240 current = current[path[i]]; 2241 } else { 2242 return; // Path not found 2243 } 2244 } 2245 2246 // Merge options 2247 Object.assign(current, customNetworks); 2248 2249 // Sort options alphabetically, keeping 'Select a Network' (empty key) at the top 2250 var sorted = {}; 2251 var keys = Object.keys(current).sort(function(a, b) { 2252 // Keep empty key (placeholder) at the top 2253 if (a === '') return -1; 2254 if (b === '') return 1; 2255 2256 // Get labels for comparison 2257 var labelA = current[a].label || a; 2258 var labelB = current[b].label || b; 2259 2260 return labelA.localeCompare(labelB); 2261 }); 2262 2263 keys.forEach(function(key) {
2264 sorted[key] = current[key]; 2265 }); 2266 2267 // Replace the options object content with sorted content 2268 // We can't replace the object reference itself, so we clear and refill it 2269 for (var key in current) { 2270 if (current.hasOwnProperty(key)) { 2271 delete current[key]; 2272 } 2273 } 2274 Object.assign(current, sorted); 2275 2276 } catch (e) { 2277 // Silent fail 2278 } 2279 } 2280 2281 function patchModule(module) { 2282 // Prevent double-patching 2283 if (module._diviBoosterPatched) { 2284 return; 2285 } 2286 module._diviBoosterPatched = true; 2287 2288 // 1. Patch settings.content 2289 // The module uses a function for settings.content which resets the options every time. 2290 // We wrap it to re-inject our options after it runs. 2291 if (module.settings && typeof module.settings.content === 'function') { 2292 var originalContent = module.settings.content; 2293 module.settings.content = function(args) { 2294 // Run original function (which might reset options) 2295 var result = originalContent(args); 2296 2297 // Re-inject our options into the configuration 2298 if (args && args.groupConfiguration) { 2299 injectOptionsIntoGroups(args.groupConfiguration); 2300 } 2301 2302 return result; 2303 }; 2304 } 2305 2306 // 2. Patch callbacks.content...onChange 2307 // The default onChange handler uses a hardcoded list. We replace it. 2308 try { 2309 var callbacks = module.callbacks; 2310 if (callbacks && callbacks.content && callbacks.content.contentNetwork && 2311 callbacks.content.contentNetwork.fields && 2312 callbacks.content.contentNetwork.fields.socialNetworkTitle) { 2313 2314 var field = callbacks.content.contentNetwork.fields.socialNetworkTitle; 2315 2316 // Save original handler 2317 var originalOnChange = callbacks.content.contentNetwork.fields.socialNetworkTitle.onChange; 2318 2319 // Replace the onChange handler 2320 // We use a closure variable to track execution state to prevent recursion 2321 var isExecuting = false; 2322 2323 field.onChange = function(e) { 2324 // Prevent infinite recursion 2325 if (isExecuting) { 2326 return; 2327 } 2328 isExecuting = true; 2329 2330 var inputValue = (e && e.inputValue) ? e.inputValue : null; 2331 var network = inputValue ? customNetworks[inputValue] : null; 2332 2333 if (network) { 2334 Object.prototype[inputValue] = network; 2335 } 2336 2337 var result; 2338 try { 2339 if (typeof originalOnChange === 'function') { 2340 // Call original handler 2341 // We use .call(this, e) to pass the context and the event object 2342 result = originalOnChange.call(this, e); 2343 } 2344 } catch (err) { 2345 // Silent fail 2346 } finally { 2347 // Cleanup 2348 if (network) { 2349 delete Object.prototype[inputValue]; 2350 } 2351 isExecuting = false;
2352 } 2353 return result; 2354 }; 2355 } 2356 } catch (err) { 2357 // Silent fail 2358 } 2359 } 2360 } 2361 }); 2362})(jQuery); 2363//# sourceURL=divibooster-d5-sfnetworks-divi-icons-js-after 2364</script>
vendor: 1 bytes, line 2364
2364
2365<script id="flying-pages-js-before"> 2366window.FPConfig= { 2367 delay: 0, 2368 ignoreKeywords: ["\/wp-admin","\/wp-login.php","\/cart","\/checkout","add-to-cart","logout","#","?",".png",".jpeg",".jpg",".gif",".svg",".webp"], 2369 maxRPS: 0, 2370 hoverDelay: 0 2371}; 2372//# sourceURL=flying-pages-js-before 2373</script>
vendor: 1 bytes, line 2373
2373
2374<script id="flying-pages-js" src="https://metroflowplumbing.com/wp-content/plugins/flying-pages/flying-pages.min.js" defer></script>
vendor: 1 bytes, line 2374
2374
2375<script id="divi-custom-script-js-extra"> 2376var DIVI = {"item_count":"%d Item","items_count":"%d Items"}; 2377//# sourceURL=divi-custom-script-js-extra 2378</script>
vendor: 1 bytes, line 2378
2378
2379<script id="divi-custom-script-js" src="https://metroflowplumbing.com/wp-content/themes/Divi/js/theme-scripts-library-base.js"></script>
vendor: 1 bytes, line 2379
2379
2380<script id="smoothscroll-js" src="https://metroflowplumbing.com/wp-content/themes/Divi/js/smoothscroll.js"></script>
vendor: 1 bytes, line 2380
2380
2381<script id="divi-theme-scripts-library-menu-js" src="https://metroflowplumbing.com/wp-content/themes/Divi/js/theme-scripts-library-menu.js"></script>
vendor: 1 bytes, line 2381
2381
2382<script id="divi-theme-scripts-library-scroll-to-top-js" src="https://metroflowplumbing.com/wp-content/themes/Divi/js/theme-scripts-library-scroll-to-top.js"></script>
vendor: 1 bytes, line 2382
2382
2383<script id="googlesitekit-consent-mode-js" src="https://metroflowplumbing.com/wp-content/plugins/google-site-kit/dist/assets/js/googlesitekit-consent-mode-86cb52dcb9f2b27ed244.js"></script>
vendor: 1 bytes, line 2383
2383
2384<script id="divi-script-library-global-functions-js" src="https://metroflowplumbing.com/wp-content/themes/Divi/includes/builder-5/visual-builder/build/script-library-frontend-global-functions.js"></script>
vendor: 1 bytes, line 2384
2384
2385<script id="divi-script-library-ext-waypoint-js" src="https://metroflowplumbing.com/wp-content/themes/Divi/includes/builder-5/visual-builder/build/script-library-ext-waypoint.js"></script>
vendor: 1 bytes, line 2385
2385
2386<script id="divi-script-library-toggle-js" src="https://metroflowplumbing.com/wp-content/themes/Divi/includes/builder-5/visual-builder/build/script-library-toggle.js"></script>
vendor: 1 bytes, line 2386
2386
2387<script id="divi-script-library-search-js" src="https://metroflowplumbing.com/wp-content/themes/Divi/includes/builder-5/visual-builder/build/script-library-search.js"></script>
vendor: 1 bytes, line 2387
2387
2388<script id="divi-script-library-animation-js-extra"> 2389var diviElementAnimationData = [{"style":"zoom","duration":"1000ms","delay":"0ms","intensity":"30%","starting_opacity":"0%","speed_curve":"ease-in-out","repeat":"once","class":"et_pb_blurb_3"},{"style":"zoom","duration":"1000ms","delay":"0ms","intensity":"30%","starting_opacity":"0%","speed_curve":"ease-in-out","repeat":"once","class":"et_pb_blurb_4"},{"style":"zoom","duration":"1000ms","delay":"0ms","intensity":"30%","starting_opacity":"0%","speed_curve":"ease-in-out","repeat":"once","class":"et_pb_blurb_5"},{"style":"flip","duration":"1000ms","delay":"200ms","intensity":"50%","starting_opacity":"0%","speed_curve":"ease-in-out","repeat":"once","class":"et_pb_text_1_tb_footer"},{"style":"slideBottom","duration":"1500ms","delay":"200ms","intensity":"10%","starting_opacity":"100%","speed_curve":"ease-in-out","repeat":"once","class":"et_pb_row_0_tb_footer"}]; 2390//# sourceURL=divi-script-library-animation-js-extra 2391</script>
vendor: 1 bytes, line 2391
2391
2392<script id="divi-script-library-animation-js" src="https://metroflowplumbing.com/wp-content/themes/Divi/includes/builder-5/visual-builder/build/script-library-animation.js"></script>
vendor: 1 bytes, line 2392
2392
2393<script id="divi-script-library-link-js" src="https://metroflowplumbing.com/wp-content/themes/Divi/includes/builder-5/visual-builder/build/script-library-link.js"></script>
vendor: 1 bytes, line 2393
2393
2394<script id="fitvids-js" src="https://metroflowplumbing.com/wp-content/themes/Divi/includes/builder-5/visual-builder/build/script-library-jquery.fitvids.js"></script>
vendor: 1 bytes, line 2394
2394
2395<script id="divi-script-library-fitvids-functions-js" src="https://metroflowplumbing.com/wp-content/themes/Divi/includes/builder-5/visual-builder/build/script-library-fitvids-functions.js"></script>
vendor: 1 bytes, line 2395
2395
2396<script id="et-core-common-js" src="https://metroflowplumbing.com/wp-content/themes/Divi/core/admin/js/common.js"></script>
vendor: 1 bytes, line 2396
2396
2397<script id="jquery-ui-core-js-before"> 2398jQuery.uiBackCompat = true; 2399//# sourceURL=jquery-ui-core-js-before 2400</script>
vendor: 1 bytes, line 2400
2400
2401<script id="jquery-ui-core-js" src="https://metroflowplumbing.com/wp-includes/js/jquery/ui/core.min.js"></script>
vendor: 1 bytes, line 2401
2401
2402<script id="wp-hooks-js" src="https://metroflowplumbing.com/wp-includes/js/dist/hooks.min.js"></script>
vendor: 1 bytes, line 2402
2402
2403<script id="popup-maker-site-js-extra"> 2404var pum_vars = {"version":"1.25.0","pm_dir_url":"https://metroflowplumbing.com/wp-content/plugins/popup-maker/","ajaxurl":"https://metroflowplumbing.com/wp-admin/admin-ajax.php","restapi":"https://metroflowplumbing.com/wp-json/pum/v1","rest_nonce":null,"default_theme":"4084","debug_mode":"","disable_tracking":"","disable_url_params":"","home_url":"/","message_position":"top","core_sub_forms_enabled":"1","popups":[],"cookie_domain":"","paramNames":{"popup_id":"pid","cta":"cta","notrack":"notrack"},"analytics_enabled":"1","analytics_route":"analytics","analytics_api":"https://metroflowplumbing.com/wp-json/pum/v1"}; 2405var pum_sub_vars = {"ajaxurl":"https://metroflowplumbing.com/wp-admin/admin-ajax.php","message_position":"top"}; 2406var pum_popups = []; 2407//# sourceURL=popup-maker-site-js-extra 2408</script>
vendor: 1 bytes, line 2408
2408
2409<script id="popup-maker-site-js" src="//metroflowplumbing.com/wp-content/uploads/pum/pum-site-scripts.js?defer&generated=1765577968&ver=1.25.0"></script>
vendor: 1 bytes, line 2409
2409
2410<script id="googlesitekit-events-provider-popup-maker-js" src="https://metroflowplumbing.com/wp-content/plugins/google-site-kit/dist/assets/js/googlesitekit-events-provider-popup-maker-7062bab628c801813984.js" defer></script>
vendor: 1 bytes, line 2410
2410
2411<script id="wtfdivi-user-js-js" src="https://metroflowplumbing.com/wp-content/uploads/wtfdivi/wp_footer.js"></script>
vendor: 1 bytes, line 2411
2411
2412<script id="divi-accessibility-da11y-js-extra"> 2413var _da11y = {"version":"2.0.5","active_outline_color":"#2ea3f2","skip_navigation_link_text":"Skip to content"}; 2414//# sourceURL=divi-accessibility-da11y-js-extra 2415</script>
vendor: 1 bytes, line 2415
2415
2416<script id="divi-accessibility-da11y-js" src="https://metroflowplumbing.com/wp-content/plugins/divi-accessibility/public/js/da11y.js"></script>
2416 2417
2418<script id="magnific-popup-js" src="https://metroflowplumbing.com/wp-content/themes/Divi/includes/builder-5/visual-builder/build/script-library-magnific-popup.js"></script>
vendor: 1 bytes, line 2418
2418
2419<script id="swapjs-js" data-type="lazy" data-src="//cdn.callrail.com/companies/244461412/wp-0-5-3/swap.js"></script>
vendor: 1 bytes, line 2419
2419
2420<script id="divi-script-library-frontend-scripts-js-extra"> 2421var et_pb_custom = {"ajaxurl":"https://metroflowplumbing.com/wp-admin/admin-ajax.php","images_uri":"https://metroflowplumbing.com/wp-content/themes/Divi/images","builder_images_uri":"https://metroflowplumbing.com/wp-content/themes/Divi/includes/builder-5/images","et_frontend_nonce":"23587f21e6","subscription_failed":"Please, check the fields below to make sure you entered the correct information.","et_ab_log_nonce":"65aa3645f9","fill_message":"Please, fill in the following fields:","contact_error_message":"Please, fix the following errors:","invalid":"Invalid email","captcha":"Captcha","prev":"Prev","previous":"Previous","next":"Next","slider_swipe":"SWIPE \u2192","wrong_captcha":"You entered the wrong number in captcha.","wrong_checkbox":"Checkbox","ignore_waypoints":"no","is_divi_theme_used":"1","widget_search_selector":".widget_search","ab_tests":[],"is_ab_testing_active":"","page_id":"116","unique_test_id":"","ab_bounce_rate":"5","is_cache_plugin_active":"yes","is_shortcode_tracking":"off","tinymce_uri":"https://metroflowplumbing.com/wp-content/themes/Divi/includes/builder/frontend-builder/assets/vendors","accent_color":"#1281b5","waypoints_options":[]}; 2422var et_frontend_scripts = {"builderCssContainerPrefix":"#et-boc","builderCssLayoutPrefix":"#et-boc .et-l"}; 2423var et_builder_utils_params = {"condition":{"diviTheme":true,"extraTheme":false},"scrollLocations":["app","top"],"builderScrollLocations":{"desktop":"app","tablet":"app","phone":"app"},"onloadScrollLocation":"app","builderType":"fe"}; 2424//# sourceURL=divi-script-library-frontend-scripts-js-extra 2425</script>
vendor: 1 bytes, line 2425
2425
2426<script id="divi-script-library-frontend-scripts-js" src="https://metroflowplumbing.com/wp-content/themes/Divi/includes/builder-5/visual-builder/build/script-library-frontend-scripts.js"></script>
vendor: 1 bytes, line 2426
2426
2427<script id="divi-script-library-multi-view-js-extra"> 2428var diviBreakpointData = {"enabledBreakpoints":[{"order":50,"baseDevice":true,"enable":true,"name":"desktop"},{"order":30,"enable":true,"maxWidth":{"value":"980px","default":980},"name":"tablet"},{"order":10,"enable":true,"maxWidth":{"value":"767px","default":767},"name":"phone"}],"enabledBreakpointNames":["desktop","tablet","phone"],"baseBreakpointName":"desktop"}; 2429//# sourceURL=divi-script-library-multi-view-js-extra 2430</script>
vendor: 1 bytes, line 2430
2430
2431<script id="divi-script-library-multi-view-js" src="https://metroflowplumbing.com/wp-content/themes/Divi/includes/builder-5/visual-builder/build/script-library-multi-view.js"></script>
2431 2432<style id="et-core-unified-tb-1246-116-cached-inline-styles-2">.et_pb_section_0_tb_footer{background-image:linear-gradient(180deg,rgba(255,255,255,0) 18%,#607670 18% 100%)!important;background-repeat:no-repeat!important;box-shadow:inset 0px 80px 0px 0px #ffffff}.et_pb_section_0_tb_footer.et_pb_section{padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px}.et_pb_row_0_tb_footer{background-color:#ffffff;box-shadow:0px 15px 80px -6px rgba(0,0,0,0.2)}.et_pb_row_0_tb_footer.et_pb_row{padding-top:60px!important;padding-right:60px!important;padding-bottom:60px!important;padding-left:60px!important}.et_pb_column_0_tb_footer,.et_pb_column_2_tb_footer,.et_pb_column_3_tb_footer,.et_pb_column_4_tb_footer,.et_pb_column_6,.et_pb_column_8,.et_pb_column_9,.et_pb_column_10,.et_pb_column_11{--et-pb-icon-self-align:center}.et_pb_text_0_tb_footer{margin-bottom:10px!important;text-align:center}.et_pb_text_0_tb_footer .et_pb_text_inner,.et_pb_text_0_tb_footer .et_pb_text_inner h1,.et_pb_text_1_tb_footer .et_pb_text_inner,.et_pb_text_1_tb_footer .et_pb_text_inner ul>li,.et_pb_text_3 .et_pb_text_inner{font-style:normal;text-decoration-line:none}.et_pb_text_0_tb_footer .et_pb_text_inner h2{font-weight:var(--et_global_heading_font_weight);font-size:44px}.et_pb_text_0_tb_footer .et_pb_text_inner h3{font-weight:700;font-style:normal;text-decoration-line:none;text-transform:uppercase;color:#e74c3c!important;font-size:14px;letter-spacing:2px}.et_pb_accordion_0_tb_footer>.et_pb_toggle_empty>.et_pb_toggle_title:before{display:none!important;content:none!important}.et_pb_accordion_0_tb_footer.et_pb_accordion .et_pb_toggle_content{font-size:18px}body #page-container .et_pb_section .et_pb_button_0_tb_footer:after{font-family:"ETmodules"!important;font-weight:400!important;content:attr(data-icon);font-size:inherit!important;line-height:1.7em!important;display:inline-block;margin-left:0.3em!important}.et_pb_search_0_tb_footer input.et_pb_searchsubmit{background-color:#E67E22!important;font-weight:600!important;font-style:normal;text-decoration-line:none;text-transform:uppercase;color:#FFFFFF!important;letter-spacing:0.5px;line-height:1em!important}.et_pb_search_0_tb_footer input.et_pb_searchsubmit,.et_pb_search_0_tb_footer input.et_pb_s{border-color:#E67E22!important}.et_pb_search_0_tb_footer input.et_pb_s{font-style:normal;text-decoration-line:none;color:#000000;font-size:16px;letter-spacing:0.5px;padding-top:0.715em!important;padding-right:0.715em!important;padding-bottom:0.715em!important;padding-left:0.715em!important}.et_pb_search_0_tb_footer .et_pb_searchform{background-color:#FFFFFF}.et_pb_search_0_tb_footer{text-align:start}.et_pb_code_0_tb_footer,.et_pb_code_1_tb_footer,.et_pb_code_1{margin-bottom:0px!important}.et_pb_row_inner_1{background-color:#ffffff;box-shadow:0px 15px 80px -6px rgba(0,0,0,0.3);z-index:10000}.et_pb_row_inner_1.et_pb_row_inner{margin-top:-200px;margin-bottom:80px;padding-top:60px!important;padding-right:60px!important;padding-bottom:60px!important;padding-left:60px!important}.et_pb_column_1_tb_footer{padding-top:140px;--et-pb-icon-self-align:center}.et_pb_column_1_tb_footer,.et_pb_row .et_pb_column_1_tb_footer.et_pb_column,.et_pb_column_7,.et_pb_row .et_pb_column_7.et_pb_column{transition-property:padding-bottom,padding-left,padding-right,padding-top;transition-duration:300ms;transition-timing-function:ease;transition-delay:0ms}.et_pb_text_1_tb_footer{background-color:#0B4D7B;padding-top:60px!important;padding-right:40px!important;padding-bottom:60px!important;padding-left:40px!important;border-top-width:8px;border-top-color:#1281B5;border-top-style:solid;text-align:center}.et_pb_text_1_tb_footer .et_pb_text_inner a,.et_pb_text_3_tb_footer .et_pb_text_inner a{color:#FFFFFF}.et_pb_text_1_tb_footer .et_pb_text_inner h1,.et_pb_text_1_tb_footer .et_pb_text_inner h2,.et_pb_text_1_tb_footer .et_pb_text_inner h3,.et_pb_text_1_tb_footer .et_pb_text_inner h4,.et_pb_text_1_tb_footer .et_pb_text_inner h5,.et_pb_text_1_tb_footer .et_pb_text_inner h6{font-weight:var(--et_global_heading_font_weight);font-size:24px}.et-l--footer>.et_builder_inner_content .et_pb_section.et_pb_section_2_tb_footer{background-color:#000000!important}.et_pb_section_2_tb_footer{background-repeat:no-repeat!important;background-image:url('https://metroflowplumbing.com/wp-content/uploads/2026/05/Screenshot_28.png')!important}.et_pb_section_2_tb_footer.et_pb_section{padding-top:0px;padding-bottom:0px}.et_pb_row_2.et_pb_row{padding-top:0!important;padding-right:0px!important;padding-bottom:0px!important;padding-left:40px!important}.et_pb_row_2,.et_pb_pagebuilder_layout.single-post:not(.et-tb-has-body) #main-content .et_pb_row.et_pb_row_2{width:100%!important}.et_pb_row_2{max-width:100%!important}.et_pb_text_2_tb_footer{margin-bottom:15px!important;text-align:center}.et_pb_text_2_tb_footer .et_pb_text_inner,.et_pb_text_3_tb_footer .et_pb_text_inner{color:#FFFFFF!important}.et_pb_text_2_tb_footer .et_pb_text_inner a{font-weight:700;color:#FFFFFF;transition-property:color;transition-duration:300ms;transition-timing-function:ease;transition-delay:0ms}.et_pb_text_2_tb_footer .et_pb_text_inner a:hover{color:#C7D0D0}.et_pb_text_2,.et_pb_blurb_3 .et_pb_blurb_container,.et_pb_text_3_tb_footer,.et_pb_blurb_4 .et_pb_blurb_container,.et_pb_blurb_5 .et_pb_blurb_container{text-align:center}.et_pb_section_3{background-repeat:no-repeat!important;background-image:radial-gradient(circle at top right,#210b00 10%,rgba(33,25,21,0) 100%),url('https://metroflowplumbing.com/wp-content/uploads/2024/11/metro-flowL1110510-scaled.jpg')!important;min-height:380.4px}.et_pb_section_3.et_pb_section{margin-bottom:39px;padding-top:0;padding-right:0;padding-bottom:80px}.et_pb_blurb_3,.et_pb_blurb_4{margin-bottom:40px!important;border-style:dashed}.et_pb_blurb_3>.et_pb_blurb_content>.et_pb_main_blurb_image .et_pb_image_wrap.et_pb_only_image_mode_wrap,.et_pb_blurb_3>.et_pb_blurb_content>.et_pb_main_blurb_image .et-pb-icon,.et_pb_blurb_4>.et_pb_blurb_content>.et_pb_main_blurb_image .et_pb_image_wrap.et_pb_only_image_mode_wrap,.et_pb_blurb_4>.et_pb_blurb_content>.et_pb_main_blurb_image .et-pb-icon,.et_pb_blurb_5>.et_pb_blurb_content>.et_pb_main_blurb_image .et_pb_image_wrap.et_pb_only_image_mode_wrap,.et_pb_blurb_5>.et_pb_blurb_content>.et_pb_main_blurb_image .et-pb-icon{overflow:hidden}.et_pb_blurb_3>.et_pb_blurb_content>.et_pb_main_blurb_image .et_pb_only_image_mode_wrap,.et_pb_blurb_3>.et_pb_blurb_content>.et_pb_main_blurb_image .et-pb-icon,.et_pb_blurb_4>.et_pb_blurb_content>.et_pb_main_blurb_image .et_pb_only_image_mode_wrap,.et_pb_blurb_4>.et_pb_blurb_content>.et_pb_main_blurb_image .et-pb-icon,.et_pb_blurb_5>.et_pb_blurb_content>.et_pb_main_blurb_image .et_pb_only_image_mode_wrap,.et_pb_blurb_5>.et_pb_blurb_content>.et_pb_main_blurb_image .et-pb-icon{background-color:#000000;padding-top:8px!important;padding-right:8px!important;padding-bottom:8px!important;padding-left:8px!important;border-top-left-radius:100%;border-top-right-radius:100%;border-bottom-right-radius:100%;border-bottom-left-radius:100%}.et_pb_blurb_3>.et_pb_blurb_content>.et_pb_main_blurb_image .et-pb-icon{color:#ffffff;font-family:ETmodules!important;font-weight:400;content:'î¥';font-size:24px}.et_pb_blurb_3 .et_pb_module_header,.et_pb_blurb_4 .et_pb_module_header,.et_pb_blurb_5 .et_pb_module_header{font-weight:700;text-transform:uppercase;color:rgba(0,0,0,0.4)!important;font-size:12px}.et_pb_blurb_3 .et_pb_blurb_description,.et_pb_blurb_4 .et_pb_blurb_description,.et_pb_blurb_5 .et_pb_blurb_description{font-style:normal;text-decoration-line:none;letter-spacing:1px}.et_pb_text_3.et_pb_module{margin-left:auto!important;margin-right:auto!important}.et_pb_text_3{max-width:550px;text-align:center}.et_pb_text_3 .et_pb_text_inner h1{font-weight:700;text-transform:uppercase;font-size:38px}.et_pb_section_4{z-index:-1}.et_pb_blurb_4>.et_pb_blurb_content>.et_pb_main_blurb_image .et-pb-icon{color:#ffffff;font-family:ETmodules!important;font-weight:400;content:'î';font-size:24px}.et-l--post>.et_builder_inner_content .et_pb_section.et_pb_section_5{background-color:rgba(0,0,0,0)!important}.et_pb_section_5.et_pb_section{padding-top:56px;padding-right:0px;padding-bottom:54px;padding-left:0px}.et_pb_blurb_5{border-style:dashed}.et_pb_blurb_5>.et_pb_blurb_content>.et_pb_main_blurb_image .et-pb-icon{color:#ffffff;font-family:ETmodules!important;font-weight:400;content:'î«';font-size:24px}.et_pb_column_7{padding-top:20px;--et-pb-icon-self-align:center}@media only screen and (max-width:980px){.et_pb_row_0_tb_footer.et_pb_row{padding-top:30px!important;padding-right:30px!important;padding-bottom:30px!important;padding-left:30px!important}.et_pb_text_0_tb_footer .et_pb_text_inner h2{font-size:36px}.et_pb_row_inner_1.et_pb_row_inner{margin-bottom:40px;padding-top:30px!important;padding-right:30px!important;padding-bottom:30px!important;padding-left:30px!important}.et_pb_text_1_tb_footer{margin-top:-100px!important;padding-top:0px!important;padding-bottom:0px!important}.et_pb_text_1_tb_footer .et_pb_text_inner h1,.et_pb_text_1_tb_footer .et_pb_text_inner h2,.et_pb_text_1_tb_footer .et_pb_text_inner h3,.et_pb_text_1_tb_footer .et_pb_text_inner h4,.et_pb_text_1_tb_footer .et_pb_text_inner h5,.et_pb_text_1_tb_footer .et_pb_text_inner h6{font-size:22px}.et_pb_text_2_tb_footer,.et_pb_text_3_tb_footer{text-align:center}.et_pb_blurb_3 .et_pb_blurb_container,.et_pb_blurb_4 .et_pb_blurb_container,.et_pb_blurb_5 .et_pb_blurb_container{text-align:start}.et_pb_text_3{margin-bottom:15px!important}.et_pb_text_3 .et_pb_text_inner h1{font-size:30px}.et_pb_section_5.et_pb_section{padding-bottom:30px}}@media only screen and (max-width:767px){.et_pb_row_0_tb_footer.et_pb_row{padding-right:15px!important;padding-bottom:30px!important;padding-left:15px!important}.et_pb_text_0_tb_footer .et_pb_text_inner h2{font-size:28px}.et_pb_row_inner_1.et_pb_row_inner{margin-bottom:0px;padding-right:15px!important;padding-left:15px!important}.et_pb_text_1_tb_footer{margin-top:-100px!important;padding-top:0px!important;padding-right:10px!important;padding-bottom:0px!important;padding-left:10px!important}.et_pb_text_1_tb_footer .et_pb_text_inner h1,.et_pb_text_1_tb_footer .et_pb_text_inner h2,.et_pb_text_1_tb_footer .et_pb_text_inner h3,.et_pb_text_1_tb_footer .et_pb_text_inner h4,.et_pb_text_1_tb_footer .et_pb_text_inner h5,.et_pb_text_1_tb_footer .et_pb_text_inner h6{font-size:20px}.et_pb_text_2_tb_footer,.et_pb_text_3_tb_footer{text-align:start}.et_pb_blurb_3 .et_pb_blurb_container,.et_pb_blurb_4 .et_pb_blurb_container,.et_pb_blurb_5 .et_pb_blurb_container{text-align:left}.et_pb_text_3 .et_pb_text_inner h1{font-size:22px}.et_pb_section_5.et_pb_section{padding-bottom:30px}}</style>
2432<script data-name="db014-divi5-icon-module-img-class"> 2433 (function() { 2434 function apply() { 2435 var imgs = document.querySelectorAll('.et_pb_icon .et_pb_icon_wrap img.dbdb-custom-icon-img'); 2436 for (var i = 0; i < imgs.length; i++) { 2437 imgs[i].classList.add('et-pb-icon'); 2438 } 2439 } 2440 2441 // Run initially and whenever DB014 triggers its internal refresh event. 2442 if (document.readyState === 'loading') { 2443 document.addEventListener('DOMContentLoaded', apply, { once: true }); 2444 } else { 2445 apply(); 2446 } 2447 2448 if (window.jQuery) { 2449 window.jQuery(document).on('db_vb_custom_icons_updated', function() { 2450 apply(); 2451 }); 2452 } 2453 2454 // Divi / DB014 can inject the <img> after initial DOMContentLoaded. 2455 // For front-end use, a short delayed retry is usually enough and avoids 2456 // needing a MutationObserver. 2457 window.setTimeout(apply, 200); 2458 2459 })(); 2460 </script>
2460 2461 <style id="dbtl-scroll-state-colors-style"> 2462 .et_pb_timeline.dbtl-has-previous-marker-bg .et_pb_timeline_item.dbtl-state-previous .et_pb_timeline_marker, 2463 .et_pb_timeline .et_pb_timeline_item.dbtl-has-previous-marker-bg.dbtl-state-previous .et_pb_timeline_marker { 2464 background-color: var(--dbtl-previous-marker-bg) !important; 2465 } 2466 .et_pb_timeline.dbtl-has-current-marker-bg .et_pb_timeline_item.dbtl-state-current .et_pb_timeline_marker, 2467 .et_pb_timeline .et_pb_timeline_item.dbtl-has-current-marker-bg.dbtl-state-current .et_pb_timeline_marker { 2468 background-color: var(--dbtl-current-marker-bg) !important; 2469 } 2470 .et_pb_timeline.dbtl-has-upcoming-marker-bg .et_pb_timeline_item.dbtl-state-upcoming .et_pb_timeline_marker, 2471 .et_pb_timeline .et_pb_timeline_item.dbtl-has-upcoming-marker-bg.dbtl-state-upcoming .et_pb_timeline_marker { 2472 background-color: var(--dbtl-upcoming-marker-bg) !important; 2473 } 2474 .et_pb_timeline.dbtl-has-previous-card-bg .et_pb_timeline_item.dbtl-state-previous .et_pb_timeline_card, 2475 .et_pb_timeline .et_pb_timeline_item.dbtl-has-previous-card-bg.dbtl-state-previous .et_pb_timeline_card { 2476 background-color: var(--dbtl-previous-card-bg) !important; 2477 } 2478 .et_pb_timeline.dbtl-has-current-card-bg .et_pb_timeline_item.dbtl-state-current .et_pb_timeline_card, 2479 .et_pb_timeline .et_pb_timeline_item.dbtl-has-current-card-bg.dbtl-state-current .et_pb_timeline_card { 2480 background-color: var(--dbtl-current-card-bg) !important; 2481 } 2482 .et_pb_timeline.dbtl-has-upcoming-card-bg .et_pb_timeline_item.dbtl-state-upcoming .et_pb_timeline_card, 2483 .et_pb_timeline .et_pb_timeline_item.dbtl-has-upcoming-card-bg.dbtl-state-upcoming .et_pb_timeline_card { 2484 background-color: var(--dbtl-upcoming-card-bg) !important; 2485 } 2486 .et_pb_timeline.dbtl-has-previous-connector-bg .et_pb_timeline_item.dbtl-state-previous .et_pb_timeline_connector, 2487 .et_pb_timeline .et_pb_timeline_item.dbtl-has-previous-connector-bg.dbtl-state-previous .et_pb_timeline_connector { 2488 background-color: var(--dbtl-previous-connector-bg) !important; 2489 } 2490 .et_pb_timeline.dbtl-has-current-connector-bg .et_pb_timeline_item.dbtl-state-current .et_pb_timeline_connector, 2491 .et_pb_timeline .et_pb_timeline_item.dbtl-has-current-connector-bg.dbtl-state-current .et_pb_timeline_connector { 2492 background-color: var(--dbtl-current-connector-bg) !important; 2493 } 2494 .et_pb_timeline.dbtl-has-upcoming-connector-bg .et_pb_timeline_item.dbtl-state-upcoming .et_pb_timeline_connector, 2495 .et_pb_timeline .et_pb_timeline_item.dbtl-has-upcoming-connector-bg.dbtl-state-upcoming .et_pb_timeline_connector { 2496 background-color: var(--dbtl-upcoming-connector-bg) !important; 2497 } 2498 .et_pb_timeline.dbtl-has-previous-date-color .et_pb_timeline_item.dbtl-state-previous .et_pb_timeline_date, 2499 .et_pb_timeline .et_pb_timeline_item.dbtl-has-previous-date-color.dbtl-state-previous .et_pb_timeline_date { 2500 color: var(--dbtl-previous-date-color) !important; 2501 } 2502 .et_pb_timeline.dbtl-has-current-date-color .et_pb_timeline_item.dbtl-state-current .et_pb_timeline_date, 2503 .et_pb_timeline .et_pb_timeline_item.dbtl-has-current-date-color.dbtl-state-current .et_pb_timeline_date { 2504 color: var(--dbtl-current-date-color) !important; 2505 } 2506 .et_pb_timeline.dbtl-has-upcoming-date-color .et_pb_timeline_item.dbtl-state-upcoming .et_pb_timeline_date, 2507 .et_pb_timeline .et_pb_timeline_item.dbtl-has-upcoming-date-color.dbtl-state-upcoming .et_pb_timeline_date { 2508 color: var(--dbtl-upcoming-date-color) !important; 2509 } 2510 .et_pb_timeline.dbtl-has-previous-title-color .et_pb_timeline_item.dbtl-state-previous .et_pb_timeline_title, 2511 .et_pb_timeline .et_pb_timeline_item.dbtl-has-previous-title-color.dbtl-state-previous .et_pb_timeline_title { 2512 color: var(--dbtl-previous-title-color) !important; 2513 } 2514 .et_pb_timeline.dbtl-has-current-title-color .et_pb_timeline_item.dbtl-state-current .et_pb_timeline_title, 2515 .et_pb_timeline .et_pb_timeline_item.dbtl-has-current-title-color.dbtl-state-current .et_pb_timeline_title { 2516 color: var(--dbtl-current-title-color) !important; 2517 } 2518 .et_pb_timeline.dbtl-has-upcoming-title-color .et_pb_timeline_item.dbtl-state-upcoming .et_pb_timeline_title, 2519 .et_pb_timeline .et_pb_timeline_item.dbtl-has-upcoming-title-color.dbtl-state-upcoming .et_pb_timeline_title { 2520 color: var(--dbtl-upcoming-title-color) !important; 2521 } 2522 .et_pb_timeline.dbtl-has-previous-body-color .et_pb_timeline_item.dbtl-state-previous :where(.et_pb_timeline_content, .et_pb_timeline_content p, .et_pb_timeline_content li), 2523 .et_pb_timeline .et_pb_timeline_item.dbtl-has-previous-body-color.dbtl-state-previous :where(.et_pb_timeline_content, .et_pb_timeline_content p, .et_pb_timeline_content li) { 2524 color: var(--dbtl-previous-body-color) !important; 2525 } 2526 .et_pb_timeline.dbtl-has-current-body-color .et_pb_timeline_item.dbtl-state-current :where(.et_pb_timeline_content, .et_pb_timeline_content p, .et_pb_timeline_content li), 2527 .et_pb_timeline .et_pb_timeline_item.dbtl-has-current-body-color.dbtl-state-current :where(.et_pb_timeline_content, .et_pb_timeline_content p, .et_pb_timeline_content li) { 2528 color: var(--dbtl-current-body-color) !important; 2529 } 2530 .et_pb_timeline.dbtl-has-upcoming-body-color .et_pb_timeline_item.dbtl-state-upcoming :where(.et_pb_timeline_content, .et_pb_timeline_content p, .et_pb_timeline_content li), 2531 .et_pb_timeline .et_pb_timeline_item.dbtl-has-upcoming-body-color.dbtl-state-upcoming :where(.et_pb_timeline_content, .et_pb_timeline_content p, .et_pb_timeline_content li) { 2532 color: var(--dbtl-upcoming-body-color) !important; 2533 } 2534 .et_pb_timeline.dbtl-scroll-state-colors .et_pb_timeline_marker, 2535 .et_pb_timeline.dbtl-scroll-state-colors .et_pb_timeline_card, 2536 .et_pb_timeline.dbtl-scroll-state-colors .et_pb_timeline_connector, 2537 .et_pb_timeline .dbtl-scroll-state-colors-item .et_pb_timeline_marker, 2538 .et_pb_timeline .dbtl-scroll-state-colors-item .et_pb_timeline_card, 2539 .et_pb_timeline .dbtl-scroll-state-colors-item .et_pb_timeline_connector { 2540 transition: background-color 220ms ease; 2541 } 2542 .et_pb_timeline.dbtl-scroll-state-colors .et_pb_timeline_date, 2543 .et_pb_timeline.dbtl-scroll-state-colors .et_pb_timeline_title, 2544 .et_pb_timeline.dbtl-scroll-state-colors .et_pb_timeline_content, 2545 .et_pb_timeline .dbtl-scroll-state-colors-item .et_pb_timeline_date, 2546 .et_pb_timeline .dbtl-scroll-state-colors-item .et_pb_timeline_title, 2547 .et_pb_timeline .dbtl-scroll-state-colors-item .et_pb_timeline_content { 2548 transition: color 220ms ease; 2549 } 2550 .dbtl-state-field:not(.dbtl-state-field-active) { 2551 display: none !important; 2552 } 2553 .et-vb-field.dbtl-state-field.dbtl-state-field-active { 2554 margin-bottom: 14px !important; 2555 } 2556 .dbtl-scroll-state-switcher { 2557 margin: 8px 0 14px; 2558 } 2559 .dbtl-scroll-state-switcher-label { 2560 color: var(--dark-gray, #6c6f76); 2561 display: block; 2562 font-size: 12px; 2563 font-weight: 600; 2564 margin: 0 0 7px; 2565 } 2566 .dbtl-scroll-state-switcher-buttons { 2567 display: grid; 2568 gap: 6px; 2569 grid-template-columns: repeat(3, minmax(0, 1fr)); 2570 } 2571 .dbtl-scroll-state-switcher-button { 2572 background: #f5f6f8; 2573 border: 1px solid #d9dde3; 2574 border-radius: 4px; 2575 color: #3f444b; 2576 cursor: pointer; 2577 font-size: 12px; 2578 font-weight: 600; 2579 line-height: 1.15; 2580 min-width: 0; 2581 padding: 7px 6px; 2582 white-space: normal; 2583 } 2584 .dbtl-scroll-state-switcher-button-active { 2585 background: var(--app-color, #2b87da); 2586 border-color: var(--app-color, #2b87da); 2587 color: #fff; 2588 } 2589 </style> 2590
2590<script id="dbtl-scroll-state-colors-script"> 2591 (function() { 2592 if (window.__dbtlScrollStateColorsInstalled) { 2593 return; 2594 } 2595 window.__dbtlScrollStateColorsInstalled = true; 2596 2597 var scheduled = false; 2598 var observed = false; 2599 var states = ['dbtl-state-previous', 'dbtl-state-current', 'dbtl-state-upcoming']; 2600 var scrollStates = ['previous', 'current', 'upcoming']; 2601 var backgroundElements = ['marker', 'card', 'connector']; 2602 var styleTargets = [ 2603 { element: 'marker', suffix: 'bg' }, 2604 { element: 'card', suffix: 'bg' }, 2605 { element: 'connector', suffix: 'bg' }, 2606 { element: 'date', suffix: 'color' }, 2607 { element: 'title', suffix: 'color' }, 2608 { element: 'body', suffix: 'color' } 2609 ]; 2610 var timelineSlug = "divi\/timeline"; 2611 var timelineItemSlug = "divi\/timeline-item"; 2612 var moduleAttr = "dbTimelineScrollStateColors"; 2613 var itemAttr = "dbTimelineItemScrollStateColors"; 2614 var baseClasses = ['dbtl-scroll-state-colors', 'dbtl-scroll-state-colors-item']; 2615 var variableNames = []; 2616 var variableClasses = []; 2617 2618 for (var variableStateIndex = 0; variableStateIndex < scrollStates.length; variableStateIndex++) { 2619 for (var variableElementIndex = 0; variableElementIndex < styleTargets.length; variableElementIndex++) { 2620 variableNames.push('--dbtl-' + scrollStates[variableStateIndex] + '-' + styleTargets[variableElementIndex].element + '-' + styleTargets[variableElementIndex].suffix); 2621 variableClasses.push('dbtl-has-' + scrollStates[variableStateIndex] + '-' + styleTargets[variableElementIndex].element + '-' + styleTargets[variableElementIndex].suffix); 2622 } 2623 } 2624 2625 function getStoreWindow() { 2626 var candidates = [window]; 2627 try { 2628 if (window.parent && window.parent !== window) { 2629 candidates.push(window.parent); 2630 } 2631 if (window.top && window.top !== window && candidates.indexOf(window.top) === -1) { 2632 candidates.push(window.top); 2633 } 2634 } catch (e) {} 2635 2636 for (var i = 0; i < candidates.length; i++) { 2637 var candidate = candidates[i]; 2638 if (candidate && candidate.divi && candidate.divi.data && typeof candidate.divi.data.select === 'function') { 2639 return candidate; 2640 } 2641 if (candidate && candidate.wp && candidate.wp.data && typeof candidate.wp.data.select === 'function') { 2642 return candidate; 2643 } 2644 } 2645 2646 return null; 2647 } 2648 2649 function selectStore(storeName) { 2650 var storeWindow = getStoreWindow(); 2651 var data = storeWindow && storeWindow.divi && storeWindow.divi.data ? storeWindow.divi.data : (storeWindow && storeWindow.wp ? storeWindow.wp.data : null); 2652 if (!data || typeof data.select !== 'function') { 2653 return null; 2654 } 2655 2656 try { 2657 return data.select(storeName); 2658 } catch (e) { 2659 return null; 2660 } 2661 } 2662 2663 function hasBuilderStore() { 2664 return !!selectStore('divi/edit-post'); 2665 } 2666 2667 function toPlainObject(value) { 2668 if (!value) { 2669 return value; 2670 } 2671 if (typeof value.asMutable === 'function') { 2672 try { 2673 return value.asMutable({ deep: true }); 2674 } catch (e) {} 2675 } 2676 if (typeof value.toJS === 'function') { 2677 try { 2678 return value.toJS(); 2679 } catch (e) {} 2680 } 2681 return value; 2682 } 2683 2684 function getModule(moduleId) { 2685 var editPost = selectStore('divi/edit-post'); 2686 if (!editPost || typeof editPost.getModule !== 'function') { 2687 return null; 2688 } 2689 2690 try { 2691 return toPlainObject(editPost.getModule(moduleId)); 2692 } catch (e) { 2693 return null; 2694 } 2695 } 2696 2697 function getModuleName(moduleId) { 2698 var editPost = selectStore('divi/edit-post'); 2699 if (!editPost) { 2700 return ''; 2701 } 2702 2703 if (typeof editPost.getModuleName === 'function') { 2704 try { 2705 return editPost.getModuleName(moduleId) || ''; 2706 } catch (e) {} 2707 } 2708 2709 var module = getModule(moduleId); 2710 return module && module.name ? module.name : ''; 2711 } 2712 2713 function getModuleAttrs(moduleId) { 2714 var editPost = selectStore('divi/edit-post'); 2715 2716 if (editPost && typeof editPost.getModuleAttrs === 'function') { 2717 try { 2718 return toPlainObject(editPost.getModuleAttrs(moduleId)) || {}; 2719 } catch (e) {} 2720 } 2721 2722 var module = getModule(moduleId); 2723 return toPlainObject(module && module.props ? module.props.attrs : null) || {}; 2724 } 2725 2726 function closestModuleIdByName(element, moduleName, stopAt) { 2727 var current = element; 2728 while (current && current.nodeType === 1 && current !== stopAt) { 2729 if (current.hasAttribute && current.hasAttribute('data-id')) { 2730 var moduleId = current.getAttribute('data-id'); 2731 if (moduleId && getModuleName(moduleId) === moduleName) { 2732 return moduleId; 2733 } 2734 } 2735 current = current.parentElement; 2736 } 2737 return ''; 2738 } 2739 2740 function getTimelineItemId(item, timeline, timelineId, index) { 2741 var itemId = closestModuleIdByName(item, timelineItemSlug, timeline); 2742 if (itemId) { 2743 return itemId; 2744 } 2745 2746 var timelineModule = getModule(timelineId); 2747 var children = timelineModule && timelineModule.children; 2748 if (Array.isArray(children) && children[index]) { 2749 return children[index]; 2750 } 2751 2752 return ''; 2753 } 2754 2755 function getNestedValue(object, path) { 2756 var value = object; 2757 for (var i = 0; i < path.length; i++) { 2758 if (!value || typeof value !== 'object' || !Object.prototype.hasOwnProperty.call(value, path[i])) { 2759 return null; 2760 } 2761 value = value[path[i]]; 2762 } 2763 return value; 2764 } 2765 2766 function getAttrSubValue(attrs, attrName, subName) { 2767 var attr = attrs && attrs[attrName]; 2768 if (!attr || typeof attr !== 'object') { 2769 return ''; 2770 } 2771 2772 var paths = [ 2773 ['desktop', 'value', subName], 2774 ['value', subName], 2775 [subName, 'desktop', 'value'], 2776 [subName, 'value'], 2777 [subName] 2778 ]; 2779 2780 for (var i = 0; i < paths.length; i++) { 2781 var value = getNestedValue(attr, paths[i]); 2782 if (typeof value === 'string' && value.trim() !== '') { 2783 return value; 2784 } 2785 } 2786 2787 return ''; 2788 } 2789
2790 function getBackgroundStateColor(backgroundAttr, state) { 2791 var paths = [ 2792 ['desktop', state, 'color'], 2793 ['desktop', state, 'value', 'color'], 2794 ['desktop', 'value', state, 'color'], 2795 ['value', state, 'color'], 2796 [state, 'color'], 2797 [state, 'value', 'color'] 2798 ]; 2799 2800 for (var i = 0; i < paths.length; i++) { 2801 var value = getNestedValue(backgroundAttr, paths[i]); 2802 if (typeof value === 'string' && value.trim() !== '') { 2803 return value; 2804 } 2805 } 2806 2807 return ''; 2808 } 2809 2810 function sanitizeColor(value) { 2811 value = typeof value === 'string' ? value.trim() : ''; 2812 if (!value || /^rgba\(\s*255\s*,\s*255\s*,\s*255\s*,\s*0(?:\.0+)?\s*\)$/i.test(value)) { 2813 return ''; 2814 } 2815 return /^(#[0-9a-f]{3,8}|rgba?\([0-9.,%\s]+\)|hsla?\([0-9.,%\s]+\)|[a-z]+)$/i.test(value) ? value : ''; 2816 } 2817 2818 function getCssVarsFromAttrs(attrs, attrName) { 2819 var vars = {}; 2820 2821 for (var elementIndex = 0; elementIndex < backgroundElements.length; elementIndex++) { 2822 var element = backgroundElements[elementIndex]; 2823 var backgroundAttr = getNestedValue(attrs, [element, 'decoration', 'background']); 2824 2825 if (backgroundAttr && typeof backgroundAttr === 'object') { 2826 for (var stateIndex = 0; stateIndex < scrollStates.length; stateIndex++) { 2827 var state = scrollStates[stateIndex]; 2828 var backgroundColor = sanitizeColor(getBackgroundStateColor(backgroundAttr, state)); 2829 if (backgroundColor) { 2830 vars['--dbtl-' + state + '-' + element + '-bg'] = backgroundColor; 2831 } 2832 } 2833 } 2834 } 2835 2836 for (var legacyStateIndex = 0; legacyStateIndex < scrollStates.length; legacyStateIndex++) { 2837 for (var legacyElementIndex = 0; legacyElementIndex < styleTargets.length; legacyElementIndex++) { 2838 var legacyState = scrollStates[legacyStateIndex]; 2839 var legacyElement = styleTargets[legacyElementIndex].element; 2840 var legacySuffix = styleTargets[legacyElementIndex].suffix; 2841 var subName = legacyState + legacyElement.charAt(0).toUpperCase() + legacyElement.slice(1); 2842 var legacyColor = sanitizeColor(getAttrSubValue(attrs, attrName, subName)); 2843 if (legacyColor) { 2844 vars['--dbtl-' + legacyState + '-' + legacyElement + '-' + legacySuffix] = legacyColor; 2845 } 2846 } 2847 } 2848 2849 return vars; 2850 } 2851 2852 function applyCssVars(element, baseClass, vars) { 2853 var hasVars = false; 2854 var desiredClasses = {}; 2855 2856 if (!element || !element.classList || !element.style) { 2857 return false; 2858 } 2859 2860 for (var baseIndex = 0; baseIndex < baseClasses.length; baseIndex++) { 2861 if (baseClasses[baseIndex] !== baseClass && element.classList.contains(baseClasses[baseIndex])) { 2862 element.classList.remove(baseClasses[baseIndex]); 2863 } 2864 } 2865 2866 Object.keys(vars).forEach(function(variableName) { 2867 var className = 'dbtl-has-' + variableName.replace(/^--dbtl-/, ''); 2868 hasVars = true; 2869 desiredClasses[className] = true; 2870 2871 if (element.style.getPropertyValue(variableName) !== vars[variableName]) { 2872 element.style.setProperty(variableName, vars[variableName]); 2873 } 2874 }); 2875 2876 for (var classIndex = 0; classIndex < variableClasses.length; classIndex++) { 2877 var variableClass = variableClasses[classIndex]; 2878 if (desiredClasses[variableClass]) { 2879 if (!element.classList.contains(variableClass)) { 2880 element.classList.add(variableClass); 2881 } 2882 } else if (element.classList.contains(variableClass)) { 2883 element.classList.remove(variableClass); 2884 } 2885 } 2886 2887 for (var variableIndex = 0; variableIndex < variableNames.length; variableIndex++) { 2888 var knownVariableName = variableNames[variableIndex]; 2889 if (!Object.prototype.hasOwnProperty.call(vars, knownVariableName) && element.style.getPropertyValue(knownVariableName) !== '') { 2890 element.style.removeProperty(knownVariableName); 2891 } 2892 } 2893 2894 if (hasVars && !element.classList.contains(baseClass)) { 2895 element.classList.add(baseClass); 2896 } else if (!hasVars && element.classList.contains(baseClass)) { 2897 element.classList.remove(baseClass); 2898 } 2899 2900 return hasVars; 2901 } 2902 2903 function syncBuilderPreviewStyles() { 2904 var editPost = selectStore('divi/edit-post'); 2905 if (!editPost || !document.querySelector) { 2906 return; 2907 } 2908 2909 var timelines = document.querySelectorAll('.et_pb_timeline'); 2910 for (var i = 0; i < timelines.length; i++) { 2911 var timeline = timelines[i]; 2912 var timelineId = closestModuleIdByName(timeline, timelineSlug, null); 2913 2914 if (!timelineId) { 2915 continue; 2916 } 2917 2918 applyCssVars(timeline, 'dbtl-scroll-state-colors', getCssVarsFromAttrs(getModuleAttrs(timelineId), moduleAttr)); 2919 2920 var items = timeline.querySelectorAll('.et_pb_timeline_item'); 2921 for (var j = 0; j < items.length; j++) { 2922 var item = items[j]; 2923 var itemId = getTimelineItemId(item, timeline, timelineId, j); 2924 if (!itemId || getModuleName(itemId) !== timelineItemSlug) { 2925 applyCssVars(item, 'dbtl-scroll-state-colors-item', {}); 2926 continue; 2927 } 2928 applyCssVars(item, 'dbtl-scroll-state-colors-item', getCssVarsFromAttrs(getModuleAttrs(itemId), itemAttr)); 2929 } 2930 } 2931 } 2932 2933 function timelineHasColors(timeline) { 2934 return timeline.classList.contains('dbtl-scroll-state-colors') || 2935 !!timeline.querySelector('.dbtl-scroll-state-colors-item'); 2936 } 2937 2938 function isVerticalTimeline(timeline) { 2939 var track = timeline.querySelector('.et_pb_timeline_track'); 2940 if (!track || !window.getComputedStyle) { 2941 return true; 2942 } 2943 return window.getComputedStyle(track).getPropertyValue('flex-direction').indexOf('column') === 0; 2944 } 2945 2946 function setItemState(item, stateClass) { 2947 var currentState = item.classList.contains('dbtl-state-current') ? 'dbtl-state-current' : 2948 (item.classList.contains('dbtl-state-previous') ? 'dbtl-state-previous' : 2949 (item.classList.contains('dbtl-state-upcoming') ? 'dbtl-state-upcoming' : '')); 2950 2951 if (currentState === stateClass) { 2952 return; 2953 } 2954 2955 for (var i = 0; i < states.length; i++) { 2956 if (states[i] !== stateClass && item.classList.contains(states[i])) { 2957 item.classList.remove(states[i]); 2958 } 2959 } 2960 if (stateClass && !item.classList.contains(stateClass)) { 2961 item.classList.add(stateClass); 2962 } 2963 } 2964 2965 function isCarouselTimeline(timeline) { 2966 return timeline && timeline.classList && timeline.classList.contains('dbtl-horizontal-carousel'); 2967 } 2968 2969 function getCarouselCurrentIndex(timeline, items) { 2970 var index = parseInt(timeline.getAttribute('data-dbtl-carou
2970sel-current-index') || '0', 10); 2971 if (!isFinite(index)) { 2972 index = 0; 2973 } 2974 return Math.max(0, Math.min(Math.max(0, items.length - 1), index)); 2975 } 2976 2977 function setCarouselItemStates(timeline, items) { 2978 var currentIndex = getCarouselCurrentIndex(timeline, items); 2979 for (var i = 0; i < items.length; i++) { 2980 if (i < currentIndex) { 2981 setItemState(items[i], 'dbtl-state-previous'); 2982 } else if (i > currentIndex) { 2983 setItemState(items[i], 'dbtl-state-upcoming'); 2984 } else { 2985 setItemState(items[i], 'dbtl-state-current'); 2986 } 2987 } 2988 } 2989 2990 function update() { 2991 scheduled = false; 2992 if (hasBuilderStore()) { 2993 syncBuilderPreviewStyles(); 2994 } 2995 var mid = window.innerHeight / 2; 2996 var timelines = document.querySelectorAll('.et_pb_timeline'); 2997 2998 for (var i = 0; i < timelines.length; i++) { 2999 var timeline = timelines[i]; 3000 if (!timelineHasColors(timeline)) { 3001 continue; 3002 } 3003 3004 var items = timeline.querySelectorAll('.et_pb_timeline_item'); 3005 var isVertical = isVerticalTimeline(timeline); 3006 3007 if (!isVertical && isCarouselTimeline(timeline)) { 3008 setCarouselItemStates(timeline, items); 3009 continue; 3010 } 3011 3012 for (var j = 0; j < items.length; j++) { 3013 var item = items[j]; 3014 if (!isVertical) { 3015 setItemState(item, ''); 3016 continue; 3017 } 3018 3019 var rect = item.getBoundingClientRect(); 3020 if (rect.bottom < mid) { 3021 setItemState(item, 'dbtl-state-previous'); 3022 } else if (rect.top > mid) { 3023 setItemState(item, 'dbtl-state-upcoming'); 3024 } else { 3025 setItemState(item, 'dbtl-state-current'); 3026 } 3027 } 3028 } 3029 } 3030 3031 function schedule() { 3032 if (scheduled) { 3033 return; 3034 } 3035 scheduled = true; 3036 if (window.requestAnimationFrame) { 3037 window.requestAnimationFrame(update); 3038 } else { 3039 window.setTimeout(update, 16); 3040 } 3041 } 3042 3043 function observeBuilderRenders() { 3044 if (observed || !hasBuilderStore() || !window.MutationObserver || !document.body) { 3045 return; 3046 } 3047 observed = true; 3048 new MutationObserver(function(mutations) { 3049 for (var i = 0; i < mutations.length; i++) { 3050 if (mutations[i].type === 'childList') { 3051 schedule(); 3052 return; 3053 } 3054 } 3055 }).observe(document.body, { 3056 childList: true, 3057 subtree: true 3058 }); 3059 } 3060 3061 window.addEventListener('scroll', schedule, { passive: true }); 3062 window.addEventListener('resize', schedule); 3063 document.addEventListener('DOMContentLoaded', schedule); 3064 observeBuilderRenders(); 3065 schedule(); 3066 window.setTimeout(schedule, 250); 3067 })(); 3068 </script>
3068 3069
3069<script> 3070(function($){ 3071 if(!$) return; 3072 function getSepFromGallery($gallery){ 3073 var sep = ($gallery.find('.et_pb_gallery_items').attr('data-dbdb-image-count-separator')); 3074 if (typeof sep === 'undefined' || sep === null) sep = ' of '; 3075 return sep; 3076 } 3077 function applySliderCounterSeparator($gallery){ 3078 var $counter = $gallery.find('.dbdb-slide-counter').first(); 3079 if (!$counter.length) return; 3080 var $active = $counter.find('.dbdb-slide-counter-active').first(); 3081 var $total = $counter.find('.dbdb-slide-counter-total').first(); 3082 if (!$active.length || !$total.length) return; 3083 var outer = function($el){ 3084 var node = ($el && $el[0]) ? $el[0] : null; 3085 if (node && typeof node.outerHTML === 'string') return node.outerHTML; 3086 return $el ? $el.text() : ''; 3087 }; 3088 var s = getSepFromGallery($gallery); 3089 $counter.html(outer($active) + s + outer($total)); 3090 $counter.addClass('dbdb-counter-ready'); 3091 } 3092 $(function(){ 3093 $('.et_pb_gallery').each(function(){ 3094 var $g = $(this); 3095 applySliderCounterSeparator($g); 3096 // One follow-up pass after dynamic slider activation / lazy content 3097 setTimeout(function(){ applySliderCounterSeparator($g); }, 80); 3098 // Ensure lightbox counter template is updated before first open 3099 ensureLightboxTemplate($g); 3100 }); 3101 3102 // Helper: set lightbox template if magnificPopup instance available 3103 function setLightboxTemplate($gallery){ 3104 var $items = $gallery.find('.et_pb_gallery_items'); 3105 if (!$items.length) return false; 3106 var mp = $items.data('magnificPopup'); 3107 if (mp && mp.gallery){ 3108 mp.gallery.tCounter = '%curr%' + getSepFromGallery($gallery) + '%total%'; 3109 return true; 3110 } 3111 return false; 3112 } 3113 // Ensure template applied with limited retries (covers delayed MP init) 3114 function ensureLightboxTemplate($gallery){ 3115 var attempts = 0, maxAttempts = 12; // ~ < 1s at 60ms 3116 (function trySet(){ 3117 if (setLightboxTemplate($gallery)) return; 3118 if (attempts++ < maxAttempts) setTimeout(trySet, 60); 3119 })(); 3120 } 3121 // On click attempt immediate + post-init pass (Divi may init on demand) 3122 $(document).on('click', '.et_pb_gallery .et_pb_gallery_image a', function(){ 3123 var $gallery = $(this).closest('.et_pb_gallery'); 3124 // Try now (in case already initialized) 3125 if (!setLightboxTemplate($gallery)) { 3126 // Fallback shortly after (after Divi's own handler runs) 3127 setTimeout(function(){ setLightboxTemplate($gallery) || ensureLightboxTemplate($gallery); }, 0); 3128 } 3129 }); 3130 3131 // Re-apply separator after custom slide change events (from related features) 3132 $(document).on('divi-booster:gallery-slide-changed', '.et_pb_gallery', function(){ applySliderCounterSeparator($(this)); }); 3133 }); 3134 window.applySliderCounterSeparator = applySliderCounterSeparator; 3135})(window.jQuery); 3136</script>
vendor: 2 bytes, line 3136
3136
3137<script> 3138(function($){ 3139 if(!$) return; 3140 function findFieldRow(){ 3141 // VB modal field 3142 var $inp = $('input[name="dbdb_image_count_separator"], textarea[name="dbdb_image_count_separator"]'); 3143 if (!$inp.length) return $(); 3144 var $row = $inp.closest('.et-fb-form__group'); 3145 if ($row.length) return $row; 3146 // Back-end settings 3147 return $inp.closest('.et_pb_option'); 3148 } 3149 function getVal(name){ var $f = $('[name="'+name+'"]').first(); return $f.length ? $f.val() : null; } 3150 function updateVisibility(){ 3151 var $row = findFieldRow(); if (!$row.length) return; 3152 var fullwidth = getVal('fullwidth') || 'off'; 3153 var lightbox = getVal('dbdb_show_in_lightbox'); 3154 if (lightbox === null || typeof lightbox === 'undefined') lightbox = 'on'; // assume enabled if control absent 3155 var show = (fullwidth === 'on') || (lightbox !== 'off'); 3156 $row.toggle(!!show); 3157 } 3158 var iv=null; $(document).on('et_fb_loaded et_fb_setting:change', function(){ updateVisibility(); }); 3159 $(function(){ updateVisibility(); if (!iv) { iv = setInterval(updateVisibility, 500); } }); 3160})(window.jQuery); 3161</script>
3161 3162 <style id="dbtl-horizontal-carousel-style"> 3163 .et_pb_timeline.dbtl-horizontal-carousel { 3164 --dbtl-carousel-arrow-color: #2b2f36; 3165 --dbtl-carousel-arrow-background-color: rgba(255,255,255,0.92); 3166 --dbtl-carousel-arrow-size: 22px; 3167 --dbtl-carousel-arrow-button-size: calc(var(--dbtl-carousel-arrow-size) + 18px); 3168 position: relative; 3169 } 3170 .et_pb_timeline.dbtl-horizontal-carousel .et_pb_timeline_track { 3171 box-sizing: border-box; 3172 display: flex !important; 3173 flex-direction: row !important; 3174 flex-wrap: nowrap !important; 3175 max-width: 100%; 3176 overflow-x: hidden !important; 3177 overflow-y: visible !important; 3178 scroll-behavior: smooth; 3179 scrollbar-width: none; 3180 } 3181 .et_pb_timeline.dbtl-horizontal-carousel .et_pb_timeline_track::-webkit-scrollbar { 3182 display: none; 3183 } 3184 .et_pb_timeline.dbtl-horizontal-carousel .et_pb_timeline_item { 3185 flex: 0 0 auto !important; 3186 max-width: none !important; 3187 } 3188 .et_pb_timeline.dbtl-horizontal-carousel .et_pb_timeline_card { 3189 max-width: none; 3190 } 3191 .et_pb_timeline.dbtl-horizontal-carousel .dbtl-horizontal-carousel-arrow { 3192 align-items: center; 3193 background: var(--dbtl-carousel-arrow-background-color); 3194 border: 0; 3195 border-radius: 999px; 3196 box-shadow: 0 3px 14px rgba(0, 0, 0, 0.18); 3197 color: var(--dbtl-carousel-arrow-color); 3198 cursor: pointer; 3199 display: flex; 3200 height: var(--dbtl-carousel-arrow-button-size); 3201 justify-content: center; 3202 line-height: 1; 3203 padding: 0; 3204 position: absolute; 3205 top: 50%; 3206 transform: translateY(-50%); 3207 width: var(--dbtl-carousel-arrow-button-size); 3208 z-index: 5; 3209 } 3210 body.et-fb .et_pb_timeline.dbtl-horizontal-carousel .dbtl-horizontal-carousel-arrow, 3211 body.et_fb_preview_active .et_pb_timeline.dbtl-horizontal-carousel .dbtl-horizontal-carousel-arrow, 3212 .et-fb-root-ancestor .et_pb_timeline.dbtl-horizontal-carousel .dbtl-horizontal-carousel-arrow, 3213 body.et_pb_pagebuilder_layout .et-fb-root-ancestor .et_pb_timeline.dbtl-horizontal-carousel .dbtl-horizontal-carousel-arrow { 3214 pointer-events: auto !important; 3215 z-index: 100000 !important; 3216 } 3217 .et_pb_timeline.dbtl-horizontal-carousel .dbtl-horizontal-carousel-arrow[disabled] { 3218 cursor: default; 3219 display: none; 3220 } 3221 .et_pb_timeline.dbtl-horizontal-carousel .dbtl-horizontal-carousel-arrow[hidden], 3222 .et_pb_timeline.dbtl-horizontal-carousel .dbtl-horizontal-carousel-arrow.dbtl-horizontal-carousel-arrow-disabled { 3223 display: none !important; 3224 pointer-events: none !important; 3225 visibility: hidden !important; 3226 } 3227 .et_pb_timeline.dbtl-horizontal-carousel .dbtl-horizontal-carousel-arrow-prev { 3228 left: 8px; 3229 } 3230 .et_pb_timeline.dbtl-horizontal-carousel .dbtl-horizontal-carousel-arrow-next { 3231 right: 8px; 3232 } 3233 .et_pb_timeline.dbtl-horizontal-carousel .dbtl-horizontal-carousel-arrow-icon { 3234 align-items: center; 3235 display: flex; 3236 font-family: ETmodules; 3237 font-size: var(--dbtl-carousel-arrow-size); 3238 height: 1em; 3239 justify-content: center; 3240 line-height: 1; 3241 width: 1em; 3242 } 3243 </style> 3244
3244<script id="dbtl-horizontal-carousel-script"> 3245 (function() { 3246 if (window.__dbtlHorizontalCarouselInstalled) { 3247 return; 3248 } 3249 window.__dbtlHorizontalCarouselInstalled = true; 3250 3251 var scheduled = false; 3252 var observed = false; 3253 var timelineSlug = "divi\/timeline"; 3254 var attrName = "dbTimelineHorizontalCarousel"; 3255 var scrollModeAttrName = "dbTimelineHorizontalCarouselScrollMode"; 3256 var arrowSizeAttrName = "dbTimelineHorizontalCarouselArrowSize"; 3257 var defaultArrowColor = "#2b2f36"; 3258 var defaultArrowBackgroundColor = "rgba(255,255,255,0.92)"; 3259 var defaultArrowSize = "22px"; 3260 var breakpointSettings = {"phone":{"order":10,"maxWidth":{"value":"767px"}},"tablet":{"order":30,"minWidth":{"value":"768px"},"maxWidth":{"value":"980px"}},"desktop":{"order":50,"baseDevice":true,"minWidth":{"value":"981px"}}}; 3261 3262 function getStoreWindow() { 3263 var candidates = [window]; 3264 try { 3265 if (window.parent && window.parent !== window) { 3266 candidates.push(window.parent); 3267 } 3268 if (window.top && window.top !== window && candidates.indexOf(window.top) === -1) { 3269 candidates.push(window.top); 3270 } 3271 } catch (e) {} 3272 3273 for (var i = 0; i < candidates.length; i++) { 3274 if (candidates[i] && candidates[i].divi && candidates[i].divi.data && typeof candidates[i].divi.data.select === 'function') { 3275 return candidates[i]; 3276 } 3277 if (candidates[i] && candidates[i].wp && candidates[i].wp.data && typeof candidates[i].wp.data.select === 'function') { 3278 return candidates[i]; 3279 } 3280 } 3281 return null; 3282 } 3283 3284 function selectStore(storeName) { 3285 var storeWindow = getStoreWindow(); 3286 var data = storeWindow && storeWindow.divi && storeWindow.divi.data ? storeWindow.divi.data : (storeWindow && storeWindow.wp ? storeWindow.wp.data : null); 3287 if (!data || typeof data.select !== 'function') { 3288 return null; 3289 } 3290 try { 3291 return data.select(storeName); 3292 } catch (e) { 3293 return null; 3294 } 3295 } 3296 3297 function hasBuilderStore() { 3298 return !!selectStore('divi/edit-post'); 3299 } 3300 3301 function toPlainObject(value) { 3302 if (!value) { 3303 return value; 3304 } 3305 if (typeof value.asMutable === 'function') { 3306 try { 3307 return value.asMutable({ deep: true }); 3308 } catch (e) {} 3309 } 3310 if (typeof value.toJS === 'function') { 3311 try { 3312 return value.toJS(); 3313 } catch (e) {} 3314 } 3315 return value; 3316 } 3317 3318 function nestedValue(object, path) { 3319 var value = object; 3320 for (var i = 0; i < path.length; i++) { 3321 if (!value || typeof value !== 'object' || !Object.prototype.hasOwnProperty.call(value, path[i])) { 3322 return null; 3323 } 3324 value = value[path[i]]; 3325 } 3326 return value; 3327 } 3328 3329 function getModuleName(moduleId) { 3330 var editPost = selectStore('divi/edit-post'); 3331 var module = null; 3332 if (!editPost) { 3333 return ''; 3334 } 3335 try { 3336 if (typeof editPost.getModuleName === 'function') { 3337 return editPost.getModuleName(moduleId) || ''; 3338 } 3339 } catch (e) {} 3340 try { 3341 module = typeof editPost.getModule === 'function' ? toPlainObject(editPost.getModule(moduleId)) : null; 3342 } catch (e) { 3343 module = null; 3344 } 3345 return module && module.name ? module.name : ''; 3346 } 3347 3348 function getModuleAttrs(moduleId) { 3349 var editPost = selectStore('divi/edit-post'); 3350 var module = null; 3351 if (!editPost) { 3352 return {}; 3353 } 3354 try { 3355 if (typeof editPost.getModuleAttrs === 'function') { 3356 return toPlainObject(editPost.getModuleAttrs(moduleId)) || {}; 3357 } 3358 } catch (e) {} 3359 try { 3360 module = typeof editPost.getModule === 'function' ? toPlainObject(editPost.getModule(moduleId)) : null; 3361 } catch (e) { 3362 module = null; 3363 } 3364 return toPlainObject(module && module.props ? module.props.attrs : null) || {}; 3365 } 3366 3367 function closestTimelineId(timeline) { 3368 var current = timeline; 3369 while (current && current.nodeType === 1) { 3370 if (current.hasAttribute && current.hasAttribute('data-id')) { 3371 var id = current.getAttribute('data-id'); 3372 if (id && getModuleName(id) === timelineSlug) { 3373 return id; 3374 } 3375 } 3376 current = current.parentElement; 3377 } 3378 return ''; 3379 } 3380 3381 function hasResponsiveValue(value) { 3382 if (value === null || value === undefined) { 3383 return false;
3384 } 3385 return !(typeof value === 'string' && value.trim() === ''); 3386 } 3387 3388 function responsiveAttrValue(attr, breakpoint, paths) { 3389 var orderedPaths = []; 3390 var i; 3391 3392 if (breakpoint && breakpoint !== 'desktop') { 3393 for (i = 0; i < paths.length; i++) { 3394 orderedPaths.push(paths[i](breakpoint)); 3395 } 3396 } 3397 for (i = 0; i < paths.length; i++) { 3398 orderedPaths.push(paths[i]('desktop')); 3399 } 3400 3401 for (i = 0; i < orderedPaths.length; i++) { 3402 var value = nestedValue(attr, orderedPaths[i]); 3403 if (hasResponsiveValue(value)) { 3404 return value; 3405 } 3406 } 3407 3408 return ''; 3409 } 3410 3411 function attrSubValue(attrs, subName, breakpoint) { 3412 var attr = attrs && attrs[attrName]; 3413 var value = responsiveAttrValue(attr, breakpoint || 'desktop', [ 3414 function(bp) { return [bp, 'value', subName]; }, 3415 function(bp) { return [subName, bp, 'value']; } 3416 ]); 3417 3418 if (hasResponsiveValue(value)) { 3419 return value; 3420 } 3421 3422 var legacyPaths = [ 3423 ['value', subName], 3424 [subName, 'value'], 3425 [subName] 3426 ]; 3427 3428 for (var i = 0; i < legacyPaths.length; i++) { 3429 value = nestedValue(attr, legacyPaths[i]); 3430 if (hasResponsiveValue(value)) { 3431 return value; 3432 } 3433 } 3434 return ''; 3435 } 3436 3437 function attrValue(attrs, name, fallback, breakpoint) { 3438 var attr = attrs && attrs[name]; 3439 var value = responsiveAttrValue(attr, breakpoint || 'desktop', [ 3440 function(bp) { return [bp, 'value']; } 3441 ]); 3442 3443 if (hasResponsiveValue(value)) { 3444 return value; 3445 } 3446 3447 var paths = [ 3448 ['value'] 3449 ]; 3450 for (var i = 0; i < paths.length; i++) { 3451 value = nestedValue(attr, paths[i]); 3452 if (hasResponsiveValue(value)) { 3453 return value; 3454 } 3455 } 3456 return fallback || ''; 3457 } 3458 3459 function parsePixelValue(value) { 3460 value = typeof value === 'number' ? String(value) : (typeof value === 'string' ? value.trim() : ''); 3461 if (!value) { 3462 return null; 3463 } 3464 var match = value.match(/^(-?\d+(?:\.\d+)?)px$/i) || value.match(/^(-?\d+(?:\.\d+)?)$/); 3465 return match ? parseFloat(match[1]) : null; 3466 } 3467 3468 function breakpointMatchesWidth(settings, width) { 3469 if (!settings) { 3470 return false; 3471 } 3472 3473 var min = parsePixelValue(settings.minWidth && settings.minWidth.value); 3474 var max = parsePixelValue(settings.maxWidth && settings.maxWidth.value); 3475 3476 if (min !== null && width < min) { 3477 return false; 3478 } 3479 if (max !== null && width > max) { 3480 return false; 3481 } 3482 3483 return true; 3484 } 3485 3486 function getCurrentBreakpointName() { 3487 var names = Object.keys(breakpointSettings || {}); 3488 var width = window.innerWidth || document.documentElement.clientWidth || 0; 3489 var fallback = breakpointSettings && breakpointSettings.desktop ? 'desktop' : (names[0] || 'desktop'); 3490 3491 names.sort(function(a, b) { 3492 return ((breakpointSettings[a] && breakpointSettings[a].order) || 0) - ((breakpointSettings[b] && breakpointSettings[b].order) || 0); 3493 }); 3494 3495 for (var i = 0; i < names.length; i++) { 3496 if (breakpointMatchesWidth(breakpointSettings[names[i]], width)) { 3497 return names[i]; 3498 } 3499 } 3500 3501 return fallback; 3502 } 3503 3504 function isEnabled(value) { 3505 return value === true || value === 1 || value === '1' || value === 'on' || value === 'yes' || value === 'true'; 3506 } 3507 3508 function sanitizeLength(value, fallback) { 3509 value = typeof value === 'number' ? value + 'px' : (typeof value === 'string' ? value.trim() : ''); 3510 if (!value) { 3511 return fallback; 3512 } 3513 return /^-?(?:\d+|\d*\.\d+)(?:px|em|rem|vw|vh|%)$/i.test(value) ? value : fallback; 3514 } 3515 3516 function sanitizeColor(value, fallback) { 3517 value = typeof value === 'string' ? value.trim() : ''; 3518 if (!value) { 3519 return fallback; 3520 } 3521 return /^(#[0-9a-f]{3,8}|rgba?\([0-9.,%\s]+\)|hsla?\([0-9.,%\s]+\)|[a-z]+)$/i.test(value) ? value : fallback; 3522 } 3523 3524 function sanitizeScrollMode(value) { 3525 value = typeof value === 'string' ? value.trim() : ''; 3526 return value === 'item' || value === 'view' ? value : 'view'; 3527 } 3528 3529 function normalizeIcon(value) { 3530 if (value === null || value === undefined) { 3531 return ''; 3532 } 3533 3534 if (typeof value === 'number' && isFinite(value)) { 3535 try { 3536 return String.fromCodePoint(value); 3537 } catch (e) { 3538 return ''; 3539 } 3540 } 3541 3542 if (value && typeof value === 'object') { 3543 var preferredKeys = ['unicode', 'icon', 'char', 'code', 'value', 'desktop', 'tablet', 'phone', 'innerContent', 'iconPicker']; 3544 var keys = []; 3545 var i; 3546 var key; 3547 var icon; 3548 3549 for (i = 0; i < preferredKeys.length; i++) { 3550 key = preferredKeys[i]; 3551 if (Object.prototype.hasOwnProperty.call(value, key)) { 3552 icon = normalizeIcon(value[key]); 3553 if (icon) { 3554 return icon; 3555 } 3556 } 3557 } 3558 3559 keys = Object.keys(value); 3560 for (i = 0; i < keys.length; i++) { 3561 icon = normalizeIcon(value[keys[i]]); 3562 if (icon) { 3563 return icon; 3564 } 3565 } 3566 3567 return ''; 3568 } 3569 3570 value = typeof value === 'string' ? value.trim() : ''; 3571 if (!value || value.indexOf('$' + 'variable(') === 0) { 3572 return ''; 3573 } 3574 value = value.split('||')[0].trim(); 3575 if (/^&#x[0-9a-f]+;?$/i.test(value) || /^&#[0-9]+;?$/.test(value)) { 3576 var el = document.createElement('textarea'); 3577 el.innerHTML = value; 3578 return el.value; 3579 } 3580 if (value.indexOf('&') !== -1) { 3581 var decoded = document.createElement('textarea'); 3582 decoded.innerHTML = value; 3583 value = (decoded.value || value).trim(); 3584 } 3585 var hexMatch = value.match(/^\\u([0-9a-f]{4,6})$/i) || 3586 value.match(/^U\+([0-9a-f]{4,6})$/i) || 3587 value.match(/^0x([0-9a-f]{4,6})$/i) || 3588 value.match(/^([0-9a-f]{4,6})$/i); 3589 if (hexMatch) { 3590 try { 3591 return String.fromCodePoint(parseInt(hexMatch[1], 16)); 3592 } catch (e) { 3593 return ''; 3594 } 3595 } 3596 return value.substring(0, 4); 3597 } 3598 3599 function extractIconMetaProp(value, propName) { 3600 if (!value || typeof value !== 'object') { 3601 return ''; 3602 } 3603 3604 if (Object.prototype.hasOwnProperty.call(value, propName) && value[propName] !== null && value[propName] !== undefined) { 3605 var direct = String(value[propName]).trim(); 3606 if (direct) { 3607 return direct; 3608 } 3609 } 3610 3611 var preferredKeys = ['value', 'desktop', 'tablet', 'phone', 'innerContent', 'iconPicker']; 3612 var keys; 3613 var i; 3614 var key; 3615 var prop; 3616 3617 for (i = 0; i < preferredKeys.length; i++) { 3618 key = preferredKeys[i]; 3619 if (Object.prototype.hasOwnProperty.call(value, key)) { 3620 prop = extractIconMetaProp(value[key], propName); 3621 if (prop) { 3622 return prop; 3623 } 3624 } 3625 } 3626 3627 keys = Object.keys(value); 3628 for (i = 0; i < keys.length; i++) { 3629 prop = extractIconMetaProp(value[keys[i]], propName); 3630 if (prop) { 3631 return prop; 3632 } 3633 } 3634 3635 return ''; 3636 } 3637 3638 function isLikelyFontAwesomeGlyph(iconChar) { 3639 if (typeof iconChar !== 'string' || !iconChar) { 3640 return false;
3641 } 3642 try { 3643 var codepoint = iconChar.codePointAt(0); 3644 return isFinite(codepoint) && codepoint >= 0xF000 && codepoint <= 0xF8FF; 3645 } catch (e) { 3646 return false; 3647 } 3648 } 3649 3650 function isLikelyFontAwesomeType(iconType) { 3651 iconType = typeof iconType === 'string' ? iconType.trim().toLowerCase() : ''; 3652 return iconType.indexOf('fa') === 0 || iconType === 'brands' || iconType === 'solid' || iconType === 'regular' || iconType === 'fontawesome'; 3653 } 3654 3655 function normalizeFontAwesomeWeight(weight, iconType) { 3656 weight = weight === null || weight === undefined ? '' : String(weight).trim().toLowerCase(); 3657 if (/^(100|200|300|400|500|600|700|800|900)$/.test(weight)) { 3658 return parseInt(weight, 10) >= 600 ? '900' : '400'; 3659 } 3660 if (weight === 'regular' || weight === 'normal' || weight === 'book' || weight === 'light' || weight === 'thin' || weight === 'hairline' || weight === 'medium') { 3661 return '400'; 3662 } 3663 if (weight === 'solid' || weight === 'bold' || weight === 'semibold' || weight === 'semi-bold' || weight === 'black' || weight === 'heavy') { 3664 return '900'; 3665 } 3666 3667 iconType = typeof iconType === 'string' ? iconType.trim().toLowerCase() : ''; 3668 if (iconType === 'fab' || iconType === 'fa-brands' || iconType === 'brands' || iconType === 'far' || iconType === 'fa-regular' || iconType === 'regular') { 3669 return '400'; 3670 } 3671 3672 return '900'; 3673 } 3674 3675 function getIconConfig(value) { 3676 var icon = normalizeIcon(value); 3677 var iconType = extractIconMetaProp(value, 'type'); 3678 var family = extractIconMetaProp(value, 'fontFamily'); 3679 var isFontAwesome = family === 'FontAwesome' || isLikelyFontAwesomeType(iconType) || isLikelyFontAwesomeGlyph(icon); 3680 3681 return { 3682 icon: icon, 3683 family: isFontAwesome ? 'FontAwesome' : '', 3684 weight: isFontAwesome ? normalizeFontAwesomeWeight(extractIconMetaProp(value, 'weight'), iconType) : '' 3685 }; 3686 } 3687 3688 function directionIsHorizontal(attrs, breakpoint) { 3689 var timelineAttr = nestedValue(attrs || {}, ['module', 'advanced', 'timeline']); 3690 var direction = responsiveAttrValue(timelineAttr, breakpoint || 'desktop', [ 3691 function(bp) { return [bp, 'value', 'direction']; } 3692 ]); 3693 3694 return (direction || 'vertical') === 'horizontal'; 3695 } 3696 3697 function getBuilderConfig(timeline) { 3698 var id = closestTimelineId(timeline); 3699 var attrs = id ? getModuleAttrs(id) : {}; 3700 var breakpoint = getCurrentBreakpointName(); 3701 if (!id || !directionIsHorizontal(attrs, breakpoint) || !isEnabled(attrSubValue(attrs, 'enabled', breakpoint))) { 3702 return null; 3703 } 3704 var legacyIcon = getIconConfig(attrSubValue(attrs, 'icon', breakpoint)); 3705 var prevIcon = getIconConfig(attrSubValue(attrs, 'prevIcon', breakpoint)); 3706 var nextIcon = getIconConfig(attrSubValue(attrs, 'nextIcon', breakpoint)); 3707 3708 if (!prevIcon.icon) { 3709 prevIcon = legacyIcon; 3710 } 3711 if (!nextIcon.icon) { 3712 nextIcon = legacyIcon; 3713 } 3714 3715 return { 3716 color: sanitizeColor(attrSubValue(attrs, 'arrowColor', breakpoint), defaultArrowColor), 3717 backgroundColor: sanitizeColor(attrSubValue(attrs, 'arrowBackgroundColor', breakpoint), defaultArrowBackgroundColor), 3718 size: sanitizeLength(attrValue(attrs, arrowSizeAttrName, attrSubValue(attrs, 'arrowSize', breakpoint), breakpoint), defaultArrowSize), 3719 scrollMode: sanitizeScrollMode(attrValue(attrs, scrollModeAttrName, attrSubValue(attrs, 'scrollMode', breakpoint), breakpoint)), 3720 prevIcon: prevIcon, 3721 nextIcon: nextIcon 3722 }; 3723 } 3724 3725 function applyTimelineConfig(timeline, config) { 3726 if (!config) { 3727 timeline.classList.remove('dbtl-horizontal-carousel'); 3728 timeline.classList.remove('dbtl-horizontal-carousel-has-custom-icon');
3729 timeline.style.removeProperty('--dbtl-carousel-arrow-color'); 3730 timeline.style.removeProperty('--dbtl-carousel-arrow-background-color'); 3731 timeline.style.removeProperty('--dbtl-carousel-arrow-size'); 3732 timeline.removeAttribute('data-dbtl-carousel-icon'); 3733 timeline.removeAttribute('data-dbtl-carousel-prev-icon'); 3734 timeline.removeAttribute('data-dbtl-carousel-prev-icon-family'); 3735 timeline.removeAttribute('data-dbtl-carousel-prev-icon-weight'); 3736 timeline.removeAttribute('data-dbtl-carousel-next-icon'); 3737 timeline.removeAttribute('data-dbtl-carousel-next-icon-family'); 3738 timeline.removeAttribute('data-dbtl-carousel-next-icon-weight'); 3739 timeline.removeAttribute('data-dbtl-carousel-scroll-mode'); 3740 return false; 3741 } 3742 3743 timeline.classList.add('dbtl-horizontal-carousel'); 3744 timeline.style.setProperty('--dbtl-carousel-arrow-color', config.color); 3745 timeline.style.setProperty('--dbtl-carousel-arrow-background-color', config.backgroundColor); 3746 timeline.style.setProperty('--dbtl-carousel-arrow-size', config.size); 3747 timeline.setAttribute('data-dbtl-carousel-scroll-mode', config.scrollMode); 3748 timeline.removeAttribute('data-dbtl-carousel-icon'); 3749 if (config.prevIcon.icon) { 3750 timeline.setAttribute('data-dbtl-carousel-prev-icon', config.prevIcon.icon); 3751 if (config.prevIcon.family) { 3752 timeline.setAttribute('data-dbtl-carousel-prev-icon-family', config.prevIcon.family); 3753 } else { 3754 timeline.removeAttribute('data-dbtl-carousel-prev-icon-family'); 3755 } 3756 if (config.prevIcon.weight) { 3757 timeline.setAttribute('data-dbtl-carousel-prev-icon-weight', config.prevIcon.weight); 3758 } else { 3759 timeline.removeAttribute('data-dbtl-carousel-prev-icon-weight'); 3760 } 3761 } else { 3762 timeline.removeAttribute('data-dbtl-carousel-prev-icon'); 3763 timeline.removeAttribute('data-dbtl-carousel-prev-icon-family'); 3764 timeline.removeAttribute('data-dbtl-carousel-prev-icon-weight'); 3765 } 3766 if (config.nextIcon.icon) { 3767 timeline.setAttribute('data-dbtl-carousel-next-icon', config.nextIcon.icon); 3768 if (config.nextIcon.family) { 3769 timeline.setAttribute('data-dbtl-carousel-next-icon-family', config.nextIcon.family); 3770 } else { 3771 timeline.removeAttribute('data-dbtl-carousel-next-icon-family'); 3772 } 3773 if (config.nextIcon.weight) { 3774 timeline.setAttribute('data-dbtl-carousel-next-icon-weight', config.nextIcon.weight); 3775 } else { 3776 timeline.removeAttribute('data-dbtl-carousel-next-icon-weight'); 3777 } 3778 } else { 3779 timeline.removeAttribute('data-dbtl-carousel-next-icon'); 3780 timeline.removeAttribute('data-dbtl-carousel-next-icon-family'); 3781 timeline.removeAttribute('data-dbtl-carousel-next-icon-weight'); 3782 } 3783 return true; 3784 } 3785 3786 function applyBuilderConfig(timeline) { 3787 return applyTimelineConfig(timeline, getBuilderConfig(timeline)); 3788 } 3789 3790 function parseConfigJson(value) { 3791 if (!value) { 3792 return {}; 3793 } 3794 try { 3795 return JSON.parse(value) || {}; 3796 } catch (e) { 3797 return {}; 3798 } 3799 } 3800 3801 function normalizeSavedIconConfig(config, direction) { 3802 return { 3803 icon: config && config[direction + '_icon'] ? config[direction + '_icon'] : '', 3804 family: config && config[direction + '_icon_family'] ? config[direction + '_icon_family'] : '', 3805 weight: config && config[direction + '_icon_weight'] ? config[direction + '_icon_weight'] : '' 3806 }; 3807 } 3808 3809 function getSavedConfig(timeline) { 3810 var configs = parseConfigJson(timeline.getAttribute('data-dbtl-carou
3810sel-configs')); 3811 var breakpoint = getCurrentBreakpointName(); 3812 var config = configs[breakpoint] || configs.desktop || null; 3813 3814 if (!config || !config.active) { 3815 return null; 3816 } 3817 3818 return { 3819 color: sanitizeColor(config.color, defaultArrowColor), 3820 backgroundColor: sanitizeColor(config.background_color, defaultArrowBackgroundColor), 3821 size: sanitizeLength(config.size, defaultArrowSize), 3822 scrollMode: sanitizeScrollMode(config.scroll_mode), 3823 prevIcon: normalizeSavedIconConfig(config, 'prev'), 3824 nextIcon: normalizeSavedIconConfig(config, 'next') 3825 }; 3826 } 3827 3828 function ensureButton(timeline, direction) { 3829 var className = direction === 'prev' ? 'dbtl-horizontal-carousel-arrow-prev' : 'dbtl-horizontal-carousel-arrow-next'; 3830 var button = timeline.querySelector(':scope > .' + className); 3831 var icon = null; 3832 3833 if (!button) { 3834 button = document.createElement('button'); 3835 button.type = 'button'; 3836 button.className = 'dbtl-horizontal-carousel-arrow ' + className; 3837 button.setAttribute('aria-label', direction === 'prev' ? 'Previous timeline item' : 'Next timeline item'); 3838 icon = document.createElement('span'); 3839 icon.className = 'dbtl-horizontal-carousel-arrow-icon'; 3840 button.appendChild(icon); 3841 ['pointerdown', 'mousedown', 'touchstart'].forEach(function(eventName) { 3842 button.addEventListener(eventName, function(event) { 3843 event.stopPropagation(); 3844 if (event.stopImmediatePropagation) { 3845 event.stopImmediatePropagation(); 3846 } 3847 }, true); 3848 }); 3849 button.addEventListener('click', function(event) { 3850 event.preventDefault(); 3851 event.stopPropagation(); 3852 if (event.stopImmediatePropagation) { 3853 event.stopImmediatePropagation(); 3854 } 3855 advanceCarousel(timeline, direction === 'prev' ? -1 : 1); 3856 }, true); 3857 timeline.appendChild(button); 3858 } 3859 3860 icon = button.querySelector('.dbtl-horizontal-carousel-arrow-icon'); 3861 return button; 3862 } 3863 3864 function setButtonIcon(icon, customIcon, defaultIcon, family, weight) { 3865 if (!icon) { 3866 return; 3867 } 3868 var iconText = customIcon || defaultIcon; 3869 if (icon.textContent !== iconText) { 3870 icon.textContent = iconText; 3871 } 3872 if (icon.classList.contains('dbtl-horizontal-carousel-arrow-icon-custom') !== !!customIcon) { 3873 icon.classList.toggle('dbtl-horizontal-carousel-arrow-icon-custom', !!customIcon); 3874 } 3875 if (family === 'FontAwesome') { 3876 if (icon.style.fontFamily !== 'FontAwesome') { 3877 icon.style.fontFamily = 'FontAwesome'; 3878 } 3879 if (icon.style.fontWeight !== (weight || '900')) { 3880 icon.style.fontWeight = weight || '900'; 3881 } 3882 } else { 3883 if (icon.style.fontFamily) { 3884 icon.style.removeProperty('font-family'); 3885 } 3886 if (icon.style.fontWeight) { 3887 icon.style.removeProperty('font-weight'); 3888 } 3889 } 3890 } 3891 3892 function setButtonDisabled(button, disabled) { 3893 disabled = !!disabled; 3894 if (button.disabled !== disabled) { 3895 button.disabled = disabled; 3896 } 3897 if (button.hidden !== disabled) { 3898 button.hidden = disabled; 3899 } 3900 if (button.getAttribute('aria-disabled') !== String(disabled)) { 3901 button.setAttribute('aria-disabled', String(disabled)); 3902 } 3903 button.classList.toggle('dbtl-horizontal-carousel-arrow-disabled', disabled); 3904 } 3905 3906 function getCarouselItems(timeline) { 3907 var track = timeline.querySelector('.et_pb_timeline_track'); 3908 return track ? Array.prototype.slice.call(track.querySelectorAll('.et_pb_timeline_item')) : []; 3909 } 3910 3911 function getScrollMode(timeline) {
3912 return timeline.getAttribute('data-dbtl-carousel-scroll-mode') === 'item' ? 'item' : 'view'; 3913 } 3914 3915 function clampIndex(index, items) { 3916 var max = Math.max(0, items.length - 1); 3917 index = parseInt(index, 10); 3918 if (!isFinite(index)) { 3919 index = 0; 3920 } 3921 return Math.max(0, Math.min(max, index)); 3922 } 3923 3924 function getCurrentIndex(timeline, items) { 3925 if (typeof timeline.__dbtlCarouselCurrentIndex !== 'number') { 3926 timeline.__dbtlCarouselCurrentIndex = clampIndex(timeline.getAttribute('data-dbtl-carousel-current-index') || 0, items); 3927 } 3928 return clampIndex(timeline.__dbtlCarouselCurrentIndex, items); 3929 } 3930 3931 function setItemState(item, stateClass) { 3932 var currentState = item.classList.contains('dbtl-state-current') ? 'dbtl-state-current' : 3933 (item.classList.contains('dbtl-state-previous') ? 'dbtl-state-previous' : 3934 (item.classList.contains('dbtl-state-upcoming') ? 'dbtl-state-upcoming' : '')); 3935 3936 if (currentState === stateClass) { 3937 return; 3938 } 3939 3940 if (item.classList.contains('dbtl-state-previous')) { 3941 item.classList.remove('dbtl-state-previous'); 3942 } 3943 if (item.classList.contains('dbtl-state-current')) { 3944 item.classList.remove('dbtl-state-current'); 3945 } 3946 if (item.classList.contains('dbtl-state-upcoming')) { 3947 item.classList.remove('dbtl-state-upcoming'); 3948 } 3949 if (stateClass && !item.classList.contains(stateClass)) { 3950 item.classList.add(stateClass); 3951 } 3952 } 3953 3954 function updateCarouselStates(timeline, items, currentIndex) { 3955 items = items || getCarouselItems(timeline); 3956 currentIndex = clampIndex(currentIndex, items); 3957 timeline.__dbtlCarouselCurrentIndex = currentIndex; 3958 if (timeline.getAttribute('data-dbtl-carousel-current-index') !== String(currentIndex)) { 3959 timeline.setAttribute('data-dbtl-carousel-current-index', String(currentIndex)); 3960 } 3961 3962 items.forEach(function(item, index) { 3963 if (index < currentIndex) { 3964 setItemState(item, 'dbtl-state-previous'); 3965 } else if (index > currentIndex) { 3966 setItemState(item, 'dbtl-state-upcoming'); 3967 } else { 3968 setItemState(item, 'dbtl-state-current'); 3969 } 3970 }); 3971 } 3972 3973 function getItemTargetScrollLeft(track, item) { 3974 var maxScroll = Math.max(0, track.scrollWidth - track.clientWidth); 3975 var itemCenter = item.offsetLeft + (item.offsetWidth / 2); 3976 var target = itemCenter - (track.clientWidth / 2); 3977 return Math.max(0, Math.min(maxScroll, target)); 3978 } 3979 3980 function getIndexForScrollLeft(track, items, scrollLeft) { 3981 var center = scrollLeft + (track.clientWidth / 2); 3982 var bestIndex = 0; 3983 var bestDistance = Infinity; 3984 3985 items.forEach(function(item, index) { 3986 var itemCenter = item.offsetLeft + (item.offsetWidth / 2); 3987 var distance = Math.abs(itemCenter - center); 3988 if (distance < bestDistance) { 3989 bestDistance = distance; 3990 bestIndex = index; 3991 } 3992 }); 3993 3994 return clampIndex(bestIndex, items); 3995 } 3996 3997 function getTrackMaxScroll(track) { 3998 return Math.max(0, track.scrollWidth - track.clientWidth); 3999 } 4000 4001 function clampScrollLeft(track, scrollLeft) { 4002 return Math.max(0, Math.min(getTrackMaxScroll(track), scrollLeft)); 4003 } 4004 4005 function animateTrackScroll(track, target) { 4006 var start = track.scrollLeft; 4007 var distance = target - start; 4008 var duration = Math.min(650, Math.max(260, Math.abs(distance) * 1.15)); 4009 var startTime = 0; 4010 4011 if (track.__dbtlCarouselScrollAnimation && window.cancelAnimationFrame) { 4012 window.cancelAnimationFrame(track.__dbtlCarouselScrollAnimation); 4013 } 4014 4015 if (Math.abs(distance) < 1 || !window.requestAnimationFrame) { 4016 track.scrollLeft = target; 4017 track.__dbtlCarouselAnimating = false;
4018 return; 4019 } 4020 4021 track.__dbtlCarouselAnimating = true; 4022 function step(timestamp) { 4023 if (!startTime) { 4024 startTime = timestamp; 4025 } 4026 var progress = Math.min(1, (timestamp - startTime) / duration); 4027 var eased = 1 - Math.pow(1 - progress, 3); 4028 track.scrollLeft = start + (distance * eased); 4029 4030 if (progress < 1) { 4031 track.__dbtlCarouselScrollAnimation = window.requestAnimationFrame(step); 4032 } else { 4033 track.scrollLeft = target; 4034 track.__dbtlCarouselAnimating = false; 4035 } 4036 } 4037 4038 track.__dbtlCarouselScrollAnimation = window.requestAnimationFrame(step); 4039 } 4040 4041 function scrollToCarouselItem(timeline, index) { 4042 var track = timeline.querySelector('.et_pb_timeline_track'); 4043 var items = getCarouselItems(timeline); 4044 index = clampIndex(index, items); 4045 4046 if (!track || !items[index]) { 4047 return; 4048 } 4049 4050 animateTrackScroll(track, getItemTargetScrollLeft(track, items[index])); 4051 } 4052 4053 function advanceCarouselByView(timeline, delta) { 4054 var track = timeline.querySelector('.et_pb_timeline_track'); 4055 var items = getCarouselItems(timeline); 4056 var target; 4057 var nextIndex; 4058 4059 if (!track || !items.length) { 4060 updateButtons(timeline); 4061 return; 4062 } 4063 4064 target = clampScrollLeft(track, track.scrollLeft + (delta * track.clientWidth * 0.7)); 4065 nextIndex = getIndexForScrollLeft(track, items, target); 4066 updateCarouselStates(timeline, items, nextIndex); 4067 animateTrackScroll(track, target); 4068 updateButtons(timeline, target); 4069 } 4070 4071 function advanceCarousel(timeline, delta) { 4072 var items = getCarouselItems(timeline); 4073 var currentIndex = getCurrentIndex(timeline, items); 4074 var nextIndex = clampIndex(currentIndex + delta, items); 4075 4076 if (getScrollMode(timeline) === 'view') { 4077 advanceCarouselByView(timeline, delta); 4078 return; 4079 } 4080 4081 if (!items.length || nextIndex === currentIndex) { 4082 updateButtons(timeline); 4083 return; 4084 } 4085 4086 updateCarouselStates(timeline, items, nextIndex); 4087 scrollToCarouselItem(timeline, nextIndex); 4088 updateButtons(timeline); 4089 } 4090 4091 function updateButtons(timeline, pendingScrollLeft) { 4092 var track = timeline.querySelector('.et_pb_timeline_track'); 4093 var items = getCarouselItems(timeline); 4094 var currentIndex = getCurrentIndex(timeline, items); 4095 var scrollMode = getScrollMode(timeline); 4096 var scrollLeft = typeof pendingScrollLeft === 'number' ? pendingScrollLeft : (track ? track.scrollLeft : 0); 4097 var legacyIcon = timeline.getAttribute('data-dbtl-carousel-icon') || ''; 4098 var prevCustomIcon = timeline.getAttribute('data-dbtl-carousel-prev-icon') || legacyIcon; 4099 var nextCustomIcon = timeline.getAttribute('data-dbtl-carousel-next-icon') || legacyIcon; 4100 var prevFamily = timeline.getAttribute('data-dbtl-carousel-prev-icon-family') || ''; 4101 var nextFamily = timeline.getAttribute('data-dbtl-carousel-next-icon-family') || ''; 4102 var prevWeight = timeline.getAttribute('data-dbtl-carousel-prev-icon-weight') || ''; 4103 var nextWeight = timeline.getAttribute('data-dbtl-carousel-next-icon-weight') || ''; 4104 var prev = ensureButton(timeline, 'prev'); 4105 var next = ensureButton(timeline, 'next'); 4106 var prevIcon = prev.querySelector('.dbtl-horizontal-carousel-arrow-icon'); 4107 var nextIcon = next.querySelector('.dbtl-horizontal-carousel-arrow-icon'); 4108 var canScroll = false;
4109 4110 timeline.classList.toggle('dbtl-horizontal-carousel-has-custom-icon', !!(prevCustomIcon || nextCustomIcon)); 4111 setButtonIcon(prevIcon, prevCustomIcon, '4', prevFamily, prevWeight); 4112 setButtonIcon(nextIcon, nextCustomIcon, '5', nextFamily, nextWeight); 4113 4114 if (track) { 4115 canScroll = track.scrollWidth > track.clientWidth + 2; 4116 var prevDisabled = scrollMode === 'view' ? (!canScroll || scrollLeft <= 1) : (!canScroll || currentIndex <= 0); 4117 var nextDisabled = scrollMode === 'view' ? (!canScroll || scrollLeft >= getTrackMaxScroll(track) - 1) : (!canScroll || currentIndex >= items.length - 1); 4118 setButtonDisabled(prev, prevDisabled); 4119 setButtonDisabled(next, nextDisabled); 4120 } 4121 } 4122 4123 function removeButtons(timeline) { 4124 timeline.querySelectorAll(':scope > .dbtl-horizontal-carousel-arrow').forEach(function(button) { 4125 button.remove(); 4126 }); 4127 } 4128 4129 function clearCarouselState(timeline) { 4130 timeline.__dbtlCarouselCurrentIndex = 0; 4131 timeline.removeAttribute('data-dbtl-carousel-current-index'); 4132 getCarouselItems(timeline).forEach(function(item) { 4133 setItemState(item, ''); 4134 }); 4135 } 4136 4137 function setupTimeline(timeline) { 4138 var track = timeline.querySelector('.et_pb_timeline_track'); 4139 var shouldEnable = hasBuilderStore() ? applyBuilderConfig(timeline) : applyTimelineConfig(timeline, getSavedConfig(timeline)); 4140 4141 if (!shouldEnable || !track) { 4142 removeButtons(timeline); 4143 clearCarouselState(timeline); 4144 return; 4145 } 4146 4147 updateButtons(timeline); 4148 var items = getCarouselItems(timeline); 4149 updateCarouselStates(timeline, items, getCurrentIndex(timeline, items)); 4150 } 4151 4152 function update() { 4153 scheduled = false; 4154 document.querySelectorAll('.et_pb_timeline').forEach(setupTimeline); 4155 } 4156 4157 function schedule() { 4158 if (scheduled) { 4159 return; 4160 } 4161 scheduled = true; 4162 if (window.requestAnimationFrame) { 4163 window.requestAnimationFrame(update); 4164 } else { 4165 window.setTimeout(update, 16); 4166 } 4167 } 4168 4169 function observe() { 4170 if (observed || !hasBuilderStore() || !window.MutationObserver || !document.body) { 4171 return; 4172 } 4173 observed = true; 4174 new MutationObserver(function(mutations) { 4175 for (var i = 0; i < mutations.length; i++) { 4176 if (mutations[i].type === 'childList') { 4177 schedule(); 4178 return; 4179 } 4180 } 4181 }).observe(document.body, { 4182 childList: true, 4183 subtree: true 4184 }); 4185 } 4186 4187 window.addEventListener('resize', schedule); 4188 document.addEventListener('DOMContentLoaded', schedule); 4189 observe(); 4190 schedule(); 4191 window.setTimeout(schedule, 250); 4192 })(); 4193 </script>
4193 4194 4195 <span class="et_pb_scroll_top et-pb-icon"></span> 4196
4196<script id="giant-delayed-loader" data-type="lazy" data-src="data:text/javascript;base64,KGZ1bmN0aW9uKCl7dmFyIGxvYWRlZD1mYWxzZTtmdW5jdGlvbiBsb2FkQWxsKCl7aWYobG9hZGVkKXJldHVybjtsb2FkZWQ9dHJ1ZTsoZnVuY3Rpb24oKXsoZnVuY3Rpb24odyxkLHMsbCxpKXt3W2xdPXdbbF18fFtdO3dbbF0ucHVzaCh7J2d0bS5zdGFydCc6Cm5ldyBEYXRlKCkuZ2V0VGltZSgpLGV2ZW50OidndG0uanMnfSk7dmFyIGY9ZC5nZXRFbGVtZW50c0J5VGFnTmFtZShzKVswXSwKaj1kLmNyZWF0ZUVsZW1lbnQocyksZGw9bCE9J2RhdGFMYXllcic/JyZsPScrbDonJztqLmFzeW5jPXRydWU7ai5zcmM9CidodHRwczovL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbS9ndG0uanM/aWQ9JytpK2RsO2YucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoaixmKTsKfSkod2luZG93LGRvY3VtZW50LCdzY3JpcHQnLCdkYXRhTGF5ZXInLCdHVE0tTjRIS0w0UzknKTt9KSgpO3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO3Muc3JjPSJodHRwczovL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbS9ndGFnL2pzP2lkPUFXLTE2ODE2MTMzODM4Ijtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHMpO3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO3Muc3JjPSJodHRwczovL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbS9ndGFnL2pzP2lkPUctM0tUNEMxNk00ViI7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzKTsoZnVuY3Rpb24oKXsoZnVuY3Rpb24odyxkLHMsbCxpKXt3W2xdPXdbbF18fFtdO3dbbF0ucHVzaCh7J2d0bS5zdGFydCc6DQpuZXcgRGF0ZSgpLmdldFRpbWUoKSxldmVudDonZ3RtLmpzJ30pO3ZhciBmPWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUocylbMF0sDQpqPWQuY3JlYXRlRWxlbWVudChzKSxkbD1sIT0nZGF0YUxheWVyJz8nJmw9JytsOicnO2ouYXN5bmM9dHJ1ZTtqLnNyYz0NCidodHRwczovL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbS9ndG0uanM/aWQ9JytpK2RsO2YucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoaixmKTsNCn0pKHdpbmRvdyxkb2N1bWVudCwnc2NyaXB0JywnZGF0YUxheWVyJywnR1RNLU40SEtMNFM5Jyk7fSkoKTt2YXIgcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtzLnNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xldGFnbWFuYWdlci5jb20vZ3RhZy9qcz9pZD1HLU1HNk5IUzJRSDYiO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocyk7KGZ1bmN0aW9uKCl7DQohZnVuY3Rpb24oZixiLGUsdixuLHQscykNCnsNCiAgaWYoZi5mYnEpcmV0dXJuOw0KICBuPWYuZmJxPWZ1bmN0aW9uKCl7DQogICAgbi5jYWxsTWV0aG9kID8gbi5jYWxsTWV0aG9kLmFwcGx5KG4sYXJndW1lbnRzKSA6IG4ucXVldWUucHVzaChhcmd1bWVudHMpDQogIH07DQogIGlmKCFmLl9mYnEpZi5fZmJxPW47DQogIG4ucHVzaD1uOw0KICBuLmxvYWRlZD0hMDsNCiAgbi52ZXJzaW9uPScyLjAnOw0KICBuLnF1ZXVlPVtdOw0KICB0PWIuY3JlYXRlRWxlbWVudChlKTsNCiAgdC5hc3luYz0hMDsNCiAgdC5zcmM9djsNCiAgcz1iLmdldEVsZW1lbnRzQnlUYWdOYW1lKGUpWzBdOw0KICBzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHQscykNCn0od2luZG93LCBkb2N1bWVudCwnc2NyaXB0JywnaHR0cHM6Ly9jb25uZWN0LmZhY2Vib29rLm5ldC9lbl9VUy9mYmV2ZW50cy5qcycpOw0KDQpmYnEoJ2luaXQnLCAnMzU3MjM3ODIzNzQ0MzY0Jyk7DQpmYnEoJ3RyYWNrJywgJ1BhZ2VWaWV3Jyk7DQp9KSgpOyhmdW5jdGlvbigpewpqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KChmdW5jdGlvbihlKXtmdW5jdGlvbiBuKCl7Y29uc3Qgbj1lKCIuZXRfc2VhcmNoX2Zvcm1fY29udGFpbmVyIik7bi5oYXNDbGFzcygiZXRfcGJfaXNfYW5pbWF0aW5nIil8fChlKCIuZXRfbWVudV9jb250YWluZXIiKS5yZW1vdmVDbGFzcygiZXRfcGJfbWVudV92aXNpYmxlIGV0X3BiX25vX2FuaW1hdGlvbiIpLmFkZENsYXNzKCJldF9wYl9tZW51X2hpZGRlbiIpLG4ucmVtb3ZlQ2xhc3MoImV0X3BiX3NlYXJjaF9mb3JtX2hpZGRlbiBldF9wYl9ub19hbmltYXRpb24iKS5hZGRDbGFzcygiZXRfcGJfc2VhcmNoX3Zpc2libGUgZXRfcGJfaXNfYW5pbWF0aW5nIiksc2V0VGltZW91dCgoZnVuY3Rpb24oKXtlKCIuZXRfbWVudV9jb250YWluZXIiKS5hZGRDbGFzcygiZXRfcGJfbm9fYW5pbWF0aW9uIiksbi5hZGRDbGFzcygiZXRfcGJfbm9fYW5pbWF0aW9uIikucmVtb3ZlQ2xhc3MoImV0X3BiX2lzX2FuaW1hdGluZyIpfSksMWUzKSxuLmZpbmQoImlucHV0IikuZm9jdXMoKSxmdW5jdGlvbigpe2NvbnN0IG49ZSgiLmV0X3NlYXJjaF9mb3JtX2NvbnRhaW5lciIpLGE9ZSgiYm9keSIpO2lmKG4uaGFzQ2xhc3MoImV0X3BiX3NlYXJjaF92aXNpYmxlIikpe2NvbnN0IHM9ZSgiI21haW4taGVhZGVyIikuaW5uZXJIZWlnaHQoKSxpPWUoIiN0b3AtbWVudSIpLndpZHRoKCksdD1lKCIjdG9wLW1lbnUgbGkgYSIpLmNzcygiZm9udC1zaXplIik7bi5jc3Moe2hlaWdodDpzKyJweCJ9KSxuLmZpbmQoImlucHV0IikuY3NzKCJmb250LXNpemUiLHQpLGEuaGFzQ2xhc3MoImV0X2hlYWRlcl9zdHlsZV9sZWZ0Iik/bi5maW5kKCJmb3JtIikuY3NzKCJtYXgtd2lkdGgiLGkrNjApOm4uY3NzKCJtYXgtd2lkdGgiLGkrNjApfX0oKSl9ZSgiLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gPiBhIikubGVuZ3RoJiYoZSgiLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gPiBhIikuYWRkQ2xhc3MoImRhMTF5LXN1Ym1lbnUiKSxlKCIubWVudS1pdGVtLWhhcy1jaGlsZHJlbiA+IGEiKS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwiZmFsc2UiKSksZSgiLmRhMTF5LXN1Ym1lbnUiKS5vbigiZm9jdXMiLChmdW5jdGlvbigpe2UodGhpcykuYXR0cigiYXJpYS1leHBhbmRlZCIsInRydWUiKSxlKHRoaXMpLnNpYmxpbmdzKCIuc3ViLW1lbnUiKS5hZGRDbGFzcygiZGExMXktc3VibWVudS1zaG93IiksZSh0aGlzKS50cmlnZ2VyKCJtb3VzZWVudGVyIil9KSksZSgiLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gYSIpLm9uKCJmb2N1c291dCIsKGZ1bmN0aW9uKCl7ZSh0aGlzKS5wYXJlbnQoKS5ub3QoIi5tZW51LWl0ZW0taGFzLWNoaWxkcmVuIikuaXMoIjpsYXN0LWNoaWxkIikmJmUodGhpcykucGFyZW50cygiLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4iKS5jaGlsZHJlbigiLmRhMTF5LXN1Ym1lbnUiKS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwiZmFsc2UiKS50cmlnZ2VyKCJtb3VzZWxlYXZlIikuc2libGluZ3MoIi5zdWItbWVudSIpLnJlbW92ZUNsYXNzKCJkYTExeS1zdWJtZW51LXNob3ciKX0pKSxlKCIubWVudS1pdGVtLWhhcy1jaGlsZHJlbiBhIikua2V5dXAoKGZ1bmN0aW9uKG4pe2lmKDI3PT09bi5rZXlDb2RlKXt2YXIgYT1lKHRoaXMpLnBhcmVudHMoIi5tZW51LWl0ZW0taGFzLWNoaWxkcmVuIikubGFzdCgpO2EubGVuZ3RoJiYoYS5jaGlsZHJlbigiYSIpLmZvY3VzKCksYS5maW5kKCIuZGExMXktc3VibWVudSIpLmF0dHIoImFyaWEtZXhwYW5kZWQiLCJmYWxzZSIpLnRyaWdnZXIoIm1vdXNlbGVhdmUiKS5zaWJsaW5ncygiLnN1Yi1tZW51IikucmVtb3ZlQ2xhc3MoImRhMTF5LXN1Ym1lbnUtc2hvdyIpKX19KSksZSh0aGlzKS5rZXl1cCgoZnVuY3Rpb24oKXtlKCIuZXQtc2VhcmNoLWZpZWxkIikuZm9jdXMoKGZ1bmN0aW9uKCl7bigpfSkpLmJsdXIoKGZ1bmN0aW9uKCl7ZSgiLmV0X3NlYXJjaF9mb3JtX2NvbnRhaW5lciIpLmhhc0NsYXNzKCJldF9wYl9pc19hbmltYXRpbmciKXx8KGUoIi5ldF9tZW51X2NvbnRhaW5lciIpLnJlbW92ZUNsYXNzKCJldF9wYl9tZW51X2hpZGRlbiBldF9wYl9ub19hbmltYXRpb24iKS5hZGRDbGFzcygiZXRfcGJfbWVudV92aXNpYmxlIiksZSgiLmV0X3NlYXJjaF9mb3JtX2NvbnRhaW5lciIpLnJlbW92ZUNsYXNzKCJldF9wYl9zZWFyY2hfdmlzaWJsZSBldF9
4196wYl9ub19hbmltYXRpb24iKS5hZGRDbGFzcygiZXRfcGJfc2VhcmNoX2Zvcm1faGlkZGVuIGV0X3BiX2lzX2FuaW1hdGluZyIpLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ZSgiLmV0X21lbnVfY29udGFpbmVyIikuYWRkQ2xhc3MoImV0X3BiX25vX2FuaW1hdGlvbiIpLGUoIi5ldF9zZWFyY2hfZm9ybV9jb250YWluZXIiKS5hZGRDbGFzcygiZXRfcGJfbm9fYW5pbWF0aW9uIikucmVtb3ZlQ2xhc3MoImV0X3BiX2lzX2FuaW1hdGluZyIpfSksMWUzKSl9KSl9KSl9KSk7CmpRdWVyeShkb2N1bWVudCkucmVhZHkoKGZ1bmN0aW9uKG4pe2NvbnN0IHQ9KCh3aW5kb3d8fHt9KS5fZGExMXl8fHt9KS5za2lwX25hdmlnYXRpb25fbGlua190ZXh0fHwhMTshZnVuY3Rpb24oZSl7Y29uc3QgaT0nPGEgaHJlZj0iJytlKyciIGNsYXNzPSJza2lwLWxpbmsgZGExMXktc2NyZWVuLXJlYWRlci10ZXh0Ij4nK3QrIjwvYT4iO24oZSkuYXR0cigidGFiaW5kZXgiLC0xKSxuKCJib2R5IikucHJlcGVuZChpKX0oIiNtYWluLWNvbnRlbnQiKSxuKCdhW2hyZWZePSIjIl0nKS5jbGljaygoZnVuY3Rpb24oKXtuKCIjIituKHRoaXMpLmF0dHIoImhyZWYiKS5zbGljZSgxKSkuZm9jdXMoKX0pKX0pKTsKalF1ZXJ5KGRvY3VtZW50KS5yZWFkeSgoZnVuY3Rpb24oZSl7bGV0IG49bmV3IERhdGUsbz1uZXcgRGF0ZTtlKHRoaXMpLm9uKCJmb2N1c2luIiwoZnVuY3Rpb24odCl7ZSgiLmtleWJvYXJkLW91dGxpbmUiKS5yZW1vdmVDbGFzcygia2V5Ym9hcmQtb3V0bGluZSIpO288biYmZSh0LnRhcmdldCkuYWRkQ2xhc3MoImtleWJvYXJkLW91dGxpbmUiKX0pKSxlKHRoaXMpLm9uKCJtb3VzZWRvd24iLChmdW5jdGlvbigpe289bmV3IERhdGV9KSksZSh0aGlzKS5vbigia2V5ZG93biIsKGZ1bmN0aW9uKCl7bj1uZXcgRGF0ZX0pKX0pKTsKalF1ZXJ5KGRvY3VtZW50KS5yZWFkeSgoZnVuY3Rpb24odCl7dCgiLmV0X3BiX3RvZ2dsZSIpLmVhY2goKGZ1bmN0aW9uKCl7dCh0aGlzKS5hdHRyKCJ0YWJpbmRleCIsMCl9KSksdCgiLmV0X3BiX3RvZ2dsZSIpLm9uKCJrZXlkb3duIiwoZnVuY3Rpb24odCl7MzI9PT10LndoaWNoJiZ0LnByZXZlbn
4196REZWZhdWx0KCl9KSksdChkb2N1bWVudCkub24oImtleXVwIiwoZnVuY3Rpb24oZSl7MTMhPT1lLndoaWNoJiYzMiE9PWUud2hpY2h8fHQoIi5ldF9wYl90b2dnbGU6Zm9jdXMgLmV0X3BiX3RvZ2dsZV90aXRsZSIpLnRyaWdnZXIoImNsaWNrIil9KSl9KSk7CmpRdWVyeShkb2N1bWVudCkucmVhZHkoKGZ1bmN0aW9uKGUpe2UoIi5ldC1zZWFyY2gtZmllbGQiKS5lYWNoKChmdW5jdGlvbih0KXtlKHRoaXMpLmF0dHIoImlkIiwiZXRfcGJfc2VhcmNoX21vZHVsZV9pbnB1dF8iK3QpLGUoIiNldF9wYl9zZWFyY2hfbW9kdWxlX2lucHV0XyIrdCkuYmVmb3JlKCc8bGFiZWwgY2xhc3M9ImRhMTF5LXNjcmVlbi1yZWFkZXItdGV4dCIgZm9yPSJldF9wYl9zZWFyY2hfbW9kdWxlX2lucHV0XycrdCsnIj5TZWFyY2ggZm9yLi4uPC9sYWJlbD4nKSxlKCIjZXRfcGJfc2VhcmNoX21vZHVsZV9pbnB1dF8iK3QpLmFmdGVyKCc8YnV0dG9uIHR5cGU9InN1Ym1pdCIgY2xhc3M9ImRhMTF5LXNjcmVlbi1yZWFkZXItdGV4dCI+U2VhcmNoPC9idXR0b24+Jyl9KSksZSgiLmV0X3BiX3MiKS5lYWNoKChmdW5jdGlvbih0KXtlKHRoaXMpLmF0dHIoImlkIiwiZXRfcGJfc19tb2R1bGVfaW5wdXRfIit0KSxlKCIjZXRfcGJfc19tb2R1bGVfaW5wdXRfIit0KS5iZWZvcmUoJzxsYWJlbCBjbGFzcz0iZGExMXktc2NyZWVuLXJlYWRlci10ZXh0IiBmb3I9ImV0X3BiX3NfbW9kdWxlX2lucHV0XycrdCsnIj5TZWFyY2ggZm9yLi4uPC9sYWJlbD4nKX0pKSxlKCIuZXRfcGJfY29udGFjdF9mb3JtIikuZWFjaCgoZnVuY3Rpb24oKXtlKHRoaXMpLmZpbmQoIi5ldF9wYl9jb250YWN0X2NhcHRjaGFfcXVlc3Rpb24iKS5wYXJlbnQoKS53cmFwKCI8bGFiZWw+PC9sYWJlbD4iKX0pKSxlKCIuZXQtc29jaWFsLWZhY2Vib29rIGEuaWNvbiBzcGFuIikudGV4dCgiRmFjZWJvb2siKSxlKCIuZXQtc29jaWFsLXR3aXR0ZXIgYS5pY29uIHNwYW4iKS50ZXh0KCJUd2l0dGVyIiksZSgiLmV0LXNvY2lhbC1nb29nbGUtcGx1cyBhLmljb24gc3BhbiIpLnRleHQoIkdvb2dsZSBQbHVzIiksZSgiLmV0LXNvY2lhbC1waW50ZXJlc3QgYS5pY29uIHNwYW4iKS50ZXh0KCJQaW50ZXJlc3QiKSxlKCIuZXQtc29jaWFsLWxpbmtlZGluIGEuaWNvbiBzcGFuIikudGV4dCgiTGlua2VkSW4iKSxlKCIuZXQtc29jaWFsLXR1bWJsciBhLmljb24gc3BhbiIpLnRleHQoIlR1bWJsciIpLGUoIi5ldC1zb2NpYWwtaW5zdGFncmFtIGEuaWNvbiBzcGFuIikudGV4dCgiSW5zdGFncmFtIiksZSgiLmV0LXNvY2lhbC1za3lwZSBhLmljb24gc3BhbiIpLnRleHQoIlNreXBlIiksZSgiLmV0LXNvY2lhbC1mbGlrciBhLmljb24gc3BhbiIpLnRleHQoIkZsaWNrciIpLGUoIi5ldC1zb2NpYWwtbXlzcGFjZSBhLmljb24gc3BhbiIpLnRleHQoIk15c3BhY2UiKSxlKCIuZXQtc29jaWFsLWRyaWJiYmxlIGEuaWNvbiBzcGFuIikudGV4dCgiRHJpYmJsZSIpLGUoIi5ldC1zb2NpYWwteW91dHViZSBhLmljb24gc3BhbiIpLnRleHQoIllvdVR1YmUiKSxlKCIuZXQtc29jaWFsLXZpbWVvIGEuaWNvbiBzcGFuIikudGV4dCgiVmltZW8iKSxlKCIuZXQtc29jaWFsLXJzcyBhLmljb24gc3BhbiIpLnRleHQoIlJTUyIpfSkpOwpqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KChmdW5jdGlvbih0KXt0KCIuZXRfcGJfdGFic19jb250cm9scyIpLmVhY2goKGZ1bmN0aW9uKCl7dCh0aGlzKS5hdHRyKCJyb2xlIiwidGFibGlzdCIpfSkpLHQoIi5ldF9wYl90YWJzX2NvbnRyb2xzIGxpIikuZWFjaCgoZnVuY3Rpb24oKXt0KHRoaXMpLmF0dHIoInJvbGUiLCJwcmVzZW50YXRpb24iKX0pKSx0KCIuZXRfcGJfdGFic19jb250cm9scyBhIikuZWFjaCgoZnVuY3Rpb24oKXt0KHRoaXMpLmF0dHIoe3JvbGU6InRhYiJ9KX0pKSx0KCIuZXRfcGJfdGFiIikuZWFjaCgoZnVuY3Rpb24oKXt0KHRoaXMpLmF0dHIoInJvbGUiLCJ0YWJwYW5lbCIpfSkpLHQoIi5ldF9wYl90YWJzX2NvbnRyb2xzIGxpOm5vdCguZXRfcGJfdGFiX2FjdGl2ZSkgYSIpLmVhY2goKGZ1bmN0aW9uKCl7dCh0aGlzKS5hdHRyKHsiYXJpYS1zZWxlY3RlZCI6ImZhbHNlIiwiYXJpYS1leHBhbmRlZCI6ImZhbHNlIix0YWJpbmRleDotMX0pfSkpLHQoIi5ldF9wYl90YWJzX2NvbnRyb2xzIGxpLmV0X3BiX3RhYl9hY3RpdmUgYSIpLmVhY2goKGZ1bmN0aW9uKCl7dCh0aGlzKS5hdHRyKHsiYXJpYS1zZWxlY3RlZCI6InRydWUiLCJhcmlhLWV4cGFuZGVkIjoidHJ1ZSIsdGFiaW5kZXg6MH0pfSkpLHQoInVsLnN1Yi1tZW51IC5tZW51LWl0ZW0gYSIpLmVhY2goKGZ1bmN0aW9uKCl7dCh0aGlzKS5hdHRyKHsiYXJpYS1oYXNwb3B1cCI6InRydWUifSl9KSksdCgiYTpub3QoLmV0LXNvY2lhbC1pY29uIGEsIC53cC1ibG9jay1idXR0b25fX2xpbmssIGZpZ3VyZSBhLCAuZXRfcGJfYnV0dG9uLCAuZXRfcGJfdmlkZW9fcGxheSBhLCAuZXRfcGJfdGFic19jb250cm9scyBhKSIpLmVhY2goKGZ1bmN0aW9uKCl7dCh0aGlzKS5hdHRyKHtyb2xlOiJsaW5rIn0pfSkpLHQoIiNldF9zZWFyY2hfaWNvbiwgLmV0X2Nsb3NlX3NlYXJjaF9maWVsZCwgI2V0X21vYmlsZV9uYXZfbWVudSwgI3NlYXJjaHN1Ym1pdCwgLmljb24sIC53cC1ibG9jay1idXR0b25fX2xpbmssIC5ldF9wYl9idXR0b24sIC5ldF9wYl92aWRlb19wbGF5IGEiKS5lYWNoKChmdW5jdGlvbigpe3QodGhpcykuYXR0cih7cm9sZToiYnV0dG9uIn0pfSkpLHQoIiNnLXJlY2FwdGNoYS1yZXNwb25zZSIpLmVhY2goKGZ1bmN0aW9uKCl7dCh0aGlzKS5hdHRyKHsiYXJpYS1oaWRkZW4iOiJ0cnVlIiwiYXJpYS1sYWJlbCI6ImRvIG5vdCB1c2UiLCJhcmlhLXJlYWRvbmx5IjoidHJ1ZSJ9KX0pKSx0KCIuZXRfcGJfdGFic19jb250cm9scyBhIikuZWFjaCgoZnVuY3Rpb24oYSl7dCh0aGlzKS5hdHRyKHtpZDoiZXRfcGJfdGFiX2NvbnRyb2xfIithLCJhcmlhLWNvbnRyb2xzIjoiZXRfcGJfdGFiX3BhbmVsXyIrYX0pfSkpLHQoIi5ldF9wYl90YWIiKS5lYWNoKChmdW5jdGlvbihhKXt0KHRoaXMpLmF0dHIoe2lkOiJldF9wYl90YWJfcGFuZWxfIithLCJhcmlhLWxhYmVsbGVkYnkiOiJldF9wYl90YWJfY29udHJvbF8iK2F9
4196KX0pKSx0KCIuZXRfcGJfdGFiLmV0X3BiX2FjdGl2ZV9jb250ZW50IikuZWFjaCgoZnVuY3Rpb24oKXt0KHRoaXMpLmF0dHIoImFyaWEtaGlkZGVuIiwiZmFsc2UiKX0pKSx0KCIuZXRfcGJfdGFiOm5vdCguZXRfcGJfYWN0aXZlX2NvbnRlbnQpIikuZWFjaCgoZnVuY3Rpb24oKXt0KHRoaXMpLmF0dHIoImFyaWEtaGlkZGVuIiwidHJ1ZSIpfSkpLHQoIi5ldF9wYl90YWJzIikuZWFjaCgoZnVuY3Rpb24oYSl7dCh0aGlzKS5hdHRyKCJkYXRhLWRhMTF5LWlkIiwiZXRfcGJfdGFiX21vZHVsZV8iK2EpfSkpLHQoIi5ldF9wYl90YWJzX2NvbnRyb2xzIGEiKS5vbigiY2xpY2siLChmdW5jdGlvbigpe2NvbnN0IGE9dCh0aGlzKS5hdHRyKCJpZCIpLGU9dCh0aGlzKS5jbG9zZXN0KCIuZXRfcGJfdGFicyIpLmF0dHIoImRhdGEtZGExMXktaWQiKTt0KCdbZGF0YS1kYTExeS1pZD0iJytlKyciXSAuZXRfcGJfdGFic19jb250cm9scyBhJykuYXR0cih7ImFyaWEtc2VsZWN0ZWQiOiJmYWxzZSIsImFyaWEtZXhwYW5kZWQiOiJmYWxzZSIsdGFiaW5kZXg6LTF9KSx0KHRoaXMpLmF0dHIoeyJhcmlhLXNlbGVjdGVkIjoidHJ1ZSIsImFyaWEtZXhwYW5kZWQiOiJ0cnVlIix0YWJpbmRleDowfSksdCgiIyIrZSsiIC5ldF9wYl90YWIiKS5hdHRyKCJhcmlhLWhpZGRlbiIsInRydWUiKSx0KCdbYXJpYS1sYWJlbGxlZGJ5PSInK2ErJyJdJykuYXR0cigiYXJpYS1oaWRkZW4iLCJmYWxzZSIpfSkpLHQoIi5ldF9wYl90YWJzX2NvbnRyb2xzIGEiKS5rZXl1cCgoZnVuY3Rpb24oYSl7Y29uc3QgZT10KHRoaXMpLmNsb3Nlc3QoIi5ldF9wYl90YWJzIikuYXR0cigiZGF0YS1kYTExeS1pZCIpLGk9dCgnW2RhdGEtZGExMXktaWQ9IicrZSsnIl0nKTtpZigzOT09PWEud2hpY2gpe2NvbnN0IHQ9aS5maW5kKCJsaS5ldF9wYl90YWJfYWN0aXZlIikubmV4dCgpO3QubGVuZ3RoPjA/dC5maW5kKCJhIikudHJpZ2dlcigiY2xpY2siKTppLmZpbmQoImxpOmZpcnN0IGEiKS50cmlnZ2VyKCJjbGljayIpfWVsc2UgaWYoMzc9PT1hLndoaWNoKXtjb25zdCB0PWkuZmluZCgibGkuZXRfcGJfdGFiX2FjdGl2ZSIpLnByZXYoKTt0Lmxlbmd0aD4wP3QuZmluZCgiYSIpLnRyaWdnZXIoImNsaWNrIik6aS5maW5kKCJsaTpsYXN0IGEiKS50cmlnZ2VyKCJjbGljayIpfXQoIi5ldF9wYl90YWJzX2NvbnRyb2xzIGEiKS5yZW1vdmVDbGFzcygia2V5Ym9hcmQtb3V0bGluZSIpLGkuZmluZCgibGkuZXRfcGJfdGFiX2FjdGl2ZSBhIikuYWRkQ2xhc3MoImtleWJvYXJkLW91dGxpbmUiKX0pKSx0KCIuZXRfcGJfc2VhcmNoIikuZWFjaCgoZnVuY3Rpb24oYSl7dCh0aGlzKS5hdHRyKCJkYXRhLWRhMTF5LWlkIiwiZXRfcGJfc2VhcmNoX21vZHVsZV8iK2EpfSkpLHQoJ1tkYXRhLXJlcXVpcmVkX21hcms9InJlcXVpcmVkIl0nKS5lYWNoKChmdW5jdGlvbigpe3QodGhpcykuYXR0cigiYXJpYS1yZXF1aXJlZCIsInRydWUiKX0pKSx0KCIuZXRfcGJfY29udGFjdGZvcm1fdmFsaWRhdGVfZmllbGQiKS5hdHRyKCJ0eXBlIiwiaGlkZGVuIiksdCgiLmV0LXBiLWNvbnRhY3QtbWVzc2FnZSIpLmF0dHIoInJvbGUiLCJhbGVydCIpLHQoIiNtYWluLWNvbnRlbnQiKS5hdHRyKCJyb2xlIiwibWFpbiIpLHQoIi5ldF9wYl9mdWxsd2lkdGhfaGVhZGVyIikuZWFjaCgoZnVuY3Rpb24oYSl7dCh0aGlzKS5hdHRyKCJhcmlhLWxhYmVsIiwiV2lkZSBIZWFkZXIiK2EpfSkpLHQoIiNjb21tZW50LXdyYXAiKS5hdHRyKCJhcmlhLWxhYmVsIiwiQ29tbWVudHMiKX0pKTsKalF1ZXJ5KGRvY3VtZW50KS5yZWFkeSgoZnVuY3Rpb24oZSl7ZSgiI2V0X3RvcF9zZWFyY2gsIC5ldF9jbG9zZV9zZWFyY2hfZmllbGQsIC5ldF9wYl9tYWluX2JsdXJiX2ltYWdlIikuYXR0cigiYXJpYS1oaWRkZW4iLCJ0cnVlIil9KSk7CmpRdWVyeShkb2N1bWVudCkucmVhZHkoKGZ1bmN0aW9uKGUpe2UoIi5tb2JpbGVfbWVudV9iYXIiKS5hdHRyKHtyb2xlOiJidXR0b24iLCJhcmlhLWV4cGFuZGVkIjoiZmFsc2UiLCJhcmlhLWxhYmVsIjoiTWVudSIsdGFiaW5kZXg6MH0pLGUoIi5tb2JpbGVfbWVudV9iYXIiKS5vbigiY2xpY2siLChmdW5jdGlvbigpe2UodGhpcykuaGFzQ2xhc3MoImExMXktbW9iaWxlLW1lbnUtb3BlbiIpP2UodGhpcykucmVtb3ZlQ2xhc3MoImExMXktbW9iaWxlLW1lbnUtb3BlbiIpLmF0dHIoImFyaWEtZXhwYW5kZWQiLCJmYWxzZSIpOmUodGhpcykuYWRkQ2xhc3MoImExMXktbW9iaWxlLW1lbnUtb3BlbiIpLmF0dHIoImFyaWEtZXhwYW5kZWQiLCJ0cnVlIil9KSksZSgiLm1vYmlsZV9tZW51X2JhciIpLmtleXVwKChmdW5jdGlvbihuKXsxMyE9PW4ua2V5Q29kZSYmMzIhPT1uLmtleUNvZGV8fGUoIi5tb2JpbGVfbWVudV9iYXIiKS5jbGljaygpfSkpLGUoZG9jdW1lbnQpLmtleXVwKChmdW5jdGlvbihuKXsyNz09PW4ua2V5Q29kZSYmZSgiI2V0X21vYmlsZV9uYXZfbWVudSAubW9iaWxlX25hdiIpLmhhc0NsYXNzKCJvcGVuZWQiKSYmZSgiLm1vYmlsZV9tZW51X2JhciIpLmNsaWNrKCl9KSksZSh0aGlzKS5vbigiZm9jdXNpbiIsKGZ1bmN0aW9uKCl7ZSgiI2V0X21vYmlsZV9uYXZfbWVudSAubW9iaWxlX25hdiIpLmhhc0NsYXNzKCJvcGVuZWQiKSYmKGUoIiNldF9tb2JpbGVfbmF2X21lbnUgLmV0X21vYmlsZV9tZW51IDpmb2N1cyIpLmxlbmd0aHx8ZSgiI2V0X21vYmlsZV9uYXZfbWVudSAubW9iaWxlX21lbnVfYmFyIikuY2xpY2soKSl9KSl9KSk7Ci8vIyBzb3VyY2VVUkw9ZGl2aS1hY2Nlc3NpYmlsaXR5LWRhMTF5LWpzLWFmdGVyCn0pKCk7fXZhciBldmVudHM9WyJzY3JvbGwiLCJtb3VzZW1vdmUiLCJrZXlkb3duIiwidG91Y2hzdGFydCIsImNsaWNrIiwid2hlZWwiXTtmdW5jdGlvbiBvbkludGVyYWN0KCl7ZXZlbn
4196RzLmZvckVhY2goZnVuY3Rpb24oZSl7ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLG9uSW50ZXJhY3QpfSk7bG9hZEFsbCgpO31ldmVudHMuZm9yRWFjaChmdW5jdGlvbihlKXtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKGUsb25JbnRlcmFjdCx7cGFzc2l2ZTp0cnVlLG9uY2U6dHJ1ZX0pfSk7c2V0VGltZW91dChsb2FkQWxsLDQwMDApO30pKCk7"></script>
4196<script>if("serviceWorker" in navigator){navigator.serviceWorker.register("https://metroflowplumbing.com/wp-content/plugins/universal-giant-speed-pro-v440-pulse/assets/sw-kernel.js",{scope:"/"}).catch(function(){});}</script>
4196<script defer src="https://metroflowplumbing.com/wp-content/plugins/universal-giant-speed-pro-v440-pulse/assets/frontend.js"></script>
4196<script defer> 4197try{new PerformanceObserver(function(l){var s=0;l.getEntries().forEach(function(e){if(!e.hadRecentInput)s+=e.value});console.log("[GiantSpeed] CLS:",s.toFixed(4))}).observe({type:"layout-shift",buffered:true})}catch(e){} 4198</script>
4198</body> 4199</html> 4200<!-- 4201 generated 431 seconds ago 4202 generated in 1.197 seconds 4203 served from batcache in 0.004 seconds 4204 expires in 3169 seconds 4205-->
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.