Help
RSS
API
Feed
Maltego
Contact
Domain > aaroofingin.com
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2025-12-08
104.21.78.236
(
ClassC
)
Port 80
HTTP/1.1 200 OKDate: Mon, 08 Dec 2025 23:45:19 GMTContent-Type: text/htmlTransfer-Encoding: chunkedConnection: keep-aliveServer: cloudflareLast-Modified: Mon, 08 Dec 2025 02:21:21 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?sxk%2BXv4QRSMJYDlauZQ0V3NYadvw6hZSsCJbJFbjCsLNmnf3CxGs%2FZuvnu6SLBUng9RpUhLDnV1G812NqFut6B1CdZqtOetMjym9FqPA%3D}}cf-cache-status: DYNAMICCF-RAY: 9ab022bf2bbfefd6-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://aaroofingin.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 onclickcl() hreftel:+18553213154> 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> 1-855-321-3154 /button> /a> /div> div classflex md:hidden items-center space-x-2> a onclickcl() hreftel:+18553213154 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-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 onclickcl() hreftel:+18553213154 aria-labelCall now> 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 1-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 do you provide? 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>Professional roofing services including residential and light commercial roof installation and replacement, roof repairs, storm damage mitigation, roof inspections, gutter replacement, ventilation and skylight installation, and preventative maintenance./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 can I tell if my roof needs repair or full 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-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>Common signs include persistent leaks, multiple or missing shingles, curling or blistering shingles, significant granule loss, sagging roof deck, and roofs older than their expected lifespan—schedule an inspection to determine repair versus replacement./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 roofing materials do you install and how do I choose? 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, metal roofing, clay/concrete tile, slate, and flat roofing systems (TPO/EPDM). Choice depends on budget, local climate, roof pitch, aesthetic preferences, and expected lifespan; a professional assessment will recommend the best option for your property./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 long does a typical roof replacement 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-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>Most residential roof replacements are completed in 1–3 days for average-sized homes; larger or more complex projects, permitting, weather delays, or required structural repairs can extend the timeline to a week or more./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 offer warranties and guarantees? 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—projects typically include manufacturer warranties on materials and a contractor workmanship warranty; warranty terms vary by material and job, so request written warranty details before work begins./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)> Are you licensed and insured? 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>Yes—work is performed under appropriate state/local licensing and with general liability and workers’ compensation insurance; always ask to see proof of license and insurance before hiring./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)> Do you provide emergency roof repairs after storms? 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>Yes—emergency services include temporary tarping, leak containment, and rapid assessments to prevent further damage, followed by a detailed estimate for permanent repairs or replacement./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)> How is pricing determined for a new roof? 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>Price is based on roof size (square footage), pitch and complexity, chosen materials, tear-off needs, underlayment and ventilation upgrades, disposal costs, and local permit fees; a site visit with a written estimate provides an accurate cost./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)> Can you assist with insurance claims for 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-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>Yes—we document damage with photos, provide detailed contractor estimates, meet with adjusters if needed, and can help explain scope-of-work items to support your claim./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)> What should I expect during the roofing process from estimate to completion? 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>You’ll receive an initial inspection and written estimate, scheduling and permit handling if required, site preparation, tear-off (if applicable), installation of new materials, cleanup of debris, final walkthrough, and delivery of warranty documentation./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 onclickcl() hreftel:+18553213154 aria-labelCall now> 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 1-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 onclickcl() hreftel:+18553213154 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>1-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 do you provide?,acceptedAnswer:{@type:Answer,text:Professional roofing services including residential and light commercial roof installation and replacement, roof repairs, storm damage mitigation, roof inspections, gutter replacement, ventilation and skylight installation, and preventative maintenance.}},{@type:Question,name:How can I tell if my roof needs repair or full replacement?,acceptedAnswer:{@type:Answer,text:Common signs include persistent leaks, multiple or missing shingles, curling or blistering shingles, significant granule loss, sagging roof deck, and roofs older than their expected lifespan\u2014schedule an inspection to determine repair versus replacement.}},{@type:Question,name:What roofing materials do you install and how do I choose?,acceptedAnswer:{@type:Answer,text:We install asphalt shingles, metal roofing, clay\/concrete tile, slate, and flat roofing systems (TPO\/EPDM). Choice depends on budget, local climate, roof pitch, aesthetic preferences, and expected lifespan; a professional assessment will recommend the best option for your property.}},{@type:Question,name:How long does a typical roof replacement take?,acceptedAnswer:{@type:Answer,text:Most residential roof replacements are completed in 1\u20133 days for average-sized homes; larger or more complex projects, permitting, weather delays, or required structural repairs can extend the timeline to a week or more.}},{@type:Question,name:Do you offer warranties and guarantees?,acceptedAnswer:{@type:Answer,text:Yes\u2014projects typically include manufacturer warranties on materials and a contractor workmanship warranty; warranty terms vary by material and job, so request written warranty details before work begins.}},{@type:Question,name:Are you licensed and insured?,acceptedAnswer:{@type:Answer,text:Yes\u2014work is performed under appropriate state\/local licensing and with general liability and workers\u2019 compensation insurance; always ask to see proof of license and insurance before hiring.}},{@type:Question,name:Do you provide emergency roof repairs after storms?,acceptedAnswer:{@type:Answer,text:Yes\u2014emergency services include temporary tarping, leak containment, and rapid assessments to prevent further damage, followed by a detailed estimate for permanent repairs or replacement.}},{@type:Question,name:How is pricing determined for a new roof?,acceptedAnswer:{@type:Answer,text:Price is based on roof size (square footage), pitch and complexity, chosen materials, tear-off needs, underlayment and ventilation upgrades, disposal costs, and local permit fees; a site visit with a written estimate provides an accurate cost.}},{@type:Question,name:Can you assist with insurance claims for storm damage?,acceptedAnswer:{@type:Answer,text:Yes\u2014we document damage with photos, provide detailed contractor estimates, meet with adjusters if needed, and can help explain scope-of-work items to support your claim.}},{@type:Question,name:What should I expect during the roofing process from estimate to completion?,acceptedAnswer:{@type:Answer,text:You\u2019ll receive an initial inspection and written estimate, scheduling and permit handling if required, site preparation, tear-off (if applicable), installation of new materials, cleanup of debris, final walkthrough, and delivery of warranty documentation.}}}/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: Mon, 08 Dec 2025 23:45:20 GMTContent-Type: text/htmlTransfer-Encoding: chunkedConnection: keep-aliveServer: cloudflareLast-Modified: Mon, 08 Dec 2025 02:21:21 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?sbSdB5L09i9ADpC3IwJvfLcMwZoi%2Fg1KOB1gSZzVSf6OXKUFfs%2FRosXKsHWp%2FXkaQM%2BgFjxMXvvAoyc6h43uENFWK3Sh9yaydpjaPUwebMg%3D%3D}}cf-cache-status: DYNAMICCF-RAY: 9ab022c2782ab1c2-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://aaroofingin.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 onclickcl() hreftel:+18553213154> 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> 1-855-321-3154 /button> /a> /div> div classflex md:hidden items-center space-x-2> a onclickcl() hreftel:+18553213154 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-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 onclickcl() hreftel:+18553213154 aria-labelCall now> 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 1-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 do you provide? 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>Professional roofing services including residential and light commercial roof installation and replacement, roof repairs, storm damage mitigation, roof inspections, gutter replacement, ventilation and skylight installation, and preventative maintenance./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 can I tell if my roof needs repair or full 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-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>Common signs include persistent leaks, multiple or missing shingles, curling or blistering shingles, significant granule loss, sagging roof deck, and roofs older than their expected lifespan—schedule an inspection to determine repair versus replacement./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 roofing materials do you install and how do I choose? 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, metal roofing, clay/concrete tile, slate, and flat roofing systems (TPO/EPDM). Choice depends on budget, local climate, roof pitch, aesthetic preferences, and expected lifespan; a professional assessment will recommend the best option for your property./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 long does a typical roof replacement 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-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>Most residential roof replacements are completed in 1–3 days for average-sized homes; larger or more complex projects, permitting, weather delays, or required structural repairs can extend the timeline to a week or more./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 offer warranties and guarantees? 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—projects typically include manufacturer warranties on materials and a contractor workmanship warranty; warranty terms vary by material and job, so request written warranty details before work begins./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)> Are you licensed and insured? 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>Yes—work is performed under appropriate state/local licensing and with general liability and workers’ compensation insurance; always ask to see proof of license and insurance before hiring./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)> Do you provide emergency roof repairs after storms? 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>Yes—emergency services include temporary tarping, leak containment, and rapid assessments to prevent further damage, followed by a detailed estimate for permanent repairs or replacement./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)> How is pricing determined for a new roof? 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>Price is based on roof size (square footage), pitch and complexity, chosen materials, tear-off needs, underlayment and ventilation upgrades, disposal costs, and local permit fees; a site visit with a written estimate provides an accurate cost./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)> Can you assist with insurance claims for 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-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>Yes—we document damage with photos, provide detailed contractor estimates, meet with adjusters if needed, and can help explain scope-of-work items to support your claim./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)> What should I expect during the roofing process from estimate to completion? 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>You’ll receive an initial inspection and written estimate, scheduling and permit handling if required, site preparation, tear-off (if applicable), installation of new materials, cleanup of debris, final walkthrough, and delivery of warranty documentation./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 onclickcl() hreftel:+18553213154 aria-labelCall now> 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 1-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 onclickcl() hreftel:+18553213154 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>1-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 do you provide?,acceptedAnswer:{@type:Answer,text:Professional roofing services including residential and light commercial roof installation and replacement, roof repairs, storm damage mitigation, roof inspections, gutter replacement, ventilation and skylight installation, and preventative maintenance.}},{@type:Question,name:How can I tell if my roof needs repair or full replacement?,acceptedAnswer:{@type:Answer,text:Common signs include persistent leaks, multiple or missing shingles, curling or blistering shingles, significant granule loss, sagging roof deck, and roofs older than their expected lifespan\u2014schedule an inspection to determine repair versus replacement.}},{@type:Question,name:What roofing materials do you install and how do I choose?,acceptedAnswer:{@type:Answer,text:We install asphalt shingles, metal roofing, clay\/concrete tile, slate, and flat roofing systems (TPO\/EPDM). Choice depends on budget, local climate, roof pitch, aesthetic preferences, and expected lifespan; a professional assessment will recommend the best option for your property.}},{@type:Question,name:How long does a typical roof replacement take?,acceptedAnswer:{@type:Answer,text:Most residential roof replacements are completed in 1\u20133 days for average-sized homes; larger or more complex projects, permitting, weather delays, or required structural repairs can extend the timeline to a week or more.}},{@type:Question,name:Do you offer warranties and guarantees?,acceptedAnswer:{@type:Answer,text:Yes\u2014projects typically include manufacturer warranties on materials and a contractor workmanship warranty; warranty terms vary by material and job, so request written warranty details before work begins.}},{@type:Question,name:Are you licensed and insured?,acceptedAnswer:{@type:Answer,text:Yes\u2014work is performed under appropriate state\/local licensing and with general liability and workers\u2019 compensation insurance; always ask to see proof of license and insurance before hiring.}},{@type:Question,name:Do you provide emergency roof repairs after storms?,acceptedAnswer:{@type:Answer,text:Yes\u2014emergency services include temporary tarping, leak containment, and rapid assessments to prevent further damage, followed by a detailed estimate for permanent repairs or replacement.}},{@type:Question,name:How is pricing determined for a new roof?,acceptedAnswer:{@type:Answer,text:Price is based on roof size (square footage), pitch and complexity, chosen materials, tear-off needs, underlayment and ventilation upgrades, disposal costs, and local permit fees; a site visit with a written estimate provides an accurate cost.}},{@type:Question,name:Can you assist with insurance claims for storm damage?,acceptedAnswer:{@type:Answer,text:Yes\u2014we document damage with photos, provide detailed contractor estimates, meet with adjusters if needed, and can help explain scope-of-work items to support your claim.}},{@type:Question,name:What should I expect during the roofing process from estimate to completion?,acceptedAnswer:{@type:Answer,text:You\u2019ll receive an initial inspection and written estimate, scheduling and permit handling if required, site preparation, tear-off (if applicable), installation of new materials, cleanup of debris, final walkthrough, and delivery of warranty documentation.}}}/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
]