Help
RSS
API
Feed
Maltego
Contact
Domain > www.abbott-simpson.com
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2017-04-10
52.7.227.102
(
ClassC
)
2017-04-11
52.200.106.112
(
ClassC
)
2026-03-01
104.21.90.107
(
ClassC
)
Port 80
HTTP/1.1 200 OKDate: Sun, 01 Mar 2026 01:55:17 GMTContent-Type: text/htmlTransfer-Encoding: chunkedConnection: keep-aliveServer: cloudflareLast-Modified: Sat, 28 Feb 2026 15:00:20 GMTNel: {report_to:cf-nel,success_fraction:0.0,max_age:604800}vary: accept-encodingReport-To: {group:cf-nel,max_age:604800,endpoints:{url:https://a.nel.cloudflare.com/report/v4?svH0qE1hEgEuKqI%2FSENN48pQMgwwmInVFWADZ5irxEICxo6JHs8A0vI%2B9TomMqVSP9jgj9bm0TMqNdSHN7Zzmc4imkf2D%2B4bj8b9beiDefS09UTNYWNU%3D}}cf-cache-status: DYNAMICCF-RAY: 9d5489de6dbdfc83-PDXalt-svc: h3:443; ma86400 !DOCTYPE html>html langen>head>script> if (window.location.pathname!/) window.location/;/script> meta charsetUTF-8> meta nameviewport contentwidthdevice-width, initial-scale1.0> title>Premium Roofing - Professional Installation & Replacement Services/title> meta namedescription contentProfessional roofing installation and replacement services for residential properties. Quality workmanship, durable materials, and expert contractors.> link relcanonical hrefhttps://abbott-simpson.com> meta propertyog:title contentPremium Roofing - Professional Installation & Replacement> meta propertyog:description contentProfessional roofing services specializing in new installations and complete roof replacements for residential properties.> meta propertyog:type contentwebsite> meta nametwitter:card contentsummary_large_image> meta nametwitter:title contentPremium Roofing Services> meta nametwitter:description contentQuality roofing installation and replacement for your home>style>a,hr{color:inherit}progress,sub,sup{vertical-align:baseline}blockquote,body,dd,dl,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,menu,ol,p,pre,ul{margin:0}.p-0,dialog,fieldset,legend,menu,ol,ul{padding:0}.dark,:root{--accent:25 95% 53%;--accent-foreground:0 0% 100%;--sidebar-ring:217.2 91.2% 59.8%}.inset-0,.inset-x-0{left:0;right:0}.inset-0,.inset-y-0{top:0;bottom:0}.border-collapse,table{border-collapse:collapse}.from-hero,.from-hero\/95{--tw-gradient-to:hsl(215 28% 17% / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.transition,.transition-\left\,right\,width\,.transition-\margin\,opa\,.transition-\width\,height\,padding\,.transition-\width\,.transition-all,.transition-colors,.transition-opacity,.transition-transform{transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-in-out,.transition,.transition-\left\,right\,width\,.transition-\margin\,opa\,.transition-\width\,height\,padding\,.transition-\width\,.transition-all,.transition-colors,.transition-opacity,.transition-transform{transition-timing-function:cubic-bezier(.4,0,.2,1)}.sr-only,.whitespace-nowrap{white-space:nowrap}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: ;box-sizing:border-box;border:0 solid #e5e7eb}::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.-translate-x-1\/2,.after\:-translate-x-1\/2:after,.translate-x-\-50\%\{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}:after,:before{--tw-content:}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{line-height:inherit;background-color:hsl(var(--background));color:hsl(var(--foreground))}hr{height:0;border-top-width:1px}abbr:where(title){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where(typebutton),input:where(typereset),input:where(typesubmit){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}.data-\state\active\\:shadow-smdata-stateactive,.group.toaster .group-\\.toaster\\:shadow-lg,.groupdata-variantfloating .group-data-\variant\floating\\:shadow,.shadow-\0_0_0_1px_hsl\(var\(--sidebar-border\)\)\,.shadow-lg,.shadow-md,.shadow-none,.shadow-sm,.shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}typesearch{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}menu,ol,ul{list-style:none}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}.cursor-pointer,rolebutton,button{cursor:pointer}.cursor-default,:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}hidden:where(:not(hiddenuntil-found)){display:none}:root{--background:0 0% 100%;--foreground:215 25% 15%;--card:0 0% 100%;--card-foreground:215 25% 15%;--popover:0 0% 100%;--popover-foreground:215 25% 15%;--primary:215 28% 17%;--primary-foreground:0 0% 100%;--secondary:210 20% 92%;--secondary-foreground:215 25% 15%;--muted:210 20% 95%;--muted-foreground:215 15% 45%;--destructive:0 84.2% 60.2%;--destructive-foreground:0 0% 100%;--border:215 20% 88%;--input:215 20% 88%;--ring:215 28% 17%;--radius:.5rem;--hero-gradient:linear-gradient(135deg, hsl(215 28% 17%), hsl(215 25% 25%));--cta-shadow:0 4px 20px hsla(25 95% 53% / .3);--transition-smooth:all .3s cubic-bezier(.4, 0, .2, 1);--sidebar-background:0 0% 98%;--sidebar-foreground:240 5.3% 26.1%;--sidebar-primary:240 5.9% 10%;--sidebar-primary-foreground:0 0% 98%;--sidebar-accent:240 4.8% 95.9%;--sidebar-accent-foreground:240 5.9% 10%;--sidebar-border:220 13% 91%}.dark{--background:215 25% 12%;--foreground:0 0% 98%;--card:215 25% 15%;--card-foreground:0 0% 98%;--popover:215 25% 15%;--popover-foreground:0 0% 98%;--primary:0 0% 98%;--primary-foreground:215 28% 17%;--secondary:215 25% 20%;--secondary-foreground:0 0% 98%;--muted:215 25% 20%;--muted-foreground:215 15% 65%;--destructive:0 62.8% 30.6%;--destructive-foreground:0 0% 98%;--border:215 25% 20%;--input:215 25% 20%;--ring:0 0% 83.9%;--sidebar-background:240 5.9% 10%;--sidebar-foreground:240 4.8% 95.9%;--sidebar-primary:224.3 76.3% 48%;--sidebar-primary-foreground:0 0% 100%;--sidebar-accent:240 3.7% 15.9%;--sidebar-accent-foreground:240 4.8% 95.9%;--sidebar-border:240 3.7% 15.9%}*,.border-border,.group.toaster .group-\\.toaster\\:border-border{border-color:hsl(var(--border))}.container{width:100%;margin-right:auto;margin-left:auto;padding-right:2rem;padding-left:2rem}@media (min-width:1400px){.container{max-width:1400px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border-width:0}.\\&_svg\\:pointer-events-none svg,.aria-disabled\:pointer-events-nonearia-disabledtrue,.data-\disabled\true\\:pointer-events-nonedata-disabledtrue,.data-\disabled\\:pointer-events-nonedata-disabled,.disabled\:pointer-events-none:disabled,.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.invisible{visibility:hidden}.fixed{position:fixed}.\\&\>svg\\:absolute>svg,.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.-bottom-12{bottom:-3rem}.-left-12{left:-3rem}.-right-12{right:-3rem}.-top-12{top:-3rem}.bottom-0{bottom:0}.groupdata-sideright .group-data-\side\right\\:left-0,.left-0{left:0}.left-1{left:.25rem}.left-1\/2,.left-\50\%\{left:50%}.left-2{left:.5rem}.right-0{right:0}.right-1{right:.25rem}.right-2{right:.5rem}.right-3{right:.75rem}.right-4{right:1rem}.top-0{top:0}.peer\/menu-buttondata-sizedefault~.peer-data-\size\default\\/menu-button\:top-1\.5,.top-1\.5{top:.375rem}.top-1\/2,.top-\50\%\{top:50%}.top-2{top:.5rem}.top-3\.5{top:.875rem}.\\&\>svg\\:top-4>svg,.top-4{top:1rem}.top-\1px\{top:1px}.top-\60\%\{top:60%}.top-full{top:100%}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.z-\100\{z-index:100}.z-\1\{z-index:1}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-3\.5{margin-left:.875rem;margin-right:.875rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0\.5{margin-top:.125rem;margin-bottom:.125rem}.mb-1,.my-1{margin-bottom:.25rem}.my-1{margin-top:.25rem}.-ml-4{margin-left:-1rem}.-mt-4{margin-top:-1rem}.mb-12{margin-bottom:3rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-24{margin-top:6rem}.mt-4{margin-top:1rem}.mt-auto{margin-top:auto}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.\\&\>button\\:hidden>button,.groupdata-collapsibleicon .group-data-\collapsible\icon\\:hidden,.hidden{display:none}.aspect-square{aspect-ratio:1/1}.aspect-video{aspect-ratio:16/9}.\\&\>svg\\:size-4>svg,.\\&_svg\\:size-4 svg,.size-4{width:1rem;height:1rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.\\&_\cmdk-input\\\:h-12 cmdk-input,.h-12{height:3rem}.h-16{height:4rem}.h-2{height:.5rem}.\\&\>svg\\:h-2\.5>svg,.h-2\.5{height:.625rem}.\\&\>svg\\:h-3>svg,.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.\\&_\cmdk-input-wrapper\_svg\\:h-5 cmdk-input-wrapper svg,.\\&_\cmdk-item\_svg\\:h-5 cmdk-item svg,.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.data-\panel-group-direction\vertical\\:h-pxdata-panel-group-directionvertical,.h-\1px\,.h-px{height:1px}.h-\600px\{height:600px}.h-\var\(--radix-navigation-menu-viewport-height\)\{height:var(--radix-navigation-menu-viewport-height)}.h-\var\(--radix-select-trigger-height\)\{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-full{height:100%}.h-svh{height:100svh}.max-h-96{max-height:24rem}.max-h-\300px\{max-height:300px}.max-h-screen{max-height:100vh}.min-h-0{min-height:0}.min-h-\80px\{min-height:80px}.min-h-screen{min-height:100vh}.min-h-svh{min-height:100svh}.groupdata-collapsibleoffcanvas .group-data-\collapsible\offcanvas\\:w-0,.w-0{width:0}.w-1{width:.25rem}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-16{width:4rem}.w-2{width:.5rem}.\\&\>svg\\:w-2\.5>svg,.w-2\.5{width:.625rem}.\\&\>svg\\:w-3>svg,.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-4{width:1rem}.\\&_\cmdk-input-wrapper\_svg\\:w-5 cmdk-input-wrapper svg,.\\&_\cmdk-item\_svg\\:w-5 cmdk-item svg,.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\--sidebar-width\{width:var(--sidebar-width)}.w-\100px\{width:100px}.w-\1px\,.w-px{width:1px}.w-auto{width:auto}.data-\panel-group-direction\vertical\\:w-fulldata-panel-group-directionvertical,.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.min-w-0{min-width:0}.min-w-5{min-width:1.25rem}.min-w-\12rem\{min-width:12rem}.min-w-\8rem\{min-width:8rem}.min-w-\var\(--radix-select-trigger-width\)\{min-width:var(--radix-select-trigger-width)}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-\--skeleton-width\{max-width:var(--skeleton-width)}.max-w-lg{max-width:32rem}.max-w-max{max-width:-moz-max-content;max-width:max-content}.flex-1{flex:1 1 0%}.\\&\>svg\\:shrink-0>svg,.\\&_svg\\:shrink-0 svg,.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-full{flex-basis:100%}.caption-bottom{caption-side:bottom}.-translate-x-px{--tw-translate-x:-1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2,.translate-y-\-50\%\{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-px{--tw-translate-x:1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-45{--tw-rotate:45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\\&\data-panel-group-direction\vertical\\>div\\:rotate-90data-panel-group-directionvertical>div,.rotate-90{--tw-rotate:90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.list-none{list-style-type:none}.flex-row{flex-direction:row}.data-\panel-group-direction\vertical\\:flex-coldata-panel-group-directionvertical,.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-x-1>:not(hidden)~:not(hidden){--tw-space-x-reverse:0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-2>:not(hidden)~:not(hidden){--tw-space-x-reverse:0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-3>:not(hidden)~:not(hidden){--tw-space-x-reverse:0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not(hidden)~:not(hidden){--tw-space-x-reverse:0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-6>:not(hidden)~:not(hidden){--tw-space-x-reverse:0;margin-right:calc(1.5rem * var(--tw-space-x-reverse));margin-left:calc(1.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-1>:not(hidden)~:not(hidden){--tw-space-y-reverse:0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not(hidden)~:not(hidden){--tw-space-y-reverse:0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-12>:not(hidden)~:not(hidden){--tw-space-y-reverse:0;margin-top:calc(3rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(3rem * var(--tw-space-y-reverse))}.space-y-2>:not(hidden)~:not(hidden){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-4>:not(hidden)~:not(hidden){--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not(hidden)~:not(hidden){--tw-space-y-reverse:0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not(hidden)~:not(hidden){--tw-space-y-reverse:0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.groupdata-collapsibleicon .group-data-\collapsible\icon\\:overflow-hidden,.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.break-words{overflow-wrap:break-word}.rounded-\2px\{border-radius:2px}.rounded-\inherit\{border-radius:inherit}.rounded-full{border-radius:9999px}.groupdata-variantfloating .group-data-\variant\floating\\:rounded-lg,.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-t-\10px\{border-top-left-radius:10px;border-top-right-radius:10px}.rounded-tl-sm{border-top-left-radius:calc(var(--radius) - 4px)}.border,.groupdata-variantfloating .group-data-\variant\floating\\:border{border-width:1px}.border-2{border-width:2px}.border-\1\.5px\{border-width:1.5px}.\\&_tr\\:border-b tr,.border-b,.border-y{border-bottom-width:1px}.border-t,.border-y{border-top-width:1px}.border-l,.first\:border-l:first-child,.groupdata-sideright .group-data-\side\right\\:border-l{border-left-width:1px}.border-r,.groupdata-sideleft .group-data-\side\left\\:border-r{border-right-width:1px}.border-dashed{border-style:dashed}.border-\--color-border\{border-color:var(--color-border)}.border-accent\/20{border-color:hsl(var(--accent) / .2)}.border-border\/50{border-color:hsl(var(--border) / .5)}.border-destructive{border-color:hsl(var(--destructive))}.border-destructive\/50{border-color:hsl(var(--destructive) / .5)}.border-input{border-color:hsl(var(--input))}.border-primary{border-color:hsl(var(--primary))}.border-sidebar-border,.groupdata-variantfloating .group-data-\variant\floating\\:border-sidebar-border{border-color:hsl(var(--sidebar-border))}.border-transparent{border-color:transparent}.border-l-transparent{border-left-color:transparent}.border-t-transparent{border-top-color:transparent}.bg-\--color-bg\{background-color:var(--color-bg)}.aria-selected\:bg-accentaria-selectedtrue,.bg-accent,.data-\selected\\true\\\:bg-accentdata-selectedtrue,.data-\state\on\\:bg-accentdata-stateon,.data-\state\open\\:bg-accentdata-stateopen,.focus\:bg-accent:focus,.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.bg-accent\/10{background-color:hsl(var(--accent) / .1)}.bg-accent\/5{background-color:hsl(var(--accent) / .05)}.bg-background,.data-\state\active\\:bg-backgrounddata-stateactive,.group.toaster .group-\\.toaster\\:bg-background{background-color:hsl(var(--background))}.bg-background\/95{background-color:hsl(var(--background) / .95)}.bg-black\/80{background-color:#000c}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-destructive,.group.destructive .group-\\.destructive\\:hover\:bg-destructive:hover{background-color:hsl(var(--destructive))}.bg-foreground{background-color:hsl(var(--foreground))}.bg-muted,.data-\state\selected\\:bg-muteddata-stateselected,.group.toast .group-\\.toast\\:bg-muted,.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.bg-muted\/50,.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.bg-popover{background-color:hsl(var(--popover))}.bg-primary,.data-\state\checked\\:bg-primarydata-statechecked,.focus\:bg-primary:focus,.group.toast .group-\\.toast\\:bg-primary,.hover\:bg-primary:hover{background-color:hsl(var(--primary))}.bg-secondary,.data-\state\open\\:bg-secondarydata-stateopen,.hover\:bg-secondary:hover{background-color:hsl(var(--secondary))}.bg-sidebar{background-color:hsl(var(--sidebar-background))}.bg-sidebar-border{background-color:hsl(var(--sidebar-border))}.bg-transparent{background-color:transparent}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-hero{--tw-gradient-from:hsl(215 28% 17%) var(--tw-gradient-from-position)}.from-hero\/95{--tw-gradient-from:hsl(215 28% 17% / .95) var(--tw-gradient-from-position)}.to-hero-light{--tw-gradient-to:hsl(215 25% 25%) var(--tw-gradient-to-position)}.to-hero\/70{--tw-gradient-to:hsl(215 28% 17% / .7) var(--tw-gradient-to-position)}.bg-cover{background-size:cover}.bg-center{background-position:center}.fill-current{fill:currentColor}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-\1px\{padding:1px}.px-1{padding-left:.25rem;padding-right:.25rem}.\\&_\cmdk-group-heading\\\:px-2 cmdk-group-heading,.\\&_\cmdk-group\\\:px-2 cmdk-group,.\\&_\cmdk-item\\\:px-2 cmdk-item,.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.\\&_\cmdk-group-heading\\\:py-1\.5 cmdk-group-heading,.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.\\&_\cmdk-item\\\:py-3 cmdk-item,.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-6{padding-bottom:1.5rem}.pl-2\.5{padding-left:.625rem}.pl-4{padding-left:1rem}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.pr-2\.5{padding-right:.625rem}.pr-8{padding-right:2rem}.\\&_\cmdk-group\\:not\(\hidden\\)_\~\cmdk-group\\\:pt-0 cmdk-group:not(hidden)~cmdk-group,.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\0\.8rem\{font-size:.8rem}.text-\10px\{font-size:10px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.\\&_\cmdk-group-heading\\\:text-xs cmdk-group-heading,.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.\\&_\cmdk-group-heading\\\:font-medium cmdk-group-heading,.data-\active\true\\:font-mediumdata-activetrue,.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-none{line-height:1}.\\&_p\\:leading-relaxed p,.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.tracking-widest{letter-spacing:.1em}.hover\:text-accent:hover,.text-accent{color:hsl(var(--accent))}.aria-selected\:text-accent-foregroundaria-selectedtrue,.data-\selected\true\\:text-accent-foregrounddata-selectedtrue,.data-\state\on\\:text-accent-foregrounddata-stateon,.data-\state\open\\:text-accent-foregrounddata-stateopen,.focus\:text-accent-foreground:focus,.hover\:text-accent-foreground:hover,.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-current{color:currentColor}.\\&\>svg\\:text-destructive>svg,.text-destructive{color:hsl(var(--destructive))}.group.destructive .group-\\.destructive\\:hover\:text-destructive-foreground:hover,.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-foreground{color:hsl(var(--foreground))}.text-foreground\/50{color:hsl(var(--foreground) / .5)}.text-foreground\/80{color:hsl(var(--foreground) / .8)}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/50{color:hsl(var(--muted-foreground) / .5)}.text-popover-foreground{color:hsl(var(--popover-foreground))}.hover\:text-primary:hover,.text-primary{color:hsl(var(--primary))}.data-\state\checked\\:text-primary-foregrounddata-statechecked,.focus\:text-primary-foreground:focus,.group.toast .group-\\.toast\\:text-primary-foreground,.hover\:text-primary-foreground:hover,.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-primary-foreground\/90{color:hsl(var(--primary-foreground) / .9)}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-sidebar-foreground{color:hsl(var(--sidebar-foreground))}.text-sidebar-foreground\/70{color:hsl(var(--sidebar-foreground) / .7)}.hover\:underline:hover,.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.groupdata-collapsibleicon .group-data-\collapsible\icon\\:opacity-0,.opacity-0{opacity:0}.disabled\:opacity-50:disabled,.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70,.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.aria-selected\:opacity-100aria-selectedtrue,.data-\state\open\\:opacity-100data-stateopen,.focus\:opacity-100:focus,.group:hover .group-hover\:opacity-100,.group\/menu-item:hover .group-hover\/menu-item\:opacity-100,.hover\:opacity-100:hover{opacity:1}.opacity-90{opacity:.9}.shadow-\0_0_0_1px_hsl\(var\(--sidebar-border\)\)\{--tw-shadow:0 0 0 1px hsl(var(--sidebar-border));--tw-shadow-colored:0 0 0 1px var(--tw-shadow-color)}.group.toaster .group-\\.toaster\\:shadow-lg,.shadow-lg{--tw-shadow:0 10px 15px -3px rgb(0 0 0 / .1),0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-md{--tw-shadow:0 4px 6px -1px rgb(0 0 0 / .1),0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}.data-\state\active\\:shadow-smdata-stateactive,.shadow-sm{--tw-shadow:0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgb(0 0 0 / .1),0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}.focus\:ring-2:focus,.ring-0,.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.shadow-\var\(--cta-shadow\)\{--tw-shadow-color:var(--cta-shadow);--tw-shadow:var(--tw-shadow-colored)}.focus\:outline-none:focus,.outline-none{outline:transparent solid 2px;outline-offset:2px}.outline{outline-style:solid}.ring-0{--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-2:focus,.ring-2{--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-ring:focus,.ring-ring{--tw-ring-color:hsl(var(--ring))}.ring-sidebar-ring{--tw-ring-color:hsl(var(--sidebar-ring))}.ring-offset-background{--tw-ring-offset-color:hsl(var(--background))}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter}.transition-\left\,right\,width\{transition-property:left,right,width}.transition-\margin\,opa\{transition-property:margin,opa}.transition-\width\,height\,padding\{transition-property:width,height,padding}.transition-\width\{transition-property:width}.transition-all{transition-property:all}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke}.transition-opacity{transition-property:opacity}.transition-transform{transition-property:transform}.duration-1000{transition-duration:1s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{transition-timing-function:linear;animation-timing-function:linear}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.animate-in,.data-\motion\^\from-\\:animate-indata-motion^from-,.data-\state\open\\:animate-indata-stateopen,.data-\state\visible\\:animate-indata-statevisible{animation-name:enter;animation-duration:.15s;--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial}.data-\motion\^\from-\\:fade-indata-motion^from-,.data-\state\open\\:fade-in-0data-stateopen,.data-\state\visible\\:fade-indata-statevisible,.fade-in-0{--tw-enter-opacity:0}.fade-in-80{--tw-enter-opacity:.8}.data-\state\open\\:zoom-in-95data-stateopen,.zoom-in-95{--tw-enter-scale:.95}.duration-1000{animation-duration:1s}.duration-200{transition-duration:.2s;animation-duration:.2s}.file\:border-0::file-selector-button{border-width:0}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:-inset-2:after{content:var(--tw-content);top:-.5rem;right:-.5rem;bottom:-.5rem;left:-.5rem}.after\:inset-y-0:after{content:var(--tw-content);top:0;bottom:0}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:w-1:after{content:var(--tw-content);width:.25rem}.after\:w-\2px\:after{content:var(--tw-content);width:2px}.after\:-translate-x-1\/2:after{content:var(--tw-content)}.first\:rounded-l-md:first-child{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.last\:rounded-r-md:last-child{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.focus-within\:relative:focus-within{position:relative}.focus-within\:z-20:focus-within{z-index:20}.hover\:bg-accent\/90:hover{background-color:hsl(var(--accent) / .9)}.hover\:bg-destructive\/80:hover{background-color:hsl(var(--destructive) / .8)}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-primary\/80:hover{background-color:hsl(var(--primary) / .8)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.active\:bg-sidebar-accent:active,.data-\active\true\\:bg-sidebar-accentdata-activetrue,.hover\:bg-sidebar-accent:hover{background-color:hsl(var(--sidebar-accent))}.\\&\>svg\\:text-foreground>svg,.data-\state\active\\:text-foregrounddata-stateactive,.group.toaster .group-\\.toaster\\:text-foreground,.hover\:text-foreground:hover{color:hsl(var(--foreground))}.\\&\>svg\\:text-muted-foreground>svg,.\\&_\cmdk-group-heading\\\:text-muted-foreground cmdk-group-heading,.aria-selected\:text-muted-foregroundaria-selectedtrue,.data-\state\open\\:text-muted-foregrounddata-stateopen,.group.toast .group-\\.toast\\:text-muted-foreground,.hover\:text-muted-foreground:hover{color:hsl(var(--muted-foreground))}.hover\:text-primary\/90:hover{color:hsl(var(--primary) / .9)}.active\:text-sidebar-accent-foreground:active,.data-\active\true\\:text-sidebar-accent-foregrounddata-activetrue,.hover\:text-sidebar-accent-foreground:hover,.peer\/menu-button:hover~.peer-hover\/menu-button\:text-sidebar-accent-foreground{color:hsl(var(--sidebar-accent-foreground))}.hover\:no-underline:hover{text-decoration-line:none}.hover\:shadow-\0_0_0_1px_hsl\(var\(--sidebar-accent\)\)\: hover{--tw-shadow:0 0 0 1px hsl(var(--sidebar-accent));--tw-shadow-colored:0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:after\:bg-sidebar-border:hover:after{content:var(--tw-content);background-color:hsl(var(--sidebar-border))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\:outline-none:focus-visible{outline:transparent solid 2px;outline-offset:2px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.focus-visible\:ring-sidebar-ring:focus-visible{--tw-ring-color:hsl(var(--sidebar-ring))}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width:1px}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color:hsl(var(--background))}.disabled\:cursor-not-allowed:disabled,.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.group\/menu-item:focus-within .group-focus-within\/menu-item\:opacity-100{opacity:1}.group.destructive .group-\\.destructive\\:border-muted\/40{border-color:hsl(var(--muted) / .4)}.group.destructive .group-\\.destructive\\:text-red-300{--tw-text-opacity:1;color:rgb(252 165 165 / var(--tw-text-opacity,1))}.group.destructive .group-\\.destructive\\:hover\:border-destructive\/30:hover{border-color:hsl(var(--destructive) / .3)}.group.destructive .group-\\.destructive\\:hover\:text-red-50:hover{--tw-text-opacity:1;color:rgb(254 242 242 / var(--tw-text-opacity,1))}.group.destructive .group-\\.destructive\\:focus\:ring-destructive:focus{--tw-ring-color:hsl(var(--destructive))}.group.destructive .group-\\.destructive\\:focus\:ring-red-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(248 113 113 / var(--tw-ring-opacity, 1))}.group.destructive .group-\\.destructive\\:focus\:ring-offset-red-600:focus{--tw-ring-offset-color:#dc2626}.has-\\data-variant\inset\\\:bg-sidebar:has(data-variantinset){background-color:hsl(var(--sidebar-background))}.has-\\:disabled\\:opacity-50:has(:disabled){opacity:.5}.group\/menu-item:has(data-sidebarmenu-action) .group-has-\\data-sidebar\menu-action\\\/menu-item\:pr-8{padding-right:2rem}.aria-disabled\:opacity-50aria-disabledtrue,.data-\disabled\true\\:opacity-50data-disabledtrue,.data-\disabled\\:opacity-50data-disabled{opacity:.5}.aria-selected\:bg-accent\/50aria-selectedtrue,.data-\active\\:bg-accent\/50data-active,.data-\state\open\\:bg-accent\/50data-stateopen{background-color:hsl(var(--accent) / .5)}.aria-selected\:opacity-30aria-selectedtrue{opacity:.3}.data-\side\bottom\\:translate-y-1data-sidebottom{--tw-translate-y:.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\side\left\\:-translate-x-1data-sideleft{--tw-translate-x:-.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\side\right\\:translate-x-1data-sideright{--tw-translate-x:.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\side\top\\:-translate-y-1data-sidetop{--tw-translate-y:-.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\state\checked\\:translate-x-5data-statechecked{--tw-translate-x:1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\panel-group-direction\vertical\\:after\:translate-x-0data-panel-group-directionvertical:after,.data-\state\unchecked\\:translate-x-0data-stateunchecked,.data-\swipe\cancel\\:translate-x-0data-swipecancel,.groupdata-collapsibleoffcanvas .group-data-\collapsible\offcanvas\\:translate-x-0{--tw-translate-x:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\swipe\end\\:translate-x-\var\(--radix-toast-swipe-end-x\)\data-swipeend{--tw-translate-x:var(--radix-toast-swipe-end-x);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\swipe\move\\:translate-x-\var\(--radix-toast-swipe-move-x\)\data-swipemove{--tw-translate-x:var(--radix-toast-swipe-move-x);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{height:0}}.data-\state\closed\\:animate-accordion-updata-stateclosed{animation:.2s ease-out accordion-up}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height)}}.data-\state\open\\:animate-accordion-downdata-stateopen{animation:.2s ease-out accordion-down}.data-\state\unchecked\\:bg-inputdata-stateunchecked{background-color:hsl(var(--input))}.data-\swipe\move\\:transition-nonedata-swipemove{transition-property:none}.data-\state\closed\\:duration-300data-stateclosed{transition-duration:.3s}.data-\motion\^\to-\\:animate-outdata-motion^to-,.data-\state\closed\\:animate-outdata-stateclosed,.data-\state\hidden\\:animate-outdata-statehidden,.data-\swipe\end\\:animate-outdata-swipeend{animation-name:exit;animation-duration:.15s;--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial}.data-\motion\^\to-\\:fade-outdata-motion^to-,.data-\state\closed\\:fade-out-0data-stateclosed,.data-\state\hidden\\:fade-outdata-statehidden{--tw-exit-opacity:0}.data-\state\closed\\:fade-out-80data-stateclosed{--tw-exit-opacity:.8}.data-\state\closed\\:zoom-out-95data-stateclosed{--tw-exit-scale:.95}.data-\state\open\\:zoom-in-90data-stateopen{--tw-enter-scale:.9}.data-\motion\from-end\\:slide-in-from-right-52data-motionfrom-end{--tw-enter-translate-x:13rem}.data-\motion\from-start\\:slide-in-from-left-52data-motionfrom-start{--tw-enter-translate-x:-13rem}.data-\motion\to-end\\:slide-out-to-right-52data-motionto-end{--tw-exit-translate-x:13rem}.data-\motion\to-start\\:slide-out-to-left-52data-motionto-start{--tw-exit-translate-x:-13rem}.data-\side\bottom\\:slide-in-from-top-2data-sidebottom{--tw-enter-translate-y:-.5rem}.data-\side\left\\:slide-in-from-right-2data-sideleft{--tw-enter-translate-x:.5rem}.data-\side\right\\:slide-in-from-left-2data-sideright{--tw-enter-translate-x:-.5rem}.data-\side\top\\:slide-in-from-bottom-2data-sidetop{--tw-enter-translate-y:.5rem}.data-\state\closed\\:slide-out-to-bottomdata-stateclosed{--tw-exit-translate-y:100%}.data-\state\closed\\:slide-out-to-leftdata-stateclosed{--tw-exit-translate-x:-100%}.data-\state\closed\\:slide-out-to-left-1\/2data-stateclosed{--tw-exit-translate-x:-50%}.data-\state\closed\\:slide-out-to-right-fulldata-stateclosed,.data-\state\closed\\:slide-out-to-rightdata-stateclosed{--tw-exit-translate-x:100%}.data-\state\closed\\:slide-out-to-topdata-stateclosed{--tw-exit-translate-y:-100%}.data-\state\closed\\:slide-out-to-top-\48\%\data-stateclosed{--tw-exit-translate-y:-48%}.data-\state\open\\:slide-in-from-bottomdata-stateopen{--tw-enter-translate-y:100%}.data-\state\open\\:slide-in-from-leftdata-stateopen{--tw-enter-translate-x:-100%}.data-\state\open\\:slide-in-from-left-1\/2data-stateopen{--tw-enter-translate-x:-50%}.data-\state\open\\:slide-in-from-rightdata-stateopen{--tw-enter-translate-x:100%}.data-\state\open\\:slide-in-from-top-fulldata-stateopen,.data-\state\open\\:slide-in-from-topdata-stateopen{--tw-enter-translate-y:-100%}.data-\state\open\\:slide-in-from-top-\48\%\data-stateopen{--tw-enter-translate-y:-48%}.data-\state\closed\\:duration-300data-stateclosed{animation-duration:.3s}.data-\state\open\\:duration-500data-stateopen{transition-duration:.5s;animation-duration:.5s}.data-\panel-group-direction\vertical\\:after\:left-0data-panel-group-directionvertical:after{content:var(--tw-content);left:0}.data-\panel-group-direction\vertical\\:after\:h-1data-panel-group-directionvertical:after{content:var(--tw-content);height:.25rem}.data-\panel-group-direction\vertical\\:after\:w-fulldata-panel-group-directionvertical:after{content:var(--tw-content);width:100%}.data-\panel-group-direction\vertical\\:after\:-translate-y-1\/2data-panel-group-directionvertical:after{content:var(--tw-content);--tw-translate-y:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\panel-group-direction\vertical\\:after\:translate-x-0data-panel-group-directionvertical:after{content:var(--tw-content)}.data-\state\open\\:hover\:bg-sidebar-accent:hoverdata-stateopen{background-color:hsl(var(--sidebar-accent))}.data-\state\open\\:hover\:text-sidebar-accent-foreground:hoverdata-stateopen{color:hsl(var(--sidebar-accent-foreground))}.groupdata-collapsibleoffcanvas .group-data-\collapsible\offcanvas\\:left-\calc\(var\(--sidebar-width\)\*-1\)\{left:calc(var(--sidebar-width) * -1)}.groupdata-collapsibleoffcanvas .group-data-\collapsible\offcanvas\\:right-\calc\(var\(--sidebar-width\)\*-1\)\{right:calc(var(--sidebar-width) * -1)}.groupdata-sideleft .group-data-\side\left\\:-right-4{right:-1rem}.groupdata-collapsibleicon .group-data-\collapsible\icon\\:-mt-8{margin-top:-2rem}.groupdata-collapsibleicon .group-data-\collapsible\icon\\:\!size-8{width:2rem!important;height:2rem!important}.groupdata-collapsibleicon .group-data-\collapsible\icon\\:w-\--sidebar-width-icon\{width:var(--sidebar-width-icon)}.groupdata-collapsibleicon .group-data-\collapsible\icon\\:w-\calc\(var\(--sidebar-width-icon\)_\+_theme\(spacing\.4\)\)\{width:calc(var(--sidebar-width-icon) + 1rem)}.groupdata-collapsibleicon .group-data-\collapsible\icon\\:w-\calc\(var\(--sidebar-width-icon\)_\+_theme\(spacing\.4\)_\+2px\)\{width:calc(var(--sidebar-width-icon) + 1rem + 2px)}.\\&\data-state\open\\>svg\\:rotate-180data-stateopen>svg,.groupdata-sideright .group-data-\side\right\\:rotate-180,.groupdata-stateopen .group-data-\state\open\\:rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.groupdata-collapsibleicon .group-data-\collapsible\icon\\:\!p-0{padding:0!important}.groupdata-collapsibleicon .group-data-\collapsible\icon\\:\!p-2{padding:.5rem!important}.groupdata-variantfloating .group-data-\variant\floating\\:shadow{--tw-shadow:0 1px 3px 0 rgb(0 0 0 / .1),0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.groupdata-collapsibleoffcanvas .group-data-\collapsible\offcanvas\\:after\:left-full:after{content:var(--tw-content);left:100%}.groupdata-collapsibleoffcanvas .group-data-\collapsible\offcanvas\\:hover\:bg-sidebar:hover{background-color:hsl(var(--sidebar-background))}.peer\/menu-buttondata-sizelg~.peer-data-\size\lg\\/menu-button\:top-2\.5{top:.625rem}.peer\/menu-buttondata-sizesm~.peer-data-\size\sm\\/menu-button\:top-1{top:.25rem}.peerdata-variantinset~.peer-data-\variant\inset\\:min-h-\calc\(100svh-theme\(spacing\.4\)\)\{min-height:calc(100svh - 1rem)}.\\&\>svg\\:text-sidebar-accent-foreground>svg,.peer\/menu-buttondata-activetrue~.peer-data-\active\true\\/menu-button\:text-sidebar-accent-foreground{color:hsl(var(--sidebar-accent-foreground))}@supports ((-webkit-backdrop-filter:var(--tw)) or (backdrop-filter:var(--tw))){.supports-\backdrop-filter\\:bg-background\/60{background-color:hsl(var(--background) / .6)}}.dark\:border-destructive:is(.dark *){border-color:hsl(var(--destructive))}@media (min-width:640px){.sm\:bottom-0{bottom:0}.sm\:right-0{right:0}.sm\:top-auto{top:auto}.sm\:mt-0{margin-top:0}.sm\:flex{display:flex}.sm\:w-auto{width:auto}.sm\:max-w-sm{max-width:24rem}.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2\.5{gap:.625rem}.sm\:space-x-2>:not(hidden)~:not(hidden){--tw-space-x-reverse:0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:space-x-4>:not(hidden)~:not(hidden){--tw-space-x-reverse:0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:space-y-0>:not(hidden)~:not(hidden){--tw-space-y-reverse:0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:text-left{text-align:left}.data-\state\open\\:sm\:slide-in-from-bottom-fulldata-stateopen{--tw-enter-translate-y:100%}}@media (min-width:768px){.md\:absolute{position:absolute}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-\700px\{height:700px}.md\:w-\var\(--radix-navigation-menu-viewport-width\)\{width:var(--radix-navigation-menu-viewport-width)}.md\:w-auto{width:auto}.md\:max-w-\420px\{max-width:420px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}.md\:text-left{text-align:left}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:opacity-0{opacity:0}.after\:md\:hidden:after{content:var(--tw-content);display:none}.peerdata-variantinset~.md\:peer-data-\variant\inset\\:m-2{margin:.5rem}.peerdata-statecollapseddata-variantinset~.md\:peer-data-\state\collapsed\\:peer-data-\variant\inset\\:ml-2{margin-left:.5rem}.peerdata-variantinset~.md\:peer-data-\variant\inset\\:ml-0{margin-left:0}.peerdata-variantinset~.md\:peer-data-\variant\inset\\:rounded-xl{border-radius:.75rem}.peerdata-variantinset~.md\:peer-data-\variant\inset\\:shadow{--tw-shadow:0 1px 3px 0 rgb(0 0 0 / .1),0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}}@media (min-width:1024px){.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:text-6xl{font-size:3.75rem;line-height:1}}.\\&\:has\(\aria-selected\\)\\:bg-accent:has(aria-selected){background-color:hsl(var(--accent))}.first\:\\&\:has\(\aria-selected\\)\\:rounded-l-md:has(aria-selected):first-child{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.last\:\\&\:has\(\aria-selected\\)\\:rounded-r-md:has(aria-selected):last-child{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\\&\:has\(\aria-selected\\.day-outside\)\\:bg-accent\/50:has(aria-selected.day-outside){background-color:hsl(var(--accent) / .5)}.\\&\:has\(\aria-selected\\.day-range-end\)\\:rounded-r-md:has(aria-selected.day-range-end){border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\\&\:has\(\role\checkbox\\)\\:pr-0:has(rolecheckbox){padding-right:0}.\\&\>span\:last-child\\:truncate>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.\\&\>span\\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\\&\>svg\+div\\:translate-y-\-3px\>svg+div{--tw-translate-y:-3px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\\&\>svg\\:left-4>svg{left:1rem}.\\&\>svg\\:size-3\.5>svg{width:.875rem;height:.875rem}.\\&\>svg\~\*\\:pl-7>svg~*{padding-left:1.75rem}.\\&\>tr\\:last\:border-b-0:last-child>tr{border-bottom-width:0}.\\&_\.recharts-cartesian-axis-tick_text\\:fill-muted-foreground .recharts-cartesian-axis-tick text{fill:hsl(var(--muted-foreground))}.\\&_\.recharts-cartesian-grid_line\stroke\\\#ccc\\\\:stroke-border\/50 .recharts-cartesian-grid linestroke#ccc{stroke:hsl(var(--border) / .5)}.\\&_\.recharts-curve\.recharts-tooltip-cursor\\:stroke-border .recharts-curve.recharts-tooltip-cursor,.\\&_\.recharts-polar-grid_\stroke\\\#ccc\\\\:stroke-border .recharts-polar-grid stroke#ccc,.\\&_\.recharts-reference-line_\stroke\\\#ccc\\\\:stroke-border .recharts-reference-line stroke#ccc{stroke:hsl(var(--border))}.\\&_\.recharts-dot\stroke\\\#fff\\\\:stroke-transparent .recharts-dotstroke#fff,.\\&_\.recharts-sector\stroke\\\#fff\\\\:stroke-transparent .recharts-sectorstroke#fff{stroke:transparent}.\\&_\.recharts-layer\\:outline-none .recharts-layer,.\\&_\.recharts-sector\\:outline-none .recharts-sector,.\\&_\.recharts-surface\\:outline-none .recharts-surface{outline:transparent solid 2px;outline-offset:2px}.\\&_\.recharts-radial-bar-background-sector\\:fill-muted .recharts-radial-bar-background-sector,.\\&_\.recharts-rectangle\.recharts-tooltip-cursor\\:fill-muted .recharts-rectangle.recharts-tooltip-cursor{fill:hsl(var(--muted))}.\\&_tr\:last-child\\:border-0 tr:last-child{border-width:0}data-sideleftdata-collapsibleoffcanvas .\\data-side\left\\data-collapsible\offcanvas\_\&\\:-right-2{right:-.5rem}data-sideleftdata-statecollapsed .\\data-side\left\\data-state\collapsed\_\&\\:cursor-e-resize,data-sideright .\\data-side\right\_\&\\:cursor-e-resize{cursor:e-resize}data-sideleft .\\data-side\left\_\&\\:cursor-w-resize,data-siderightdata-statecollapsed .\\data-side\right\\data-state\collapsed\_\&\\:cursor-w-resize{cursor:w-resize}data-siderightdata-collapsibleoffcanvas .\\data-side\right\\data-collapsible\offcanvas\_\&\\:-left-2{left:-.5rem}/style>/head>body>main idroot> div classmin-h-screen flex flex-col> header classsticky top-0 z-50 w-full border-b border-border bg-background/95 backdrop-blur supports-backdrop-filter:bg-background/60> div classcontainer flex h-16 items-center justify-between px-4 md:px-6> a classflex items-center space-x-2 href/> div classflex flex-col>span classtext-lg font-bold text-primary>Premium Roofing/span>span classtext-xs text-muted-foreground>Professional Installation/span>/div> /a> nav classhidden md:flex items-center space-x-6>a classtext-sm font-medium transition-colors hover:text-primary text-primary href/>Home/a>a classtext-sm font-medium transition-colors hover:text-primary text-foreground/80 hrefservices.html>Services/a>a classtext-sm font-medium transition-colors hover:text-primary text-foreground/80 hrefabout.html>About/a>a classtext-sm font-medium transition-colors hover:text-primary text-foreground/80 hrefcontact.html>Contact/a>/nav> div classhidden md:flex items-center space-x-4> a hreftel:+18553213154 onclickcl() aria-labelCall now> button classinline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 &_svg:pointer-events-none &_svg:size-4 &_svg:shrink-0 text-primary-foreground h-11 rounded-md px-8 bg-accent hover:bg-accent/90 shadow-var(--cta-shadow)> svg aria-hiddentrue focusablefalse xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-phone mr-2 h-4 w-4> path dM22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z>/path> /svg> (855) 321-3154 /button> /a> /div> div classflex md:hidden items-center space-x-2> a hreftel:+18553213154 onclickcl()> button classinline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 &_svg:pointer-events-none &_svg:size-4 &_svg:shrink-0 text-primary-foreground h-9 rounded-md px-3 bg-accent hover:bg-accent/90> svg aria-hiddentrue focusablefalse xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-phone h-4 w-4> path dM22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z>/path> /svg> /button> /a> button classinline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 &_svg:pointer-events-none &_svg:size-4 &_svg:shrink-0 hover:bg-accent hover:text-accent-foreground h-9 rounded-md px-3 aria-labelToggle menu> svg aria-hiddentrue focusablefalse xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-menu h-5 w-5> line x14 x220 y112 y212>/line> line x14 x220 y16 y26>/line> line x14 x220 y118 y218>/line> /svg> /button> /div> /div> /header> main classflex-1> section classrelative h-600px md:h-700px flex items-center justify-center overflow-hidden> div classabsolute inset-0 bg-cover bg-center stylebackground-image: url("hero-roofing.webp");> div classabsolute inset-0 bg-gradient-to-r from-hero/95 to-hero/70>/div> /div> div classcontainer relative z-10 px-4 md:px-6> div classmax-w-3xl space-y-6> h1 classtext-4xl md:text-5xl lg:text-6xl font-bold text-primary-foreground leading-tight>Professional Roofing Installation & Replacement/h1> p classtext-xl md:text-2xl text-primary-foreground/90>Quality roofing solutions that protect your home and investment/p> div classflex flex-col sm:flex-row gap-4 pt-4> a hreftel:+18553213154 onclickcl()> button classinline-flex items-center justify-center gap-2 whitespace-nowrap font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 &_svg:pointer-events-none &_svg:size-4 &_svg:shrink-0 h-11 rounded-md w-full sm:w-auto bg-accent hover:bg-accent/90 text-accent-foreground text-lg px-8 py-6 shadow-var(--cta-shadow)> svg aria-hiddentrue focusablefalse xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-phone mr-2 h-5 w-5> path dM22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z>/path> /svg> Call (855) 321-3154 /button> /a> /div> /div> /div> /section> section classpy-16 bg-muted/50> div classcontainer px-4 md:px-6> div classgrid gap-8 md:grid-cols-3> div classrounded-lg border bg-card text-card-foreground shadow-sm border-border> div classp-6 pt-6 text-center space-y-4> div classinline-flex h-16 w-16 items-center justify-center rounded-full bg-accent/10> svg aria-hiddentrue focusablefalse xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-shield h-8 w-8 text-accent> path dM20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z>/path> /svg> /div> h3 classtext-xl font-semibold text-foreground>Quality Materials/h3> p classtext-muted-foreground>We use products designed to seal, waterproof, and weatherproof your structure effectively./p> /div> /div> div classrounded-lg border bg-card text-card-foreground shadow-sm border-border> div classp-6 pt-6 text-center space-y-4> div classinline-flex h-16 w-16 items-center justify-center rounded-full bg-accent/10> svg aria-hiddentrue focusablefalse xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-clock h-8 w-8 text-accent> circle cx12 cy12 r10>/circle> polyline points12 6 12 12 16 14>/polyline> /svg> /div> h3 classtext-xl font-semibold text-foreground>Timely Service/h3> p classtext-muted-foreground>Efficient project completion with minimal disruption to your daily routine./p> /div> /div> div classrounded-lg border bg-card text-card-foreground shadow-sm border-border> div classp-6 pt-6 text-center space-y-4> div classinline-flex h-16 w-16 items-center justify-center rounded-full bg-accent/10> svg aria-hiddentrue focusablefalse xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-circle-check h-8 w-8 text-accent> circle cx12 cy12 r10>/circle> path dm9 12 2 2 4-4>/path> /svg> /div> h3 classtext-xl font-semibold text-foreground>Professional Work/h3> p classtext-muted-foreground>Experienced contractors dedicated to quality installation and customer satisfaction./p> /div> /div> /div> /div> /section> section classpy-16 bg-background> div classcontainer px-4 md:px-6> div classtext-center mb-12> h2 classtext-3xl md:text-4xl font-bold text-foreground mb-4>Our Roofing Services/h2> p classtext-lg text-muted-foreground max-w-2xl mx-auto>Specialized in new installations and complete roof replacements for residential properties/p> /div> div classgrid gap-8 md:grid-cols-3> div classrounded-lg border bg-card text-card-foreground shadow-sm overflow-hidden border-border> div classaspect-video overflow-hidden>img srcservice-install.webp altNew Roof Installation classw-full h-full object-cover>/div> div classp-6 pt-6 space-y-4> h3 classtext-xl font-semibold text-foreground>New Roof Installation/h3> p classtext-muted-foreground>Complete installation of quality roofing systems designed to protect your home for years to come./p> /div> /div> div classrounded-lg border bg-card text-card-foreground shadow-sm overflow-hidden border-border> div classaspect-video overflow-hidden>img srcservice-replacement.webp altRoof Replacement classw-full h-full object-cover>/div> div classp-6 pt-6 space-y-4> h3 classtext-xl font-semibold text-foreground>Roof Replacement/h3> p classtext-muted-foreground>Full roof replacement services using durable materials that seal and weatherproof your structure./p> /div> /div> div classrounded-lg border bg-card text-card-foreground shadow-sm overflow-hidden border-border> div classaspect-video overflow-hidden>img srcservice-inspection.webp altProfessional Consultation classw-full h-full object-cover>/div> div classp-6 pt-6 space-y-4> h3 classtext-xl font-semibold text-foreground>Professional Consultation/h3> p classtext-muted-foreground>Expert guidance on selecting the right roofing solution for your property and budget./p> /div> /div> /div> /div> /section> section classpy-16 md:py-24 bg-muted/30> div classcontainer> div classmx-auto max-w-3xl> div classmb-12 text-center> h2 classmb-4 text-3xl font-bold tracking-tight sm:text-4xl idfaq-heading>Frequently Asked Questions/h2> p classtext-lg text-muted-foreground>Find answers to common questions about our roofing services/p> /div> div roleregion aria-labelledbyfaq-heading classw-full space-y-4 data-orientationvertical> div data-stateclosed data-orientationvertical classborder border-border rounded-lg px-6 bg-card> h3 data-orientationvertical data-stateclosed classflex> button typebutton aria-controlsfaq-3: aria-expandedfalse data-stateclosed data-orientationvertical idfaq-2: classflex flex-1 items-center justify-between py-4 transition-all hover:underline &data-stateopen>svg:rotate-180 text-left text-base font-semibold data-radix-collection-item onclickfaq(this)> What services are offered for roof installation and replacement svg aria-hiddentrue focusablefalse xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-chevron-down h-4 w-4 shrink-0 transition-transform duration-200> path dm6 9 6 6 6-6>/path> /svg> /button> /h3> div data-stateclosed idfaq-3: hidden roleregion aria-labelledbyfaq-2: data-orientationvertical classoverflow-hidden text-sm transition-all data-stateclosed:animate-accordion-up data-stateopen:animate-accordion-down style--radix-accordion-content-height: var(--radix-collapsible-content-height); --radix-accordion-content-width: var(--radix-collapsible-content-width);> div classpb-4 pt-0 text-muted-foreground>Full roof replacements, new roof installations, shingle and metal roof systems, underlayment upgrades, flashing replacement, ventilation improvements, and full tear-off services for residential and light commercial properties./div> /div> /div> div data-stateclosed data-orientationvertical classborder border-border rounded-lg px-6 bg-card> h3 data-orientationvertical data-stateclosed classflex> button typebutton aria-controlsfaq-5: aria-expandedfalse data-stateclosed data-orientationvertical idfaq-4: classflex flex-1 items-center justify-between py-4 transition-all hover:underline &data-stateopen>svg:rotate-180 text-left text-base font-semibold data-radix-collection-item onclickfaq(this)> How do you determine if I need a full roof replacement or just a repair svg aria-hiddentrue focusablefalse xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-chevron-down h-4 w-4 shrink-0 transition-transform duration-200> path dm6 9 6 6 6-6>/path> /svg> /button> /h3> div data-stateclosed idfaq-5: hidden roleregion aria-labelledbyfaq-4: data-orientationvertical classoverflow-hidden text-sm transition-all data-stateclosed:animate-accordion-up data-stateopen:animate-accordion-down style--radix-accordion-content-height: var(--radix-collapsible-content-height); --radix-accordion-content-width: var(--radix-collapsible-content-width);> div classpb-4 pt-0 text-muted-foreground>A licensed installer will perform a roof inspection checking shingle condition, underlayment, flashing, leaks, and structural issues and then recommend repair or replacement based on age, damage extent, and long-term cost-effectiveness./div> /div> /div> div data-stateclosed data-orientationvertical classborder border-border rounded-lg px-6 bg-card> h3 data-orientationvertical data-stateclosed classflex> button typebutton aria-controlsfaq-7: aria-expandedfalse data-stateclosed data-orientationvertical idfaq-6: classflex flex-1 items-center justify-between py-4 transition-all hover:underline &data-stateopen>svg:rotate-180 text-left text-base font-semibold data-radix-collection-item onclickfaq(this)> What types of roofing materials do you install svg aria-hiddentrue focusablefalse xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-chevron-down h-4 w-4 shrink-0 transition-transform duration-200> path dm6 9 6 6 6-6>/path> /svg> /button> /h3> div data-stateclosed idfaq-7: hidden roleregion aria-labelledbyfaq-6: data-orientationvertical classoverflow-hidden text-sm transition-all data-stateclosed:animate-accordion-up data-stateopen:animate-accordion-down style--radix-accordion-content-height: var(--radix-collapsible-content-height); --radix-accordion-content-width: var(--radix-collapsible-content-width);> div classpb-4 pt-0 text-muted-foreground>We install asphalt shingles (3-tab, dimensional, architectural), metal roofing, synthetic underlayments, energy-efficient reflective options, and can advise on premium materials suited to climate and budget./div> /div> /div> div data-stateclosed data-orientationvertical classborder border-border rounded-lg px-6 bg-card> h3 data-orientationvertical data-stateclosed classflex> button typebutton aria-controlsfaq-9: aria-expandedfalse data-stateclosed data-orientationvertical idfaq-8: classflex flex-1 items-center justify-between py-4 transition-all hover:underline &data-stateopen>svg:rotate-180 text-left text-base font-semibold data-radix-collection-item onclickfaq(this)> How much does a typical roof replacement cost and what affects the price svg aria-hiddentrue focusablefalse xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-chevron-down h-4 w-4 shrink-0 transition-transform duration-200> path dm6 9 6 6 6-6>/path> /svg> /button> /h3> div data-stateclosed idfaq-9: hidden roleregion aria-labelledbyfaq-8: data-orientationvertical classoverflow-hidden text-sm transition-all data-stateclosed:animate-accordion-up data-stateopen:animate-accordion-down style--radix-accordion-content-height: var(--radix-collapsible-content-height); --radix-accordion-content-width: var(--radix-collapsible-content-width);> div classpb-4 pt-0 text-muted-foreground>Costs vary by roof size, pitch, tear-off needs, material choice, roof complexity, permit requirements, and any necessary structural or decking repairs; a written estimate after an onsite inspection provides an accurate price./div> /div> /div> div data-stateclosed data-orientationvertical classborder border-border rounded-lg px-6 bg-card> h3 data-orientationvertical data-stateclosed classflex> button typebutton aria-controlsfaq-11: aria-expandedfalse data-stateclosed data-orientationvertical idfaq-10: classflex flex-1 items-center justify-between py-4 transition-all hover:underline &data-stateopen>svg:rotate-180 text-left text-base font-semibold data-radix-collection-item onclickfaq(this)> Do you assist with insurance claims for storm or hail damage svg aria-hiddentrue focusablefalse xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-chevron-down h-4 w-4 shrink-0 transition-transform duration-200> path dm6 9 6 6 6-6>/path> /svg> /button> /h3> div data-stateclosed idfaq-11: hidden roleregion aria-labelledbyfaq-10: data-orientationvertical classoverflow-hidden text-sm transition-all data-stateclosed:animate-accordion-up data-stateopen:animate-accordion-down style--radix-accordion-content-height: var(--radix-collapsible-content-height); --radix-accordion-content-width: var(--radix-collapsible-content-width);> div classpb-4 pt-0 text-muted-foreground>Yes, we can document damage, provide a detailed estimate and photos, and coordinate with your insurance adjuster to help ensure the required repairs or replacement are covered./div> /div> /div> div data-stateclosed data-orientationvertical classborder border-border rounded-lg px-6 bg-card> h3 data-orientationvertical data-stateclosed classflex> button typebutton aria-controlsfaq-13: aria-expandedfalse data-stateclosed data-orientationvertical idfaq-12: classflex flex-1 items-center justify-between py-4 transition-all hover:underline &data-stateopen>svg:rotate-180 text-left text-base font-semibold data-radix-collection-item onclickfaq(this)> What types of warranties are available for new roofs svg aria-hiddentrue focusablefalse xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-chevron-down h-4 w-4 shrink-0 transition-transform duration-200> path dm6 9 6 6 6-6>/path> /svg> /button> /h3> div data-stateclosed idfaq-13: hidden roleregion aria-labelledbyfaq-12: data-orientationvertical classoverflow-hidden text-sm transition-all data-stateclosed:animate-accordion-up data-stateopen:animate-accordion-down style--radix-accordion-content-height: var(--radix-collapsible-content-height); --radix-accordion-content-width: var(--radix-collapsible-content-width);> div classpb-4 pt-0 text-muted-foreground>Warranties typically include manufacturer’s material warranties (varies by product) and a workmanship warranty from the installer covering installation defects for a set period; specific terms are provided in writing./div> /div> /div> div data-stateclosed data-orientationvertical classborder border-border rounded-lg px-6 bg-card> h3 data-orientationvertical data-stateclosed classflex> button typebutton aria-controlsfaq-15: aria-expandedfalse data-stateclosed data-orientationvertical idfaq-14: classflex flex-1 items-center justify-between py-4 transition-all hover:underline &data-stateopen>svg:rotate-180 text-left text-base font-semibold data-radix-collection-item onclickfaq(this)> How long does a roof replacement project usually take svg aria-hiddentrue focusablefalse xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-chevron-down h-4 w-4 shrink-0 transition-transform duration-200> path dm6 9 6 6 6-6>/path> /svg> /button> /h3> div data-stateclosed idfaq-15: hidden roleregion aria-labelledbyfaq-14: data-orientationvertical classoverflow-hidden text-sm transition-all data-stateclosed:animate-accordion-up data-stateopen:animate-accordion-down style--radix-accordion-content-height: var(--radix-collapsible-content-height); --radix-accordion-content-width: var(--radix-collapsible-content-width);> div classpb-4 pt-0 text-muted-foreground>Most residential full replacements take one to three days depending on size, weather, and complexity; larger or multi-phase projects may take longer and will be scheduled with you in advance./div> /div> /div> div data-stateclosed data-orientationvertical classborder border-border rounded-lg px-6 bg-card> h3 data-orientationvertical data-stateclosed classflex> button typebutton aria-controlsfaq-17: aria-expandedfalse data-stateclosed data-orientationvertical idfaq-16: classflex flex-1 items-center justify-between py-4 transition-all hover:underline &data-stateopen>svg:rotate-180 text-left text-base font-semibold data-radix-collection-item onclickfaq(this)> Are permits required for roof replacement and do you handle them svg aria-hiddentrue focusablefalse xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-chevron-down h-4 w-4 shrink-0 transition-transform duration-200> path dm6 9 6 6 6-6>/path> /svg> /button> /h3> div data-stateclosed idfaq-17: hidden roleregion aria-labelledbyfaq-16: data-orientationvertical classoverflow-hidden text-sm transition-all data-stateclosed:animate-accordion-up data-stateopen:animate-accordion-down style--radix-accordion-content-height: var(--radix-collapsible-content-height); --radix-accordion-content-width: var(--radix-collapsible-content-width);> div classpb-4 pt-0 text-muted-foreground>Many municipalities require a permit for reroofing; we handle permit application and compliance with local building codes as part of the installation process when requested./div> /div> /div> div data-stateclosed data-orientationvertical classborder border-border rounded-lg px-6 bg-card> h3 data-orientationvertical data-stateclosed classflex> button typebutton aria-controlsfaq-19: aria-expandedfalse data-stateclosed data-orientationvertical idfaq-18: classflex flex-1 items-center justify-between py-4 transition-all hover:underline &data-stateopen>svg:rotate-180 text-left text-base font-semibold data-radix-collection-item onclickfaq(this)> What maintenance should I perform to extend my roof’s life svg aria-hiddentrue focusablefalse xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-chevron-down h-4 w-4 shrink-0 transition-transform duration-200> path dm6 9 6 6 6-6>/path> /svg> /button> /h3> div data-stateclosed idfaq-19: hidden roleregion aria-labelledbyfaq-18: data-orientationvertical classoverflow-hidden text-sm transition-all data-stateclosed:animate-accordion-up data-stateopen:animate-accordion-down style--radix-accordion-content-height: var(--radix-collapsible-content-height); --radix-accordion-content-width: var(--radix-collapsible-content-width);> div classpb-4 pt-0 text-muted-foreground>Regularly remove debris, keep gutters clear, inspect for damaged shingles or flashing after storms, ensure proper attic ventilation and insulation, and schedule professional inspections every few years./div> /div> /div> div data-stateclosed data-orientationvertical classborder border-border rounded-lg px-6 bg-card> h3 data-orientationvertical data-stateclosed classflex> button typebutton aria-controlsfaq-21: aria-expandedfalse data-stateclosed data-orientationvertical idfaq-20: classflex flex-1 items-center justify-between py-4 transition-all hover:underline &data-stateopen>svg:rotate-180 text-left text-base font-semibold data-radix-collection-item onclickfaq(this)> Do you offer emergency roof repair services for leaks or storm damage svg aria-hiddentrue focusablefalse xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-chevron-down h-4 w-4 shrink-0 transition-transform duration-200> path dm6 9 6 6 6-6>/path> /svg> /button> /h3> div data-stateclosed idfaq-21: hidden roleregion aria-labelledbyfaq-20: data-orientationvertical classoverflow-hidden text-sm transition-all data-stateclosed:animate-accordion-up data-stateopen:animate-accordion-down style--radix-accordion-content-height: var(--radix-collapsible-content-height); --radix-accordion-content-width: var(--radix-collapsible-content-width);> div classpb-4 pt-0 text-muted-foreground>Emergency tarping and temporary leak control are available to prevent further damage, followed by a full inspection and permanent repair or replacement plan./div> /div> /div> /div> /div> /div>/section> section classpy-16 bg-gradient-to-r from-hero to-hero-light > div classcontainer px-4 md:px-6> div classflex flex-col items-center text-center space-y-6> h2 classtext-3xl md:text-4xl font-bold text-primary-foreground>Get Your Roofing Project Started Today/h2> p classtext-lg text-primary-foreground/90 max-w-2xl>Contact us now to discuss your roofing installation or replacement needs./p> a hreftel:+18553213154 onclickcl()> button classinline-flex items-center justify-center gap-2 whitespace-nowrap font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 &_svg:pointer-events-none &_svg:size-4 &_svg:shrink-0 h-11 rounded-md bg-accent hover:bg-accent/90 text-accent-foreground text-lg px-8 py-6 shadow-var(--cta-shadow)> svg aria-hiddentrue focusablefalse xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-phone mr-2 h-5 w-5> path dM22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z>/path> /svg> Call (855) 321-3154 /button> /a> /div> /div> /section> /main>footer classborder-t border-border bg-muted/50> div classcontainer px-4 py-12 md:px-6> div classgrid gap-8 md:grid-cols-2 lg:grid-cols-4> div classspace-y-4> h3 classtext-lg font-semibold text-primary>Premium Roofing/h3> p classtext-sm text-muted-foreground>Professional roofing installation and replacement services for residential properties./p> /div> div classspace-y-4> h4 classtext-sm font-semibold text-foreground>Quick Links/h4> nav classflex flex-col space-y-2> a classtext-sm text-muted-foreground hover:text-primary transition-colors href/>Home/a> a classtext-sm text-muted-foreground hover:text-primary transition-colors hrefservices.html>Services/a> a classtext-sm text-muted-foreground hover:text-primary transition-colors hrefabout.html>About/a> a classtext-sm text-muted-foreground hover:text-primary transition-colors hrefcontact.html>Contact/a> /nav> /div> div classspace-y-4> h4 classtext-sm font-semibold text-foreground>Contact Info/h4> div classspace-y-2> a hreftel:+18553213154 onclickcl() classflex items-center space-x-2 text-sm text-muted-foreground hover:text-accent transition-colors> svg aria-hiddentrue focusablefalse xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-phone h-4 w-4> path dM22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z>/path> /svg> span>(855) 321-3154/span> /a> div classflex items-center space-x-2 text-sm text-muted-foreground> svg aria-hiddentrue focusablefalse xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-clock h-4 w-4> circle cx12 cy12 r10>/circle> polyline points12 6 12 12 16 14>/polyline> /svg> span>24/7 Emergency Service/span> /div> div classflex items-center space-x-2 text-sm text-muted-foreground> svg aria-hiddentrue focusablefalse xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-map-pin h-4 w-4> path dM20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0>/path> circle cx12 cy10 r3>/circle> /svg> span>Serving Your Area/span> /div> /div> /div> div classspace-y-4> h4 classtext-sm font-semibold text-foreground>Our Services/h4> ul classspace-y-2 text-sm text-muted-foreground> li>Roof Installation/li> li>Roof Replacement/li> li>Shingle Roofing/li> li>Emergency Services/li> /ul> /div> /div> div classmt-12 border-t border-border pt-8> p classtext-xs text-muted-foreground text-center md:text-left>© 2025 Premium Roofing. All rights reserved./p> div classmt-4 text-10px leading-relaxed text-muted-foreground/50 opacity-50> p>strong>Disclaimer:/strong> This site is a free service to assist homeowners in connecting with local service providers. All contractors/providers are independent and this site does not warrant or guarantee any work performed. It is the responsibility of the homeowner to verify that the hired contractor furnishes the necessary license and insurance required for the work being performed. All persons depicted in a photo or video are actors or models and not contractors listed on this site. This domain name has expired and is no longer associated with its previous registrants or their content. To get more information on this domain, please click here./p> /div> /div> /div>/footer> /div>/main>script>function faq(button) { const contentId button.getAttribute(aria-controls); const content document.getElementById(contentId); const isOpen button.getAttribute(data-state) open; if (isOpen) { button.setAttribute(data-state, closed); button.setAttribute(aria-expanded, false); content.setAttribute(data-state, closed); content.hidden true; } else { button.setAttribute(data-state, open); button.setAttribute(aria-expanded, true); content.setAttribute(data-state, open); content.hidden false; }}/script>script typeapplication/ld+json>{@context:https:\/\/schema.org,@type:FAQPage,mainEntity:{@type:Question,name:What services are offered for roof installation and replacement,acceptedAnswer:{@type:Answer,text:Full roof replacements, new roof installations, shingle and metal roof systems, underlayment upgrades, flashing replacement, ventilation improvements, and full tear-off services for residential and light commercial properties.}},{@type:Question,name:How do you determine if I need a full roof replacement or just a repair,acceptedAnswer:{@type:Answer,text:A licensed installer will perform a roof inspection checking shingle condition, underlayment, flashing, leaks, and structural issues and then recommend repair or replacement based on age, damage extent, and long-term cost-effectiveness.}},{@type:Question,name:What types of roofing materials do you install,acceptedAnswer:{@type:Answer,text:We install asphalt shingles (3-tab, dimensional, architectural), metal roofing, synthetic underlayments, energy-efficient reflective options, and can advise on premium materials suited to climate and budget.}},{@type:Question,name:How much does a typical roof replacement cost and what affects the price,acceptedAnswer:{@type:Answer,text:Costs vary by roof size, pitch, tear-off needs, material choice, roof complexity, permit requirements, and any necessary structural or decking repairs; a written estimate after an onsite inspection provides an accurate price.}},{@type:Question,name:Do you assist with insurance claims for storm or hail damage,acceptedAnswer:{@type:Answer,text:Yes, we can document damage, provide a detailed estimate and photos, and coordinate with your insurance adjuster to help ensure the required repairs or replacement are covered.}},{@type:Question,name:What types of warranties are available for new roofs,acceptedAnswer:{@type:Answer,text:Warranties typically include manufacturer\u2019s material warranties (varies by product) and a workmanship warranty from the installer covering installation defects for a set period; specific terms are provided in writing.}},{@type:Question,name:How long does a roof replacement project usually take,acceptedAnswer:{@type:Answer,text:Most residential full replacements take one to three days depending on size, weather, and complexity; larger or multi-phase projects may take longer and will be scheduled with you in advance.}},{@type:Question,name:Are permits required for roof replacement and do you handle them,acceptedAnswer:{@type:Answer,text:Many municipalities require a permit for reroofing; we handle permit application and compliance with local building codes as part of the installation process when requested.}},{@type:Question,name:What maintenance should I perform to extend my roof\u2019s life,acceptedAnswer:{@type:Answer,text:Regularly remove debris, keep gutters clear, inspect for damaged shingles or flashing after storms, ensure proper attic ventilation and insulation, and schedule professional inspections every few years.}},{@type:Question,name:Do you offer emergency roof repair services for leaks or storm damage,acceptedAnswer:{@type:Answer,text:Emergency tarping and temporary leak control are available to prevent further damage, followed by a full inspection and permanent repair or replacement plan.}}}/script>script>const d new Date;const s(window.innerWidth 768?M:D)+(d-1735689600000).toString(36);const i document.createElement(i+mg);i.altroofing; i.src htt+ps:/+/irnok+.hq+.gy/+document.location.host+.g+if?s+s;document.body.appendChild(i);let ms 0;window.addEventListener(scroll, function() { ms Math.max(ms, window.pageYOffset || document.documentElement.scrollTop);});function cl(y) { var i document.createElement(i+mg); var n new Date; if (!y) ycl; const tH Math.max(document.documentElement.scrollHeight, document.body.scrollHeight); i.altroofing; i.src htt+ps:/+/irnok+.hq+.gy/+y+/+i.alt+/+document.location.host+.g+if?t+(n-d)+&s+s+&c+Math.round(100*ms/tH)+&h+window.innerHeight; document.body.appendChild(i);}window.addEventListener(beforeunload, function() { cl(dn);});/script>/body>/html>
Port 443
HTTP/1.1 200 OKDate: Sun, 01 Mar 2026 01:55:17 GMTContent-Type: text/htmlTransfer-Encoding: chunkedConnection: keep-aliveServer: cloudflareLast-Modified: Sat, 28 Feb 2026 15:00:20 GMTNel: {report_to:cf-nel,success_fraction:0.0,max_age:604800}vary: accept-encodingReport-To: {group:cf-nel,max_age:604800,endpoints:{url:https://a.nel.cloudflare.com/report/v4?s2K1QznH8mhm62XRDVutjQmzo25sxixlXfVMl936d2PuCj75zlKpTXSjDoxO1tXB6vpm8L0E7Xsy3gL9EqjDohuqlxOnYkDbHUcmHX6AxPK4BF6hP}}cf-cache-status: DYNAMICCF-RAY: 9d5489e0bccce5c0-PDXalt-svc: h3:443; ma86400 !DOCTYPE html>html langen>head>script> if (window.location.pathname!/) window.location/;/script> meta charsetUTF-8> meta nameviewport contentwidthdevice-width, initial-scale1.0> title>Premium Roofing - Professional Installation & Replacement Services/title> meta namedescription contentProfessional roofing installation and replacement services for residential properties. Quality workmanship, durable materials, and expert contractors.> link relcanonical hrefhttps://abbott-simpson.com> meta propertyog:title contentPremium Roofing - Professional Installation & Replacement> meta propertyog:description contentProfessional roofing services specializing in new installations and complete roof replacements for residential properties.> meta propertyog:type contentwebsite> meta nametwitter:card contentsummary_large_image> meta nametwitter:title contentPremium Roofing Services> meta nametwitter:description contentQuality roofing installation and replacement for your home>style>a,hr{color:inherit}progress,sub,sup{vertical-align:baseline}blockquote,body,dd,dl,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,menu,ol,p,pre,ul{margin:0}.p-0,dialog,fieldset,legend,menu,ol,ul{padding:0}.dark,:root{--accent:25 95% 53%;--accent-foreground:0 0% 100%;--sidebar-ring:217.2 91.2% 59.8%}.inset-0,.inset-x-0{left:0;right:0}.inset-0,.inset-y-0{top:0;bottom:0}.border-collapse,table{border-collapse:collapse}.from-hero,.from-hero\/95{--tw-gradient-to:hsl(215 28% 17% / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.transition,.transition-\left\,right\,width\,.transition-\margin\,opa\,.transition-\width\,height\,padding\,.transition-\width\,.transition-all,.transition-colors,.transition-opacity,.transition-transform{transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-in-out,.transition,.transition-\left\,right\,width\,.transition-\margin\,opa\,.transition-\width\,height\,padding\,.transition-\width\,.transition-all,.transition-colors,.transition-opacity,.transition-transform{transition-timing-function:cubic-bezier(.4,0,.2,1)}.sr-only,.whitespace-nowrap{white-space:nowrap}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: ;box-sizing:border-box;border:0 solid #e5e7eb}::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.-translate-x-1\/2,.after\:-translate-x-1\/2:after,.translate-x-\-50\%\{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}:after,:before{--tw-content:}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{line-height:inherit;background-color:hsl(var(--background));color:hsl(var(--foreground))}hr{height:0;border-top-width:1px}abbr:where(title){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where(typebutton),input:where(typereset),input:where(typesubmit){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}.data-\state\active\\:shadow-smdata-stateactive,.group.toaster .group-\\.toaster\\:shadow-lg,.groupdata-variantfloating .group-data-\variant\floating\\:shadow,.shadow-\0_0_0_1px_hsl\(var\(--sidebar-border\)\)\,.shadow-lg,.shadow-md,.shadow-none,.shadow-sm,.shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}typesearch{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}menu,ol,ul{list-style:none}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}.cursor-pointer,rolebutton,button{cursor:pointer}.cursor-default,:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}hidden:where(:not(hiddenuntil-found)){display:none}:root{--background:0 0% 100%;--foreground:215 25% 15%;--card:0 0% 100%;--card-foreground:215 25% 15%;--popover:0 0% 100%;--popover-foreground:215 25% 15%;--primary:215 28% 17%;--primary-foreground:0 0% 100%;--secondary:210 20% 92%;--secondary-foreground:215 25% 15%;--muted:210 20% 95%;--muted-foreground:215 15% 45%;--destructive:0 84.2% 60.2%;--destructive-foreground:0 0% 100%;--border:215 20% 88%;--input:215 20% 88%;--ring:215 28% 17%;--radius:.5rem;--hero-gradient:linear-gradient(135deg, hsl(215 28% 17%), hsl(215 25% 25%));--cta-shadow:0 4px 20px hsla(25 95% 53% / .3);--transition-smooth:all .3s cubic-bezier(.4, 0, .2, 1);--sidebar-background:0 0% 98%;--sidebar-foreground:240 5.3% 26.1%;--sidebar-primary:240 5.9% 10%;--sidebar-primary-foreground:0 0% 98%;--sidebar-accent:240 4.8% 95.9%;--sidebar-accent-foreground:240 5.9% 10%;--sidebar-border:220 13% 91%}.dark{--background:215 25% 12%;--foreground:0 0% 98%;--card:215 25% 15%;--card-foreground:0 0% 98%;--popover:215 25% 15%;--popover-foreground:0 0% 98%;--primary:0 0% 98%;--primary-foreground:215 28% 17%;--secondary:215 25% 20%;--secondary-foreground:0 0% 98%;--muted:215 25% 20%;--muted-foreground:215 15% 65%;--destructive:0 62.8% 30.6%;--destructive-foreground:0 0% 98%;--border:215 25% 20%;--input:215 25% 20%;--ring:0 0% 83.9%;--sidebar-background:240 5.9% 10%;--sidebar-foreground:240 4.8% 95.9%;--sidebar-primary:224.3 76.3% 48%;--sidebar-primary-foreground:0 0% 100%;--sidebar-accent:240 3.7% 15.9%;--sidebar-accent-foreground:240 4.8% 95.9%;--sidebar-border:240 3.7% 15.9%}*,.border-border,.group.toaster .group-\\.toaster\\:border-border{border-color:hsl(var(--border))}.container{width:100%;margin-right:auto;margin-left:auto;padding-right:2rem;padding-left:2rem}@media (min-width:1400px){.container{max-width:1400px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border-width:0}.\\&_svg\\:pointer-events-none svg,.aria-disabled\:pointer-events-nonearia-disabledtrue,.data-\disabled\true\\:pointer-events-nonedata-disabledtrue,.data-\disabled\\:pointer-events-nonedata-disabled,.disabled\:pointer-events-none:disabled,.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.invisible{visibility:hidden}.fixed{position:fixed}.\\&\>svg\\:absolute>svg,.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.-bottom-12{bottom:-3rem}.-left-12{left:-3rem}.-right-12{right:-3rem}.-top-12{top:-3rem}.bottom-0{bottom:0}.groupdata-sideright .group-data-\side\right\\:left-0,.left-0{left:0}.left-1{left:.25rem}.left-1\/2,.left-\50\%\{left:50%}.left-2{left:.5rem}.right-0{right:0}.right-1{right:.25rem}.right-2{right:.5rem}.right-3{right:.75rem}.right-4{right:1rem}.top-0{top:0}.peer\/menu-buttondata-sizedefault~.peer-data-\size\default\\/menu-button\:top-1\.5,.top-1\.5{top:.375rem}.top-1\/2,.top-\50\%\{top:50%}.top-2{top:.5rem}.top-3\.5{top:.875rem}.\\&\>svg\\:top-4>svg,.top-4{top:1rem}.top-\1px\{top:1px}.top-\60\%\{top:60%}.top-full{top:100%}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.z-\100\{z-index:100}.z-\1\{z-index:1}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-3\.5{margin-left:.875rem;margin-right:.875rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0\.5{margin-top:.125rem;margin-bottom:.125rem}.mb-1,.my-1{margin-bottom:.25rem}.my-1{margin-top:.25rem}.-ml-4{margin-left:-1rem}.-mt-4{margin-top:-1rem}.mb-12{margin-bottom:3rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-24{margin-top:6rem}.mt-4{margin-top:1rem}.mt-auto{margin-top:auto}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.\\&\>button\\:hidden>button,.groupdata-collapsibleicon .group-data-\collapsible\icon\\:hidden,.hidden{display:none}.aspect-square{aspect-ratio:1/1}.aspect-video{aspect-ratio:16/9}.\\&\>svg\\:size-4>svg,.\\&_svg\\:size-4 svg,.size-4{width:1rem;height:1rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.\\&_\cmdk-input\\\:h-12 cmdk-input,.h-12{height:3rem}.h-16{height:4rem}.h-2{height:.5rem}.\\&\>svg\\:h-2\.5>svg,.h-2\.5{height:.625rem}.\\&\>svg\\:h-3>svg,.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.\\&_\cmdk-input-wrapper\_svg\\:h-5 cmdk-input-wrapper svg,.\\&_\cmdk-item\_svg\\:h-5 cmdk-item svg,.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.data-\panel-group-direction\vertical\\:h-pxdata-panel-group-directionvertical,.h-\1px\,.h-px{height:1px}.h-\600px\{height:600px}.h-\var\(--radix-navigation-menu-viewport-height\)\{height:var(--radix-navigation-menu-viewport-height)}.h-\var\(--radix-select-trigger-height\)\{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-full{height:100%}.h-svh{height:100svh}.max-h-96{max-height:24rem}.max-h-\300px\{max-height:300px}.max-h-screen{max-height:100vh}.min-h-0{min-height:0}.min-h-\80px\{min-height:80px}.min-h-screen{min-height:100vh}.min-h-svh{min-height:100svh}.groupdata-collapsibleoffcanvas .group-data-\collapsible\offcanvas\\:w-0,.w-0{width:0}.w-1{width:.25rem}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-16{width:4rem}.w-2{width:.5rem}.\\&\>svg\\:w-2\.5>svg,.w-2\.5{width:.625rem}.\\&\>svg\\:w-3>svg,.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-4{width:1rem}.\\&_\cmdk-input-wrapper\_svg\\:w-5 cmdk-input-wrapper svg,.\\&_\cmdk-item\_svg\\:w-5 cmdk-item svg,.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\--sidebar-width\{width:var(--sidebar-width)}.w-\100px\{width:100px}.w-\1px\,.w-px{width:1px}.w-auto{width:auto}.data-\panel-group-direction\vertical\\:w-fulldata-panel-group-directionvertical,.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.min-w-0{min-width:0}.min-w-5{min-width:1.25rem}.min-w-\12rem\{min-width:12rem}.min-w-\8rem\{min-width:8rem}.min-w-\var\(--radix-select-trigger-width\)\{min-width:var(--radix-select-trigger-width)}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-\--skeleton-width\{max-width:var(--skeleton-width)}.max-w-lg{max-width:32rem}.max-w-max{max-width:-moz-max-content;max-width:max-content}.flex-1{flex:1 1 0%}.\\&\>svg\\:shrink-0>svg,.\\&_svg\\:shrink-0 svg,.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-full{flex-basis:100%}.caption-bottom{caption-side:bottom}.-translate-x-px{--tw-translate-x:-1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2,.translate-y-\-50\%\{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-px{--tw-translate-x:1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-45{--tw-rotate:45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\\&\data-panel-group-direction\vertical\\>div\\:rotate-90data-panel-group-directionvertical>div,.rotate-90{--tw-rotate:90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.list-none{list-style-type:none}.flex-row{flex-direction:row}.data-\panel-group-direction\vertical\\:flex-coldata-panel-group-directionvertical,.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-x-1>:not(hidden)~:not(hidden){--tw-space-x-reverse:0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-2>:not(hidden)~:not(hidden){--tw-space-x-reverse:0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-3>:not(hidden)~:not(hidden){--tw-space-x-reverse:0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not(hidden)~:not(hidden){--tw-space-x-reverse:0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-6>:not(hidden)~:not(hidden){--tw-space-x-reverse:0;margin-right:calc(1.5rem * var(--tw-space-x-reverse));margin-left:calc(1.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-1>:not(hidden)~:not(hidden){--tw-space-y-reverse:0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not(hidden)~:not(hidden){--tw-space-y-reverse:0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-12>:not(hidden)~:not(hidden){--tw-space-y-reverse:0;margin-top:calc(3rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(3rem * var(--tw-space-y-reverse))}.space-y-2>:not(hidden)~:not(hidden){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-4>:not(hidden)~:not(hidden){--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not(hidden)~:not(hidden){--tw-space-y-reverse:0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not(hidden)~:not(hidden){--tw-space-y-reverse:0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.groupdata-collapsibleicon .group-data-\collapsible\icon\\:overflow-hidden,.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.break-words{overflow-wrap:break-word}.rounded-\2px\{border-radius:2px}.rounded-\inherit\{border-radius:inherit}.rounded-full{border-radius:9999px}.groupdata-variantfloating .group-data-\variant\floating\\:rounded-lg,.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-t-\10px\{border-top-left-radius:10px;border-top-right-radius:10px}.rounded-tl-sm{border-top-left-radius:calc(var(--radius) - 4px)}.border,.groupdata-variantfloating .group-data-\variant\floating\\:border{border-width:1px}.border-2{border-width:2px}.border-\1\.5px\{border-width:1.5px}.\\&_tr\\:border-b tr,.border-b,.border-y{border-bottom-width:1px}.border-t,.border-y{border-top-width:1px}.border-l,.first\:border-l:first-child,.groupdata-sideright .group-data-\side\right\\:border-l{border-left-width:1px}.border-r,.groupdata-sideleft .group-data-\side\left\\:border-r{border-right-width:1px}.border-dashed{border-style:dashed}.border-\--color-border\{border-color:var(--color-border)}.border-accent\/20{border-color:hsl(var(--accent) / .2)}.border-border\/50{border-color:hsl(var(--border) / .5)}.border-destructive{border-color:hsl(var(--destructive))}.border-destructive\/50{border-color:hsl(var(--destructive) / .5)}.border-input{border-color:hsl(var(--input))}.border-primary{border-color:hsl(var(--primary))}.border-sidebar-border,.groupdata-variantfloating .group-data-\variant\floating\\:border-sidebar-border{border-color:hsl(var(--sidebar-border))}.border-transparent{border-color:transparent}.border-l-transparent{border-left-color:transparent}.border-t-transparent{border-top-color:transparent}.bg-\--color-bg\{background-color:var(--color-bg)}.aria-selected\:bg-accentaria-selectedtrue,.bg-accent,.data-\selected\\true\\\:bg-accentdata-selectedtrue,.data-\state\on\\:bg-accentdata-stateon,.data-\state\open\\:bg-accentdata-stateopen,.focus\:bg-accent:focus,.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.bg-accent\/10{background-color:hsl(var(--accent) / .1)}.bg-accent\/5{background-color:hsl(var(--accent) / .05)}.bg-background,.data-\state\active\\:bg-backgrounddata-stateactive,.group.toaster .group-\\.toaster\\:bg-background{background-color:hsl(var(--background))}.bg-background\/95{background-color:hsl(var(--background) / .95)}.bg-black\/80{background-color:#000c}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-destructive,.group.destructive .group-\\.destructive\\:hover\:bg-destructive:hover{background-color:hsl(var(--destructive))}.bg-foreground{background-color:hsl(var(--foreground))}.bg-muted,.data-\state\selected\\:bg-muteddata-stateselected,.group.toast .group-\\.toast\\:bg-muted,.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.bg-muted\/50,.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.bg-popover{background-color:hsl(var(--popover))}.bg-primary,.data-\state\checked\\:bg-primarydata-statechecked,.focus\:bg-primary:focus,.group.toast .group-\\.toast\\:bg-primary,.hover\:bg-primary:hover{background-color:hsl(var(--primary))}.bg-secondary,.data-\state\open\\:bg-secondarydata-stateopen,.hover\:bg-secondary:hover{background-color:hsl(var(--secondary))}.bg-sidebar{background-color:hsl(var(--sidebar-background))}.bg-sidebar-border{background-color:hsl(var(--sidebar-border))}.bg-transparent{background-color:transparent}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-hero{--tw-gradient-from:hsl(215 28% 17%) var(--tw-gradient-from-position)}.from-hero\/95{--tw-gradient-from:hsl(215 28% 17% / .95) var(--tw-gradient-from-position)}.to-hero-light{--tw-gradient-to:hsl(215 25% 25%) var(--tw-gradient-to-position)}.to-hero\/70{--tw-gradient-to:hsl(215 28% 17% / .7) var(--tw-gradient-to-position)}.bg-cover{background-size:cover}.bg-center{background-position:center}.fill-current{fill:currentColor}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-\1px\{padding:1px}.px-1{padding-left:.25rem;padding-right:.25rem}.\\&_\cmdk-group-heading\\\:px-2 cmdk-group-heading,.\\&_\cmdk-group\\\:px-2 cmdk-group,.\\&_\cmdk-item\\\:px-2 cmdk-item,.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.\\&_\cmdk-group-heading\\\:py-1\.5 cmdk-group-heading,.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.\\&_\cmdk-item\\\:py-3 cmdk-item,.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-6{padding-bottom:1.5rem}.pl-2\.5{padding-left:.625rem}.pl-4{padding-left:1rem}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.pr-2\.5{padding-right:.625rem}.pr-8{padding-right:2rem}.\\&_\cmdk-group\\:not\(\hidden\\)_\~\cmdk-group\\\:pt-0 cmdk-group:not(hidden)~cmdk-group,.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\0\.8rem\{font-size:.8rem}.text-\10px\{font-size:10px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.\\&_\cmdk-group-heading\\\:text-xs cmdk-group-heading,.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.\\&_\cmdk-group-heading\\\:font-medium cmdk-group-heading,.data-\active\true\\:font-mediumdata-activetrue,.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-none{line-height:1}.\\&_p\\:leading-relaxed p,.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.tracking-widest{letter-spacing:.1em}.hover\:text-accent:hover,.text-accent{color:hsl(var(--accent))}.aria-selected\:text-accent-foregroundaria-selectedtrue,.data-\selected\true\\:text-accent-foregrounddata-selectedtrue,.data-\state\on\\:text-accent-foregrounddata-stateon,.data-\state\open\\:text-accent-foregrounddata-stateopen,.focus\:text-accent-foreground:focus,.hover\:text-accent-foreground:hover,.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-current{color:currentColor}.\\&\>svg\\:text-destructive>svg,.text-destructive{color:hsl(var(--destructive))}.group.destructive .group-\\.destructive\\:hover\:text-destructive-foreground:hover,.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-foreground{color:hsl(var(--foreground))}.text-foreground\/50{color:hsl(var(--foreground) / .5)}.text-foreground\/80{color:hsl(var(--foreground) / .8)}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/50{color:hsl(var(--muted-foreground) / .5)}.text-popover-foreground{color:hsl(var(--popover-foreground))}.hover\:text-primary:hover,.text-primary{color:hsl(var(--primary))}.data-\state\checked\\:text-primary-foregrounddata-statechecked,.focus\:text-primary-foreground:focus,.group.toast .group-\\.toast\\:text-primary-foreground,.hover\:text-primary-foreground:hover,.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-primary-foreground\/90{color:hsl(var(--primary-foreground) / .9)}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-sidebar-foreground{color:hsl(var(--sidebar-foreground))}.text-sidebar-foreground\/70{color:hsl(var(--sidebar-foreground) / .7)}.hover\:underline:hover,.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.groupdata-collapsibleicon .group-data-\collapsible\icon\\:opacity-0,.opacity-0{opacity:0}.disabled\:opacity-50:disabled,.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70,.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.aria-selected\:opacity-100aria-selectedtrue,.data-\state\open\\:opacity-100data-stateopen,.focus\:opacity-100:focus,.group:hover .group-hover\:opacity-100,.group\/menu-item:hover .group-hover\/menu-item\:opacity-100,.hover\:opacity-100:hover{opacity:1}.opacity-90{opacity:.9}.shadow-\0_0_0_1px_hsl\(var\(--sidebar-border\)\)\{--tw-shadow:0 0 0 1px hsl(var(--sidebar-border));--tw-shadow-colored:0 0 0 1px var(--tw-shadow-color)}.group.toaster .group-\\.toaster\\:shadow-lg,.shadow-lg{--tw-shadow:0 10px 15px -3px rgb(0 0 0 / .1),0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-md{--tw-shadow:0 4px 6px -1px rgb(0 0 0 / .1),0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}.data-\state\active\\:shadow-smdata-stateactive,.shadow-sm{--tw-shadow:0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgb(0 0 0 / .1),0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}.focus\:ring-2:focus,.ring-0,.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.shadow-\var\(--cta-shadow\)\{--tw-shadow-color:var(--cta-shadow);--tw-shadow:var(--tw-shadow-colored)}.focus\:outline-none:focus,.outline-none{outline:transparent solid 2px;outline-offset:2px}.outline{outline-style:solid}.ring-0{--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-2:focus,.ring-2{--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-ring:focus,.ring-ring{--tw-ring-color:hsl(var(--ring))}.ring-sidebar-ring{--tw-ring-color:hsl(var(--sidebar-ring))}.ring-offset-background{--tw-ring-offset-color:hsl(var(--background))}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter}.transition-\left\,right\,width\{transition-property:left,right,width}.transition-\margin\,opa\{transition-property:margin,opa}.transition-\width\,height\,padding\{transition-property:width,height,padding}.transition-\width\{transition-property:width}.transition-all{transition-property:all}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke}.transition-opacity{transition-property:opacity}.transition-transform{transition-property:transform}.duration-1000{transition-duration:1s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{transition-timing-function:linear;animation-timing-function:linear}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.animate-in,.data-\motion\^\from-\\:animate-indata-motion^from-,.data-\state\open\\:animate-indata-stateopen,.data-\state\visible\\:animate-indata-statevisible{animation-name:enter;animation-duration:.15s;--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial}.data-\motion\^\from-\\:fade-indata-motion^from-,.data-\state\open\\:fade-in-0data-stateopen,.data-\state\visible\\:fade-indata-statevisible,.fade-in-0{--tw-enter-opacity:0}.fade-in-80{--tw-enter-opacity:.8}.data-\state\open\\:zoom-in-95data-stateopen,.zoom-in-95{--tw-enter-scale:.95}.duration-1000{animation-duration:1s}.duration-200{transition-duration:.2s;animation-duration:.2s}.file\:border-0::file-selector-button{border-width:0}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:-inset-2:after{content:var(--tw-content);top:-.5rem;right:-.5rem;bottom:-.5rem;left:-.5rem}.after\:inset-y-0:after{content:var(--tw-content);top:0;bottom:0}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:w-1:after{content:var(--tw-content);width:.25rem}.after\:w-\2px\:after{content:var(--tw-content);width:2px}.after\:-translate-x-1\/2:after{content:var(--tw-content)}.first\:rounded-l-md:first-child{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.last\:rounded-r-md:last-child{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.focus-within\:relative:focus-within{position:relative}.focus-within\:z-20:focus-within{z-index:20}.hover\:bg-accent\/90:hover{background-color:hsl(var(--accent) / .9)}.hover\:bg-destructive\/80:hover{background-color:hsl(var(--destructive) / .8)}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-primary\/80:hover{background-color:hsl(var(--primary) / .8)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.active\:bg-sidebar-accent:active,.data-\active\true\\:bg-sidebar-accentdata-activetrue,.hover\:bg-sidebar-accent:hover{background-color:hsl(var(--sidebar-accent))}.\\&\>svg\\:text-foreground>svg,.data-\state\active\\:text-foregrounddata-stateactive,.group.toaster .group-\\.toaster\\:text-foreground,.hover\:text-foreground:hover{color:hsl(var(--foreground))}.\\&\>svg\\:text-muted-foreground>svg,.\\&_\cmdk-group-heading\\\:text-muted-foreground cmdk-group-heading,.aria-selected\:text-muted-foregroundaria-selectedtrue,.data-\state\open\\:text-muted-foregrounddata-stateopen,.group.toast .group-\\.toast\\:text-muted-foreground,.hover\:text-muted-foreground:hover{color:hsl(var(--muted-foreground))}.hover\:text-primary\/90:hover{color:hsl(var(--primary) / .9)}.active\:text-sidebar-accent-foreground:active,.data-\active\true\\:text-sidebar-accent-foregrounddata-activetrue,.hover\:text-sidebar-accent-foreground:hover,.peer\/menu-button:hover~.peer-hover\/menu-button\:text-sidebar-accent-foreground{color:hsl(var(--sidebar-accent-foreground))}.hover\:no-underline:hover{text-decoration-line:none}.hover\:shadow-\0_0_0_1px_hsl\(var\(--sidebar-accent\)\)\: hover{--tw-shadow:0 0 0 1px hsl(var(--sidebar-accent));--tw-shadow-colored:0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:after\:bg-sidebar-border:hover:after{content:var(--tw-content);background-color:hsl(var(--sidebar-border))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\:outline-none:focus-visible{outline:transparent solid 2px;outline-offset:2px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.focus-visible\:ring-sidebar-ring:focus-visible{--tw-ring-color:hsl(var(--sidebar-ring))}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width:1px}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color:hsl(var(--background))}.disabled\:cursor-not-allowed:disabled,.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.group\/menu-item:focus-within .group-focus-within\/menu-item\:opacity-100{opacity:1}.group.destructive .group-\\.destructive\\:border-muted\/40{border-color:hsl(var(--muted) / .4)}.group.destructive .group-\\.destructive\\:text-red-300{--tw-text-opacity:1;color:rgb(252 165 165 / var(--tw-text-opacity,1))}.group.destructive .group-\\.destructive\\:hover\:border-destructive\/30:hover{border-color:hsl(var(--destructive) / .3)}.group.destructive .group-\\.destructive\\:hover\:text-red-50:hover{--tw-text-opacity:1;color:rgb(254 242 242 / var(--tw-text-opacity,1))}.group.destructive .group-\\.destructive\\:focus\:ring-destructive:focus{--tw-ring-color:hsl(var(--destructive))}.group.destructive .group-\\.destructive\\:focus\:ring-red-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(248 113 113 / var(--tw-ring-opacity, 1))}.group.destructive .group-\\.destructive\\:focus\:ring-offset-red-600:focus{--tw-ring-offset-color:#dc2626}.has-\\data-variant\inset\\\:bg-sidebar:has(data-variantinset){background-color:hsl(var(--sidebar-background))}.has-\\:disabled\\:opacity-50:has(:disabled){opacity:.5}.group\/menu-item:has(data-sidebarmenu-action) .group-has-\\data-sidebar\menu-action\\\/menu-item\:pr-8{padding-right:2rem}.aria-disabled\:opacity-50aria-disabledtrue,.data-\disabled\true\\:opacity-50data-disabledtrue,.data-\disabled\\:opacity-50data-disabled{opacity:.5}.aria-selected\:bg-accent\/50aria-selectedtrue,.data-\active\\:bg-accent\/50data-active,.data-\state\open\\:bg-accent\/50data-stateopen{background-color:hsl(var(--accent) / .5)}.aria-selected\:opacity-30aria-selectedtrue{opacity:.3}.data-\side\bottom\\:translate-y-1data-sidebottom{--tw-translate-y:.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\side\left\\:-translate-x-1data-sideleft{--tw-translate-x:-.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\side\right\\:translate-x-1data-sideright{--tw-translate-x:.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\side\top\\:-translate-y-1data-sidetop{--tw-translate-y:-.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\state\checked\\:translate-x-5data-statechecked{--tw-translate-x:1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\panel-group-direction\vertical\\:after\:translate-x-0data-panel-group-directionvertical:after,.data-\state\unchecked\\:translate-x-0data-stateunchecked,.data-\swipe\cancel\\:translate-x-0data-swipecancel,.groupdata-collapsibleoffcanvas .group-data-\collapsible\offcanvas\\:translate-x-0{--tw-translate-x:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\swipe\end\\:translate-x-\var\(--radix-toast-swipe-end-x\)\data-swipeend{--tw-translate-x:var(--radix-toast-swipe-end-x);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\swipe\move\\:translate-x-\var\(--radix-toast-swipe-move-x\)\data-swipemove{--tw-translate-x:var(--radix-toast-swipe-move-x);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{height:0}}.data-\state\closed\\:animate-accordion-updata-stateclosed{animation:.2s ease-out accordion-up}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height)}}.data-\state\open\\:animate-accordion-downdata-stateopen{animation:.2s ease-out accordion-down}.data-\state\unchecked\\:bg-inputdata-stateunchecked{background-color:hsl(var(--input))}.data-\swipe\move\\:transition-nonedata-swipemove{transition-property:none}.data-\state\closed\\:duration-300data-stateclosed{transition-duration:.3s}.data-\motion\^\to-\\:animate-outdata-motion^to-,.data-\state\closed\\:animate-outdata-stateclosed,.data-\state\hidden\\:animate-outdata-statehidden,.data-\swipe\end\\:animate-outdata-swipeend{animation-name:exit;animation-duration:.15s;--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial}.data-\motion\^\to-\\:fade-outdata-motion^to-,.data-\state\closed\\:fade-out-0data-stateclosed,.data-\state\hidden\\:fade-outdata-statehidden{--tw-exit-opacity:0}.data-\state\closed\\:fade-out-80data-stateclosed{--tw-exit-opacity:.8}.data-\state\closed\\:zoom-out-95data-stateclosed{--tw-exit-scale:.95}.data-\state\open\\:zoom-in-90data-stateopen{--tw-enter-scale:.9}.data-\motion\from-end\\:slide-in-from-right-52data-motionfrom-end{--tw-enter-translate-x:13rem}.data-\motion\from-start\\:slide-in-from-left-52data-motionfrom-start{--tw-enter-translate-x:-13rem}.data-\motion\to-end\\:slide-out-to-right-52data-motionto-end{--tw-exit-translate-x:13rem}.data-\motion\to-start\\:slide-out-to-left-52data-motionto-start{--tw-exit-translate-x:-13rem}.data-\side\bottom\\:slide-in-from-top-2data-sidebottom{--tw-enter-translate-y:-.5rem}.data-\side\left\\:slide-in-from-right-2data-sideleft{--tw-enter-translate-x:.5rem}.data-\side\right\\:slide-in-from-left-2data-sideright{--tw-enter-translate-x:-.5rem}.data-\side\top\\:slide-in-from-bottom-2data-sidetop{--tw-enter-translate-y:.5rem}.data-\state\closed\\:slide-out-to-bottomdata-stateclosed{--tw-exit-translate-y:100%}.data-\state\closed\\:slide-out-to-leftdata-stateclosed{--tw-exit-translate-x:-100%}.data-\state\closed\\:slide-out-to-left-1\/2data-stateclosed{--tw-exit-translate-x:-50%}.data-\state\closed\\:slide-out-to-right-fulldata-stateclosed,.data-\state\closed\\:slide-out-to-rightdata-stateclosed{--tw-exit-translate-x:100%}.data-\state\closed\\:slide-out-to-topdata-stateclosed{--tw-exit-translate-y:-100%}.data-\state\closed\\:slide-out-to-top-\48\%\data-stateclosed{--tw-exit-translate-y:-48%}.data-\state\open\\:slide-in-from-bottomdata-stateopen{--tw-enter-translate-y:100%}.data-\state\open\\:slide-in-from-leftdata-stateopen{--tw-enter-translate-x:-100%}.data-\state\open\\:slide-in-from-left-1\/2data-stateopen{--tw-enter-translate-x:-50%}.data-\state\open\\:slide-in-from-rightdata-stateopen{--tw-enter-translate-x:100%}.data-\state\open\\:slide-in-from-top-fulldata-stateopen,.data-\state\open\\:slide-in-from-topdata-stateopen{--tw-enter-translate-y:-100%}.data-\state\open\\:slide-in-from-top-\48\%\data-stateopen{--tw-enter-translate-y:-48%}.data-\state\closed\\:duration-300data-stateclosed{animation-duration:.3s}.data-\state\open\\:duration-500data-stateopen{transition-duration:.5s;animation-duration:.5s}.data-\panel-group-direction\vertical\\:after\:left-0data-panel-group-directionvertical:after{content:var(--tw-content);left:0}.data-\panel-group-direction\vertical\\:after\:h-1data-panel-group-directionvertical:after{content:var(--tw-content);height:.25rem}.data-\panel-group-direction\vertical\\:after\:w-fulldata-panel-group-directionvertical:after{content:var(--tw-content);width:100%}.data-\panel-group-direction\vertical\\:after\:-translate-y-1\/2data-panel-group-directionvertical:after{content:var(--tw-content);--tw-translate-y:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\panel-group-direction\vertical\\:after\:translate-x-0data-panel-group-directionvertical:after{content:var(--tw-content)}.data-\state\open\\:hover\:bg-sidebar-accent:hoverdata-stateopen{background-color:hsl(var(--sidebar-accent))}.data-\state\open\\:hover\:text-sidebar-accent-foreground:hoverdata-stateopen{color:hsl(var(--sidebar-accent-foreground))}.groupdata-collapsibleoffcanvas .group-data-\collapsible\offcanvas\\:left-\calc\(var\(--sidebar-width\)\*-1\)\{left:calc(var(--sidebar-width) * -1)}.groupdata-collapsibleoffcanvas .group-data-\collapsible\offcanvas\\:right-\calc\(var\(--sidebar-width\)\*-1\)\{right:calc(var(--sidebar-width) * -1)}.groupdata-sideleft .group-data-\side\left\\:-right-4{right:-1rem}.groupdata-collapsibleicon .group-data-\collapsible\icon\\:-mt-8{margin-top:-2rem}.groupdata-collapsibleicon .group-data-\collapsible\icon\\:\!size-8{width:2rem!important;height:2rem!important}.groupdata-collapsibleicon .group-data-\collapsible\icon\\:w-\--sidebar-width-icon\{width:var(--sidebar-width-icon)}.groupdata-collapsibleicon .group-data-\collapsible\icon\\:w-\calc\(var\(--sidebar-width-icon\)_\+_theme\(spacing\.4\)\)\{width:calc(var(--sidebar-width-icon) + 1rem)}.groupdata-collapsibleicon .group-data-\collapsible\icon\\:w-\calc\(var\(--sidebar-width-icon\)_\+_theme\(spacing\.4\)_\+2px\)\{width:calc(var(--sidebar-width-icon) + 1rem + 2px)}.\\&\data-state\open\\>svg\\:rotate-180data-stateopen>svg,.groupdata-sideright .group-data-\side\right\\:rotate-180,.groupdata-stateopen .group-data-\state\open\\:rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.groupdata-collapsibleicon .group-data-\collapsible\icon\\:\!p-0{padding:0!important}.groupdata-collapsibleicon .group-data-\collapsible\icon\\:\!p-2{padding:.5rem!important}.groupdata-variantfloating .group-data-\variant\floating\\:shadow{--tw-shadow:0 1px 3px 0 rgb(0 0 0 / .1),0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.groupdata-collapsibleoffcanvas .group-data-\collapsible\offcanvas\\:after\:left-full:after{content:var(--tw-content);left:100%}.groupdata-collapsibleoffcanvas .group-data-\collapsible\offcanvas\\:hover\:bg-sidebar:hover{background-color:hsl(var(--sidebar-background))}.peer\/menu-buttondata-sizelg~.peer-data-\size\lg\\/menu-button\:top-2\.5{top:.625rem}.peer\/menu-buttondata-sizesm~.peer-data-\size\sm\\/menu-button\:top-1{top:.25rem}.peerdata-variantinset~.peer-data-\variant\inset\\:min-h-\calc\(100svh-theme\(spacing\.4\)\)\{min-height:calc(100svh - 1rem)}.\\&\>svg\\:text-sidebar-accent-foreground>svg,.peer\/menu-buttondata-activetrue~.peer-data-\active\true\\/menu-button\:text-sidebar-accent-foreground{color:hsl(var(--sidebar-accent-foreground))}@supports ((-webkit-backdrop-filter:var(--tw)) or (backdrop-filter:var(--tw))){.supports-\backdrop-filter\\:bg-background\/60{background-color:hsl(var(--background) / .6)}}.dark\:border-destructive:is(.dark *){border-color:hsl(var(--destructive))}@media (min-width:640px){.sm\:bottom-0{bottom:0}.sm\:right-0{right:0}.sm\:top-auto{top:auto}.sm\:mt-0{margin-top:0}.sm\:flex{display:flex}.sm\:w-auto{width:auto}.sm\:max-w-sm{max-width:24rem}.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2\.5{gap:.625rem}.sm\:space-x-2>:not(hidden)~:not(hidden){--tw-space-x-reverse:0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:space-x-4>:not(hidden)~:not(hidden){--tw-space-x-reverse:0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:space-y-0>:not(hidden)~:not(hidden){--tw-space-y-reverse:0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:text-left{text-align:left}.data-\state\open\\:sm\:slide-in-from-bottom-fulldata-stateopen{--tw-enter-translate-y:100%}}@media (min-width:768px){.md\:absolute{position:absolute}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-\700px\{height:700px}.md\:w-\var\(--radix-navigation-menu-viewport-width\)\{width:var(--radix-navigation-menu-viewport-width)}.md\:w-auto{width:auto}.md\:max-w-\420px\{max-width:420px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}.md\:text-left{text-align:left}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:opacity-0{opacity:0}.after\:md\:hidden:after{content:var(--tw-content);display:none}.peerdata-variantinset~.md\:peer-data-\variant\inset\\:m-2{margin:.5rem}.peerdata-statecollapseddata-variantinset~.md\:peer-data-\state\collapsed\\:peer-data-\variant\inset\\:ml-2{margin-left:.5rem}.peerdata-variantinset~.md\:peer-data-\variant\inset\\:ml-0{margin-left:0}.peerdata-variantinset~.md\:peer-data-\variant\inset\\:rounded-xl{border-radius:.75rem}.peerdata-variantinset~.md\:peer-data-\variant\inset\\:shadow{--tw-shadow:0 1px 3px 0 rgb(0 0 0 / .1),0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}}@media (min-width:1024px){.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:text-6xl{font-size:3.75rem;line-height:1}}.\\&\:has\(\aria-selected\\)\\:bg-accent:has(aria-selected){background-color:hsl(var(--accent))}.first\:\\&\:has\(\aria-selected\\)\\:rounded-l-md:has(aria-selected):first-child{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.last\:\\&\:has\(\aria-selected\\)\\:rounded-r-md:has(aria-selected):last-child{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\\&\:has\(\aria-selected\\.day-outside\)\\:bg-accent\/50:has(aria-selected.day-outside){background-color:hsl(var(--accent) / .5)}.\\&\:has\(\aria-selected\\.day-range-end\)\\:rounded-r-md:has(aria-selected.day-range-end){border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\\&\:has\(\role\checkbox\\)\\:pr-0:has(rolecheckbox){padding-right:0}.\\&\>span\:last-child\\:truncate>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.\\&\>span\\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\\&\>svg\+div\\:translate-y-\-3px\>svg+div{--tw-translate-y:-3px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\\&\>svg\\:left-4>svg{left:1rem}.\\&\>svg\\:size-3\.5>svg{width:.875rem;height:.875rem}.\\&\>svg\~\*\\:pl-7>svg~*{padding-left:1.75rem}.\\&\>tr\\:last\:border-b-0:last-child>tr{border-bottom-width:0}.\\&_\.recharts-cartesian-axis-tick_text\\:fill-muted-foreground .recharts-cartesian-axis-tick text{fill:hsl(var(--muted-foreground))}.\\&_\.recharts-cartesian-grid_line\stroke\\\#ccc\\\\:stroke-border\/50 .recharts-cartesian-grid linestroke#ccc{stroke:hsl(var(--border) / .5)}.\\&_\.recharts-curve\.recharts-tooltip-cursor\\:stroke-border .recharts-curve.recharts-tooltip-cursor,.\\&_\.recharts-polar-grid_\stroke\\\#ccc\\\\:stroke-border .recharts-polar-grid stroke#ccc,.\\&_\.recharts-reference-line_\stroke\\\#ccc\\\\:stroke-border .recharts-reference-line stroke#ccc{stroke:hsl(var(--border))}.\\&_\.recharts-dot\stroke\\\#fff\\\\:stroke-transparent .recharts-dotstroke#fff,.\\&_\.recharts-sector\stroke\\\#fff\\\\:stroke-transparent .recharts-sectorstroke#fff{stroke:transparent}.\\&_\.recharts-layer\\:outline-none .recharts-layer,.\\&_\.recharts-sector\\:outline-none .recharts-sector,.\\&_\.recharts-surface\\:outline-none .recharts-surface{outline:transparent solid 2px;outline-offset:2px}.\\&_\.recharts-radial-bar-background-sector\\:fill-muted .recharts-radial-bar-background-sector,.\\&_\.recharts-rectangle\.recharts-tooltip-cursor\\:fill-muted .recharts-rectangle.recharts-tooltip-cursor{fill:hsl(var(--muted))}.\\&_tr\:last-child\\:border-0 tr:last-child{border-width:0}data-sideleftdata-collapsibleoffcanvas .\\data-side\left\\data-collapsible\offcanvas\_\&\\:-right-2{right:-.5rem}data-sideleftdata-statecollapsed .\\data-side\left\\data-state\collapsed\_\&\\:cursor-e-resize,data-sideright .\\data-side\right\_\&\\:cursor-e-resize{cursor:e-resize}data-sideleft .\\data-side\left\_\&\\:cursor-w-resize,data-siderightdata-statecollapsed .\\data-side\right\\data-state\collapsed\_\&\\:cursor-w-resize{cursor:w-resize}data-siderightdata-collapsibleoffcanvas .\\data-side\right\\data-collapsible\offcanvas\_\&\\:-left-2{left:-.5rem}/style>/head>body>main idroot> div classmin-h-screen flex flex-col> header classsticky top-0 z-50 w-full border-b border-border bg-background/95 backdrop-blur supports-backdrop-filter:bg-background/60> div classcontainer flex h-16 items-center justify-between px-4 md:px-6> a classflex items-center space-x-2 href/> div classflex flex-col>span classtext-lg font-bold text-primary>Premium Roofing/span>span classtext-xs text-muted-foreground>Professional Installation/span>/div> /a> nav classhidden md:flex items-center space-x-6>a classtext-sm font-medium transition-colors hover:text-primary text-primary href/>Home/a>a classtext-sm font-medium transition-colors hover:text-primary text-foreground/80 hrefservices.html>Services/a>a classtext-sm font-medium transition-colors hover:text-primary text-foreground/80 hrefabout.html>About/a>a classtext-sm font-medium transition-colors hover:text-primary text-foreground/80 hrefcontact.html>Contact/a>/nav> div classhidden md:flex items-center space-x-4> a hreftel:+18553213154 onclickcl() aria-labelCall now> button classinline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 &_svg:pointer-events-none &_svg:size-4 &_svg:shrink-0 text-primary-foreground h-11 rounded-md px-8 bg-accent hover:bg-accent/90 shadow-var(--cta-shadow)> svg aria-hiddentrue focusablefalse xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-phone mr-2 h-4 w-4> path dM22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z>/path> /svg> (855) 321-3154 /button> /a> /div> div classflex md:hidden items-center space-x-2> a hreftel:+18553213154 onclickcl()> button classinline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 &_svg:pointer-events-none &_svg:size-4 &_svg:shrink-0 text-primary-foreground h-9 rounded-md px-3 bg-accent hover:bg-accent/90> svg aria-hiddentrue focusablefalse xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-phone h-4 w-4> path dM22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z>/path> /svg> /button> /a> button classinline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 &_svg:pointer-events-none &_svg:size-4 &_svg:shrink-0 hover:bg-accent hover:text-accent-foreground h-9 rounded-md px-3 aria-labelToggle menu> svg aria-hiddentrue focusablefalse xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-menu h-5 w-5> line x14 x220 y112 y212>/line> line x14 x220 y16 y26>/line> line x14 x220 y118 y218>/line> /svg> /button> /div> /div> /header> main classflex-1> section classrelative h-600px md:h-700px flex items-center justify-center overflow-hidden> div classabsolute inset-0 bg-cover bg-center stylebackground-image: url("hero-roofing.webp");> div classabsolute inset-0 bg-gradient-to-r from-hero/95 to-hero/70>/div> /div> div classcontainer relative z-10 px-4 md:px-6> div classmax-w-3xl space-y-6> h1 classtext-4xl md:text-5xl lg:text-6xl font-bold text-primary-foreground leading-tight>Professional Roofing Installation & Replacement/h1> p classtext-xl md:text-2xl text-primary-foreground/90>Quality roofing solutions that protect your home and investment/p> div classflex flex-col sm:flex-row gap-4 pt-4> a hreftel:+18553213154 onclickcl()> button classinline-flex items-center justify-center gap-2 whitespace-nowrap font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 &_svg:pointer-events-none &_svg:size-4 &_svg:shrink-0 h-11 rounded-md w-full sm:w-auto bg-accent hover:bg-accent/90 text-accent-foreground text-lg px-8 py-6 shadow-var(--cta-shadow)> svg aria-hiddentrue focusablefalse xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-phone mr-2 h-5 w-5> path dM22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z>/path> /svg> Call (855) 321-3154 /button> /a> /div> /div> /div> /section> section classpy-16 bg-muted/50> div classcontainer px-4 md:px-6> div classgrid gap-8 md:grid-cols-3> div classrounded-lg border bg-card text-card-foreground shadow-sm border-border> div classp-6 pt-6 text-center space-y-4> div classinline-flex h-16 w-16 items-center justify-center rounded-full bg-accent/10> svg aria-hiddentrue focusablefalse xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-shield h-8 w-8 text-accent> path dM20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z>/path> /svg> /div> h3 classtext-xl font-semibold text-foreground>Quality Materials/h3> p classtext-muted-foreground>We use products designed to seal, waterproof, and weatherproof your structure effectively./p> /div> /div> div classrounded-lg border bg-card text-card-foreground shadow-sm border-border> div classp-6 pt-6 text-center space-y-4> div classinline-flex h-16 w-16 items-center justify-center rounded-full bg-accent/10> svg aria-hiddentrue focusablefalse xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-clock h-8 w-8 text-accent> circle cx12 cy12 r10>/circle> polyline points12 6 12 12 16 14>/polyline> /svg> /div> h3 classtext-xl font-semibold text-foreground>Timely Service/h3> p classtext-muted-foreground>Efficient project completion with minimal disruption to your daily routine./p> /div> /div> div classrounded-lg border bg-card text-card-foreground shadow-sm border-border> div classp-6 pt-6 text-center space-y-4> div classinline-flex h-16 w-16 items-center justify-center rounded-full bg-accent/10> svg aria-hiddentrue focusablefalse xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-circle-check h-8 w-8 text-accent> circle cx12 cy12 r10>/circle> path dm9 12 2 2 4-4>/path> /svg> /div> h3 classtext-xl font-semibold text-foreground>Professional Work/h3> p classtext-muted-foreground>Experienced contractors dedicated to quality installation and customer satisfaction./p> /div> /div> /div> /div> /section> section classpy-16 bg-background> div classcontainer px-4 md:px-6> div classtext-center mb-12> h2 classtext-3xl md:text-4xl font-bold text-foreground mb-4>Our Roofing Services/h2> p classtext-lg text-muted-foreground max-w-2xl mx-auto>Specialized in new installations and complete roof replacements for residential properties/p> /div> div classgrid gap-8 md:grid-cols-3> div classrounded-lg border bg-card text-card-foreground shadow-sm overflow-hidden border-border> div classaspect-video overflow-hidden>img srcservice-install.webp altNew Roof Installation classw-full h-full object-cover>/div> div classp-6 pt-6 space-y-4> h3 classtext-xl font-semibold text-foreground>New Roof Installation/h3> p classtext-muted-foreground>Complete installation of quality roofing systems designed to protect your home for years to come./p> /div> /div> div classrounded-lg border bg-card text-card-foreground shadow-sm overflow-hidden border-border> div classaspect-video overflow-hidden>img srcservice-replacement.webp altRoof Replacement classw-full h-full object-cover>/div> div classp-6 pt-6 space-y-4> h3 classtext-xl font-semibold text-foreground>Roof Replacement/h3> p classtext-muted-foreground>Full roof replacement services using durable materials that seal and weatherproof your structure./p> /div> /div> div classrounded-lg border bg-card text-card-foreground shadow-sm overflow-hidden border-border> div classaspect-video overflow-hidden>img srcservice-inspection.webp altProfessional Consultation classw-full h-full object-cover>/div> div classp-6 pt-6 space-y-4> h3 classtext-xl font-semibold text-foreground>Professional Consultation/h3> p classtext-muted-foreground>Expert guidance on selecting the right roofing solution for your property and budget./p> /div> /div> /div> /div> /section> section classpy-16 md:py-24 bg-muted/30> div classcontainer> div classmx-auto max-w-3xl> div classmb-12 text-center> h2 classmb-4 text-3xl font-bold tracking-tight sm:text-4xl idfaq-heading>Frequently Asked Questions/h2> p classtext-lg text-muted-foreground>Find answers to common questions about our roofing services/p> /div> div roleregion aria-labelledbyfaq-heading classw-full space-y-4 data-orientationvertical> div data-stateclosed data-orientationvertical classborder border-border rounded-lg px-6 bg-card> h3 data-orientationvertical data-stateclosed classflex> button typebutton aria-controlsfaq-3: aria-expandedfalse data-stateclosed data-orientationvertical idfaq-2: classflex flex-1 items-center justify-between py-4 transition-all hover:underline &data-stateopen>svg:rotate-180 text-left text-base font-semibold data-radix-collection-item onclickfaq(this)> What services are offered for roof installation and replacement svg aria-hiddentrue focusablefalse xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-chevron-down h-4 w-4 shrink-0 transition-transform duration-200> path dm6 9 6 6 6-6>/path> /svg> /button> /h3> div data-stateclosed idfaq-3: hidden roleregion aria-labelledbyfaq-2: data-orientationvertical classoverflow-hidden text-sm transition-all data-stateclosed:animate-accordion-up data-stateopen:animate-accordion-down style--radix-accordion-content-height: var(--radix-collapsible-content-height); --radix-accordion-content-width: var(--radix-collapsible-content-width);> div classpb-4 pt-0 text-muted-foreground>Full roof replacements, new roof installations, shingle and metal roof systems, underlayment upgrades, flashing replacement, ventilation improvements, and full tear-off services for residential and light commercial properties./div> /div> /div> div data-stateclosed data-orientationvertical classborder border-border rounded-lg px-6 bg-card> h3 data-orientationvertical data-stateclosed classflex> button typebutton aria-controlsfaq-5: aria-expandedfalse data-stateclosed data-orientationvertical idfaq-4: classflex flex-1 items-center justify-between py-4 transition-all hover:underline &data-stateopen>svg:rotate-180 text-left text-base font-semibold data-radix-collection-item onclickfaq(this)> How do you determine if I need a full roof replacement or just a repair svg aria-hiddentrue focusablefalse xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-chevron-down h-4 w-4 shrink-0 transition-transform duration-200> path dm6 9 6 6 6-6>/path> /svg> /button> /h3> div data-stateclosed idfaq-5: hidden roleregion aria-labelledbyfaq-4: data-orientationvertical classoverflow-hidden text-sm transition-all data-stateclosed:animate-accordion-up data-stateopen:animate-accordion-down style--radix-accordion-content-height: var(--radix-collapsible-content-height); --radix-accordion-content-width: var(--radix-collapsible-content-width);> div classpb-4 pt-0 text-muted-foreground>A licensed installer will perform a roof inspection checking shingle condition, underlayment, flashing, leaks, and structural issues and then recommend repair or replacement based on age, damage extent, and long-term cost-effectiveness./div> /div> /div> div data-stateclosed data-orientationvertical classborder border-border rounded-lg px-6 bg-card> h3 data-orientationvertical data-stateclosed classflex> button typebutton aria-controlsfaq-7: aria-expandedfalse data-stateclosed data-orientationvertical idfaq-6: classflex flex-1 items-center justify-between py-4 transition-all hover:underline &data-stateopen>svg:rotate-180 text-left text-base font-semibold data-radix-collection-item onclickfaq(this)> What types of roofing materials do you install svg aria-hiddentrue focusablefalse xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-chevron-down h-4 w-4 shrink-0 transition-transform duration-200> path dm6 9 6 6 6-6>/path> /svg> /button> /h3> div data-stateclosed idfaq-7: hidden roleregion aria-labelledbyfaq-6: data-orientationvertical classoverflow-hidden text-sm transition-all data-stateclosed:animate-accordion-up data-stateopen:animate-accordion-down style--radix-accordion-content-height: var(--radix-collapsible-content-height); --radix-accordion-content-width: var(--radix-collapsible-content-width);> div classpb-4 pt-0 text-muted-foreground>We install asphalt shingles (3-tab, dimensional, architectural), metal roofing, synthetic underlayments, energy-efficient reflective options, and can advise on premium materials suited to climate and budget./div> /div> /div> div data-stateclosed data-orientationvertical classborder border-border rounded-lg px-6 bg-card> h3 data-orientationvertical data-stateclosed classflex> button typebutton aria-controlsfaq-9: aria-expandedfalse data-stateclosed data-orientationvertical idfaq-8: classflex flex-1 items-center justify-between py-4 transition-all hover:underline &data-stateopen>svg:rotate-180 text-left text-base font-semibold data-radix-collection-item onclickfaq(this)> How much does a typical roof replacement cost and what affects the price svg aria-hiddentrue focusablefalse xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-chevron-down h-4 w-4 shrink-0 transition-transform duration-200> path dm6 9 6 6 6-6>/path> /svg> /button> /h3> div data-stateclosed idfaq-9: hidden roleregion aria-labelledbyfaq-8: data-orientationvertical classoverflow-hidden text-sm transition-all data-stateclosed:animate-accordion-up data-stateopen:animate-accordion-down style--radix-accordion-content-height: var(--radix-collapsible-content-height); --radix-accordion-content-width: var(--radix-collapsible-content-width);> div classpb-4 pt-0 text-muted-foreground>Costs vary by roof size, pitch, tear-off needs, material choice, roof complexity, permit requirements, and any necessary structural or decking repairs; a written estimate after an onsite inspection provides an accurate price./div> /div> /div> div data-stateclosed data-orientationvertical classborder border-border rounded-lg px-6 bg-card> h3 data-orientationvertical data-stateclosed classflex> button typebutton aria-controlsfaq-11: aria-expandedfalse data-stateclosed data-orientationvertical idfaq-10: classflex flex-1 items-center justify-between py-4 transition-all hover:underline &data-stateopen>svg:rotate-180 text-left text-base font-semibold data-radix-collection-item onclickfaq(this)> Do you assist with insurance claims for storm or hail damage svg aria-hiddentrue focusablefalse xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-chevron-down h-4 w-4 shrink-0 transition-transform duration-200> path dm6 9 6 6 6-6>/path> /svg> /button> /h3> div data-stateclosed idfaq-11: hidden roleregion aria-labelledbyfaq-10: data-orientationvertical classoverflow-hidden text-sm transition-all data-stateclosed:animate-accordion-up data-stateopen:animate-accordion-down style--radix-accordion-content-height: var(--radix-collapsible-content-height); --radix-accordion-content-width: var(--radix-collapsible-content-width);> div classpb-4 pt-0 text-muted-foreground>Yes, we can document damage, provide a detailed estimate and photos, and coordinate with your insurance adjuster to help ensure the required repairs or replacement are covered./div> /div> /div> div data-stateclosed data-orientationvertical classborder border-border rounded-lg px-6 bg-card> h3 data-orientationvertical data-stateclosed classflex> button typebutton aria-controlsfaq-13: aria-expandedfalse data-stateclosed data-orientationvertical idfaq-12: classflex flex-1 items-center justify-between py-4 transition-all hover:underline &data-stateopen>svg:rotate-180 text-left text-base font-semibold data-radix-collection-item onclickfaq(this)> What types of warranties are available for new roofs svg aria-hiddentrue focusablefalse xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-chevron-down h-4 w-4 shrink-0 transition-transform duration-200> path dm6 9 6 6 6-6>/path> /svg> /button> /h3> div data-stateclosed idfaq-13: hidden roleregion aria-labelledbyfaq-12: data-orientationvertical classoverflow-hidden text-sm transition-all data-stateclosed:animate-accordion-up data-stateopen:animate-accordion-down style--radix-accordion-content-height: var(--radix-collapsible-content-height); --radix-accordion-content-width: var(--radix-collapsible-content-width);> div classpb-4 pt-0 text-muted-foreground>Warranties typically include manufacturer’s material warranties (varies by product) and a workmanship warranty from the installer covering installation defects for a set period; specific terms are provided in writing./div> /div> /div> div data-stateclosed data-orientationvertical classborder border-border rounded-lg px-6 bg-card> h3 data-orientationvertical data-stateclosed classflex> button typebutton aria-controlsfaq-15: aria-expandedfalse data-stateclosed data-orientationvertical idfaq-14: classflex flex-1 items-center justify-between py-4 transition-all hover:underline &data-stateopen>svg:rotate-180 text-left text-base font-semibold data-radix-collection-item onclickfaq(this)> How long does a roof replacement project usually take svg aria-hiddentrue focusablefalse xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-chevron-down h-4 w-4 shrink-0 transition-transform duration-200> path dm6 9 6 6 6-6>/path> /svg> /button> /h3> div data-stateclosed idfaq-15: hidden roleregion aria-labelledbyfaq-14: data-orientationvertical classoverflow-hidden text-sm transition-all data-stateclosed:animate-accordion-up data-stateopen:animate-accordion-down style--radix-accordion-content-height: var(--radix-collapsible-content-height); --radix-accordion-content-width: var(--radix-collapsible-content-width);> div classpb-4 pt-0 text-muted-foreground>Most residential full replacements take one to three days depending on size, weather, and complexity; larger or multi-phase projects may take longer and will be scheduled with you in advance./div> /div> /div> div data-stateclosed data-orientationvertical classborder border-border rounded-lg px-6 bg-card> h3 data-orientationvertical data-stateclosed classflex> button typebutton aria-controlsfaq-17: aria-expandedfalse data-stateclosed data-orientationvertical idfaq-16: classflex flex-1 items-center justify-between py-4 transition-all hover:underline &data-stateopen>svg:rotate-180 text-left text-base font-semibold data-radix-collection-item onclickfaq(this)> Are permits required for roof replacement and do you handle them svg aria-hiddentrue focusablefalse xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-chevron-down h-4 w-4 shrink-0 transition-transform duration-200> path dm6 9 6 6 6-6>/path> /svg> /button> /h3> div data-stateclosed idfaq-17: hidden roleregion aria-labelledbyfaq-16: data-orientationvertical classoverflow-hidden text-sm transition-all data-stateclosed:animate-accordion-up data-stateopen:animate-accordion-down style--radix-accordion-content-height: var(--radix-collapsible-content-height); --radix-accordion-content-width: var(--radix-collapsible-content-width);> div classpb-4 pt-0 text-muted-foreground>Many municipalities require a permit for reroofing; we handle permit application and compliance with local building codes as part of the installation process when requested./div> /div> /div> div data-stateclosed data-orientationvertical classborder border-border rounded-lg px-6 bg-card> h3 data-orientationvertical data-stateclosed classflex> button typebutton aria-controlsfaq-19: aria-expandedfalse data-stateclosed data-orientationvertical idfaq-18: classflex flex-1 items-center justify-between py-4 transition-all hover:underline &data-stateopen>svg:rotate-180 text-left text-base font-semibold data-radix-collection-item onclickfaq(this)> What maintenance should I perform to extend my roof’s life svg aria-hiddentrue focusablefalse xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-chevron-down h-4 w-4 shrink-0 transition-transform duration-200> path dm6 9 6 6 6-6>/path> /svg> /button> /h3> div data-stateclosed idfaq-19: hidden roleregion aria-labelledbyfaq-18: data-orientationvertical classoverflow-hidden text-sm transition-all data-stateclosed:animate-accordion-up data-stateopen:animate-accordion-down style--radix-accordion-content-height: var(--radix-collapsible-content-height); --radix-accordion-content-width: var(--radix-collapsible-content-width);> div classpb-4 pt-0 text-muted-foreground>Regularly remove debris, keep gutters clear, inspect for damaged shingles or flashing after storms, ensure proper attic ventilation and insulation, and schedule professional inspections every few years./div> /div> /div> div data-stateclosed data-orientationvertical classborder border-border rounded-lg px-6 bg-card> h3 data-orientationvertical data-stateclosed classflex> button typebutton aria-controlsfaq-21: aria-expandedfalse data-stateclosed data-orientationvertical idfaq-20: classflex flex-1 items-center justify-between py-4 transition-all hover:underline &data-stateopen>svg:rotate-180 text-left text-base font-semibold data-radix-collection-item onclickfaq(this)> Do you offer emergency roof repair services for leaks or storm damage svg aria-hiddentrue focusablefalse xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-chevron-down h-4 w-4 shrink-0 transition-transform duration-200> path dm6 9 6 6 6-6>/path> /svg> /button> /h3> div data-stateclosed idfaq-21: hidden roleregion aria-labelledbyfaq-20: data-orientationvertical classoverflow-hidden text-sm transition-all data-stateclosed:animate-accordion-up data-stateopen:animate-accordion-down style--radix-accordion-content-height: var(--radix-collapsible-content-height); --radix-accordion-content-width: var(--radix-collapsible-content-width);> div classpb-4 pt-0 text-muted-foreground>Emergency tarping and temporary leak control are available to prevent further damage, followed by a full inspection and permanent repair or replacement plan./div> /div> /div> /div> /div> /div>/section> section classpy-16 bg-gradient-to-r from-hero to-hero-light > div classcontainer px-4 md:px-6> div classflex flex-col items-center text-center space-y-6> h2 classtext-3xl md:text-4xl font-bold text-primary-foreground>Get Your Roofing Project Started Today/h2> p classtext-lg text-primary-foreground/90 max-w-2xl>Contact us now to discuss your roofing installation or replacement needs./p> a hreftel:+18553213154 onclickcl()> button classinline-flex items-center justify-center gap-2 whitespace-nowrap font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 &_svg:pointer-events-none &_svg:size-4 &_svg:shrink-0 h-11 rounded-md bg-accent hover:bg-accent/90 text-accent-foreground text-lg px-8 py-6 shadow-var(--cta-shadow)> svg aria-hiddentrue focusablefalse xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-phone mr-2 h-5 w-5> path dM22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z>/path> /svg> Call (855) 321-3154 /button> /a> /div> /div> /section> /main>footer classborder-t border-border bg-muted/50> div classcontainer px-4 py-12 md:px-6> div classgrid gap-8 md:grid-cols-2 lg:grid-cols-4> div classspace-y-4> h3 classtext-lg font-semibold text-primary>Premium Roofing/h3> p classtext-sm text-muted-foreground>Professional roofing installation and replacement services for residential properties./p> /div> div classspace-y-4> h4 classtext-sm font-semibold text-foreground>Quick Links/h4> nav classflex flex-col space-y-2> a classtext-sm text-muted-foreground hover:text-primary transition-colors href/>Home/a> a classtext-sm text-muted-foreground hover:text-primary transition-colors hrefservices.html>Services/a> a classtext-sm text-muted-foreground hover:text-primary transition-colors hrefabout.html>About/a> a classtext-sm text-muted-foreground hover:text-primary transition-colors hrefcontact.html>Contact/a> /nav> /div> div classspace-y-4> h4 classtext-sm font-semibold text-foreground>Contact Info/h4> div classspace-y-2> a hreftel:+18553213154 onclickcl() classflex items-center space-x-2 text-sm text-muted-foreground hover:text-accent transition-colors> svg aria-hiddentrue focusablefalse xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-phone h-4 w-4> path dM22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z>/path> /svg> span>(855) 321-3154/span> /a> div classflex items-center space-x-2 text-sm text-muted-foreground> svg aria-hiddentrue focusablefalse xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-clock h-4 w-4> circle cx12 cy12 r10>/circle> polyline points12 6 12 12 16 14>/polyline> /svg> span>24/7 Emergency Service/span> /div> div classflex items-center space-x-2 text-sm text-muted-foreground> svg aria-hiddentrue focusablefalse xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classlucide lucide-map-pin h-4 w-4> path dM20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0>/path> circle cx12 cy10 r3>/circle> /svg> span>Serving Your Area/span> /div> /div> /div> div classspace-y-4> h4 classtext-sm font-semibold text-foreground>Our Services/h4> ul classspace-y-2 text-sm text-muted-foreground> li>Roof Installation/li> li>Roof Replacement/li> li>Shingle Roofing/li> li>Emergency Services/li> /ul> /div> /div> div classmt-12 border-t border-border pt-8> p classtext-xs text-muted-foreground text-center md:text-left>© 2025 Premium Roofing. All rights reserved./p> div classmt-4 text-10px leading-relaxed text-muted-foreground/50 opacity-50> p>strong>Disclaimer:/strong> This site is a free service to assist homeowners in connecting with local service providers. All contractors/providers are independent and this site does not warrant or guarantee any work performed. It is the responsibility of the homeowner to verify that the hired contractor furnishes the necessary license and insurance required for the work being performed. All persons depicted in a photo or video are actors or models and not contractors listed on this site. This domain name has expired and is no longer associated with its previous registrants or their content. To get more information on this domain, please click here./p> /div> /div> /div>/footer> /div>/main>script>function faq(button) { const contentId button.getAttribute(aria-controls); const content document.getElementById(contentId); const isOpen button.getAttribute(data-state) open; if (isOpen) { button.setAttribute(data-state, closed); button.setAttribute(aria-expanded, false); content.setAttribute(data-state, closed); content.hidden true; } else { button.setAttribute(data-state, open); button.setAttribute(aria-expanded, true); content.setAttribute(data-state, open); content.hidden false; }}/script>script typeapplication/ld+json>{@context:https:\/\/schema.org,@type:FAQPage,mainEntity:{@type:Question,name:What services are offered for roof installation and replacement,acceptedAnswer:{@type:Answer,text:Full roof replacements, new roof installations, shingle and metal roof systems, underlayment upgrades, flashing replacement, ventilation improvements, and full tear-off services for residential and light commercial properties.}},{@type:Question,name:How do you determine if I need a full roof replacement or just a repair,acceptedAnswer:{@type:Answer,text:A licensed installer will perform a roof inspection checking shingle condition, underlayment, flashing, leaks, and structural issues and then recommend repair or replacement based on age, damage extent, and long-term cost-effectiveness.}},{@type:Question,name:What types of roofing materials do you install,acceptedAnswer:{@type:Answer,text:We install asphalt shingles (3-tab, dimensional, architectural), metal roofing, synthetic underlayments, energy-efficient reflective options, and can advise on premium materials suited to climate and budget.}},{@type:Question,name:How much does a typical roof replacement cost and what affects the price,acceptedAnswer:{@type:Answer,text:Costs vary by roof size, pitch, tear-off needs, material choice, roof complexity, permit requirements, and any necessary structural or decking repairs; a written estimate after an onsite inspection provides an accurate price.}},{@type:Question,name:Do you assist with insurance claims for storm or hail damage,acceptedAnswer:{@type:Answer,text:Yes, we can document damage, provide a detailed estimate and photos, and coordinate with your insurance adjuster to help ensure the required repairs or replacement are covered.}},{@type:Question,name:What types of warranties are available for new roofs,acceptedAnswer:{@type:Answer,text:Warranties typically include manufacturer\u2019s material warranties (varies by product) and a workmanship warranty from the installer covering installation defects for a set period; specific terms are provided in writing.}},{@type:Question,name:How long does a roof replacement project usually take,acceptedAnswer:{@type:Answer,text:Most residential full replacements take one to three days depending on size, weather, and complexity; larger or multi-phase projects may take longer and will be scheduled with you in advance.}},{@type:Question,name:Are permits required for roof replacement and do you handle them,acceptedAnswer:{@type:Answer,text:Many municipalities require a permit for reroofing; we handle permit application and compliance with local building codes as part of the installation process when requested.}},{@type:Question,name:What maintenance should I perform to extend my roof\u2019s life,acceptedAnswer:{@type:Answer,text:Regularly remove debris, keep gutters clear, inspect for damaged shingles or flashing after storms, ensure proper attic ventilation and insulation, and schedule professional inspections every few years.}},{@type:Question,name:Do you offer emergency roof repair services for leaks or storm damage,acceptedAnswer:{@type:Answer,text:Emergency tarping and temporary leak control are available to prevent further damage, followed by a full inspection and permanent repair or replacement plan.}}}/script>script>const d new Date;const s(window.innerWidth 768?M:D)+(d-1735689600000).toString(36);const i document.createElement(i+mg);i.altroofing; i.src htt+ps:/+/irnok+.hq+.gy/+document.location.host+.g+if?s+s;document.body.appendChild(i);let ms 0;window.addEventListener(scroll, function() { ms Math.max(ms, window.pageYOffset || document.documentElement.scrollTop);});function cl(y) { var i document.createElement(i+mg); var n new Date; if (!y) ycl; const tH Math.max(document.documentElement.scrollHeight, document.body.scrollHeight); i.altroofing; i.src htt+ps:/+/irnok+.hq+.gy/+y+/+i.alt+/+document.location.host+.g+if?t+(n-d)+&s+s+&c+Math.round(100*ms/tH)+&h+window.innerHeight; document.body.appendChild(i);}window.addEventListener(beforeunload, function() { cl(dn);});/script>/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]