PageSourceSearch

https://cowanroofing.com/roofing/

html cowanroofing.com collected 2026-09-30 18:30:44 UTC 160,097 bytes, 1,537 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en-US">
3<head >
4<meta charset="UTF-8" />
5<meta name="viewport" content="width=device-width, initial-scale=1" />
6<meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' />
7
8	<!-- This site is optimized with the Yoast SEO plugin v28.6 - https://yoast.com/product/yoast-seo-wordpress/ -->
9	<title>Residential Metal Roofing Installation, Roof Repair &amp; Replacement Company Culpeper, Greene County, Orange County &amp; More Areas In VA - Cowan Roofing</title>
10	<meta name="description" content="Cowan Roofing serves residential and commercial customers in and around Culpeper and Madison, VA. Our roofing services include roof repair, roof replacement more Schedule a free estimate today!" />
11	<link rel="canonical" href="https://cowanroofing.com/roofing/" />
12	<meta property="og:locale" content="en_US" />
13	<meta property="og:type" content="article" />
14	<meta property="og:title" content="Residential Metal Roofing Installation, Roof Repair &amp; Replacement Company Culpeper, Greene County, Orange County &amp; More Areas In VA - Cowan Roofing" />
15	<meta property="og:description" content="Cowan Roofing serves residential and commercial customers in and around Culpeper and Madison, VA. Our roofing services include roof repair, roof replacement more Schedule a free estimate today!" />
16	<meta property="og:url" content="https://cowanroofing.com/roofing/" />
17	<meta property="og:site_name" content="Cowan Roofing" />
18	<meta property="article:modified_time" content="2026-06-25T09:51:24+00:00" />
19	<meta property="og:image" content="https://cowanroofing.com/wp-content/uploads/2020/06/roof-installation-services.jpg" />
20	<meta property="og:image:width" content="970" />
21	<meta property="og:image:height" content="728" />
22	<meta property="og:image:type" content="image/jpeg" />
23	<meta name="twitter:card" content="summary_large_image" />
24	<meta name="twitter:label1" content="Est. reading time" />
25	<meta name="twitter:data1" content="2 minutes" />
26	
26<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/cowanroofing.com\/roofing\/","url":"https:\/\/cowanroofing.com\/roofing\/","name":"Residential Metal Roofing Installation, Roof Repair & Replacement Company Culpeper, Greene County, Orange County & More Areas In VA - Cowan Roofing","isPartOf":{"@id":"https:\/\/cowanroofing.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cowanroofing.com\/roofing\/#primaryimage"},"image":{"@id":"https:\/\/cowanroofing.com\/roofing\/#primaryimage"},"thumbnailUrl":"https:\/\/cowanroofing.com\/wp-content\/uploads\/2020\/06\/roof-installation-services.jpg","datePublished":"2020-06-09T04:22:07+00:00","dateModified":"2026-06-25T09:51:24+00:00","description":"Cowan Roofing serves residential and commercial customers in and around Culpeper and Madison, VA. Our roofing services include roof repair, roof replacement more Schedule a free estimate today!","breadcrumb":{"@id":"https:\/\/cowanroofing.com\/roofing\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cowanroofing.com\/roofing\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cowanroofing.com\/roofing\/#primaryimage","url":"https:\/\/cowanroofing.com\/wp-content\/uploads\/2020\/06\/roof-installation-services.jpg","contentUrl":"https:\/\/cowanroofing.com\/wp-content\/uploads\/2020\/06\/roof-installation-services.jpg","width":970,"height":728,"caption":"Local Roof Replacement & Repair Specialists"},{"@type":"BreadcrumbList","@id":"https:\/\/cowanroofing.com\/roofing\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cowanroofing.com\/"},{"@type":"ListItem","position":2,"name":"Roofing"}]},{"@type":"WebSite","@id":"https:\/\/cowanroofing.com\/#website","url":"https:\/\/cowanroofing.com\/","name":"Cowan Roofing","description":"","publisher":{"@id":"https:\/\/cowanroofing.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cowanroofing.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/cowanroofing.com\/#organization","name":"Cowan Roofing","url":"https:\/\/cowanroofing.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cowanroofing.com\/#\/schema\/logo\/image\/","url":"https:\/\/cowanroofing.com\/wp-content\/uploads\/2023\/10\/cowan-roofing-logo.jpg","contentUrl":"https:\/\/cowanroofing.com\/wp-content\/uploads\/2023\/10\/cowan-roofing-logo.jpg","width":233,"height":85,"caption":"Cowan Roofing"},"image":{"@id":"https:\/\/cowanroofing.com\/#\/schema\/logo\/image\/"}}]}</script>
26
27	<!-- / Yoast SEO plugin. -->
28
29
30<link rel='dns-prefetch' href='//static.addtoany.com' />
31<link rel='dns-prefetch' href='//cdn.jsdelivr.net' />
32<link rel='dns-prefetch' href='//unpkg.com' />
33<link rel='dns-prefetch' href='//seomarkoptimizer.sfs.io' />
34<link rel='dns-prefetch' href='//maxcdn.bootstrapcdn.com' />
35<link rel='dns-prefetch' href='//cdnjs.cloudflare.com' />
36<link rel="alternate" type="application/rss+xml" title="Cowan Roofing &raquo; Feed" href="https://cowanroofing.com/feed/" />
37<link rel="alternate" type="application/rss+xml" title="Cowan Roofing &raquo; Comments Feed" href="https://cowanroofing.com/comments/feed/" />
38<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://cowanroofing.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fcowanroofing.com%2Froofing%2F" />
39<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://cowanroofing.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fcowanroofing.com%2Froofing%2F&#038;format=xml" />
40<style id="wp-img-auto-sizes-contain-inline-css">
41img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
42/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
43</style>
44<link rel="preload" href="https://cowanroofing.com/wp-content/cache/w3-cache/css/558/wp-content/plugins/google-reviews-business/static/css/google-review.css" as="style"  fetchpriority="high"><link rel="preload" href="https://cowanroofing.com/wp-content/cache/w3-cache/css/558/wp-content/themes/cowanroofing/style.css" as="style"  fetchpriority="high"><link rel="preload" href="https://cowanroofing.com/wp-content/cache/w3-cache/css/558/wp-content/plugins/contact-form-7/includes/css/styles.css" as="style"  fetchpriority="high"><link rel="preload" href="https://cowanroofing.com/wp-content/cache/w3-cache/css/558/wp-content/plugins/widget-options/assets/css/widget-options.css" as="style"  fetchpriority="high"><link rel="preload" href="https://cowanroofing.com/wp-content/cache/w3-cache/css/558/wp-content/uploads/maxmegamenu/style.css" as="style"  fetchpriority="high"><link rel="preload" href="https://cowanroofing.com/wp-content/cache/w3-cache/css/558/wp-includes/css/dashicons.min.css" as="style"  fetchpriority="high"><link rel="preload" href="https://cowanroofing.com/wp-content/cache/w3-cache/css/558/wp-content/plugins/pojo-accessibility/modules/legacy/assets/css/style.min.css" as="style"  fetchpriority="high"><link rel="preload" href="https://cowanroofing.com/wp-content/cache/w3-cache/css/558/wp-content/cache/w3-cache/fonts/4dd54e972af70b2a84dad75538fed704.css" as="style"  fetchpriority="high"><link rel="preload" href="https://cowanroofing.com/wp-content/cache/w3-cache/css/558/wp-content/themes/cowanroofing/css/custom-styles.css" as="style"  fetchpriority="high"><link rel="preload" href="https://cowanroofing.com/wp-content/cache/w3-cache/css/558/wp-content/themes/cowanroofing/css/slick.css" as="style"  fetchpriority="high"><link rel="preload" href="//cdnjs.cloudflare.com/ajax/libs/animate.css/3.5.2/animate.min.css" as="style" crossorigin fetchpriority="high"><link rel="preload" href="//unpkg.com/[email protected]/dist/aos.css" as="style" crossorigin fetchpriority="high"><link rel="preload" href="https://cowanroofing.com/wp-content/cache/w3-cache/css/558/wp-content/themes/cowanroofing/css/odometer.css" as="style"  fetchpriority="high"><link rel="preload" href="https://cowanroofing.com/wp-content/cache/w3-cache/css/558/wp-content/themes/cowanroofing/lib/gutenberg/front-end.css" as="style"  fetchpriority="high"><link rel="preload" href="https://cowanroofing.com/wp-content/cache/w3-cache/css/558/wp-content/plugins/easy-fancybox/fancybox/1.5.4/jquery.fancybox.min.css" as="style"  fetchpriority="high"><link rel="preload" href="https://cowanroofing.com/wp-content/cache/w3-cache/css/558/wp-content/plugins/add-to-any/addtoany.min.css" as="style"  fetchpriority="high"><link rel="preload" href="https://s.w.org/wp-includes/css/dashicons.min.css?ver=6.5" as="style" crossorigin fetchpriority="high"><style id="w3-bg-load">p[data-bglz],p[data-bglz]::before,p[data-bglz]::after,div[data-bglz],div[data-bglz]::before,div[data-bglz]::after,section[data-bglz],section[data-bglz]::before,section[data-bglz]::after,iframelazy[data-bglz],iframe[data-bglz]{background-image:none !important;} video[data-class="LazyLoad"]{opacity: 0;} </style>
44<script>var w3elem = window.innerWidth<768?'touchstart':'click';var w3LazyloadByPx=200, w3LazyloadJs = 0,w3ExcludedJs = 0, w3Inp = 0,w3BlankImgUrl="https://cowanroofing.com/wp-content/cache/w3-cache/blank.png",w3CallUrl="https://cowanroofing.com/wp-admin/admin-ajax.php?action=w3Call&token=bf5e9fa2a71f1fdc03b15a39b93b0ba6",w3Call=1;var w3pageshow="";!function(){let e=[];var t=EventTarget.prototype.addEventListener;e.click=[],e.touchstart=[],window.w3Html=[],window.w3Html.eventEcr=[],window.w3Html.class="",window.w3Html["css-preloaded"]=0,window.w3Html["data-css"]=0,window.w3Html["data-css-loaded"]=0;let i=document.querySelector("html"),r=new WeakMap;function s(t){!function e(t,i=0){return!!hasClickHandler(t)||i<3&&!["HTML","BODY"].includes(t.parentNode.tagName)&&e(t.parentNode,++i)}(t.target)&&("A"!=t.target.tagName||0==t.target.href.indexOf("#")||0==t.target.href.indexOf("javascript"))&&(t.preventDefault(),console.log("click",t.target),e.click.push(t.target))}window.hasClickHandler=e=>!!r.get(e)?.click?.size,"onpageshow"in window&&(window.onpageshow=function(e){w3pageshow=e}),EventTarget.prototype.addEventListener=function(e,i,s){if(["w3-DOMContentLoaded","w3-load"].includes(e))return t.call(this,e,i,"object"==typeof s?{...s,once:!0}:{once:!0});if(["click","touchstart"].includes(e)){let a=r.get(this);return a||(a={},r.set(this,a)),(a[e]||=new Set).add(i),t.call(this,e,i,s)}return"scroll"===e?t.call(this,e,i,"object"==typeof s?{...s,passive:!0}:!0===s?{passive:!0,capture:!0}:{passive:!0}):t.call(this,e,i,s)},i.addEventListener("click",s),window.addEventListener("w3-load",function t(){return -1!=window.w3Html.class.indexOf("jsload")?(i.removeEventListener("click",s),setTimeout(function(){(function t(i,r){if(r>3)return;let s=e[i];for(let a=0;a<s.length;a++){let n=s[a];if(!window.w3Html.eventEcr.includes(n)&&void 0!==n.click)return window.w3Html.eventEcr.push(n),n.click();if(!window.w3Html.eventEcr.includes(n)&&void 0===n.click&&!["HTML","BODY"].includes(n.parentNode.tagName))return e[i]=[],e[i].push(n.parentNode),t(i,r+1)}})("click",0)},200)):setTimeout(function(){t()},50)},{passive:!0})}();class w3LoadScripts{constructor(e){this.triggerEvents=e,this.eventOptions={passive:!0},this.userEventListener=this.triggerListener.bind(this),this.lazyTrigger,this.styleLoadFired,this.lazyScriptsLoadFired=0,this.scriptsLoadFired=0,this.excluded_js=w3ExcludedJs,this.w3LazyloadJs=w3LazyloadJs,this.w3_fonts="undefined"!=typeof w3GoogleFont?w3GoogleFont:[],this.w3Styles=[],this.w3Scripts={normal:[],async:[],defer:[],lazy:[]},this.allJQueries=[],this.validScriptAttributes=new Set(["src","type","async","defer","crossorigin","integrity","nomodule","referrerpolicy","nonce","id","onload","onerror"]),this.htmlElement=document.getElementsByTagName("html")[0]}userEventsAdd(e){let t=this.triggerEvents;for(let i=0;i<t.length;i++)window.addEventListener(t[i],e.userEventListener,e.eventOptions)}userEventsRemove(e){let t=this.triggerEvents;for(let i=0;i<t.length;i++)window.removeEventListener(t[i],e.userEventListener,e.eventOptions)}async triggerListener(e){this.userEventsRemove(this),setTimeout(()=>this.callEvents(),10,10)}callEvents(){this.lazyScriptsLoadFired=1,this.addHtmlClass("w3_user"),"loading"===document.readyState?this.scriptsLoadFire||document.addEventListener("DOMContentLoaded",this.loadResources.bind(this)):this.scriptsLoadFire||this.loadResources()}async loadStyleResources(){this.styleLoadFired||(this.styleLoadFired=!0,this.registerStyles(),window.w3Html["data-css"]=this.w3Styles.length,this.preloadScripts(this.w3Styles),this.loadStylesPreloaded(),this.loadFonts(this.w3_fonts))}async loadStylesPreloaded(){setTimeout(async()=>{1==window.w3Html["css-preloaded"]?(await this.loadStyles(this.w3Styles),await this.repaintFrame()):this.loadStylesPreloaded()},10)}async loadResources(){this.loadStyleResources(),this.scriptsLoadFired||(this.scriptsLoadFired=!0,this.exeDocumentWrite(),this.registerScripts(),this.addHtmlClass("w3_start"),"function"==typeof w3EventsOnStartJs&&w3EventsOnStartJs(),await this.preloadScripts(this.w3Scripts.normal),await this.preloadScripts(this.w3Scripts.defer),await this.preloadScripts(this.w3Scripts.async),await this.loadScripts(this.w3Scripts.normal),await this.loadScripts(this.w3Scripts.defer),await this.loadScripts(this.w3Scripts.async),await this.executeDomcontentloaded(),await this.executeWindowLoad(),window.dispatchEvent(new Event("w3-scripts-loaded")),this.addHtmlClass("w3_js"),"function"==typeof w3EventsOnEndJs&&w3EventsOnEndJs(),this.lazyTrigger=setInterval(this.w3TriggerLazyScript,500,this))}async w3TriggerLazyScript(e){e.lazyScriptsLoadFired&&(await e.loadScripts(e.w3Scripts.lazy),e.addHtmlClass("jsload"),clearInterval(e.lazyTrigger))}addHtmlClass(e){this.htmlElement.classList.add(e),window.w3Html.class+=" "+e}registerScripts(){let e=document.querySelectorAll("script[type=lazyJs]"),t=document.querySelectorAll("script[type=lazyExJs]");for(let i=0;i<e.length;i++){let r=e[i];r.hasAttribute("src")?r.hasAttribute("async")&&!1!==r.async?this.w3Scripts.async.push(r):r.hasAttribute("defer")&&!1!==r.defer||"module"===r.getAttribute("data-w3-type")?this.w3Scripts.defer.push(r):this.w3Scripts.normal.push(r):this.w3Scripts.normal.push(r)}for(let s=0;s<t.length;s++)this.w3Scripts.lazy.push(t[s])}registerStyles(){let e=document.querySelectorAll("link[data-href]");for(let t=0;t<e.length;t++)this.w3Styles.push(e[t])}async executeScript(e){return new Promise(t=>{let i=document.createElement("script"),r=e.attributes;for(let s=0;s<r.length;s++){let a=r[s],n=a.nodeName;"type"!==n&&"data-cfasync"!=n&&("data-w3-type"===n&&(n="type"),(-1!=n.indexOf("data-")||-1==n.indexOf("data-")&&this.validScriptAttributes.has(n))&&i.setAttribute(n,a.nodeValue))}if(e.hasAttribute("src")){i.removeAttribute("defer"),i.setAttribute("async","async");let o=i.getAttribute("type");"text/javascript"!=o&&"application/javascript"!=o&&"module"!=o&&i.setAttribute("type","text/javascript"),e.hasAttribute("nomodule")&&i.removeAttribute("type"),i.onload=()=>{i.loaded=!0,e.onload&&"function"==typeof e.onload&&e.onload(),t()},i.onerror=()=>{i.loaded=!0,t()}}else i.text=e.text,t();if(null!==e.parentNode)try{e.parentNode.replaceChild(i,e),e.hasAttribute("nomodule")&&t()}catch(l){console.error("error",l),t()}else document.head.appendChild(i)})}async executeStyles(e){e.href=e.dataset.href,e.removeAttribute("data-href"),e.rel="stylesheet"}async loadScripts(e){let t=e.shift();return t?(await this.repaintFrame(),await this.executeScript(t),this.loadScripts(e)):Promise.resolve()}async loadStyles(e){let t=e.shift();return t?(this.executeStyles(t),this.loadStyles(e)):"loaded"}async loadFonts(e){let t=document.createDocumentFragment();for(let i=0;i<e.length;i++){let r=e[i],s=document.createElement("link");s.href=r,s.rel="stylesheet",t.appendChild(s)}document.head.appendChild(t)}preloadScripts(e){let t=document.createDocumentFragment(),i=0,r=this;for(let s=0;s<e.length;s++){let a=e[s],n=a.getAttribute("src"),o=a.getAttribute("data-href"),l=a.getAttribute("data-w3-type");if(n){let d=document.createElement("link");d.href=n,d.rel="module"==l?"modulepreload":"preload",d.as="script",t.appendChild(d)}else if(o){let c=document.createElement("link");c.href=o,c.rel="preload",c.as="style",a.hasAttribute("crossorigin")&&(c.crossOrigin=a.getAttribute("crossorigin")),a.hasAttribute("integrity")&&(c.integrity=a.getAttribute("integrity")),i++,e.length==i&&(c.dataset.last=1),t.appendChild(c),c.onload=function(){fetch(this.href,{mode:"no-cors"}).then(e=>e.blob()).then(()=>r.updateCssLoader()).catch(()=>r.updateCssLoader())},c.onerror=function(){r.updateCssLoader()}}}document.head.appendChild(t)}updateCssLoader(){window.w3Html["data-css-loaded"]=window.w3Html["data-css-loaded"]+1,window.w3Html["data-css"]==window.w3Html["data-css-loaded"]&&(window.w3Html["css-preloaded"]=1)}holdEventListeners(){let e={};function t(t,i){let r=Object.getOwnPropertyDescriptor(t,"addEventListener");(void 0==r||r.writable)&&(!function(t){function i(i){return e[t].eventsToRewrite.indexOf(i)>=0?"w3-"+i:i}e[t]||(e[t]={originalFunctions:{add:t.addEventListener,remove:t.removeEventListener},eventsToRewrite:[]},t.addEventListener=function(){arguments[0]=i(arguments[0]),e[t].originalFunctions.add.apply(t,arguments)},t.removeEventListener=function(){arguments[0]=i(arguments[0]),e[t].originalFunctions.remove.apply(t,arguments)})}(t),e[t].eventsToRewrite.push(i))}function i(e,t){let i=e[t];Object.defineProperty(e,t,{get:()=>i||function(){},set(r){e["w3"+t]=i=r}})}t(document,"DOMContentLoaded"),t(window,"DOMContentLoaded"),t(window,"load"),t(window,"pageshow"),t(document,"readystatechange"),i(document,"onreadystatechange"),i(window,"onload"),i(window,"onpageshow")}bindFunc(e,t,i){if(-1==window.w3Html.class.indexOf("w3_js")){setTimeout(()=>this.bindFunc(e,t,i),50,50);return}e.bind(t)(i)}holdJquery(e){let t=window.jQuery;Object.defineProperty(window,"jQuery",{get:()=>t,set(i){if(i&&i.fn&&!e.allJQueries.includes(i)){i.fn.ready=i.fn.init.prototype.ready=function(t){if(void 0!==t)return e.scriptsLoadFired?e.domReadyFired?e.bindFunc(t,document,i):document.addEventListener("w3-DOMContentLoaded",()=>e.bindFunc(t,document,i)):document.addEventListener("DOMContentLoaded",()=>t.bind(document)(i)),i(document)};let r=i.fn.on;i.fn.on=i.fn.init.prototype.on=function(){if("ready"==arguments[0]||"w3-DOMContentLoad"==arguments[0]){if
44(this[0]!==document)return r.apply(this,arguments),this;if("string"!=typeof arguments[1])return e.bindFunc(arguments[1],document,i)}if(this[0]===window){function t(e){return e.split(" ").map(e=>"load"===e||0===e.indexOf("load")?"w3-jquery-load":e).join(" ")}"string"==typeof arguments[0]||arguments[0]instanceof String?arguments[0]=t(arguments[0]):"object"==typeof arguments[0]&&Object.keys(arguments[0]).forEach(e=>{Object.assign(arguments[0],{[t(e)]:arguments[0][e]})[e]})}return r.apply(this,arguments),this},e.allJQueries.push(i)}t=i}})}async executeDomcontentloaded(e){e||(this.domReadyFired=!0,document.w3readyState=document.readyState),await this.repaintFrame(),document.dispatchEvent(new Event("w3-DOMContentLoaded")),await this.repaintFrame(),window.dispatchEvent(new Event("w3-DOMContentLoaded")),await this.repaintFrame(),document.dispatchEvent(new Event("w3-readystatechange")),await this.repaintFrame(),document.w3onreadystatechange&&document.w3onreadystatechange()}async executeWindowLoad(e=0){if(!e&&-1==window.w3Html.class.indexOf("w3_js"))return setTimeout(()=>this.executeWindowLoad(),10);!0==this.domReadyFired&&(document.w3readyState=document.readyState),await this.repaintFrame(),setTimeout(()=>window.dispatchEvent(new Event("w3-load")),100),await this.repaintFrame(),window.w3onload&&window.w3onload(),await this.repaintFrame();for(let t=0;t<this.allJQueries.length;t++)this.allJQueries[t](window).trigger("w3-jquery-load");window.dispatchEvent(new Event("w3-pageshow")),await this.repaintFrame(),window.w3onpageshow&&window.w3onpageshow(w3pageshow)}exeDocumentWrite(){let e=new Map,t=new Map,i=null,r=function(i){if(!i||!t.has(i))return;let r=t.get(i);if(0===r.length)return;let s=r.join("");t.set(i,[]);let a=document.createRange(),n=i.parentElement,o=e.get(i);void 0===o&&(o=i.nextSibling,e.set(i,o));let l=document.createDocumentFragment();a.setStart(l,0),l.appendChild(a.createContextualFragment(s)),n.insertBefore(l,o)},s=function(e,s=!1){s&&(e+="\\n");let a=document.currentScript;a||console.error("unable to document.write this: "+e),t.has(a)||t.set(a,[]),t.get(a).push(e),i&&clearTimeout(i),i=setTimeout(()=>{r(a),i=null},0)};document.write=function(e){s(e,!1)},document.writeln=function(e){s(e,!0)}}async repaintFrame(){return new Promise(e=>requestAnimationFrame(e))}async execBeforeW3Load(){await this.executeDomcontentloaded(1),await this.executeWindowLoad(1)}static execute(){let e=new w3LoadScripts(["keydown","mousemove","touchmove","touchstart","touchend","wheel"]);if(window.addEventListener("DOMContentLoaded",()=>{e.execBeforeW3Load()}),e.holdJquery(e),e.holdEventListeners(),document.w3readyState="loading",e.userEventsAdd(e),window.location.href.indexOf("w3=1")>-1||window.location.href.indexOf("w3%3D1")>-1)return window.addEventListener("load",()=>{setTimeout(()=>{let t=new Image;t.src=w3BlankImgUrl,document.body.appendChild(t),e.triggerListener()},1e3)});let t=void 0!==window.w3TriggerUrls&&Array.isArray(window.w3TriggerUrls)?window.w3TriggerUrls:[],i=window.location.href,r=t.some(e=>i.indexOf(e)>-1);if(r||function e(){try{return window.self!==window.top}catch(t){return!0}}()||!e.w3LazyloadJs||window.scrollY>50||"complete"==document.readyState||"interactive"==document.readyState)return setTimeout(()=>e.triggerListener(),100,100);let s=setInterval(function e(t){if(null!=document.body){let i=document.body.getBoundingClientRect();i.top<-30&&setTimeout(()=>t.triggerListener(),100,100),clearInterval(s)}},500,e)}}w3LoadScripts.execute();</script>
44<link data-css="1" href="https://cowanroofing.com/wp-content/cache/w3-cache/css/558/wp-content/plugins/google-reviews-business/static/css/google-review.css" rel='stylesheet' id='grw_css-css' media='all'>
45<link data-css="1" href="https://cowanroofing.com/wp-content/cache/w3-cache/css/558/wp-content/themes/cowanroofing/style.css" rel='stylesheet' id='pleasanton-workspace-theme-css' media='all'>
46<style id="wp-emoji-styles-inline-css">
47
48	img.wp-smiley, img.emoji {
49		display: inline !important;
50		border: none !important;
51		box-shadow: none !important;
52		height: 1em !important;
53		width: 1em !important;
54		margin: 0 0.07em !important;
55		vertical-align: -0.1em !important;
56		background: none !important;
57		padding: 0 !important;
58	}
59/*# sourceURL=wp-emoji-styles-inline-css */
60</style>
61<style id="wp-block-library-inline-css">
62:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;
62--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style^=border-color],[style*=";border-color"],[style*="; border-color"]){border-style:solid}html :where([style^=border-top-color],[style*=";border-top-color"],[style*="; border-top-color"]){border-top-style:solid}html :where([style^=border-right-color],[style*=";border-right-color"],[style*="; border-right-color"]){border-right-style:solid}html :where([style^=border-bottom-color],[style*=";border-bottom-color"],[style*="; border-bottom-color"]){border-bottom-style:solid}html :where([style^=border-left-color],[style*=";border-left-color"],[style*="; border-left-color"]){border-left-style:solid}html :where([style^=border-width],[style*=";border-width"],[style*="; border-width"]){border-style:solid}html :where([style^=border-top-width],[style*=";border-top-width"],[style*="; border-top-width"]){border-top-style:solid}html :where([style^=border-right-width],[style*=";border-right-width"],[style*="; border-right-width"]){border-right-style:solid}html :where([style^=border-bottom-width],[style*=";border-bottom-width"],[style*="; border-bottom-width"]){border-bottom-style:solid}html :where([style^=border-left-width],[style*=";border-left-width"],[style*="; border-left-width"]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}}
63
64/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */
65</style>
66<style id="wp-block-heading-inline-css">
67h1:where(.wp-block-heading).has-background,h2:where(.wp-block-heading).has-background,h3:where(.wp-block-heading).has-background,h4:where(.wp-block-heading).has-background,h5:where(.wp-block-heading).has-background,h6:where(.wp-block-heading).has-background{padding:1.25em 2.375em}h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h2.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h2.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h3.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h3.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h4.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h4.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h5.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h5.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h6.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h6.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]){rotate:180deg}
68/*# sourceURL=https://cowanroofing.com/wp-includes/blocks/heading/style.min.css */
69</style>
70<style id="wp-block-image-inline-css">
71.wp-block-image>a,.wp-block-image>figure>a{display:inline-block}.wp-block-image img{box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom}@media not (prefers-reduced-motion){.wp-block-image img.hide{visibility:hidden}.wp-block-image img.show{animation:show-content-image .4s}}.wp-block-image[style*=border-radius] img,.wp-block-image[style*=border-radius]>a{border-radius:inherit}.wp-block-image.has-custom-border img{box-sizing:border-box}.wp-block-image.aligncenter{text-align:center}.wp-block-image.alignfull>a,.wp-block-image.alignwide>a{width:100%}.wp-block-image.alignfull img,.wp-block-image.alignwide img{height:auto;width:100%}.wp-block-image .aligncenter,.wp-block-image .alignleft,.wp-block-image .alignright,.wp-block-image.aligncenter,.wp-block-image.alignleft,.wp-block-image.alignright{display:table}.wp-block-image .aligncenter>figcaption,.wp-block-image .alignleft>figcaption,.wp-block-image .alignright>figcaption,.wp-block-image.aligncenter>figcaption,.wp-block-image.alignleft>figcaption,.wp-block-image.alignright>figcaption{caption-side:bottom;display:table-caption}.wp-block-image .alignleft{float:left;margin:.5em 1em .5em 0}.wp-block-image .alignright{float:right;margin:.5em 0 .5em 1em}.wp-block-image .aligncenter{margin-left:auto;margin-right:auto}.wp-block-image :where(figcaption){margin-bottom:1em;margin-top:.5em}.wp-block-image.is-style-circle-mask img{border-radius:9999px}@supports ((-webkit-mask-image:none) or (mask-image:none)) or (-webkit-mask-image:none){.wp-block-image.is-style-circle-mask img{border-radius:0;-webkit-mask-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>');mask-mode:alpha;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}}:root :where(.wp-block-image.is-style-rounded img,.wp-block-image .is-style-rounded img){border-radius:9999px}.wp-block-image figure{margin:0}.wp-lightbox-container{display:flex;flex-direction:column;position:relative}.wp-lightbox-container img{cursor:zoom-in}.wp-lightbox-container img:hover+button{opacity:1}.wp-lightbox-container button{align-items:center;backdrop-filter:blur(16px) saturate(180%);background-color:rgba(90,90,90,.25);border:none;border-radius:4px;cursor:zoom-in;display:flex;height:20px;justify-content:center;opacity:0;padding:0;position:absolute;right:16px;text-align:center;top:16px;width:20px;z-index:100}@media not (prefers-reduced-motion){.wp-lightbox-container button{transition:opacity .2s ease}}.wp-lightbox-container button:focus-visible{outline:3px auto rgba(90,90,90,.25);outline:3px auto -webkit-focus-ring-color;outline-offset:3px}.wp-lightbox-container button:hover{cursor:pointer;opacity:1}.wp-lightbox-container button:focus{opacity:1}.wp-lightbox-container button:focus,.wp-lightbox-container button:hover,.wp-lightbox-container button:not(:hover):not(:active):not(.has-background){background-color:rgba(90,90,90,.25);border:none}.wp-lightbox-overlay{box-sizing:border-box;
71cursor:zoom-out;height:100vh;left:0;overflow:hidden;position:fixed;top:0;visibility:hidden;width:100%;z-index:100000}.wp-lightbox-overlay .wp-lightbox-close-button{align-items:center;cursor:pointer;display:flex;font-family:inherit;gap:8px;justify-content:center;line-height:1;min-height:40px;min-width:40px;padding:0 4px;position:absolute;right:calc(env(safe-area-inset-right) + 16px);top:calc(env(safe-area-inset-top) + 16px);z-index:5000000}.wp-lightbox-overlay .wp-lightbox-close-button:focus,.wp-lightbox-overlay .wp-lightbox-close-button:hover,.wp-lightbox-overlay .wp-lightbox-close-button:not(:hover):not(:active):not(.has-background){background:none;border:none}.wp-lightbox-overlay .wp-lightbox-close-button:has(.wp-lightbox-close-text:not([hidden])) .wp-lightbox-close-icon svg{height:1em;width:1em}.wp-lightbox-overlay .wp-lightbox-close-icon svg{display:block}.wp-lightbox-overlay .wp-lightbox-navigation-button-next,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{align-items:center;bottom:16px;cursor:pointer;display:flex;font-family:inherit;gap:4px;justify-content:center;line-height:1;min-height:40px;min-width:40px;padding:0 8px;position:absolute;z-index:2000002}.wp-lightbox-overlay .wp-lightbox-navigation-button-next[hidden],.wp-lightbox-overlay .wp-lightbox-navigation-button-prev[hidden]{display:none}@media (min-width:960px){.wp-lightbox-overlay .wp-lightbox-navigation-button-next,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{bottom:50%;transform:translateY(-50%)}}.wp-lightbox-overlay .wp-lightbox-navigation-button-next:focus,.wp-lightbox-overlay .wp-lightbox-navigation-button-next:hover,.wp-lightbox-overlay .wp-lightbox-navigation-button-next:not(:hover):not(:active):not(.has-background),.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:focus,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:hover,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:not(:hover):not(:active):not(.has-background){background:none;border:none;padding:0 8px}.wp-lightbox-overlay .wp-lightbox-navigation-button-next:has(.wp-lightbox-navigation-text:not([hidden])) .wp-lightbox-navigation-icon svg,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:has(.wp-lightbox-navigation-text:not([hidden])) .wp-lightbox-navigation-icon svg{display:block;height:1.5em;width:1.5em}.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{left:calc(env(safe-area-inset-left) + 16px)}.wp-lightbox-overlay .wp-lightbox-navigation-button-next{right:calc(env(safe-area-inset-right) + 16px)}.wp-lightbox-overlay .wp-lightbox-navigation-icon svg{vertical-align:middle}.wp-lightbox-overlay .lightbox-image-container{height:var(--wp--lightbox-container-height);left:50%;overflow:hidden;position:absolute;top:50%;transform:translate(-50%,-50%);transform-origin:top left;width:var(--wp--lightbox-container-width);z-index:2000001}.wp-lightbox-overlay .wp-block-image{align-items:center;box-sizing:border-box;display:flex;height:100%;justify-content:center;margin:0;position:relative;transform-origin:0 0;width:100%;z-index:3000000}.wp-lightbox-overlay .wp-block-image img{height:var(--wp--lightbox-image-height);min-height:var(--wp--lightbox-image-height);min-width:var(--wp--lightbox-image-width);width:var(--wp--lightbox-image-width)}.wp-lightbox-overlay .wp-block-image figcaption{display:none}.wp-lightbox-overlay button{background:none;border:none}.wp-lightbox-overlay .scrim{background-color:#fff;height:100%;opacity:.9;position:absolute;width:100%;z-index:2000000}.wp-lightbox-overlay.active{visibility:visible}@media not (prefers-reduced-motion){.wp-lightbox-overlay.active{animation:turn-on-visibility .25s both}.wp-lightbox-overlay.active img{animation:turn-on-visibility .35s both}.wp-lightbox-overlay.show-closing-animation:not(.active){animation:turn-off-visibility .35s both}.wp-lightbox-overlay.show-closing-animation:not(.active) img{animation:turn-off-visibility .25s both}.wp-lightbox-overlay.zoom.active{animation:none;opacity:1;visibility:visible}.wp-lightbox-overlay.zoom.active .lightbox-image-container{animation:lightbox-zoom-in .4s}.wp-lightbox-overlay.zoom.active .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.active .scrim{animation:turn-on-visibility .4s forwards}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active){animation:none}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container{animation:lightbox-zoom-out .4s}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .scrim{animation:turn-off-visibility .4s forwards}}
71@keyframes show-content-image{0%{visibility:hidden}99%{visibility:hidden}to{visibility:visible}}@keyframes turn-on-visibility{0%{opacity:0}to{opacity:1}}@keyframes turn-off-visibility{0%{opacity:1;visibility:visible}99%{opacity:0;visibility:visible}to{opacity:0;visibility:hidden}}@keyframes lightbox-zoom-in{0%{transform:translate(calc((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position)),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale))}to{transform:translate(-50%,-50%) scale(1)}}@keyframes lightbox-zoom-out{0%{transform:translate(-50%,-50%) scale(1);visibility:visible}99%{visibility:visible}to{transform:translate(calc((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position)),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale));visibility:hidden}}
72/*# sourceURL=https://cowanroofing.com/wp-includes/blocks/image/style.min.css */
73</style>
74<style id="wp-block-paragraph-inline-css">
75.is-small-text{font-size:.875em}.is-regular-text{font-size:1em}.is-large-text{font-size:2.25em}.is-larger-text{font-size:3em}.has-drop-cap:not(:focus):first-letter{float:left;font-size:8.4em;font-style:normal;font-weight:100;line-height:.68;margin:.05em .1em 0 0;text-transform:uppercase}body.rtl .has-drop-cap:not(:focus):first-letter{float:none;margin-left:.1em}p.has-drop-cap.has-background{overflow:hidden}:root :where(p.has-background){padding:1.25em 2.375em}:where(p.has-text-color:not(.has-link-color)) a{color:inherit}p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[style*="writing-mode:vertical-rl"]{rotate:180deg}
76/*# sourceURL=https://cowanroofing.com/wp-includes/blocks/paragraph/style.min.css */
77</style>
78
79<style id="classic-theme-styles-inline-css">
80/*! This file is auto-generated */
81.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
82/*# sourceURL=/wp-includes/css/classic-themes.min.css */
83</style>
84
85<style id="global-styles-inline-css">
86: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--color--light-gray: #f5f5f5;--wp--preset--color--medium-gray: #999;--wp--preset--color--dark-gray: #333;--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%);
86--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: 12px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 20px;--wp--preset--font-size--x-large: 42px;--wp--preset--font-size--normal: 16px;--wp--preset--font-size--larger: 24px;--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%;}:where(body) { margin: 0; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}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-light-gray-color{color: var(--wp--preset--color--light-gray) !important;}.has-medium-gray-color{color: var(--wp--preset--color--medium-gray) !important;}.has-dark-gray-color{color: var(--wp--preset--color--dark-gray) !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-light-gray-background-color{background-color: var(--wp--preset--color--light-gray) !important;}.has-medium-gray-background-color{background-color: var(--wp--preset--color--medium-gray) !important;}.has-dark-gray-background-color{background-color: var(--wp--preset--color--dark-gray) !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-light-gray-border-color{border-color: var(--wp--preset--color--light-gray) !important;}.has-medium-gray-border-color{border-color: var(--wp--preset--color--medium-gray) !important;}.has-dark-gray-border-color{border-color: var(--wp--preset--color--dark-gray) !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;}
86.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;}.has-normal-font-size{font-size: var(--wp--preset--font-size--normal) !important;}.has-larger-font-size{font-size: var(--wp--preset--font-size--larger) !important;}
87/*# sourceURL=global-styles-inline-css */
88</style>
89
90<link data-css="1" href="https://cowanroofing.com/wp-content/cache/w3-cache/css/558/wp-content/plugins/contact-form-7/includes/css/styles.css" rel='stylesheet' id='contact-form-7-css' media='all'>
91<link data-css="1" href="https://cowanroofing.com/wp-content/cache/w3-cache/css/558/wp-content/plugins/widget-options/assets/css/widget-options.css" rel='stylesheet' id='widgetopts-styles-css' media='all'>
92<link data-css="1" href="https://cowanroofing.com/wp-content/cache/w3-cache/css/558/wp-content/uploads/maxmegamenu/style.css" rel='stylesheet' id='megamenu-css' media='all'>
93<link data-css="1" href="https://cowanroofing.com/wp-content/cache/w3-cache/css/558/wp-includes/css/dashicons.min.css" rel='stylesheet' id='dashicons-css' media='all'>
94<link data-css="1" href="https://cowanroofing.com/wp-content/cache/w3-cache/css/558/wp-content/plugins/pojo-accessibility/modules/legacy/assets/css/style.min.css" rel='stylesheet' id='pojo-a11y-css' media='all'>
95<link data-css="1" href="https://cowanroofing.com/wp-content/cache/w3-cache/css/558/wp-content/cache/w3-cache/fonts/4dd54e972af70b2a84dad75538fed704.css" rel='stylesheet' id='smb-base-fonts-css' media='all'>
96<link data-css="1" href="https://cowanroofing.com/wp-content/cache/w3-cache/css/558/wp-content/themes/cowanroofing/css/custom-styles.css" rel='stylesheet' id='my-style-css' media='all'>
97<link data-css="1" href="https://cowanroofing.com/wp-content/cache/w3-cache/css/558/wp-content/themes/cowanroofing/css/slick.css" rel='stylesheet' id='slick-style-css' media='all'>
98<link data-href="//maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel='stylesheet' id='font-awesome-css' media='all'>
99<link data-css="1" href="//cdnjs.cloudflare.com/ajax/libs/animate.css/3.5.2/animate.min.css" rel='stylesheet' id='animate-css-css' media='all'>
100<link data-css="1" href="//unpkg.com/[email protected]/dist/aos.css" rel='stylesheet' id='aos-css-css' media='all'>
101<link data-css="1" href="https://cowanroofing.com/wp-content/cache/w3-cache/css/558/wp-content/themes/cowanroofing/css/odometer.css" rel='stylesheet' id='odometer-css-css' media='all'>
102<link data-css="1" href="https://cowanroofing.com/wp-content/cache/w3-cache/css/558/wp-content/themes/cowanroofing/lib/gutenberg/front-end.css" rel='stylesheet' id='genesis-sample-gutenberg-css' media='all'>
103<link data-css="1" href="https://cowanroofing.com/wp-content/cache/w3-cache/css/558/wp-content/plugins/easy-fancybox/fancybox/1.5.4/jquery.fancybox.min.css" rel='stylesheet' id='fancybox-css' media='screen'>
104<link data-css="1" href="https://cowanroofing.com/wp-content/cache/w3-cache/css/558/wp-content/plugins/add-to-any/addtoany.min.css" rel='stylesheet' id='addtoany-css' media='all'>
105<link rel="https://api.w.org/" href="https://cowanroofing.com/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://cowanroofing.com/wp-json/wp/v2/pages/1878" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://cowanroofing.com/xmlrpc.php?rsd" />
106
107<link rel='shortlink' href='https://cowanroofing.com/?p=1878' />
vendor: 60 bytes, lines 107-108
107
108		<script src="https://www.googletagmanager.com/gtag/js?id=
108G-3KT4C16M4V
vendor: 37 bytes, lines 108-109
108" async="" type="lazyJs"></script>
109		
109<script type="lazyJs" >
110			window.dataLayer = window.dataLayer || [];
111			function gtag() { dataLayer.push(arguments); }
112			var tracking_ids = ["G-3KT4C16M4V"];
113			var site_id = 'a0923e36b79c3b1fcd855c538c884c5646c6786d35401fa19fc119877a7d4d72';
114			gtag('js', new Date());
115			for (var i = 0; i < tracking_ids.length; i++) {
116				gtag('config', tracking_ids[i], { 'dimension1': site_id, 'send_page_view': false });
117				gtag('event', 'page_view',        { 'send_to': tracking_ids[i], 'dimension1': site_id });
118				gtag('event', 'engaged_sessions', { 'send_to': tracking_ids[i], 'dimension1': site_id });
119			}
120		</script>
120
121		<link data-css="1" href="https://s.w.org/wp-includes/css/dashicons.min.css?ver=6.5" rel='stylesheet'>
122<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
123<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
124<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
125<link rel="manifest" href="/site.webmanifest">
126<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#01567e">
127<meta name="msapplication-TileColor" content="#ffffff">
128<meta name="theme-color" content="#ffffff">
129<!-- Google tag (gtag.js) -->
vendor: 59 bytes, lines 129-130
129
130<script src="https://www.googletagmanager.com/gtag/js?id=
130G-P6ECJ9LNL4
vendor: 36 bytes, line 130
130" async="" type="lazyJs"></script>
131<script type="lazyJs" >
132  
vendor: 136 bytes, lines 132-135
132window.dataLayer = window.dataLayer || [];
133  function gtag(){dataLayer.push(arguments);}
134  gtag('js', new Date());
135  gtag('config', '
135G-P6ECJ9LNL4
vendor: 5 bytes, line 135
135');
136</script>
136
137<!-- Google Tag Manager -->
138<script type="lazyJs" >
vendor: 331 bytes, lines 138-142
138(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
139new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
140j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
141'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
142})(window,document,'script','dataLayer','
142GTM-KPLNCCV
vendor: 3 bytes, line 142
142');
142</script>
142
143<!-- End Google Tag Manager -->
144
145<script type="lazyJs" >
146{
147  "@context": "https://schema.org",
148  "@type": "RoofingContractor",
149  "@id": "https://cowanroofing.com/#organization",
150  "name": "Cowan Roofing",
151  "url": "https://cowanroofing.com/",
152  "logo": "https://cowanroofing.com/wp-content/uploads/2025/09/Untitled-100-x-90-px-200-x-90-px-1.png",
153  "image": "https://cowanroofing.com/wp-content/uploads/2025/09/Untitled-100-x-90-px-200-x-90-px-1.png",
154  "description": "Cowan Roofing provides expert residential and commercial roofing, including metal roofing and storm restoration in Madison, Culpeper, and surrounding areas.",
155  "telephone": "+1-540-308-5898",
156  "address": {
157    "@type": "PostalAddress",
158    "streetAddress": "357 Washington Street",
159    "addressLocality": "Madison",
160    "addressRegion": "VA",
161    "postalCode": "22727",
162    "addressCountry": "US"
163  },
164  "geo": {
165    "@type": "GeoCoordinates",
166    "latitude": 38.3789,
167    "longitude": -78.2581
168  },
169  "areaServed": [
170    { "@type": "City", "name": "Orange" },
171    { "@type": "City", "name": "Keswick" },
172    { "@type": "City", "name": "Gordonsville" },
173    { "@type": "City", "name": "Ruckersville" },
174    { "@type": "City", "name": "Charlottesville" },
175    { "@type": "City", "name": "Sperryville" },
176    { "@type": "City", "name": "Culpeper" },
177    { "@type": "AdministrativeArea", "name": "Greene County" }
178  ],
179  "openingHoursSpecification": [
180    {
181      "@type": "OpeningHoursSpecification",
182      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
183      "opens": "08:00",
184      "closes": "17:00"
185    }
186  ],
187  "sameAs": [
188    "https://www.facebook.com/CowanRoofing/",
189    "https://www.instagram.com/cowanroofing/",
190    "https://maps.google.com/maps?cid=16420466856541820905"
191  ],
192  "hasOfferCatalog": {
193    "@type": "OfferCatalog",
194    "name": "Cowan Roofing Services",
195    "itemListElement": [
196      {
197        "@type": "Offer",
198        "itemOffered": {
199          "@type": "Service",
200          "name": "Roof Replacement",
201          "description": "Complete residential and commercial roof replacement services using top-quality asphalt shingles, metal, and specialty materials for properties in Central Virginia."
202        }
203      },
204      {
205        "@type": "Offer",
206        "itemOffered": {
207          "@type": "Service",
208          "name": "Roof Repair",
209          "description": "Expert diagnosis and repair for leaks, missing shingles, and wear-and-tear to extend the lifespan of your roofing system."
210        }
211      },
212      {
213        "@type": "Offer",
214        "itemOffered": {
215          "@type": "Service",
216          "name": "Specialty Roofing",
217          "description": "Specialized installation of unique materials including standing seam metal, cedar shakes, slate, and agricultural metal roofing."
218        }
219      },
220      {
221        "@type": "Offer",
222        "itemOffered": {
223          "@type": "Service",
224          "name": "Commercial Roofing",
225          "description": "Professional flat roof solutions including TPO and EPDM installations tailored for commercial facilities."
226        }
227      },
228      {
229        "@type": "Offer",
230        "itemOffered": {
231          "@type": "Service",
232          "name": "Gutter Installation",
233          "description": "Installation of high-quality gutter systems and downspouts to protect property foundations from water damage."
234        }
235      },
236      {
237        "@type": "Offer",
238        "itemOffered": {
239          "@type": "Service",
240          "name": "Storm Damage Restoration",
241          "description": "Rapid response repair and insurance claim assistance for roofs damaged by hail, high winds, or falling trees."
242        }
243      }
244    ]
245  }
246}
247</script>
247<script type="lazyJs" >
248(function(url){
249	if(/(?:Chrome\/26\.0\.1410\.63 Safari\/537\.31|WordfenceTestMonBot)/.test(navigator.userAgent)){ return; }
250	var addEvent = function(evt, handler) {
251		if (window.addEventListener) {
252			document.addEventListener(evt, handler, false);
253		} else if (window.attachEvent) {
254			document.attachEvent('on' + evt, handler);
255		}
256	};
257	var removeEvent = function(evt, handler) {
258		if (window.removeEventListener) {
259			document.removeEventListener(evt, handler, false);
260		} else if (window.detachEvent) {
261			document.detachEvent('on' + evt, handler);
262		}
263	};
264	var evts = 'contextmenu dblclick drag dragend dragenter dragleave dragover dragstart drop keydown keypress keyup mousedown mousemove mouseout mouseover mouseup mousewheel scroll'.split(' ');
265	var logHuman = function() {
266		if (window.wfLogHumanRan) { return; }
267		window.wfLogHumanRan = true;
268		var wfscr = document.createElement('script');
269		wfscr.type = 'text/javascript';
270		wfscr.async = true;
271		wfscr.src = url + '&r=' + Math.random();
272		(document.getElementsByTagName('head')[0]||document.getElementsByTagName('body')[0]).appendChild(wfscr);
273		for (var i = 0; i < evts.length; i++) {
274			removeEvent(evts[i], logHuman);
275		}
276	};
277	for (var i = 0; i < evts.length; i++) {
278		addEvent(evts[i], logHuman);
279	}
280})('//cowanroofing.com/?wordfence_lh=1&hid=419D222C985E246681A418ECF17F922E');
281</script>
281<style type="text/css">
282#pojo-a11y-toolbar .pojo-a11y-toolbar-toggle a{ background-color: #01567f;	color: #ffffff;}
283#pojo-a11y-toolbar .pojo-a11y-toolbar-overlay, #pojo-a11y-toolbar .pojo-a11y-toolbar-overlay ul.pojo-a11y-toolbar-items.pojo-a11y-links{ border-color: #01567f;}
284body.pojo-a11y-focusable a:focus{ outline-style: solid !important;	outline-width: 1px !important;	outline-color: #FF0000 !important;}
285#pojo-a11y-toolbar{ top: 100px !important;}
286#pojo-a11y-toolbar .pojo-a11y-toolbar-overlay{ background-color: #ffffff;}
287#pojo-a11y-toolbar .pojo-a11y-toolbar-overlay ul.pojo-a11y-toolbar-items li.pojo-a11y-toolbar-item a, #pojo-a11y-toolbar .pojo-a11y-toolbar-overlay p.pojo-a11y-toolbar-title{ color: #333333;}
288#pojo-a11y-toolbar .pojo-a11y-toolbar-overlay ul.pojo-a11y-toolbar-items li.pojo-a11y-toolbar-item a.active{ background-color: #4054b2;	color: #ffffff;}
289@media (max-width: 767px) { #pojo-a11y-toolbar { top: 50px !important; } }</style><link rel="icon" href="https://cowanroofing.com/wp-content/themes/cowanroofing/images/favicon.ico" />
290<link rel="pingback" href="https://cowanroofing.com/xmlrpc.php" />
291<meta name="msvalidate.01" content="4FF8E8055197E38D57F1143F6881561D" /> <meta name="msvalidate.01" content="00CF405414D143A916E785CFF443AEB3" /> <meta name="google-site-verification" content="8ikqivozg7L88eyVPgl_G_H-rfB3eLQO7M_Uu11e0z8" /> 
291<script type="application/ld+json"> { "@context": "https://schema.org", "@type": "RoofingContractor", "name": "Cowan Roofing", "image": "https://www.cowanroofing.com/wp-content/uploads/2020/07/cowan-roofing-logo.jpg", "url": "https://www.cowanroofing.com/", "telephone": "+1 540-308-5898", "priceRange": "$$", "address": { "@type": "PostalAddress", "streetAddress": "357 Washington Street", "addressLocality": "Madison", "addressRegion": "WI", "postalCode": "22727", "addressCountry": "US" }, "geo": { "@type": "GeoCoordinates", "latitude": 38.381105, "longitude": -78.2533547 }, "openingHoursSpecification": { "@type": "OpeningHoursSpecification", "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ], "opens": "08:00", "closes": "17:00" }, "sameAs": [ "https://www.facebook.com/CowanRoofing/", "https://www.houzz.com/pro/cowanroof/cowan-roofing", "https://www.yelp.com/biz/cowan-roofing-madison", "https://www.instagram.com/cowanroofing/" ] } </script>
291 
291<script src="//script.crazyegg.com/pages/scripts/0022/1041.js" type="lazyJs" async="async"></script>
vendor: 1 bytes, line 291
291
292<script type="lazyJs" >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({"gtm.start":
293                    new Date().getTime(),event:"gtm.js"});var f=d.getElementsByTagName(s)[0],
294                    j=d.createElement(s),dl=l!="dataLayer"?"&l="+l:"";j.async=true;j.src=
295                    "https://www.googletagmanager.com/gtm.js?id="+i+dl;f.parentNode.insertBefore(j,f);
296                    })(window,document,"script","dataLayer","");</script>
296<script type="lazyJs" >
297(function(){
298    var d = document, t = 'script',
299        o = d.createElement(t),
300        s = d.getElementsByTagName(t)[0];
301        o.src = 'https://app.realworklabs.com/static/plugin/loader.js?v=' + new Date().getTime();
302        window.addEventListener('rwlPluginReady', function () {
303            window.rwlPlugin.init('https://app.realworklabs.com', 'lFJi4b4vZ__XM4lF');
304        }, false);
305        s.parentNode.insertBefore(o, s);
306}());
307</script>
307<style id="wp-custom-css">
308
309.hide-menu{
310	display: none;
311}
312input.wpcf7-form-control.wpcf7-submit {
313    margin-top: 7px !important;
314}
315.container .submit-form p {
316    margin: 0px !important;
317    height: auto !important;
318}
319
320
321.home-faq {
322    padding: 50px 0;
323    width: 100%;
324    max-width: 1000px;
325    margin: 0 auto;
326    font-family: sans-serif;
327}
328
329.home-faq details {
330    margin-bottom: 10px;
331    transition: all 0.3s ease;
332}
333
334.home-faq summary {
335    padding: 18px 25px;
336    background-color: #01567f;
337    color: #ffffff;
338    font-weight: 600;
339    font-size: 1.1rem;
340    cursor: pointer;
341    list-style: none;
342    border-radius: 5px;
343    transition: background-color 0.3s ease;
344    display: flex;
345    justify-content: space-between;
346    align-items: center;
347}
348
349.home-faq summary:hover {
350    background-color: #014566;
351}
352
353.home-faq details[open] summary {
354    background-color: #014566;
355    border-radius: 5px 5px 0 0;
356    border-bottom: 1px solid rgba(255,255,255,0.2);
357}
358
359.home-faq details p {
360    padding: 20px 25px;
361    background-color: #f9f9f9;
362    border: 1px solid #01567f;
363    border-top: none;
364    margin: 0;
365    color: #333;
366    line-height: 1.6;
367    border-radius: 0 0 5px 5px;
368}
369
370
371.home-faq summary::after {
372    content: '+';
373    font-size: 1.4rem;
374    font-weight: bold;
375}
376
377.home-faq details[open] summary::after {
378    content: '-';
379}
380
381
382@media (max-width: 768px) {
383    .home-faq {
384        padding: 30px 15px;
385    }
386    .home-faq summary {
387        font-size: 1rem;
388        padding: 15px;
389    }
390}
391
392span.wpcf7-spinner {
393    float: left;
394    display: inline-block !important;
395    position: absolute;
396    left: 0 !important;
397    margin-top: 24px !important;
398    z-index: 9999999;
399}.move-to-top {
400	bottom: 150px;
401}
402.container p {
403    margin: 0 0 5px !important;
404}
405
406.ext_home-clear {
407	display: block
408}
409a.ext_home-clear {
410	background-color: #01567f;
411	cursor: pointer;
412	padding: 10px 30px;
413	border-radius: 5px;
414	color: #fff;
415	text-transform: uppercase;
416	margin-bottom: 10px;
417	display: inline-block;
418}
419.badges-img img {
420	height: 100px;
421	width: auto;
422	object-fit: cover;
423}
424
425/* Hide Google review badge from homepage slider */
426.page-id-2 .wp-gr.wpac { 
427	display: none;
428}
429
430li.list-line-space{margin-top:20px;}
431.responsive-list {
432    display: grid;
433    grid-template-columns: repeat(4, 1fr);
434    gap: 10px;
435    list-style: none;
436    padding: 0;
437    margin: 0;
438}
439
440@media (max-width: 900px) {
441    .responsive-list {
442        grid-template-columns: repeat(2, 1fr);
443    }
444}
445
446@media (max-width: 600px) {
447    .responsive-list {
448        grid-template-columns: 1fr;
449    }
450}
451
452.load-more-btn {
453    background-color: #01567E;
454    color: #ffffff;
455    border: none;
456    padding: 10px 20px;
457    font-size: 16px;
458    border-radius: 5px;
459    cursor: pointer;
460    transition: background-color 0.3s ease;
461    margin-top: 20px;
462}
463
464.load-more-btn:hover {
465    background-color: #013a56;
466}
467/* Ensure all testimonial cards have the same height */
468.homepage-testimonial .tt-slider {
469  display: flex;
470  flex-wrap: wrap;
471  gap: 20px;
472}
473
474.homepage-testimonial .tt-listing {
475  flex: 1 1 calc(33.333% - 20px); /* 3 per row with spacing */
476  display: flex;
477  flex-direction: column;
478  justify-content: space-between;
479  min-height: 250px; /* Adjust as needed */
480  box-sizing: border-box;
481  padding: 20px;
482  background: #fff;
483  border-radius: 8px;
484}
485
486/* Remove .homepage-testimonial if it limits scope */
487.tt-content {
488  flex-grow: 4px;
489}
490.homepage-testimonial .testimonial-wrapper {
491  display: flex;
492  flex-wrap: wrap;
493  gap: 20px; /* This adds the gap between cards */
494}
495
496.homepage-testimonial .tt-listing {
497  flex: 1 1 calc(33.333% - 20px); /* 3 cards per row minus gap */
498  display: flex;
499  flex-direction: column;
500  justify-content: space-between;
501  min-height: 250px;
502  box-sizing: border-box;
503  padding: 20px;
504  background: #fff;
505  border-radius: 8px;
506}
507
508
509.review-info {
510  display: flex;
511  flex-direction: column;
512  align-items: center;
513  margin-bottom: 15px;
514  text-align: center;
515}
516
517.review-raiting {
518  color: #e7711b;
519  font-size: 18px;
520  margin-bottom: 5px;
521}
522
523.review-name span {
524  font-weight: 600;
525  display: inline-block;
526  margin: 0 2px;
527}
528
529.wp-google-powered img {
530    display: none;
531}
532
533.wp-google-powered::before {
534    content: '';
535    display: block;
536    width: 150px;
537    height: 30px;
538    background-image: url('https://upload.wikimedia.org/wikipedia/commons/5/53/Powered_by_Google_logo.png');
539    background-size: contain;
540    background-repeat: no-repeat;
541}
542.inner_page_banner {
543  min-height: 520px;
544  display: flex;
545  align-items: center;
546  background-size: cover;
547  background-position: center;
548}
549.homepage-testimonial { display: none; }
550/* Stop the Partners in Success slider and show logos in 4 columns */
551.badges .badges-items .slick-track {
552  display: grid !important;
553  grid-template-columns: repeat(3, 1fr);
554  gap: 30px;
555  width: 100% !important;
556  transform: none !important;
557  transition: none !important;
558}
559
560.badges .badges-items .slick-list {
561  overflow: visible;
562}
563
564/* Hide the duplicate slides Slick adds for looping */
565.badges .badges-items .slick-cloned {
566  display: none !important;
567}
568
569.badges .badges-items .badges-img {
570  width: auto !important;
571  float: none;
572  text-align: center;
573}
574.badges .badges-items .badges-img img {
575  max-width: 100px;
576  width: 100%;
577  height: auto;
578  margin: 0 auto;
579}
580
581/* Hide arrows/dots if the slider has them */
582.badges .badges-items .slick-arrow,
583.badges .badges-items .slick-dots {
584  display: none !important;
585}
586
587/* Tablets: 2 columns, phones: 1 column */
588@media (max-width: 900px) {
589  .badges .badges-items .slick-track {
590    grid-template-columns: repeat(2, 1fr);
591  }
592}
593@media (max-width: 600px) {
594  .badges .badges-items .slick-track {
595    grid-template-columns: 1fr;
596  }
597}
598/* Add space below the last logo on mobile */
599@media (max-width: 600px) {
600  .badges {
601    padding-bottom: 100px !important;
602  }
603}
604@media (max-width: 600px) {
605  .badges .badges-items .slick-track {
606    row-gap: 35px !important;
607  }
608
609  .badges .badges-items .badges-img {
610    display: flex !important;
611    align-items: center;
612    justify-content: center;
613    min-height: 120px;
614    margin: 0 !important;
615    position: relative !important;
616  }
617
618  .badges .badges-items .badges-img img {
619    position: static !important;
620    transform: none !important;
621    margin: 0 auto !important;
622  }
623}
624/* Keep Slick duplicate logos hidden on mobile */
625@media (max-width: 600px) {
626  .badges .badges-items .badges-img.slick-cloned,
627  .badges .badges-items .slick-slide.slick-cloned {
628    display: none !important;
629  }
630}
631
632
633
634
635</style>
636<style id="w3speedster-custom-css"></style></head>
637<body class="wp-singular page-template-default page page-id-1878 page-parent wp-embed-responsive wp-theme-genesis wp-child-theme-cowanroofing mega-menu-primary ally-default default content-sidebar genesis-breadcrumbs-visible genesis-footer-widgets-hidden"><style>
638#mega-menu-wrap-primary #mega-menu-primary > li.mega-menu-item > a.mega-menu-link{
639    display: block;
640    font-size: 17px;
641    font-weight: 500;
642    outline-offset: -1px;
643    text-decoration: none;
644    padding: 10px 10px;
645	line-height: 24px;
646}
647	#mega-menu-wrap-primary #mega-menu-primary > li.mega-menu-flyout ul.mega-sub-menu, #mega-menu-wrap-primary #mega-menu-primary > li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item a.mega-menu-link {
648    background-color: #01567f;
649		color: #ffffff;
650		font-size: 16px;
651}
652	#mega-menu-wrap-primary #mega-menu-primary > li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item a.mega-menu-link:hover {
653		background-color: #01334c !important;
654    color: #ffffff;
655	}
656	#mega-menu-wrap-primary #mega-menu-primary > li.mega-menu-item.mega-toggle-on > a.mega-menu-link {
657		background-color: #fff;
658		color: #01334c;
659	}
660	
661	#mega-menu-wrap-primary #mega-menu-primary > li.mega-menu-megamenu > ul.mega-sub-menu{
662	background-color: #01567f;
663	font-size:16px;
664	}
665	#mega-menu-wrap-primary #mega-menu-primary > li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item a.mega-menu-link:hover, #mega-menu-wrap-primary #mega-menu-primary > li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item a.mega-menu-link:focus {
666		/*background-color: #01334c;*/
667		background-color: #dddddd;
668	}
669	
670	#mega-menu-wrap-primary #mega-menu-primary > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link:hover {
671		background-color: #01334c;
672		color: #fff;
673		padding: 4px 6px;
674	}
675	
676	#mega-menu-wrap-primary #mega-menu-primary > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link {
677    color: #fff;
678    font-family: inherit;
679    font-size: 16px;
680background-color: :#01567f;
681    text-transform: capitalize;
682    text-decoration: none;
683    font-weight: normal;
684    text-align: left;
685    margin: 0px 0px 0px 0px;
686    padding:  4px 6px;
687    vertical-align: top;
688    display: block;
689    border: 0;
690}
691	
692	#mega-menu-wrap-primary {
693		background-color: #fff;
694	}
695	#mega-menu-wrap-primary #mega-menu-primary > li.mega-menu-item > a.mega-menu-link {
696		color:#01567f;
697	}
698	#mega-menu-wrap-primary #mega-menu-primary > li.mega-menu-item.mega-current-menu-item > a.mega-menu-link, #mega-menu-wrap-primary #mega-menu-primary > li.mega-menu-item > a.mega-menu-link:hover{
699		background-color: #fff;
700		color: #01334c;
701	}
702	
703	#mega-menu-wrap-primary #mega-menu-primary li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row .mega-menu-column > ul.mega-sub-menu > li.mega-menu-item {
704		padding: 0px;
705	}
706	
707	#mega-menu-wrap-primary.mega-keyboard-navigation > li.mega-menu-item > a.mega-menu-link:focus {
708		background-color: #fff !important;
709	}
710	
711@media only screen and (max-width: 768px) {
712    #mega-menu-wrap-primary .mega-menu-toggle {
713        z-index: 1;
714        background-color: #fff;
715	}
716	#mega-menu-wrap-primary #mega-menu-primary > li.mega-menu-item {
717		width:100%;
718	}
719	}
720	
721/* Max Mega Menu - 2 columns on mobile */
722@media (max-width: 768px) {
723
724    #mega-menu-wrap-primary .mega-sub-menu .mega-menu-row {
725        display: flex !important;
726        flex-wrap: wrap !important;
727    }
728
729    #mega-menu-wrap-primary .mega-sub-menu .mega-menu-column {
730        width: 50% !important;
731        max-width: 50% !important;
732        flex: 0 0 50% !important;
733        box-sizing: border-box;
734    }
735
736    #mega-menu-wrap-primary .mega-sub-menu .mega-menu-column > ul {
737        width: 100% !important;
738    }
739}
740
741</style><!-- Google Tag Manager (noscript) --><noscript><iframe src="https://www.googletagmanager.com/ns.html?id=" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript><!-- End Google Tag Manager (noscript) --><div class="site-container"><ul class="genesis-skip-link"><li><a href="#genesis-nav-primary" class="screen-reader-shortcut"> Skip to primary navigation</a></li><li>
741<a href="#genesis-content" class="screen-reader-shortcut"> Skip to main content</a></li><li><a href="#genesis-sidebar-primary" class="screen-reader-shortcut"> Skip to primary sidebar</a></li></ul><div class="mobile-extras"><div class="extras-toggle"></div><div class="extras-content"><ul class="extras-list"><li id="site-operation"><span>Monday-Friday: 8:00 AM - 5:00 PM</span></li><li id="site-address"><span>357 Washington Street Madison, VA 22727</span></li><li class="site-sub-menu"><a href=""><span></span></a></li></ul></div></div><header class="site-header"><div class="wrap"><div class="title-area"><a class="main-logo" href="https://cowanroofing.com"><img src="https://cowanroofing.com/wp-content/uploads/2025/09/Untitled-100-x-90-px-200-x-90-px-1.png" alt="Cowan Roofing" title="Untitled (100 x 90 px) (200 x 90 px) (1)" /></a></div><div class="widget-area header-widget-area"><div class="header-right"><div class="tracking"><div class="tracking-number"><div class="container"><div class="tn-buttom"><a class="tracking_phone_number" href="tel:5403085898">(540) 308-5898</a></div></div></div></div><div class="cta-header"><div class="container"><div class="header-cta-btn"><a class="popup-form-btn">Request Estimate</a></div></div></div></div></div><nav class="nav-primary" aria-label="Main" id="genesis-nav-primary"><div class="wrap"><div id="mega-menu-wrap-primary" class="mega-menu-wrap"><div class="mega-menu-toggle"><div class="mega-toggle-blocks-left"></div><div class="mega-toggle-blocks-center"></div><div class="mega-toggle-blocks-right"><div class='mega-toggle-block mega-menu-toggle-block mega-toggle-block-1' id='mega-toggle-block-1'><button aria-controls="mega-menu-primary" aria-expanded="false" aria-haspopup="true" class='mega-toggle-standard mega-toggle-label'><span class='mega-toggle-label-closed'></span><span class='mega-toggle-label-open'></span></button></div></div></div><ul id="mega-menu-primary" class="mega-menu max-mega-menu mega-menu-horizontal mega-no-js" data-event="hover_intent" data-effect="disabled" data-effect-speed="200" data-effect-mobile="disabled" data-effect-speed-mobile="0" data-mobile-force-width="body" data-second-click="go" data-document-click="collapse" data-vertical-behaviour="standard" data-breakpoint="0" data-unbind="true" data-mobile-state="collapse_all" data-mobile-direction="vertical"><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-home mega-menu-item-40" id="mega-menu-item-40"><a class="mega-menu-link" href="https://cowanroofing.com/">Home</a></li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-current-menu-item mega-page_item mega-page-item-1878 mega-current_page_item mega-menu-item-has-children mega-align-bottom-left mega-menu-flyout mega-menu-item-1904" id="mega-menu-item-1904"><a class="mega-menu-link" href="https://cowanroofing.com/roofing/" aria-expanded="false" aria-controls="mega-sub-menu-1904" aria-current="page">Services<span class="mega-indicator" aria-hidden="true"></span></a>
742<ul class="mega-sub-menu" id='mega-sub-menu-1904'>
743<li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-1909" id="mega-menu-item-1909"><a class="mega-menu-link" href="https://cowanroofing.com/roofing/replacement/">Roof Replacement</a></li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-1908" id="mega-menu-item-1908"><a class="mega-menu-link" href="https://cowanroofing.com/roofing/repair/">Roof Repair</a></li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-1907" id="mega-menu-item-1907"><a class="mega-menu-link" href="https://cowanroofing.com/roofing/specialty/">Specialty Roofing</a></li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-1906" id="mega-menu-item-1906"><a class="mega-menu-link" href="https://cowanroofing.com/roofing/commercial/">Commercial Roofing</a></li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-2558" id="mega-menu-item-2558"><a class="mega-menu-link" href="https://cowanroofing.com/roofing/gutter-installation/">Gutter Installation</a></li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-1905" id="mega-menu-item-1905"><a class="mega-menu-link" href="https://cowanroofing.com/roofing/storm-damage/">Storm Damage</a></li></ul>
744</li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-has-children mega-align-bottom-left mega-menu-flyout mega-menu-item-1910" id="mega-menu-item-1910"><a class="mega-menu-link" href="https://cowanroofing.com/about/" aria-expanded="false" aria-controls="mega-sub-menu-1910">About<span class="mega-indicator" aria-hidden="true"></span></a>
745<ul class="mega-sub-menu" id='mega-sub-menu-1910'>
746<li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-3086" id="mega-menu-item-3086"><a class="mega-menu-link" href="https://cowanroofing.com/about/financing/">Financing</a></li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-1911" id="mega-menu-item-1911"><a class="mega-menu-link" href="https://cowanroofing.com/about/community-involvement/">Community Involvement</a></li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-1924" id="mega-menu-item-1924"><a class="mega-menu-link" href="https://cowanroofing.com/about/testimonials/">Testimonials</a></li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-2211" id="mega-menu-item-2211"><a class="mega-menu-link" href="https://cowanroofing.com/about/resources/">Resources</a></li></ul>
747</li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-2672" id="mega-menu-item-2672"><a class="mega-menu-link" href="https://cowanroofing.com/your-five-steps-to-new-roof-success/">What To Expect</a></li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-1914" id="mega-menu-item-1914"><a class="mega-menu-link" href="https://cowanroofing.com/gallery/">Gallery</a></li><li class="mega-areas-inner mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-has-children mega-menu-megamenu mega-menu-grid mega-align-bottom-left mega-hide-on-mobile mega-menu-item-1913 areas-inner" id="mega-menu-item-1913"><a class="mega-menu-link" href="https://cowanroofing.com/areas-we-serve/" aria-expanded="false" aria-controls="mega-sub-menu-1913">Areas We Serve<span class="mega-indicator" aria-hidden="true"></span></a>
748<ul class="mega-sub-menu" role='presentation' id='mega-sub-menu-1913'>
749<li class="mega-menu-row" id="mega-menu-1913-0">
750	<ul class="mega-sub-menu" style='--columns:8' role='presentation'>
751<li class="mega-menu-column mega-menu-columns-2-of-8" style="--columns:8; --span:2" id="mega-menu-1913-0-0">
752		<ul class="mega-sub-menu">
753<li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-3592" id="mega-menu-item-3592"><a class="mega-menu-link" href="https://cowanroofing.com/barboursville/">Barboursville</a></li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-3591" id="mega-menu-item-3591"><a class="mega-menu-link" href="https://cowanroofing.com/crozet/">Crozet</a></li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-3595" id="mega-menu-item-3595"><a class="mega-menu-link" href="https://cowanroofing.com/charlottesville/">Charlottesville</a></li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-3603" id="mega-menu-item-3603"><a class="mega-menu-link" href="https://cowanroofing.com/culpeper/">Culpeper</a></li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-3590" id="mega-menu-item-3590"><a class="mega-menu-link" href="https://cowanroofing.com/etlan/">Etlan</a></li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-3589" id="mega-menu-item-3589"><a class="mega-menu-link" href="https://cowanroofing.com/free-union/">Free Union</a></li>
753		</ul>
754</li><li class="mega-menu-column mega-menu-columns-2-of-8" style="--columns:8; --span:2" id="mega-menu-1913-0-1">
755		<ul class="mega-sub-menu">
756<li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-3632" id="mega-menu-item-3632"><a class="mega-menu-link" href="https://cowanroofing.com/greene-county/">Greene County</a></li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-3596" id="mega-menu-item-3596"><a class="mega-menu-link" href="https://cowanroofing.com/gordonsville/">Gordonsville</a></li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-3597" id="mega-menu-item-3597"><a class="mega-menu-link" href="https://cowanroofing.com/keswick/">Keswick</a></li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-3588" id="mega-menu-item-3588"><a class="mega-menu-link" href="https://cowanroofing.com/north-garden/">North Garden</a></li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-3582" id="mega-menu-item-3582"><a class="mega-menu-link" href="https://cowanroofing.com/orange-county/">Orange County</a></li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-3587" id="mega-menu-item-3587"><a class="mega-menu-link" href="https://cowanroofing.com/remington/">Remington</a></li>		</ul>
757</li><li class="mega-menu-column mega-menu-columns-2-of-8" style="--columns:8; --span:2" id="mega-menu-1913-0-2">
758		<ul class="mega-sub-menu">
759<li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-3586" id="mega-menu-item-3586"><a class="mega-menu-link" href="https://cowanroofing.com/rixeyville/">Rixeyville</a></li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-3594" id="mega-menu-item-3594"><a class="mega-menu-link" href="https://cowanroofing.com/ruckersville/">Ruckersville</a></li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-3593" id="mega-menu-item-3593"><a class="mega-menu-link" href="https://cowanroofing.com/sperryville/">Sperryville</a></li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-3585" id="mega-menu-item-3585"><a class="mega-menu-link" href="https://cowanroofing.com/stanardsville/">Stanardsville</a></li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-3584" id="mega-menu-item-3584"><a class="mega-menu-link" href="https://cowanroofing.com/unionville/">Unionville</a></li>		</ul>
760</li><li class="mega-menu-column mega-menu-columns-2-of-8" style="--columns:8; --span:2" id="mega-menu-1913-0-3">
761		<ul class="mega-sub-menu">
762<li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-3583" id="mega-menu-item-3583"><a class="mega-menu-link" href="https://cowanroofing.com/woodville/">Woodville</a></li><li class="mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-3795" id="mega-menu-item-3795"><a class="mega-menu-link" href="https://cowanroofing.com/areas-we-serve/">And More</a></li>		</ul>
763</li>	</ul>
764</li></ul>
765</li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-2809" id="mega-menu-item-2809"><a class="mega-menu-link" href="https://cowanroofing.com/recent-projects/">Recent Projects</a></li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-3084" id="mega-menu-item-3084"><a class="mega-menu-link" href="https://cowanroofing.com/about/financing/">Financing</a></li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-42" id="mega-menu-item-42"><a class="mega-menu-link" href="https://cowanroofing.com/contact/">Contact</a></li></ul></div></div></nav></div></header><div class="default-phone-mobile" style="text-align:center; margin-top:10px;"><a href="tel:5403085898" style="color:#01567e; font-weight:700; font-size:20px; text-decoration:none;"><span class="visible-phone" style="color:#01567e;">(540) 308-5898</span><noscript>(540) 308-5898</noscript>
765<script type="lazyJs" >
766            var phoneEl = document.querySelector(".visible-phone");
767            if(phoneEl) phoneEl.textContent = "(540) 308-5898";
768        </script>
768</a></div><div class="inner_page_banner image-banner lozad no-top-adas no-below-adas" data-src="https://cowanroofing.com/wp-content/uploads/2020/06/roofing-services-page-banner.jpg"><div class="wrap"><div class="container"><div class="inner-banner-info"><div class="banner-title">Roofing<div class="breadcrumb"><span class="bc-wrap"><span class="breadcrumb-link-wrap"><a href="https://cowanroofing.com/"><span class="home-icon relative"></span></a><meta ></span><span class="separator" aria-label="breadcrumb separator"> / </span>Roofing</span></div></div></div></div></div></div><div class="site-inner"><div class="content-sidebar-wrap"><main class="content" id="genesis-content"><article class="post-1878 page type-page status-publish entry" aria-label="Roofing"><header class="entry-header"></header><div class="entry-content">
769<h1 class="wp-block-heading">Local Roof Replacement &amp; Repair Specialists</h1>
770
771
772
773<p class="wp-block-paragraph">Even the highest quality roofing system installed by the most professional roofers will eventually need work. That’s because asphalt shingles, the most common roofing material, only last about 15 to 20 years before they need to be replaced.</p>
774
775
776<div class="wp-block-image">
777<figure class="aligncenter size-full"><img decoding="async" width="970" height="728" src="https://cowanroofing.com/wp-content/uploads/2020/06/roof-installation-services.jpg" alt="Local Roof Replacement &amp; Repair Specialists" class="wp-image-2043" srcset="https://cowanroofing.com/wp-content/uploads/2020/06/roof-installation-services.jpg 970w, https://cowanroofing.com/wp-content/uploads/2020/06/roof-installation-services-300x225.jpg 300w, https://cowanroofing.com/wp-content/uploads/2020/06/roof-installation-services-768x576.jpg 768w, https://cowanroofing.com/wp-content/uploads/2020/06/roof-installation-services-595xh.jpg 595w" sizes="(max-width: 970px) 100vw, 970px" /></figure>
778</div>
779
780
781<p class="wp-block-paragraph">If your roofing system has begun to show signs of wear and tear – leaks, excessive granules in the gutters, missing shingles, etc. – you need to entrust your system to experienced roofing contractors who can diagnose the issues and present you with the right solution – whether it’s a simple repair or a <a href="/roofing/replacement/">full-on roof replacement</a>.</p>
782
783
784
785<p class="wp-block-paragraph">At Cowan Roofing, we’ve made it our mission to offer our customers great products from the top brands in the country, backed up by skilled workmanship. We offer quality, professionalism and superior customer service, all under one roof.</p>
786
787
788
789<h2 class="wp-block-heading">How We Can Help You</h2>
790
791
792
793<p class="wp-block-paragraph">Cowan Roofing serves residential and commercial customers in and around Madison, VA. Our roofing services include all of the following</p>
794
795
796
797<ul class="col2">
798<li><a href="/roofing/repair/">Roof repair</a></li>
799
800
801
802<li>Roof replacement</li>
803
804
805
806<li>Roof maintenance</li>
807
808
809
810<li>Roofing inspections</li>
811
812
813
814<li><a href="/roofing/storm-damage/">Storm damage restoration</a></li>
815</ul>
816
817
818
819<p class="wp-block-paragraph">Unscrupulous roofers will always try to push you towards the most expensive products and services, but Cowan Roofing is different. We want to find a solution that works well within your budgetary constraints, but also will withstand local weather conditions for the long term. Our roofing specialists will fully inspect your roofing system and provide you with individualized solutions while fully educating you on your options.
819</p>
820
821
822
823<h2 class="wp-block-heading">Schedule a Free Estimate Today</h2>
824
825
826
827<p class="wp-block-paragraph">We know that there are a lot of roofers offering similar services, but that doesn’t mean that you should sign on the dotted line with the first company you find. At Cowan Roofing, we believe in customer education so you can make an informed decision. Schedule a free estimate by calling <a href="tel:5403085898">(540) 308-5898</a> or you can fill out <a href="/contact/">our online form</a>.</p>
828</div></article></main><aside class="sidebar sidebar-primary widget-area" role="complementary" aria-label="Primary Sidebar" id="genesis-sidebar-primary"><h2 class="genesis-sidebar-title screen-reader-text">Primary Sidebar</h2><section id="text-2" class="widget widget_text"><div class="widget-wrap">			<div class="textwidget"><div class="sidebar-form">
829<div class="wpcf7 no-js" id="wpcf7-f405-o1" lang="en-US" dir="ltr" data-wpcf7-id="405">
830<div class="screen-reader-response"><p role="status" aria-live="polite" aria-atomic="true"></p> <ul></ul></div>
831<form action="/roofing/#wpcf7-f405-o1" method="post" class="wpcf7-form init use-floating-validation-tip" aria-label="Contact form" novalidate="novalidate" data-status="init">
832<fieldset class="hidden-fields-container"><input type="hidden" name="_wpcf7" value="405" /><input type="hidden" name="_wpcf7_version" value="6.1.7" /><input type="hidden" name="_wpcf7_locale" value="en_US" /><input type="hidden" name="_wpcf7_unit_tag" value="wpcf7-f405-o1" /><input type="hidden" name="_wpcf7_container_post" value="0" /><input type="hidden" name="_wpcf7_posted_data_hash" value="" />
833</fieldset>
834<div class="form-title">
835	<p>Request Estimate
836	</p>
837</div>
838<div class="field-container">
839	<div class="row">
840		<div>
841			<p><span class="wpcf7-form-control-wrap" data-name="f-name"><input size="40" maxlength="400" class="wpcf7-form-control wpcf7-text wpcf7-validates-as-required" aria-required="true" aria-invalid="false" placeholder="First Name*" value="" type="text" name="f-name" /></span><span class="wpcf7-form-control-wrap" data-name="l-name"><input size="40" maxlength="400" class="wpcf7-form-control wpcf7-text wpcf7-validates-as-required" aria-required="true" aria-invalid="false" placeholder="Last Name*" value="" type="text" name="l-name" /></span>
842			</p>
843		</div>
844<!-- <div><span class="wpcf7-form-control-wrap" data-name="l-name"><input size="40" maxlength="400" class="wpcf7-form-control wpcf7-text wpcf7-validates-as-required" aria-required="true" aria-invalid="false" placeholder="Last Name*" value="" type="text" name="l-name" /></span></div>-->
845		<div>
846			<p><span class="wpcf7-form-control-wrap" data-name="email"><input size="40" maxlength="400" class="wpcf7-form-control wpcf7-email wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-email" aria-required="true" aria-invalid="false" placeholder="Email*" value="" type="email" name="email" /></span>
847			</p>
848		</div>
849		<div>
850			<p><span class="wpcf7-form-control-wrap" data-name="tel"><input size="40" maxlength="400" class="wpcf7-form-control wpcf7-tel wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-tel" aria-required="true" aria-invalid="false" placeholder="Phone Number*" value="" type="tel" name="tel" /></span>
851			</p>
852		</div>
853		<div>
854			<p><span class="wpcf7-form-control-wrap" data-name="form-services"><select class="wpcf7-form-control wpcf7-select" aria-invalid="false" name="form-services"><option value="Interested in:">Interested in:</option><option value="Roof Replacement">Roof Replacement</option><option value="Roof Repair">Roof Repair</option><option value="Commercial Roofing">Commercial Roofing</option><option value="Other">Other</option></select></span>
855			</p>
856		</div>
857		<div>
858			<p><span class="wpcf7-form-control-wrap" data-name="message"><textarea cols="40" rows="10" maxlength="2000" class="wpcf7-form-control wpcf7-textarea" aria-invalid="false" placeholder="Message" name="message"></textarea></span>
859			</p>
860		</div>
861		<p class="recaptcha-note">This site is protected by Cloudflare Turnstile and the Google <a href="https://policies.google.com/privacy" target="_blank">Privacy Policy</a> and <a href="https://policies.google.com/terms" target="_blank">Terms of Service</a> apply.
862		</p>
863		<div class="submit-form">
864			<p><div class="cf7-cf-turnstile" style="margin-top: 0px; margin-bottom: -15px;"> <div id="cf-turnstile-cf7-2018247070" class="cf-turnstile" data-sitekey="0x4AAAAAAASU9yIdylS09CpW" data-theme="light" data-language="auto" data-size="" data-retry="auto" data-retry-interval="1000" data-refresh-expired="auto" data-refresh-timeout="auto" data-action="contact-form-7" data-callback="turnstileCF7Callback" data-appearance="always"></div> <br class="cf-turnstile-br cf-turnstile-br-cf7-2018247070"> </div><br/><input class="wpcf7-form-control wpcf7-submit has-spinner" type="submit" value="Submit" />
865			</p>
866		</div>
867	</div>
868</div><div class="wpcf7-response-output" aria-hidden="true"></div>
869</form>
870</div>
871</div>
872</div>
873		</div></section>
874<section id="text-6" class="sidebar-testimonial no-click widget widget_text"><div class="sidebar-testimonial no-click widget-wrap"><div class="sidebar-widget-title">Testimonials</div>			<div class="textwidget"><div class="sidebar-testimonials"><div class="tt-listing"><div class="tt-content"><!-- wp:paragraph {"dateUpdated":1743033586358} -->
875<p>We saw that they had recently replaced our neighbor's roof and decided to give them a call for an additional quote (Never get just one) and Cowan really impressed us. Their Roofing estimate was done casually without pressure, but what impressed </div><div class="tt-author">- Sean Kayton</div></div><div class="tt-listing"><div class="tt-content"><!-- wp:paragraph {"dateUpdated":1743033548861}
875 -->
876<p><br>The team at Cowan Roofing has been wonderful to work with from the initial estimate to the finished work. The office was very responsive to my questions and kept me in the loop as to all the details pertaining to the work as well as any nece</div><div class="tt-author">- Travis Hale</div></div><div class="tt-listing"><div class="tt-content"><!-- wp:paragraph {"dateUpdated":1743033677238} -->
877<p>I am very pleased with the job Cowan did replacing my roof, from the initial phone call with friendly response, to the exceptional workmanship. I would highly recommend them to anyone needing a roof replacement.<br></p>
878<!-- /wp:paragraph --></div><div class="tt-author">- Shawn Hunt</div></div><div class="tt-listing"><div class="tt-content"><!-- wp:paragraph {"dateUpdated":1743033407553} -->
879<p>Cowan replaced the old metal roof on my 200-year old home, and I would give them 6 stars if I could! Detailed, quality work, fair price, on-time (actually finished ahead of time), communicative throughout, great clean-up job, friendly, and also </div><div class="tt-author">- B.P</div></div><div class="tt-listing"><div class="tt-content"><!-- wp:paragraph -->
880<p>Our experience with Cowan Roofing was phenominal. They were professional, knowledgeable, prompt, trustworthy, and great communicators. Every person with whom I spoke was curtious and helpful.<br><br>Oh---the roof and gutters look spectacular!</p>
881<!-- /wp:paragraph --></div><div class="tt-author">- Lydia Hansen</div></div></div>
882<div class="testimonial-more"><a href="/about/testimonials/">Read More</a></div>
883</div>
884		</div></section>
885</aside></div></div><div class="full-width home-section"><div class="home_number"><div class="wrap"><div class="container"><div class="cn-title">Projects Completed</div><div class="cn-description">Cowan Roofing was founded in 2014 and has been steadily growing over the years because of our dedication to our customers and our willingness to always exceed their expectations. We provide unparalleled customer service, workmanship and customer education to homeowners and business owners.</div><div class="counter-section"><div class="wrap"><div class="container"><div class="counter-cont col-three-three"><div class="container"><div id="odometer" class="counter-count odometer" data-count="3628">1</div><span id="counter-symbol1">+</span><div class="counter-title">Completed projects</div></div></div><div class="counter-cont col-three-three"><div class="container"><div id="odometer" class="counter-count odometer" data-count="306746">1</div><span id="counter-symbol2">+</span><div class="counter-title">Man hours dedicated to customer satisfaction </div></div></div><div class="counter-cont col-three-three"><div class="container"><div id="odometer" class="counter-count odometer" data-count="205">1</div><span id="counter-symbol3">+</span><div class="counter-title">Years combined experience</div></div></div></div></div></div></div></div></div></div><footer class="site-footer-image"><div class="wrap"><div class="container"><div class="main-section footer-section col-four"><div class="footer-section"><div class="footer-logo"><a href="https://cowanroofing.com"><img class="lozad" data-src="https://cowanroofing.com/wp-content/uploads/2025/09/Untitled-100-x-90-px-200-x-90-px-1.png" alt="Cowan Roofing" title="Untitled (100 x 90 px) (200 x 90 px) (1)"></a></div></div><div class="footer-section"><div class="footer-section-title"></div><ul><li id="site-title"><strong></strong></li><li>357 Washington Street<br />
886Madison, VA 22727</li><li><a href="tel:5403085898">(540) 308-5898</a></li><li>Monday-Friday 8:30 AM - 4:30 PM</li></ul></div><div class="footer-section"><p><p>Class A License #2705169358</p>
887</p></div><div class="footer-section"><div class="footer-section-title">Follow Us</div><div class="social-media"><ul class="social-media"><li class="sprite-facebook-icon"><a class="social" href="https://www.facebook.com/CowanRoofing/" title="Facebook" alt="Facebook" target="_blank"><i class="sprite sprite-facebook-icon" aria-hidden="true"></i></a></li><li class="sprite-houzz-icon"><a class="social" href="https://www.houzz.com/pro/cowanroof/cowan-roofing" title="Houzz" alt="Houzz" target="_blank"><i class="sprite sprite-houzz-icon" aria-hidden="true"></i></a></li><li class="sprite-yelp-icon"><a class="social" href="https://www.yelp.com/biz/cowan-roofing-madison" title="Yelp" alt="Yelp" target="_blank"><i class="sprite sprite-yelp-icon" aria-hidden="true"></i></a></li><li class="sprite-instagram-icon"><a class="social" href="https://www.instagram.com/cowanroofing/" title="Instagram" alt="Instagram" target="_blank"><i class="sprite sprite-instagram-icon" aria-hidden="true"></i></a></li></ul></div></div></div><div class="main-section footer-section col-four"><div class="footer-section"><div class="footer-section-title">Serving Madison County & Beyond</div><div class="footer-menu"><div class="menu-serving-these-areas-surrounding-communities-container"><ul id="menu-serving-these-areas-surrounding-communities" class="menu"><li id="menu-item-3051" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3051"><a href="https://cowanroofing.com/sperryville/">Sperryville, VA</a></li>
888<li id="menu-item-3052" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3052"><a href="https://cowanroofing.com/ruckersville/">Ruckersville, VA</a></li>
889<li id="menu-item-3053" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3053"><a href="https://cowanroofing.com/keswick/">Keswick, VA</a></li>
890<li id="menu-item-3054" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3054"><a href="https://cowanroofing.com/gordonsville/">Gordonsville, VA</a></li>
891<li id="menu-item-3055" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3055"><a href="https://cowanroofing.com/charlottesville/">Charlottesville, VA</a></li>
892<li id="menu-item-3061" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3061"><a href="https://cowanroofing.com/culpeper/">Culpeper, VA</a></li>
893</ul></div></div></div></div><div class="main-section footer-section col-four"><div class="footer-section"><div class="footer-section-title">Quick Links</div><div class="footer-menu"><div class="menu-quick-links-container"><ul id="menu-quick-links" class="menu"><li id="menu-item-123" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-home menu-item-123"><a href="https://cowanroofing.com/">Home</a></li>
894<li id="menu-item-2010" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2010"><a href="https://cowanroofing.com/about/">About</a></li>
895<li id="menu-item-3085" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3085"><a href="https://cowanroofing.com/about/financing/">Financing</a></li>
896<li id="menu-item-2011" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-1878 current_page_item menu-item-2011"><a href="https://cowanroofing.com/roofing/" aria-current="page">Roofing</a></li>
897<li id="menu-item-2673" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2673"><a href="https://cowanroofing.com/your-five-steps-to-new-roof-success/">What To Expect</a></li>
898<li id="menu-item-2009" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2009"><a href="https://cowanroofing.com/gallery/">Gallery</a></li>
899<li id="menu-item-3049" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3049"><a href="https://cowanroofing.com/areas-we-serve/">Areas We Serve</a></li>
900</ul></div></div></div></div><div class="main-section footer-section col-four"><div class="footer-section"><div class="footer-section-title">Services</div><div class="footer-menu"><div class="menu-our-services-container"><ul id="menu-our-services" class="menu"><li id="menu-item-2016" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2016"><a href="https://cowanroofing.com/roofing/replacement/">Roof Replacement</a></li>
901<li id="menu-item-2015" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2015"><a href="https://cowanroofing.com/roofing/repair/">Roof Repair</a></li>
902<li id="menu-item-2014" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2014"><a href="https://cowanroofing.com/roofing/specialty/">Specialty Roofing</a></li>
903<li id="menu-item-2013" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2013"><a href="https://cowanroofing.com/roofing/commercial/">Commercial Roofing</a></li>
904<li id="menu-item-2593" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2593"><a href="https://cowanroofing.com/roofing/gutter-installation/">Gutter Installation</a></li>
905<li id="menu-item-2012" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2012"><a href="https://cowanroofing.com/roofing/storm-damage/">Storm Damage</a></li>
906</ul></div></div></div></div></div></div></footer><div class="copy-right"><div class="wrap"><div class="container">Copyright ©2026 Cowan Roofing All Rights Reserved. <a href="/sitemap/">Sitemap</a> | <a href="/privacy-policy/">Privacy Policy</a></div></div></div><div class="popup-form"><div class="site-form"><div class="form-fields"><a title="Close" class="close">X</a>
907<div class="wpcf7 no-js" id="wpcf7-f405-o2" lang="en-US" dir="ltr" data-wpcf7-id="405">
908<div class="screen-reader-response">
908<p role="status" aria-live="polite" aria-atomic="true"></p> <ul></ul></div>
909<form action="/roofing/#wpcf7-f405-o2" method="post" class="wpcf7-form init use-floating-validation-tip" aria-label="Contact form" novalidate="novalidate" data-status="init">
910<fieldset class="hidden-fields-container"><input type="hidden" name="_wpcf7" value="405" /><input type="hidden" name="_wpcf7_version" value="6.1.7" /><input type="hidden" name="_wpcf7_locale" value="en_US" /><input type="hidden" name="_wpcf7_unit_tag" value="wpcf7-f405-o2" /><input type="hidden" name="_wpcf7_container_post" value="0" /><input type="hidden" name="_wpcf7_posted_data_hash" value="" />
911</fieldset>
912<div class="form-title">
913	<p>Request Estimate
914	</p>
915</div>
916<div class="field-container">
917	<div class="row">
918		<div>
919			<p><span class="wpcf7-form-control-wrap" data-name="f-name"><input size="40" maxlength="400" class="wpcf7-form-control wpcf7-text wpcf7-validates-as-required" aria-required="true" aria-invalid="false" placeholder="First Name*" value="" type="text" name="f-name" /></span><span class="wpcf7-form-control-wrap" data-name="l-name"><input size="40" maxlength="400" class="wpcf7-form-control wpcf7-text wpcf7-validates-as-required" aria-required="true" aria-invalid="false" placeholder="Last Name*" value="" type="text" name="l-name" /></span>
920			</p>
921		</div>
922<!-- <div><span class="wpcf7-form-control-wrap" data-name="l-name"><input size="40" maxlength="400" class="wpcf7-form-control wpcf7-text wpcf7-validates-as-required" aria-required="true" aria-invalid="false" placeholder="Last Name*" value="" type="text" name="l-name" /></span></div>-->
923		<div>
924			<p><span class="wpcf7-form-control-wrap" data-name="email"><input size="40" maxlength="400" class="wpcf7-form-control wpcf7-email wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-email" aria-required="true" aria-invalid="false" placeholder="Email*" value="" type="email" name="email" /></span>
925			</p>
926		</div>
927		<div>
928			<p><span class="wpcf7-form-control-wrap" data-name="tel"><input size="40" maxlength="400" class="wpcf7-form-control wpcf7-tel wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-tel" aria-required="true" aria-invalid="false" placeholder="Phone Number*" value="" type="tel" name="tel" /></span>
929			</p>
930		</div>
931		<div>
932			<p><span class="wpcf7-form-control-wrap" data-name="form-services"><select class="wpcf7-form-control wpcf7-select" aria-invalid="false" name="form-services"><option value="Interested in:">Interested in:</option><option value="Roof Replacement">Roof Replacement</option><option value="Roof Repair">Roof Repair</option><option value="Commercial Roofing">Commercial Roofing</option><option value="Other">Other</option></select></span>
933			</p>
934		</div>
935		<div>
936			<p><span class="wpcf7-form-control-wrap" data-name="message"><textarea cols="40" rows="10" maxlength="2000" class="wpcf7-form-control wpcf7-textarea" aria-invalid="false" placeholder="Message" name="message"></textarea></span>
937			</p>
938		</div>
939		<p class="recaptcha-note">This site is protected by Cloudflare Turnstile and the Google <a href="https://policies.google.com/privacy" target="_blank">Privacy Policy</a> and <a href="https://policies.google.com/terms" target="_blank">Terms of Service</a> apply.
940		</p>
941		<div class="submit-form">
942			<p><div class="cf7-cf-turnstile" style="margin-top: 0px; margin-bottom: -15px;"> <div id="cf-turnstile-cf7-1585545157" class="cf-turnstile" data-sitekey="0x4AAAAAAASU9yIdylS09CpW" data-theme="light" data-language="auto" data-size="" data-retry="auto" data-retry-interval="1000" data-refresh-expired="auto" data-refresh-timeout="auto" data-action="contact-form-7" data-callback="turnstileCF7Callback" data-appearance="always"></div> <br class="cf-turnstile-br cf-turnstile-br-cf7-1585545157"> </div><br/><input class="wpcf7-form-control wpcf7-submit has-spinner" type="submit" value="Submit" />
943			</p>
944		</div>
945	</div>
946</div><div class="wpcf7-response-output" aria-hidden="true"></div>
947</form>
948</div>
949</div></div></div><div class="move-to-top"><div class="to-top">Top</div></div><!-- SLMC Lead Script -->
949<script type="lazyJs" >var pAuth="";</script>
949<div class="cta-footer"><div class="container"><div class="footer-cta-btn"><a class="popup-form-btn">Request Estimate</a></div></div></div></div>
949<script src="https://cowanroofing.com/wp-content/cache/w3-cache/js/558/wp-content/plugins/google-reviews-business/static/js/wpac-time.js" id="wpac_time_js-js" type="lazyJs"></script>
vendor: 1 bytes, line 949
949
950<script type="lazyJs" id="addtoany-core-js-before" >
951window.a2a_config=window.a2a_config||{};a2a_config.callbacks=[];a2a_config.overlays=[];a2a_config.templates={};
952
953//# sourceURL=addtoany-core-js-before
954</script>
vendor: 1 bytes, line 954
954
955<script src="https://static.addtoany.com/menu/page.js" id="addtoany-core-js" defer="defer" type="lazyJs"></script>
vendor: 1 bytes, line 955
955
956<script src="https://cowanroofing.com/wp-includes/js/jquery/jquery.min.js" id="jquery-core-js" type="lazyJs"></script>
vendor: 1 bytes, line 956
956
957<script src="https://cowanroofing.com/wp-includes/js/jquery/jquery-migrate.min.js" id="jquery-migrate-js" type="lazyJs"></script>
vendor: 1 bytes, line 957
957
958<script src="https://cowanroofing.com/wp-content/cache/w3-cache/js/558/wp-content/plugins/add-to-any/addtoany.min.js" id="addtoany-jquery-js" defer="defer" type="lazyJs"></script>
vendor: 1 bytes, line 958
958
959<script src="https://cowanroofing.com/wp-includes/js/dist/hooks.min.js" id="wp-hooks-js" type="lazyJs"></script>
vendor: 1 bytes, line 959
959
960<script src="https://cowanroofing.com/wp-includes/js/dist/i18n.min.js" id="wp-i18n-js" type="lazyJs"></script>
vendor: 1 bytes, line 960
960
961<script type="lazyJs" id="wp-i18n-js-after" >
962wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } );
963//# sourceURL=wp-i18n-js-after
964</script>
vendor: 1 bytes, line 964
964
965<script src="https://cowanroofing.com/wp-content/cache/w3-cache/js/558/wp-content/plugins/contact-form-7/includes/swv/js/index.js" id="swv-js" type="lazyJs"></script>
vendor: 1 bytes, line 965
965
966<script type="lazyJs" id="contact-form-7-js-before" >
967var wpcf7 = {
968    "api": {
969        "root": "https:\/\/cowanroofing.com\/wp-json\/",
970        "namespace": "contact-form-7\/v1"
971    },
972    "cached": 1
973};
974//# sourceURL=contact-form-7-js-before
975</script>
vendor: 1 bytes, line 975
975
976<script src="https://cowanroofing.com/wp-content/cache/w3-cache/js/558/wp-content/plugins/contact-form-7/includes/js/index.js" id="contact-form-7-js" type="lazyJs"></script>
vendor: 1 bytes, line 976
976
977<script type="lazyJs" id="pojo-a11y-js-extra" >
978var PojoA11yOptions = {"focusable":"","remove_link_target":"","add_role_links":"1","enable_save":"1","save_expiration":"12"};
979//# sourceURL=pojo-a11y-js-extra
980</script>
vendor: 1 bytes, line 980
980
981<script src="https://cowanroofing.com/wp-content/cache/w3-cache/js/558/wp-content/plugins/pojo-accessibility/modules/legacy/assets/js/app.min.js" id="pojo-a11y-js" type="lazyJs"></script>
vendor: 1 bytes, line 981
981
982<script src="https://cowanroofing.com/wp-includes/js/hoverIntent.min.js" id="hoverIntent-js" type="lazyJs"></script>
vendor: 1 bytes, line 982
982
983<script src="https://cowanroofing.com/wp-content/cache/w3-cache/js/558/wp-content/themes/genesis/lib/js/menu/superfish.min.js" id="superfish-js" type="lazyJs"></script>
vendor: 1 bytes, line 983
983
984<script src="https://cowanroofing.com/wp-content/cache/w3-cache/js/558/wp-content/themes/genesis/lib/js/menu/superfish.args.min.js" id="superfish-args-js" type="lazyJs"></script>
vendor: 1 bytes, line 984
984
985<script src="https://cowanroofing.com/wp-content/cache/w3-cache/js/558/wp-content/themes/genesis/lib/js/skip-links.min.js" id="skip-links-js" type="lazyJs"></script>
vendor: 1 bytes, line 985
985
986<script type="lazyJs" id="smb-base-responsive-menu-js-extra" >
987var genesis_responsive_menu = {"mainMenu":"","menuIconClass":"dashicons-before dashicons-menu","subMenu":"","subMenuIconClass":"dashicons-before dashicons-arrow-down-alt2","menuClasses":{"combine":[".nav-primary"],"others":[]}};
988//# sourceURL=smb-base-responsive-menu-js-extra
989</script>
vendor: 1 bytes, line 989
989
990<script src="https://cowanroofing.com/wp-content/cache/w3-cache/js/558/wp-content/themes/cowanroofing/js/responsive-menus.min.js" id="smb-base-responsive-menu-js" type="lazyJs"></script>
vendor: 1 bytes, line 990
990
991<script src="https://cowanroofing.com/wp-content/cache/w3-cache/js/558/wp-content/themes/cowanroofing/js/jquery.matchHeight.min.js" id="smb-base-match-height-js" type="lazyJs"></script>
vendor: 1 bytes, line 991
991
992<script src="https://cowanroofing.com/wp-content/cache/w3-cache/js/558/wp-content/themes/cowanroofing/js/slick.min.js" id="slick-js-js" type="lazyJs"></script>
vendor: 1 bytes, line 992
992
993<script type="lazyJs" id="dynamik-js-js-extra" >
994var ajax_object = {"ajax_url":"https://cowanroofing.com/wp-admin/admin-ajax.php"};
995//# sourceURL=dynamik-js-js-extra
996</script>
vendor: 1 bytes, line 996
996
997<script src="https://cowanroofing.com/wp-content/cache/w3-cache/js/558/wp-content/themes/cowanroofing/js/dynamik-js.js" id="dynamik-js-js" type="lazyJs"></script>
vendor: 1 bytes, line 997
997
998<script src="https://cowanroofing.com/wp-content/cache/w3-cache/js/558/wp-content/themes/cowanroofing/js/custom-js.js" id="custom-js-js" type="lazyJs"></script>
vendor: 1 bytes, line 998
998
999<script src="//cdn.jsdelivr.net/npm/[email protected]/lazyload.js" id="lazyload-js-js" type="lazyJs"></script>
vendor: 1 bytes, line 999
999
1000<script src="//unpkg.com/[email protected]/dist/aos.js" id="aos-js-js" type="lazyJs"></script>
vendor: 1 bytes, line 1000
1000
1001<script src="https://cowanroofing.com/wp-content/cache/w3-cache/js/558/wp-content/themes/cowanroofing/js/odometer.js" id="odometer-js-js" type="lazyJs"></script>
vendor: 1 bytes, line 1001
1001
1002<script src="https://cowanroofing.com/wp-content/themes/genesis/js/locations.js" id="cowanroofing-locations-js" type="lazyJs"></script>
vendor: 1 bytes, line 1002
1002
1003<script src="https://cowanroofing.com/wp-content/cache/w3-cache/js/558/wp-content/plugins/easy-fancybox/vendor/purify.min.js" id="fancybox-purify-js" type="lazyJs"></script>
vendor: 1 bytes, line 1003
1003
1004<script type="lazyJs" id="jquery-fancybox-js-extra" >
1005var efb_i18n = {"close":"Close","next":"Next","prev":"Previous","startSlideshow":"Start slideshow","toggleSize":"Toggle size"};
1006//# sourceURL=jquery-fancybox-js-extra
1007</script>
vendor: 1 bytes, line 1007
1007
1008<script src="https://cowanroofing.com/wp-content/cache/w3-cache/js/558/wp-content/plugins/easy-fancybox/fancybox/1.5.4/jquery.fancybox.min.js" id="jquery-fancybox-js" type="lazyJs"></script>
vendor: 1 bytes, line 1008
1008
1009<script type="lazyJs" id="jquery-fancybox-js-after" >
1010var fb_timeout, fb_opts={'autoScale':true,'showCloseButton':true,'margin':20,'pixelRatio':'false','centerOnScroll':true,'enableEscapeButton':true,'overlayShow':true,'hideOnOverlayClick':true,'minVpHeight':320,'disableCoreLightbox':'true','enableBlockControls':'true','fancybox_openBlockControls':'true' };
1011if(typeof easy_fancybox_handler==='undefined'){
1012var easy_fancybox_handler=function(){
1013jQuery([".nolightbox","a.wp-block-file__button","a.pin-it-button","a[href*='pinterest.com\/pin\/create']","a[href*='facebook.com\/share']","a[href*='twitter.com\/share']"].join(',')).addClass('nofancybox');
1014jQuery('a.fancybox-close').on('click',function(e){e.preventDefault();jQuery.fancybox.close()});
1015/* IMG */
1016						var unlinkedImageBlocks=jQuery(".wp-block-image > img:not(.nofancybox,figure.nofancybox>img)");
1017						unlinkedImageBlocks.wrap(function() {
1018							var href = jQuery( this ).attr( "src" );
1019							return "<a href='" + href + "'></a>";
1020						});
1021var fb_IMG_select=jQuery('a[href*=".jpg" i]:not(.nofancybox,li.nofancybox>a,figure.nofancybox>a),area[href*=".jpg" i]:not(.nofancybox),a[href*=".jpeg" i]:not(.nofancybox,li.nofancybox>a,figure.nofancybox>a),area[href*=".jpeg" i]:not(.nofancybox),a[href*=".png" i]:not(.nofancybox,li.nofancybox>a,figure.nofancybox>a),area[href*=".png" i]:not(.nofancybox),a[href*=".webp" i]:not(.nofancybox,li.nofancybox>a,figure.nofancybox>a),area[href*=".webp" i]:not(.nofancybox)');
1022fb_IMG_select.addClass('fancybox image');
1023jQuery('a.fancybox,area.fancybox,.fancybox>a').each(function(){jQuery(this).fancybox(jQuery.extend(true,{},fb_opts,{'transition':'elastic','transitionIn':'elastic','easingIn':'easeOutBack','transitionOut':'elastic','easingOut':'easeInBack','opacity':false,'hideOnContentClick':false,'titleShow':true,'titlePosition':'over','titleFromAlt':true,'showNavArrows':true,'enableKeyboardNav':true,'cyclic':false,'mouseWheel':'true'}))});
1024};};
1025jQuery(easy_fancybox_handler);jQuery(document).on('post-load',easy_fancybox_handler);
1026
1027//# sourceURL=jquery-fancybox-js-after
1028</script>
vendor: 1 bytes, line 1028
1028
1029<script src="https://cowanroofing.com/wp-content/cache/w3-cache/js/558/wp-content/plugins/easy-fancybox/vendor/jquery.easing.min.js" id="jquery-easing-js" type="lazyJs"></script>
vendor: 1 bytes, line 1029
1029
1030<script src="https://cowanroofing.com/wp-content/cache/w3-cache/js/558/wp-content/plugins/easy-fancybox/vendor/jquery.mousewheel.min.js" id="jquery-mousewheel-js" type="lazyJs"></script>
vendor: 1 bytes, line 1030
1030
1031<script src="https://cowanroofing.com/wp-content/cache/w3-cache/js/558/wp-content/plugins/megamenu/js/maxmegamenu.min.js" id="megamenu-js" type="lazyJs"></script>
vendor: 1 bytes, line 1031
1031
1032<script type="lazyJs" data-cfasync="false" id="cfturnstile-js-before" >
1033(function(w,d){var q=w.cfturnstileQueue=w.cfturnstileQueue||[];if(w.cfturnstileRender)return;var ready=false,hooked=false,ticks=0,timer=null;var cbs=["callback","error-callback","expired-callback","timeout-callback","unsupported-callback","before-interactive-callback","after-interactive-callback"];function opts(e){var p={};for(var i=0;i<cbs.length;i++){(function(n){var v=e.getAttribute("data-"+n);if(!v)return;p[n]=function(){var f=w[v];if(typeof f==="function")return f.apply(w,arguments);};})(cbs[i]);}return p;}w.cfturnstileOpts=function(e){if(typeof e==="string")e=d.querySelector(e);return e&&e.getAttribute?opts(e):{};};function one(id){var n="cf-turnstile"+id,e=d.getElementById(n);if(e&&e.cfturnstileQueued){e=null;var l=d.querySelectorAll(".cf-turnstile");for(var i=0;i<l.length;i++){if(l[i].id===n&&!l[i].cfturnstileQueued){e=l[i];break;}}}if(!e)return false;if(!e.firstElementChild){try{w.turnstile.render(e,opts(e));}catch(_){return false;}}e.cfturnstileQueued=1;return true;}function drain(){if(!ready)return;for(var i=q.length-1;i>=0;i--){if(one(q[i]))q.splice(i,1);}if(q.length&&!hooked&&d.readyState==="loading"){hooked=true;d.addEventListener("DOMContentLoaded",function(){hooked=false;drain();});}}function watch(){timer=null;if(!q.length)return;if(!ready&&w.turnstile&&typeof w.turnstile.render==="function")ready=true;drain();if(q.length&&++ticks<170)timer=setTimeout(watch,ticks<20?100:2000);}w.cfturnstileRender=function(){drain();if(q.length&&!timer)timer=setTimeout(watch,100);};w.cfturnstileOnload=function(){ready=true;w.cfturnstileRender();};w.cfturnstileRender();})(window,document);
1034(function(w,d){if(w.cfturnstileRefresh)return;w.cfturnstileRefresh=1;var F="input[name=cf-turnstile-response]",S="form.checkout, form.woocommerce-checkout, form.wc-block-checkout__form",u=false;function go(){u=true;}w.addEventListener("pagehide",go);w.addEventListener("beforeunload",go);d.addEventListener("submit",function(e){var f=e.target,s=[];if(!f||!f.querySelectorAll)return;try{if(S&&f.matches&&f.matches(S))return;}catch(_){}f.querySelectorAll(".cf-turnstile").forEach(function(el){var i=el.querySelector(F);if(i&&i.value)s.push([el,i.value]);});if(!s.length)return;setTimeout(function(){if(u||!w.turnstile||d.querySelector("#wfls-prompt-overlay,#wfls-token,#fls_2fa_form,.fls_2fs"))return;s.forEach(function(x){var i=x[0].querySelector(F);if(i&&i.value===x[1]){try{w.turnstile.reset(x[0]);}catch(_){}}});},2000);},true);})(window,document);
1035//# sourceURL=cfturnstile-js-before
1036</script>
vendor: 1 bytes, line 1036
1036
1037<script src="https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit&#038;onload=cfturnstileOnload" data-wp-strategy="defer" id="cfturnstile-js" type="lazyJs"></script>
vendor: 1 bytes, line 1037
1037
1038<script type="lazyJs" data-cfasync="false" id="cfturnstile-js-after" >
1039function turnstileCF7Callback() {
1040    document.querySelectorAll('.wpcf7-submit').forEach(function(el) {
1041        el.style.pointerEvents = 'auto';
1042        el.style.opacity = '1';
1043    });
1044	}
1045function turnstileCF7Callback() {
1046    document.querySelectorAll('.wpcf7-submit').forEach(function(el) {
1047        el.style.pointerEvents = 'auto';
1048        el.style.opacity = '1';
1049    });
1050	}
1051//# sourceURL=cfturnstile-js-after
1052</script>
vendor: 1 bytes, line 1052
1052
1053<script type="lazyJs" data-cfasync="false" id="cfturnstile-render-js-after" >
1054(window.cfturnstileQueue=window.cfturnstileQueue||[]).push("-cf7-2018247070");if(window.cfturnstileRender)window.cfturnstileRender();
1055(window.cfturnstileQueue=window.cfturnstileQueue||[]).push("-cf7-1585545157");if(window.cfturnstileRender)window.cfturnstileRender();
1056//# sourceURL=cfturnstile-render-js-after
1057</script>
vendor: 1 bytes, line 1057
1057
1058<script type="speculationrules">
1059{"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/cowanroofing/*","/wp-content/themes/genesis/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
1060</script>
vendor: 1 bytes, line 1060
1060
1061<script src="https://connect.podium.com/widget.js#API_TOKEN=f5994103-ff87-454f-88b4-0f21ff4dda76" defer="defer" id="podium-widget" data-api-token="f5994103-ff87-454f-88b4-0f21ff4dda76" type="lazyJs"></script>
vendor: 2 bytes, line 1061
1061
1062<script src="https://libs.sfs.io/public/lead-script-sf-wdoc-cf7.js?v=08.17.20" type="lazyJs"></script>
vendor: 2 bytes, line 1062
1062
1063<script src="https://knowledgetags.yextpages.net/embed?key=esCnRf8m9v5y1gRjNiiYtnJuddzZU7FzhjxKGQgE0NImCqZcRtHN5F60A2PDO_Gd&account_id=sp5126_4adHK&entity_id=5126_4adHK&locale=en" async="" type="lazyJs"></script>
vendor: 2 bytes, line 1063
1063
1064<script type="lazyJs" >
1065jQuery(document).ready(function(){
1066    document.addEventListener( 'wpcf7mailsent', function( event ) {
1067    if ( '405' == event.detail.contactFormId ) {
1068        location.replace('/request-estimate-thank-you/');
1069    }
1070    if ( '493' == event.detail.contactFormId ) {
1071       location.replace('/contact-us-thank-you/');
1072    }}, false );
1073});
1074</script>
1074
1075
1076
1077
1078<script type="lazyJs" >
1079(function(cookieName, domain){
1080
1081    var traffic_source_COOKIE_TOKEN_SEPARATOR = ">>"; //separating between concatenated lead source
1082    var traffic_source_date_SEPARATOR = "|>";
1083    var NONE = "(website)";
1084
1085    domain = domain || window.location.hostname;
1086
1087    function getCookie(cookieName){
1088        var name = cookieName + "=";
1089        var cookieArray = document.cookie.split(';'); //break cookie into array
1090        for(var i = 0; i < cookieArray.length; i++){
1091          var cookie = cookieArray[i].replace(/^\s+|\s+$/g, ''); //replace all space with '' = delete it
1092          if (cookie.indexOf(name)==0){
1093             return cookie.substring(name.length,cookie.length); //
1094          }
1095        }
1096        return null;
1097    }
1098
1099/*
1100*  Takes the current time of the session, and optional addition to the traffic source. 
1101*  The output will be of the format: >>{traffic source}|>DD-MM-YY HH:MM AM/PM>>
1102*
1103*/
1104
1105/*
1106*   Uncomment currTime() in order to activate. You should also uncomment the lines in the code that call this function (all marked with a comment). If you do so, uncomment the line above them which does not employ currTime()
1107
1108
1109    function currTime() {
1110        var date = new Date();
1111        var currDate = date.getDate();
1112        var hours = date.getHours();
1113        var minutes = date.getMinutes();
1114        var month = date.getMonth() + 1;
1115        var year = date.getFullYear();
1116        var ampm = hours >= 12 ? 'pm' : 'am';
1117        hours = hours % 12;
1118        hours = hours ? hours : 12; // the hour '0' makes '12'
1119        minutes = minutes < 10 ? '0' + minutes : minutes;
1120        var strTime = traffic_source_date_SEPARATOR + currDate + '-' + month + '-' + year + ' ' + hours + ':' + minutes + ' ' + ampm + ')';
1121        return strTime;
1122    }
1123
1124*/
1125
1126    /*
1127       Checks whether a certain parameter exist in the current browser URL. If it does, it returns its name. 
1128       It will receive "src" later in the main function
1129    */
1130    
1131    function getURLParameter(param){
1132        var pageURL = window.location.search.substring(1); //get the query string parameters without the "?"
1133        var URLVariables = pageURL.split('&'); //break the parameters and values attached together to an array
1134        for (var i = 0; i < URLVariables.length; i++) {
1135            var parameterName = URLVariables[i].split('='); //break the parameters from the values
1136            if (parameterName[0] == param) {
1137                return parameterName[1];
1138            }
1139        }
1140        return null;
1141    }
1142
1143    /*
1144       Gets the first (latest) token from a cookie: THIS__ONE>>NOT__THIS__ONE>>AND__NOT__THIS__ONE
1145    */
1146    
1147    function getFirstTokenFromCookie(cookie){
1148        var result = "";
1149        var firstSeparatorIndex = cookie.indexOf(traffic_source_COOKIE_TOKEN_SEPARATOR);
1150        result = firstSeparatorIndex !== -1 ? cookie.substring(0, firstSeparatorIndex) : cookie; //if there is a separator, provide the newest value no the cookie  
1151        return result;
1152    }
1153
1154    /*
1155       Set the cookie if it doesn't exist.
1156    */
1157    
1158    function setCookie(cookie, value){
1159        var expires = new Date();
1160        expires.setTime(expires.getTime() + 62208000000); //1000*60*60*24*30*24 (2 years)
1161        document.cookie = cookie + "=" + value + "; expires=" + expires.toGMTString() + "; domain=" + domain + "; path=/";
1162    }
1163    
1164    /*
1165       Boolean, whether or not it's not NULL or Empty
1166    */
1167    
1168    function isNotNullOrEmpty(string){
1169        return string !== null && string !== "";
1170    }
1171    
1172    /*
1173       Remove the protocol for the referral token
1174    */
1175    function removeProtocol(href) {
1176        return href.replace(/.*?:\/\//g, "");
1177    }
1178
1179    /*
1180       Find lead source by checking cookie, url param "src" or referrer(that order) and set new cookie traffic_source.
1181       Do this only if cookie do not exist. This value will be used for contact form.
1182       If cookie exist add url "src" param on the beginning of the cookie if it exists and it is not already at the beginning of the cookie.
1183       This way "tokens" are made in traffic_source cookie. Token separator is ">>" (see above traffic_source_COOKIE_TOKEN_SEPARATOR)
1184    */
1185
1186    var urlParamSRC = getURLParameter("src"); //take the SRC value
1187    if(document.cookie.indexOf(cookieName) === -1) { // if there is no cookie traffic_source set yet, check if there is an existing UTMZ campaign name.
1188        var traffic_source = ""; //reset lead source value
1189        var utmzCookie = getCookie("__utmz"); //get GA cookie
1190        var cookieCampaignName = "";  //reset lead source value
1191        if(utmzCookie != null) {
1192            var UTMSRC = "utmccn=";
1193            var start = utmzCookie.indexOf(UTMSRC);
1194            var end = utmzCookie.indexOf("|", start); 
1195            if(start > -1) {
1196                if(end === -1) {
1197                    end = utmzCookie.length; 
1198                }
1199                cookieCampaignName = "utmz:" + utmzCookie.substring((start + UTMSRC.length), end); //get the value of the UTMZ, without the parameter name
1200            }
1201        }
1202        if(cookieCampaignName != "" && isNotNullOrEmpty(urlParamSRC)){ //if there is a campaign name AND there is SRC value
1203             traffic_source = urlParamSRC + traffic_source_COOKIE_TOKEN_SEPARATOR + cookieCampaignName; //concateane the SRC with the existing campaign name
1204             // traffic_source = urlParamSRC + currTime() + traffic_source_COOKIE_TOKEN_SEPARATOR + cookieCampaignName; // Optional: add the session time
1205        } else if(cookieCampaignName != ""){ //if there is campaign name
1206             traffic_source = cookieCampaignName;  //just use it for the new cookie
1207        } else if(urlParamSRC != null) { //if there is not campaign name but we have SRC
1208            traffic_source = decodeURI(urlParamSRC); // decode URI of the SRC parameter
1209            // traffic_source = decodeURI(urlParamSRC) + currTime(); //  Optional: add the session time
1210        } else if(document.referrer != ""){ //if there is not campaign, and no src, check if there is a referrer,
1211            var referrerHostName = removeProtocol(document.referrer);
1212            var GOOGLE = /www.google/; 
1213            var YAHOO = /search.yahoo/; 
1214            var BING = /www.bing/; 
1215            if(GOOGLE.test(referrerHostName)){
1216                traffic_source = "Google Search";
1217                //traffic_source = "Google Search" + currTime(); // + Optional: Add the current session time. Choose one of them.
1218            } else if(YAHOO.test(referrerHostName)){
1219                traffic_source = "Yahoo Search";
1220                //traffic_source = "Yahoo Search" + currTime();
1221            } else if(BING.test(referrerHostName)){
1222                traffic_source = "Bing Search";
1223                //traffic_source = "Bing Search" + currTime();
1224            } else {
1225                traffic_source = referrerHostName;
1226                //traffic_source = referrerHostName + currTime();
1227            }
1228        } else {
1229            traffic_source = NONE;
1230        }
1231        setCookie(cookieName, traffic_source); //set the cookie
1232        
1233    } else if(isNotNullOrEmpty(urlParamSRC)){ //if there is a cookie, add the SRC to the cookie, unless the same src already exists as the first token.
1234        var firstToken = getFirstTokenFromCookie(getCookie(cookieName));
1235        if(firstToken !== "" && urlParamSRC !== firstToken) {
1236            var newTrafficSourceCookie = urlParamSRC + traffic_source_COOKIE_TOKEN_SEPARATOR + getCookie(cookieName); //concetenate new SRC with old cookie values
1237            // var newTrafficSourceCookie = urlParamSRC + currTime() + traffic_source_COOKIE_TOKEN_SEPARATOR + getCookie(cookieName); // Optional: add the time of current session
1238            setCookie(cookieName, newTrafficSourceCookie);
1239        }
1240    }
1241
1242 })("traffic_source", ".sfs-baseline-wpvenus.com");
1243
1244        function getCookie(name) { //Gets the value of traffic_source 
1245        var value = "; " + document.cookie;
1246        var parts = value.split("; " + name + "=");
1247        if (parts.length == 2) return parts.pop().split(";").shift();
1248        }
1249        
1250        function addTrafficSourceToForm(){  //injects the traffic_source value to the form
1251
1252           jQuery("input[name='lead_source']").each(function() {
1253            this.value = getCookie("traffic_source");
1254            console.log("Executing");
1255         });
1256
1257        }
1258        
1259        addTrafficSourceToForm() //initates the process
1260</script>
1260
1261
1262<script type="lazyJs" >
1263(function(cookieName, domain){
1264
1265    var traffic_source_COOKIE_TOKEN_SEPARATOR = ">>"; //separating between concatenated lead source
1266    var traffic_source_date_SEPARATOR = "|>";
1267    var NONE = "(website)";
1268
1269    domain = domain || window.location.hostname;
1270
1271    function getCookie(cookieName){
1272        var name = cookieName + "=";
1273        var cookieArray = document.cookie.split(';'); //break cookie into array
1274        for(var i = 0; i < cookieArray.length; i++){
1275          var cookie = cookieArray[i].replace(/^\s+|\s+$/g, ''); //replace all space with '' = delete it
1276          if (cookie.indexOf(name)==0){
1277             return cookie.substring(name.length,cookie.length); //
1278          }
1279        }
1280        return null;
1281    }
1282
1283/*
1284*  Takes the current time of the session, and optional addition to the traffic source. 
1285*  The output will be of the format: >>{traffic source}|>DD-MM-YY HH:MM AM/PM>>
1286*
1287*/
1288
1289/*
1290*   Uncomment currTime() in order to activate. You should also uncomment the lines in the code that call this function (all marked with a comment). If you do so, uncomment the line above them which does not employ currTime()
1291
1292
1293    function currTime() {
1294        var date = new Date();
1295        var currDate = date.getDate();
1296        var hours = date.getHours();
1297        var minutes = date.getMinutes();
1298        var month = date.getMonth() + 1;
1299        var year = date.getFullYear();
1300        var ampm = hours >= 12 ? 'pm' : 'am';
1301        hours = hours % 12;
1302        hours = hours ? hours : 12; // the hour '0' makes '12'
1303        minutes = minutes < 10 ? '0' + minutes : minutes;
1304        var strTime = traffic_source_date_SEPARATOR + currDate + '-' + month + '-' + year + ' ' + hours + ':' + minutes + ' ' + ampm + ')';
1305        return strTime;
1306    }
1307
1308*/
1309
1310    /*
1311       Checks whether a certain parameter exist in the current browser URL. If it does, it returns its name. 
1312       It will receive "src" later in the main function
1313    */
1314    
1315    function getURLParameter(param){
1316        var pageURL = window.location.search.substring(1); //get the query string parameters without the "?"
1317        var URLVariables = pageURL.split('&'); //break the parameters and values attached together to an array
1318        for (var i = 0; i < URLVariables.length; i++) {
1319            var parameterName = URLVariables[i].split('='); //break the parameters from the values
1320            if (parameterName[0] == param) {
1321                return parameterName[1];
1322            }
1323        }
1324        return null;
1325    }
1326
1327    /*
1328       Gets the first (latest) token from a cookie: THIS__ONE>>NOT__THIS__ONE>>AND__NOT__THIS__ONE
1329    */
1330    
1331    function getFirstTokenFromCookie(cookie){
1332        var result = "";
1333        var firstSeparatorIndex = cookie.indexOf(traffic_source_COOKIE_TOKEN_SEPARATOR);
1334        result = firstSeparatorIndex !== -1 ? cookie.substring(0, firstSeparatorIndex) : cookie; //if there is a separator, provide the newest value no the cookie  
1335        return result;
1336    }
1337
1338    /*
1339       Set the cookie if it doesn't exist.
1340    */
1341    
1342    function setCookie(cookie, value){
1343        var expires = new Date();
1344        expires.setTime(expires.getTime() + 62208000000); //1000*60*60*24*30*24 (2 years)
1345        document.cookie = cookie + "=" + value + "; expires=" + expires.toGMTString() + "; domain=" + domain + "; path=/";
1346    }
1347    
1348    /*
1349       Boolean, whether or not it's not NULL or Empty
1350    */
1351    
1352    function isNotNullOrEmpty(string){
1353        return string !== null && string !== "";
1354    }
1355    
1356    /*
1357       Remove the protocol for the referral token
1358    */
1359    function removeProtocol(href) {
1360        return href.replace(/.*?:\/\//g, "");
1361    }
1362
1363    /*
1364       Find lead source by checking cookie, url param "src" or referrer(that order) and set new cookie traffic_source.
1365       Do this only if cookie do not exist. This value will be used for contact form.
1366       If cookie exist add url "src" param on the beginning of the cookie if it exists and it is not already at the beginning of the cookie.
1367       This way "tokens" are made in traffic_source cookie. Token separator is ">>" (see above traffic_source_COOKIE_TOKEN_SEPARATOR)
1368    */
1369
1370    var urlParamSRC = getURLParameter("src"); //take the SRC value
1371    if(document.cookie.indexOf(cookieName) === -1) { // if there is no cookie traffic_source set yet, check if there is an existing UTMZ campaign name.
1372        var traffic_source = ""; //reset lead source value
1373        var utmzCookie = getCookie("__utmz"); //get GA cookie
1374        var cookieCampaignName = "";  //reset lead source value
1375        if(utmzCookie != null) {
1376            var UTMSRC = "utmccn=";
1377            var start = utmzCookie.indexOf(UTMSRC);
1378            var end = utmzCookie.indexOf("|", start); 
1379            if(start > -1) {
1380                if(end === -1) {
1381                    end = utmzCookie.length; 
1382                }
1383                cookieCampaignName = "utmz:" + utmzCookie.substring((start + UTMSRC.length), end); //get the value of the UTMZ, without the parameter name
1384            }
1385        }
1386        if(cookieCampaignName != "" && isNotNullOrEmpty(urlParamSRC)){ //if there is a campaign name AND there is SRC value
1387             traffic_source = urlParamSRC + traffic_source_COOKIE_TOKEN_SEPARATOR + cookieCampaignName; //concateane the SRC with the existing campaign name
1388             // traffic_source = urlParamSRC + currTime() + traffic_source_COOKIE_TOKEN_SEPARATOR + cookieCampaignName; // Optional: add the session time
1389        } else if(cookieCampaignName != ""){ //if there is campaign name
1390             traffic_source = cookieCampaignName;  //just use it for the new cookie
1391        } else if(urlParamSRC != null) { //if there is not campaign name but we have SRC
1392            traffic_source = decodeURI(urlParamSRC); // decode URI of the SRC parameter
1393            // traffic_source = decodeURI(urlParamSRC) + currTime(); //  Optional: add the session time
1394        } else if(document.referrer != ""){ //if there is not campaign, and no src, check if there is a referrer,
1395            var referrerHostName = removeProtocol(document.referrer);
1396            var GOOGLE = /www.google/; 
1397            var YAHOO = /search.yahoo/; 
1398            var BING = /www.bing/; 
1399            if(GOOGLE.test(referrerHostName)){
1400                traffic_source = "Google Search";
1401                //traffic_source = "Google Search" + currTime(); // + Optional: Add the current session time. Choose one of them.
1402            } else if(YAHOO.test(referrerHostName)){
1403                traffic_source = "Yahoo Search";
1404                //traffic_source = "Yahoo Search" + currTime();
1405            } else if(BING.test(referrerHostName)){
1406                traffic_source = "Bing Search";
1407                //traffic_source = "Bing Search" + currTime();
1408            } else {
1409                traffic_source = referrerHostName;
1410                //traffic_source = referrerHostName + currTime();
1411            }
1412        } else {
1413            traffic_source = NONE;
1414        }
1415        setCookie(cookieName, traffic_source); //set the cookie
1416        
1417    } else if(isNotNullOrEmpty(urlParamSRC)){ //if there is a cookie, add the SRC to the cookie, unless the same src already exists as the first token.
1418        var firstToken = getFirstTokenFromCookie(getCookie(cookieName));
1419        if(firstToken !== "" && urlParamSRC !== firstToken) {
1420            var newTrafficSourceCookie = urlParamSRC + traffic_source_COOKIE_TOKEN_SEPARATOR + getCookie(cookieName); //concetenate new SRC with old cookie values
1421            // var newTrafficSourceCookie = urlParamSRC + currTime() + traffic_source_COOKIE_TOKEN_SEPARATOR + getCookie(cookieName); // Optional: add the time of current session
1422            setCookie(cookieName, newTrafficSourceCookie);
1423        }
1424    }
1425
1426 })("traffic_source", ".cowanroofing.com");
1427
1428        function getCookie(name) { //Gets the value of traffic_source 
1429        var value = "; " + document.cookie;
1430        var parts = value.split("; " + name + "=");
1431        if (parts.length == 2) return parts.pop().split(";").shift();
1432        }
1433        
1434        function addTrafficSourceToForm(){  //injects the traffic_source value to the form
1435
1436           jQuery("input[name='lead_source']").each(function() {
1437            this.value = getCookie("traffic_source");
1438            console.log("Executing");
1439         });
1440
1441        }
1442        
1443        addTrafficSourceToForm() //initates the process
1444</script>
1444<script id="wp-emoji-settings" type="application/json">
1445{"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://cowanroofing.com/wp-includes/js/wp-emoji-release.min.js"}}
1446</script>
vendor: 1 bytes, line 1446
1446
1447<script type="lazyJs" data-w3-type="module" >
1448/*! This file is auto-generated */
1449var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,r){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))});
1450//# sourceURL=https://cowanroofing.com/wp-includes/js/wp-emoji-loader.min.js
1451</script>
1451
1452		<a id="pojo-a11y-skip-content" class="pojo-skip-link pojo-skip-content" tabindex="1" accesskey="s" href="#content">Skip to content</a>
1453				<nav id="pojo-a11y-toolbar" class="pojo-a11y-toolbar-right pojo-a11y-" aria-label="Accessibility Toolbar">
1454			<div class="pojo-a11y-toolbar-toggle">
1455				<a class="pojo-a11y-toolbar-link pojo-a11y-toolbar-toggle-link" href="javascript:void(0);" title="Accessibility Tools" role="button">
1456					<span class="pojo-sr-only sr-only">Open toolbar</span>
1457					<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" fill="currentColor" width="1em">
1458						<title>Accessibility Tools</title>
1459						<path d="M50 .8c5.7 0 10.4 4.7 10.4 10.4S55.7 21.6 50 21.6s-10.4-4.7-10.4-10.4S44.3.8 50 .8zM92.2 32l-21.9 2.3c-2.6.3-4.6 2.5-4.6 5.2V94c0 2.9-2.3 5.2-5.2 5.2H60c-2.7 0-4.9-2.1-5.2-4.7l-2.2-24.7c-.1-1.5-1.4-2.5-2.8-2.4-1.3.1-2.2 1.1-2.4 2.4l-2.2 24.7c-.2 2.7-2.5 4.7-5.2 4.7h-.5c-2.9 0-5.2-2.3-5.2-5.2V39.4c0-2.7-2-4.9-4.6-5.2L7.8 32c-2.6-.3-4.6-2.5-4.6-5.2v-.5c0-2.6 2.1-4.7 4.7-4.7h.5c19.3 1.8 33.2 2.8 41.7 2.8s22.4-.9 41.7-2.8c2.6-.2 4.9 1.6 5.2 4.3v1c-.1 2.6-2.1 4.8-4.8 5.1z"/>					</svg>
1460				</a>
1461			</div>
1462			<div class="pojo-a11y-toolbar-overlay">
1463				<div class="pojo-a11y-toolbar-inner">
1464					<p class="pojo-a11y-toolbar-title">Accessibility Tools</p>
1465
1466					<ul class="pojo-a11y-toolbar-items pojo-a11y-tools">
1467																			<li class="pojo-a11y-toolbar-item">
1468								<a href="#" class="pojo-a11y-toolbar-link pojo-a11y-btn-resize-font pojo-a11y-btn-resize-plus" data-action="resize-plus" data-action-group="resize" tabindex="-1" role="button">
1469									<span class="pojo-a11y-toolbar-icon"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="1em" viewBox="0 0 448 448"><title>Increase Text</title><path fill="currentColor" d="M256 200v16c0 4.25-3.75 8-8 8h-56v56c0 4.25-3.75 8-8 8h-16c-4.25 0-8-3.75-8-8v-56h-56c-4.25 0-8-3.75-8-8v-16c0-4.25 3.75-8 8-8h56v-56c0-4.25 3.75-8 8-8h16c4.25 0 8 3.75 8 8v56h56c4.25 0 8 3.75 8 8zM288 208c0-61.75-50.25-112-112-112s-112 50.25-112 112 50.25 112 112 112 112-50.25 112-112zM416 416c0 17.75-14.25 32-32 32-8.5 0-16.75-3.5-22.5-9.5l-85.75-85.5c-29.25 20.25-64.25 31-99.75 31-97.25 0-176-78.75-176-176s78.75-176 176-176 176 78.75 176 176c0 35.5-10.75 70.5-31 99.75l85.75 85.75c5.75 5.75 9.25 14 9.25 22.5z"></path></svg></span><span class="pojo-a11y-toolbar-text">Increase Text</span>								</a>
1470							</li>
1471
1472							<li class="pojo-a11y-toolbar-item">
1473								<a href="#" class="pojo-a11y-toolbar-link pojo-a11y-btn-resize-font pojo-a11y-btn-resize-minus" data-action="resize-minus" data-action-group="resize" tabindex="-1" role="button">
1474									<span class="pojo-a11y-toolbar-icon"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="1em" viewBox="0 0 448 448"><title>Decrease Text</title><path fill="currentColor" d="M256 200v16c0 4.25-3.75 8-8 8h-144c-4.25 0-8-3.75-8-8v-16c0-4.25 3.75-8 8-8h144c4.25 0 8 3.75 8 8zM288 208c0-61.75-50.25-112-112-112s-112 50.25-112 112 50.25 112 112 112 112-50.25 112-112zM416 416c0 17.75-14.25 32-32 32-8.5 0-16.75-3.5-22.5-9.5l-85.75-85.5c-29.25 20.25-64.25 31-99.75 31-97.25 0-176-78.75-176-176s78.75-176 176-176 176 78.75 176 176c0 35.5-10.75 70.5-31 99.75l85.75 85.75c5.75 5.75 9.25 14 9.25 22.5z"></path></svg></span><span class="pojo-a11y-toolbar-text">Decrease Text</span>								</a>
1475							</li>
1476						
1477													<li class="pojo-a11y-toolbar-item">
1478								<a href="#" class="pojo-a11y-toolbar-link pojo-a11y-btn-background-group pojo-a11y-btn-grayscale" data-action="grayscale" data-action-group="schema" tabindex="-1" role="button">
1479									<span class="pojo-a11y-toolbar-icon"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="1em" viewBox="0 0 448 448"><title>Grayscale</title><path fill="currentColor" d="M15.75 384h-15.75v-352h15.75v352zM31.5 383.75h-8v-351.75h8v351.75zM55 383.75h-7.75v-351.75h7.75v351.75zM94.25 383.75h-7.75v-351.75h7.75v351.75zM133.5 383.75h-15.5v-351.75h15.5v351.75zM165 383.75h-7.75v-351.75h7.75v351.75zM180.75 383.75h-7.75v-351.75h7.75v351.75zM196.5 383.75h-7.75v-351.75h7.75v351.75zM235.75 383.75h-15.75v-351.75h15.75v351.75zM275 383.75h-15.75v-351.75h15.75v351.75zM306.5 383.75h-15.75v-351.75h15.75v351.75zM338 383.75h-15.75v-351.75h15.75v351.75zM361.5 383.75h-15.75v-351.75h15.75v351.75zM408.75 383.75h-23.5v-351.75h23.5v351.75zM424.5 383.75h-8v-351.75h8v351.75zM448 384h-15.75v-352h15.75v352z"></path></svg></span><span class="pojo-a11y-toolbar-text">Grayscale</span>								</a>
1480							</li>
1481						
1482													<li class="pojo-a11y-toolbar-item">
1483								<a href="#" class="pojo-a11y-toolbar-link pojo-a11y-btn-background-group pojo-a11y-btn-high-contrast" data-action="high-contrast" data-action-group="schema" tabindex="-1" role="button">
1484									<span class="pojo-a11y-toolbar-icon"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="1em" viewBox="0 0 448 448"><title>High Contrast</title>
1484<path fill="currentColor" d="M192 360v-272c-75 0-136 61-136 136s61 136 136 136zM384 224c0 106-86 192-192 192s-192-86-192-192 86-192 192-192 192 86 192 192z"></path></svg></span><span class="pojo-a11y-toolbar-text">High Contrast</span>								</a>
1485							</li>
1486						
1487													<li class="pojo-a11y-toolbar-item">
1488								<a href="#" class="pojo-a11y-toolbar-link pojo-a11y-btn-background-group pojo-a11y-btn-negative-contrast" data-action="negative-contrast" data-action-group="schema" tabindex="-1" role="button">
1489
1490									<span class="pojo-a11y-toolbar-icon"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="1em" viewBox="0 0 448 448"><title>Negative Contrast</title><path fill="currentColor" d="M416 240c-23.75-36.75-56.25-68.25-95.25-88.25 10 17 15.25 36.5 15.25 56.25 0 61.75-50.25 112-112 112s-112-50.25-112-112c0-19.75 5.25-39.25 15.25-56.25-39 20-71.5 51.5-95.25 88.25 42.75 66 111.75 112 192 112s149.25-46 192-112zM236 144c0-6.5-5.5-12-12-12-41.75 0-76 34.25-76 76 0 6.5 5.5 12 12 12s12-5.5 12-12c0-28.5 23.5-52 52-52 6.5 0 12-5.5 12-12zM448 240c0 6.25-2 12-5 17.25-46 75.75-130.25 126.75-219 126.75s-173-51.25-219-126.75c-3-5.25-5-11-5-17.25s2-12 5-17.25c46-75.5 130.25-126.75 219-126.75s173 51.25 219 126.75c3 5.25 5 11 5 17.25z"></path></svg></span><span class="pojo-a11y-toolbar-text">Negative Contrast</span>								</a>
1491							</li>
1492						
1493													<li class="pojo-a11y-toolbar-item">
1494								<a href="#" class="pojo-a11y-toolbar-link pojo-a11y-btn-background-group pojo-a11y-btn-light-background" data-action="light-background" data-action-group="schema" tabindex="-1" role="button">
1495									<span class="pojo-a11y-toolbar-icon"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="1em" viewBox="0 0 448 448"><title>Light Background</title><path fill="currentColor" d="M184 144c0 4.25-3.75 8-8 8s-8-3.75-8-8c0-17.25-26.75-24-40-24-4.25 0-8-3.75-8-8s3.75-8 8-8c23.25 0 56 12.25 56 40zM224 144c0-50-50.75-80-96-80s-96 30-96 80c0 16 6.5 32.75 17 45 4.75 5.5 10.25 10.75 15.25 16.5 17.75 21.25 32.75 46.25 35.25 74.5h57c2.5-28.25 17.5-53.25 35.25-74.5 5-5.75 10.5-11 15.25-16.5 10.5-12.25 17-29 17-45zM256 144c0 25.75-8.5 48-25.75 67s-40 45.75-42 72.5c7.25 4.25 11.75 12.25 11.75 20.5 0 6-2.25 11.75-6.25 16 4 4.25 6.25 10 6.25 16 0 8.25-4.25 15.75-11.25 20.25 2 3.5 3.25 7.75 3.25 11.75 0 16.25-12.75 24-27.25 24-6.5 14.5-21 24-36.75 24s-30.25-9.5-36.75-24c-14.5 0-27.25-7.75-27.25-24 0-4 1.25-8.25 3.25-11.75-7-4.5-11.25-12-11.25-20.25 0-6 2.25-11.75 6.25-16-4-4.25-6.25-10-6.25-16 0-8.25 4.5-16.25 11.75-20.5-2-26.75-24.75-53.5-42-72.5s-25.75-41.25-25.75-67c0-68 64.75-112 128-112s128 44 128 112z"></path></svg></span><span class="pojo-a11y-toolbar-text">Light Background</span>								</a>
1496							</li>
1497						
1498													<li class="pojo-a11y-toolbar-item">
1499								<a href="#" class="pojo-a11y-toolbar-link pojo-a11y-btn-links-underline" data-action="links-underline" data-action-group="toggle" tabindex="-1" role="button">
1500									<span class="pojo-a11y-toolbar-icon"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="1em" viewBox="0 0 448 448"><title>Links Underline</title><path fill="currentColor" d="M364 304c0-6.5-2.5-12.5-7-17l-52-52c-4.5-4.5-10.75-7-17-7-7.25 0-13 2.75-18 8 8.25 8.25 18 15.25 18 28 0 13.25-10.75 24-24 24-12.75 0-19.75-9.75-28-18-5.25 5-8.25 10.75-8.25 18.25 0 6.25 2.5 12.5 7 17l51.5 51.75c4.5 4.5 10.75 6.75 17 6.75s12.5-2.25 17-6.5l36.75-36.5c4.5-4.5 7-10.5 7-16.75zM188.25 127.75c0-6.25-2.5-12.5-7-17l-51.5-51.75c-4.5-4.5-10.75-7-17-7s-12.5 2.5-17 6.75l-36.75 36.5c-4.5 4.5-7 10.5-7 16.75 0 6.5 2.5 12.5 7 17l52 52c4.5 4.5 10.75 6.75 17 6.75 7.25 0 13-2.5 18-7.75-8.25-8.25-18-15.25-18-28 0-13.25 10.75-24 24-24 12.75 0 19.75 9.75 28 18 5.25-5 8.25-10.75 8.25-18.25zM412 304c0 19-7.75 37.5-21.25 50.75l-36.75 36.5c-13.5 13.5-31.75 20.75-50.75 20.75-19.25 0-37.5-7.5-51-21.25l-51.5-51.75c-13.5-13.5-20.75-31.75-20.75-50.75 0-19.75 8-38.5 22-52.25l-22-22c-13.75 14-32.25 22-52 22-19 0-37.5-7.5-51-21l-52-52c-13.75-13.75-21-31.75-21-51 0-19 7.75-37.5 21.25-50.75l36.75-36.5c13.5-13.5 31.75-20.75 50.75-20.75 19.25 0 37.5 7.5 51 21.25l51.5 51.75c13.5 13.5 20.75 31.75 20.75 50.75 0 19.75-8 38.5-22 52.25l22 22c13.7
15005-14 32.25-22 52-22 19 0 37.5 7.5 51 21l52 52c13.75 13.75 21 31.75 21 51z"></path></svg></span><span class="pojo-a11y-toolbar-text">Links Underline</span>								</a>
1501							</li>
1502						
1503													<li class="pojo-a11y-toolbar-item">
1504								<a href="#" class="pojo-a11y-toolbar-link pojo-a11y-btn-readable-font" data-action="readable-font" data-action-group="toggle" tabindex="-1" role="button">
1505									<span class="pojo-a11y-toolbar-icon"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="1em" viewBox="0 0 448 448"><title>Readable Font</title><path fill="currentColor" d="M181.25 139.75l-42.5 112.5c24.75 0.25 49.5 1 74.25 1 4.75 0 9.5-0.25 14.25-0.5-13-38-28.25-76.75-46-113zM0 416l0.5-19.75c23.5-7.25 49-2.25 59.5-29.25l59.25-154 70-181h32c1 1.75 2 3.5 2.75 5.25l51.25 120c18.75 44.25 36 89 55 133 11.25 26 20 52.75 32.5 78.25 1.75 4 5.25 11.5 8.75 14.25 8.25 6.5 31.25 8 43 12.5 0.75 4.75 1.5 9.5 1.5 14.25 0 2.25-0.25 4.25-0.25 6.5-31.75 0-63.5-4-95.25-4-32.75 0-65.5 2.75-98.25 3.75 0-6.5 0.25-13 1-19.5l32.75-7c6.75-1.5 20-3.25 20-12.5 0-9-32.25-83.25-36.25-93.5l-112.5-0.5c-6.5 14.5-31.75 80-31.75 89.5 0 19.25 36.75 20 51 22 0.25 4.75 0.25 9.5 0.25 14.5 0 2.25-0.25 4.5-0.5 6.75-29 0-58.25-5-87.25-5-3.5 0-8.5 1.5-12 2-15.75 2.75-31.25 3.5-47 3.5z"></path></svg></span><span class="pojo-a11y-toolbar-text">Readable Font</span>								</a>
1506							</li>
1507																		<li class="pojo-a11y-toolbar-item">
1508							<a href="#" class="pojo-a11y-toolbar-link pojo-a11y-btn-reset" data-action="reset" tabindex="-1" role="button">
1509								<span class="pojo-a11y-toolbar-icon"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="1em" viewBox="0 0 448 448"><title>Reset</title><path fill="currentColor" d="M384 224c0 105.75-86.25 192-192 192-57.25 0-111.25-25.25-147.75-69.25-2.5-3.25-2.25-8 0.5-10.75l34.25-34.5c1.75-1.5 4-2.25 6.25-2.25 2.25 0.25 4.5 1.25 5.75 3 24.5 31.75 61.25 49.75 101 49.75 70.5 0 128-57.5 128-128s-57.5-128-128-128c-32.75 0-63.75 12.5-87 34.25l34.25 34.5c4.75 4.5 6 11.5 3.5 17.25-2.5 6-8.25 10-14.75 10h-112c-8.75 0-16-7.25-16-16v-112c0-6.5 4-12.25 10-14.75 5.75-2.5 12.75-1.25 17.25 3.5l32.5 32.25c35.25-33.25 83-53 132.25-53 105.75 0 192 86.25 192 192z"></path></svg></span>
1510								<span class="pojo-a11y-toolbar-text">Reset</span>
1511							</a>
1512						</li>
1513					</ul>
1514									</div>
1515			</div>
1516		</nav>
1517		
1517<script src="https://cowanroofing.com/wp-content/cache/w3-cache/js/558/wp-content/cache/w3-cache/js/custom_js_after_load.js" type="lazyJs"></script>
1517<script>if (window.innerWidth > 768) { 
1518    var stretchedSections = document.querySelectorAll('.elementor-section-stretched');
1519    var header = document.querySelector('.elementor-location-header');
1520
1521    if (stretchedSections.length > 0 && header) {
1522        var w = stretchedSections[0].offsetWidth;
1523        var f = header.offsetWidth;
1524        var l = (f - w) / 2;
1525
1526        stretchedSections.forEach(section => {
1527            section.style.left = '-' + l + "px";
1528            section.style.width = f + "px";
1529        });
1530    }
1531}</script>
1531<script>!function(){"use strict";let t=new class t{constructor(){this.lazyLoader=new class t{constructor(){this.observers=new Map,this.rootMargin=this.calculateRootMargin(),this.initObservers()}calculateRootMargin(){let t=window.w3LazyloadByPx||200;return`0px 0px ${t}px 0px`}initObservers(){["video","iframe","bgImg","img"].forEach(t=>{this.observers.set(t,new IntersectionObserver((e,a)=>this.handleIntersection(e,a,t),{rootMargin:this.rootMargin,threshold:.01,root:null}))}),this.initMutationObserver()}initMutationObserver(){this.mutationObserver=new MutationObserver(t=>{t.forEach(t=>{if("childList"===t.type&&t.addedNodes.forEach(t=>{if(t.nodeType===Node.ELEMENT_NODE){this.checkAndObserveElement(t);let e=t.querySelectorAll("*");e.forEach(t=>this.checkAndObserveElement(t))}}),"attributes"===t.type){let e=t.target;e.nodeType===Node.ELEMENT_NODE&&this.checkAndObserveElement(e)}})}),this.mutationObserver.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["data-class","data-BgLz","data-src","data-srcset"]})}checkAndObserveElement(t){return("1"===t.getAttribute("data-BgLz")&&this.observers.get("bgImg").observe(t),("VIDEO"===t.tagName||"AUDIO"===t.tagName)&&"LazyLoad"===t.getAttribute("data-class"))?this.observers.get("video").observe(t):"IFRAME"===t.tagName&&"LazyLoad"===t.getAttribute("data-class")?this.observers.get("iframe").observe(t):"IMG"===t.tagName&&"LazyLoad"===t.getAttribute("data-class")?this.observers.get("img").observe(t):void 0}handleIntersection(t,e,a){t.forEach(t=>{t.isIntersecting&&(e.unobserve(t.target),requestAnimationFrame(()=>{this.loadResource(t.target,a)}))})}loadResource(t,e){switch(e){case"img":this.loadImg(t);break;case"video":this.loadVideo(t);break;case"iframe":this.loadIframe(t);break;case"bgImg":this.loadBackgroundImage(t)}}loadVideo(t){let e=t.querySelectorAll("source");e.length>0?(e.forEach(t=>{(!t.src||-1!=t.src.indexOf("blank.mp4"))&&(t.dataset.src&&(t.src=t.dataset.src,t.removeAttribute("data-src")),t.dataset.srcset&&(t.srcset=t.dataset.srcset,t.removeAttribute("data-srcset")))}),t.src&&-1!=t.src.indexOf("blank.mp4")&&(t.src=e[0].src),t.load()):t.dataset.src&&(t.src=t.dataset.src,t.removeAttribute("data-src"),t.load()),t.removeAttribute("data-class"),t.dataset.poster&&(t.poster=t.dataset.poster,t.removeAttribute("data-poster")),t.hasAttribute("autoplay")&&t.play().catch(t=>console.warn("Autoplay failed:",t))}loadImg(t){let e=t.dataset.src||t.src;e&&(t.src=e,t.setAttribute("fetchpriority","high"),t.removeAttribute("data-src")),t.removeAttribute("data-class"),t.dataset.srcset&&(t.srcset=t.dataset.srcset,t.removeAttribute("data-srcset"))}loadIframe(t){let e=t.dataset.src||t.src,a=t.getAttribute("data-onload");a&&(t.setAttribute("onload",a),t.removeAttribute("data-onload")),e&&(t.src=e,t.removeAttribute("data-src")),t.removeAttribute("data-class")}loadBackgroundImage(t){t.removeAttribute("data-BgLz")}},this.initialized=!1}init(){if(this.initialized)return;setTimeout(()=>this.startLazyLoading(),10);let t=setInterval(()=>{-1!=window.w3Html.class.indexOf("jsload")&&(clearInterval(t),this.startLazyLoadingVideos())},500);this.initialized=!0}w3CallFunc(t,e,a){if(-1==window.w3Html.class.indexOf("jsload"))return setTimeout(()=>this.w3CallFunc(t,e,a),1e3);let s=0;!function r(){var i=new XMLHttpRequest;i.open("GET",t,!0),i.onreadystatechange=function(){4===i.readyState&&200!==i.status&&s<e&&(s++,setTimeout(r,a))},i.send()}()}startLazyLoadingVideos(){setTimeout(()=>{this.loadVideos(),this.loadIframes()},100),w3Call&&w3CallUrl&&this.w3CallFunc(w3CallUrl,2,3e4)}startLazyLoading(){setTimeout(()=>{this.loadImgs(),this.loadBackgrounds()},100)}loadImgs(){let t=document.querySelectorAll("img[data-class='LazyLoad']");this.observeElements(t,"img")}loadVideos(){let t=document.querySelectorAll("video[data-class='LazyLoad'], audio[data-class='LazyLoad']");this.observeElements(t,"video")}loadIframes(){let t=document.querySelectorAll("iframe[data-class='LazyLoad']");this.observeElements(t,"iframe")}loadBackgrounds(){let t=document.querySelectorAll('iframe[data-BgLz="1"], div[data-BgLz="1"], section[data-BgLz="1"]');this.observeElements(t,"bgImg")}observeElements(t,e){let a=this.lazyLoader.observers.get(e);a&&t.forEach(t=>{a.unobserve(t),a.observe(t)})}};t.init()}();</script>
1531</body></html>
1532<!--
1533	generated 258 seconds ago
1534	generated in 1.071 seconds
1535	served from batcache in 0.003 seconds
1536	expires in 42 seconds
1537-->

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.