1import{c as b,u as N,r as w,j as e,b as t,P as p,o as v,n as u,p as d}from"./index-FU_nQNiN.js";import{u as k,s as S,a as C,b as P,L as m,I as g,B as F,c as M}from"./lead.functions-DkJtCDpt.js";import{T as $}from"./textarea-DysXhUfC.js";import{c as E}from"./chad-justin-CjRZ8zq2.js";import{M as T}from"./map-pin-P3uy75b-.js";import{C as z}from"./clock-DeJ4fV5U.js";import{M as L}from"./message-circle-CG6dUiko.js";import"./utils-BQHNewu7.js";import"./index-CkIWfLQ2.js";const W=[["path",{d:"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7",key:"132q7q"}],["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}]],f=b("mail",W);const _=[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]],J=b("send",_),R=v({name:d().trim().min(2,"Please enter your name").max(80),phone:d().trim().min(7,"Please enter a valid phone number").max(30).regex(/^[0-9+()\-.\s]+$/,"Please enter a valid phone number"),email:d().trim().email("Please enter a valid email").max(120).optional().or(u("")),message:d().trim().min(5,"Tell us a bit more so we can help").max(1e3,"Please keep your message under 1000 characters"),smsConsent:u(!0,{errorMap:()=>({message:"Please agree so we can text you back"})})});function D(){const x=N(),h=k(S),[o,i]=w.useState(null),s=C({resolver:P(R),defaultValues:{name:"",phone:"",email:"",message:"",smsConsent:void 0}}),j=r=>{const a=r.replace(/\D/g,"").slice(0,10),n=a.length;return n===0?"":n<4?`(${a}`:n<7?`(${a.slice(0,3)}) ${a.slice(3)}`:`(${a.slice(0,3)}) ${a.slice(3,6)}-${a.slice(6)}`},y=async r=>{i(null);const[a,...n]=r.name.trim().split(/\s+/);try{const l=await h({data:{source:"contact-us",firstName:a||r.name,lastName:n.join(" "),phone:r.phone,email:r.email||"",message:r.message,smsConsent:r.smsConsent===!0,pageUrl:typeof window<"u"?window.location.href:""}});if(!l?.ok)throw new Error(l?.error||"submit_failed");x({to:"/thank-you"})}catch(l){console.error("[contact] submit failed",l),i("Sorry, something went wrong. Please call us or try again.")}};return e.jsxs(e.Fragment,{children:[e.jsxs("section",{className:"relative overflow-hidden bg-brand text-brand-foreground",children:[e.jsx("div",{className:"absolute inset-0",style:{background:"linear-gradient(180deg, hsl(204 100% 9%) 0%, hsl(204 100% 12%) 100%), radial-gradient(ellipse at 50% 0%, hsl(222 98% 26% / 0.45) 0%, transparent 60%)"}}),e.jsx("div",{className:"container-page relative z-10 pt-14 pb-8 md:py-20",children:e.jsxs("div",{className:"grid items-center gap-10 md:grid-cols-[1.1fr_1fr]",children:[e.jsxs("div",{className:"fade-up",children:[e.jsx("span",{className:"inline-block rounded-full border border-gold/40 bg-gold/10 px-3 py-1 text-xs font-bold uppercase tracking-wider text-gold-light",children:"We're here to help"}),e.jsx("h1",{className:"mt-4 font-display font-black uppercase leading-[0.95] tracking-tight text-white",style:{fontFamily:"'Oswald', 'Barlow Condensed', sans-serif",textShadow:"0 2px 10px hsl(0 0% 0% / 0.55)",fontSize:"clamp(2.25rem, 6vw, 4rem)"},children:"Got a Question? Just Ask."}),e.jsx("p",{className:"mt-4 max-w-xl text-base text-brand-foreground/90 sm:text-lg",children:"Wondering about a leak, an insurance claim, scheduling, or just want a second opinion? Text, call, or send a message â Justin, Chad, or someone on our team will get right back to you."}),e.jsxs("div",{className:"mt-6 hidden flex-wrap gap-3 md:flex",children:[e.jsxs("a",{href:t.phoneHref,className:"btn-gold inline-flex items-center gap-2 px-5 py-3 text-sm font-extrabold",children:[e.jsx(p,{className:"h-4 w-4",strokeWidth:2.5}),"Call ",t.phone]}),e.jsxs("a",{href:`mailto:${t.email}`,className:"inline-flex items-center gap-2 rounded-full border border-brand-foreground/30 bg-white/5 px-5 py-3 text-sm font-bold text-brand-foreground hover:bg-white/10",children:[e.jsx(f,{className:"h-4 w-4"}),"Email Us"]})]})]}),e.jsxs("div",{className:"fade-up relative",children:[e.jsx("div",{className:"overflow-hidden rounded-2xl border border-gold/30 shadow-card-hover",children:e.jsx("img",{src:E,alt:"Justin Krein and Chad Ormberg â co-founders of Prominent Roofing",width:1397,height:1126,loading:"lazy",decoding:"async",className:"h-auto w-full object-cover"})}),e.jsx("p",{className:"mt-3 text-center text-xs font-semibold uppercase tracking-wider text-brand-foreground
1/80",children:"Justin & Chad · Co-Founders"})]})]})})]}),e.jsx("section",{className:"bg-background pt-10 pb-16 md:py-20",children:e.jsxs("div",{className:"container-page grid gap-10 md:grid-cols-[1.1fr_1fr]",children:[e.jsxs("div",{className:"rounded-2xl border border-border bg-card p-6 shadow-card sm:p-8",children:[e.jsx("h2",{className:"font-display text-2xl font-extrabold uppercase tracking-tight text-brand md:text-3xl",children:"Send us a message"}),e.jsx("p",{className:"mt-2 text-sm text-muted-foreground",children:"Fill out the form below and a real person will reach out â usually within a few hours during business hours."}),e.jsxs("form",{onSubmit:s.handleSubmit(y),className:"mt-6 space-y-4",children:[e.jsxs("div",{children:[e.jsx(m,{htmlFor:"name",className:"mb-1.5 block text-sm font-semibold",children:"Your name"}),e.jsx(g,{id:"name",placeholder:"First & last name",autoComplete:"name",...s.register("name")}),s.formState.errors.name&&e.jsx("p",{className:"mt-1 text-xs text-destructive",children:s.formState.errors.name.message})]}),e.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[e.jsxs("div",{children:[e.jsx(m,{htmlFor:"phone",className:"mb-1.5 block text-sm font-semibold",children:"Phone"}),e.jsx(g,{id:"phone",type:"tel",inputMode:"tel",placeholder:"(612) 123-4567",autoComplete:"tel",maxLength:14,...s.register("phone",{onChange:r=>{r.target.value=j(r.target.value)}})}),s.formState.errors.phone&&e.jsx("p",{className:"mt-1 text-xs text-destructive",children:s.formState.errors.phone.message})]}),e.jsxs("div",{children:[e.jsxs(m,{htmlFor:"email",className:"mb-1.5 block text-sm font-semibold",children:["Email ",e.jsx("span",{className:"font-normal text-muted-foreground",children:"(optional)"})]}),e.jsx(g,{id:"email",type:"email",placeholder:"[email protected]",autoComplete:"email",...s.register("email")}),s.formState.errors.email&&e.jsx("p",{className:"mt-1 text-xs text-destructive",children:s.formState.errors.email.message})]})]}),e.jsxs("div",{children:[e.jsx(m,{htmlFor:"message",className:"mb-1.5 block text-sm font-semibold",children:"What's on your mind?"}),e.jsx($,{id:"message",rows:5,placeholder:"Quick question, scheduling, insurance claim, second opinion â anything goes.",...s.register("message")}),s.formState.errors.message&&e.jsx("p",{className:"mt-1 text-xs text-destructive",children:s.formState.errors.message.message})]}),e.jsxs("label",{className:"flex cursor-pointer items-start gap-2.5",children:[e.jsx("input",{type:"checkbox",...s.register("smsConsent"),className:"mt-0.5 h-4 w-4 shrink-0 cursor-pointer rounded border-border accent-[hsl(var(--gold))]"}),e.jsx("span",{className:"text-[11px] leading-snug text-muted-foreground sm:text-xs",children:"I agree to receive text messages and follow-ups from Prominent Roofing related to my inquiry. Msg & data rates may apply. Reply STOP to opt out, HELP for help."})]}),s.formState.errors.smsConsent&&e.jsx("p",{className:"text-xs text-destructive",children:s.formState.errors.smsConsent.message}),o&&e.jsx("p",{className:"text-center text-xs font-semibold text-destructive",children:o}),e.jsx(F,{type:"submit",disabled:s.formState.isSubmitting,className:"btn-gold h-12 w-full text-base font-extrabold",children:s.formState.isSubmitting?e.jsxs(e.Fragment,{children:[e.jsx(M,{className:"h-4 w-4 animate-spin"})," Sendingâ¦"]}):e.jsxs(e.Fragment,{children:[e.jsx(J,{className:"h-4 w-4"})," Send Message"]})})]})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsx(c,{icon:p,title:"Call or text",primary:e.jsx("a",{href:t.phoneHref,className:"hover:underline",children:t.phone}),secondary:"Fastest way to reach us. A real person picks up."}),e.jsx(c,{icon:f,title:"Email",primary:e.jsx("a",{href:`mailto:${t.email}`,className:"hover:underline",children:t.email}),secondary:"We respond within one business day."}),e.jsx(c,{icon:T,title:"Visit our office",primary:e.jsxs(e.Fragment,{children:[t.address.street,e.jsx("br",{}),t.address.city,", ",t.address.state," ",t.address.zip]}),secondary:"Serving Minnetonka and the entire Twin Cities metro."}),e.jsx(c,{icon:z,title:"Hours",primary:e.jsxs(e.Fragment,{children:["Mon â Fri: 8:00 AM â 6:00 PM",e.jsx("br",{}),"Sat: 9:00 AM â 2:00 PM",e.jsx("br",{}),"Sun: Closed"]}),secondary:"Storm emergency? Call anytime â we'll do our best."})]})]})}),e.jsx("section",{className:"bg-brand py-10 text-brand-foreground",children:e.jsxs("div",{className:"container-page flex flex-col items-center justify-between gap-4 text-center md:flex-row md:text-left",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(L,{className:"h-8 w-8 text-gold",strokeWidth:2}),e.jsx("p",{className:"font-display text-lg font-extrabold uppercase tracking-tight text-white sm:text-xl",children:"Need a straight answer? Just ask."})]}),e.jsxs("a",{href:t.phoneHref,className:"btn-gold inline-flex items-center gap-2 px-6 py-3 text-sm font-extrabold",children:[e.jsx(p,{className:"h-4 w-4"}),"Call ",t.phone]})]})}),e.jsx("section",{className:"bg-background py-16",children:e.jsxs("div",{className:"container-page",children:[e.jsxs("div",{className:"mb-8 text-center",children:[e.jsx("h2",{className:"font-display text-2xl font-extrabold uppercase tracking-tight text-brand md:text-3xl",children:"Visit Our Office"}),e.jsxs("p",{className:"mt-2 text-muted-foreground",children:[t.address.street,", ",t.address.city,", ",t.address.state," ",t.address.zip]})]}),e.jsx("div",{className:"overflow-hidden rounded-2xl border border-border shadow-card",children:e.jsx("iframe",{src:"https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d2825.0881240960184!2d-93.4656926!3d44.9215434!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x87f623ef1c2f805d%3A0x54e35f8bde731705!2sProminent%20Roofing!5e0!3m2!1sen!2sus!4v1779512244283!5m2!1sen!2sus",width:"100%",height:"450",style:{border:2},allowFullScreen:!0,loading:"lazy",referrerPolicy:"no-referrer-when-downgrade",title:"Prominent Roofing office location"})})]})})]})}function c({icon:x,title:h,primary:o,secondary:i}
1){return e.jsxs("div",{className:"flex gap-4 rounded-2xl border border-border bg-card p-5 shadow-card",children:[e.jsx("div",{className:"grid h-11 w-11 shrink-0 place-items-center rounded-xl bg-gold/15 text-brand",children:e.jsx(x,{className:"h-5 w-5",strokeWidth:2.25})}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-display text-base font-bold uppercase tracking-wide text-brand",children:h}),e.jsx("p",{className:"mt-1 font-semibold text-foreground",children:o}),e.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:i})]})]})}export{D as component};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.