1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[907],{372:(e,s,r)=>{"use strict";r.r(s),r.d(s,{default:()=>N});var t=r(5155),a=r(2115),i=r(3209),n=r(2262);let l=({title:e,price:s,icon:r,description:a,benefits:l})=>(0,t.jsxs)(i.Zp,{className:"hover:shadow-lg transition-shadow border border-gray-200",children:[(0,t.jsxs)(i.aR,{className:"flex flex-row items-start justify-between space-y-0",children:[(0,t.jsxs)("div",{className:"flex items-center space-x-3",children:[(0,t.jsx)("div",{className:"p-2 rounded-full bg-muted text-muted-foreground",children:(0,t.jsx)(n.Icon,{icon:r,className:"text-xl"})}),(0,t.jsx)(i.ZB,{className:"text-xl",children:e})]}),(0,t.jsxs)("div",{className:"text-right",children:[(0,t.jsxs)("div",{className:"text-2xl font-bold text-foreground",children:["$",s]}),(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:"additional service"})]})]}),(0,t.jsxs)(i.Wu,{className:"text-muted-foreground space-y-4",children:[(0,t.jsx)("p",{children:a}),(0,t.jsxs)("div",{className:"bg-muted/50 p-4 rounded-md",children:[(0,t.jsx)("h4",{className:"font-medium text-foreground mb-2",children:"Benefits:"}),(0,t.jsx)("ul",{className:"space-y-2",children:l.map((e,s)=>(0,t.jsxs)("li",{className:"flex items-start",children:[(0,t.jsx)(n.Icon,{icon:"lucide:check-circle",className:"text-green-500 mr-2 mt-0.5"}),(0,t.jsx)("span",{className:"text-sm",children:e})]},s))})]})]})]}),o=[{icon:"lucide:shield",title:"Anti-Seize Application",desc:` 2 We apply anti-seize compound to high-rust areas, preventing future corrosion 3 and making subsequent services easier. This step is often skipped by other 4 shops but is essential for long-term maintenance. 5 `},{icon:"lucide:move-horizontal",title:"Slide Pin Maintenance",desc:` 6 We always clean and regrease caliper slide pins to ensure even pressure 7 distribution and wear of brake pads. This critical step improves braking 8 performance and extends the life of your brake components. 9 `},{icon:"lucide:disc",title:"Hub Surface Cleaning",desc:` 10 We thoroughly clean wheel hub surfaces of all existing rust, ensuring the 11 rotor and wheel sit perfectly flush. This prevents rotor warpage and delivers 12 superior braking performance that lasts. 13 `},{icon:"lucide:check-circle",title:"Comprehensive Inspection",desc:` 14 Every service includes a thorough inspection of your entire brake system, 15 including lines, hoses, and hardware. We identify potential issues before 16 they become expensive problems. 17 `},{icon:"lucide:wrench",title:"Correct Torquing of Every Bolt/Nut",desc:` 18 Every bolt and nut is tightened to manufacturer specifications using a torque 19 wrench. This is critical for your safety and prevents damage or loosening 20 over time. 21 `},{icon:"lucide:brush",title:"Caliper Bracket Cleaning",desc:` 22 We remove all rust and brake dust from the caliper bracket. This allows new 23 pads to slide freely, ensuring even pad wear and optimal braking performance. 24 `}];var c=r(3637);let d=()=>{let[e,s]=(0,a.useState)(),[r,l]=(0,a.useState)(!0),d=(0,a.useRef)(null);(0,a.useEffect)(()=>{if(e&&r)return d.current=setInterval(()=>{e.scrollNext()},3500),()=>{d.current&&clearInterval(d.current)}},[e,r]);let u=()=>{l(!1),d.current&&clearInterval(d.current)};return(0,t.jsxs)("div",{className:"mb-12",children:[(0,t.jsx)("h2",{className:"text-2xl font-semibold text-primary mb-6 text-center",children:"Our Premium Service Standards"}),(0,t.jsxs)(i.Zp,{children:[(0,t.jsxs)(i.aR,{className:"text-center",children:[(0,t.jsx)(i.ZB,{className:"text-xl text-muted-foreground",children:"The Hansen Mobile Brakes Difference"}),(0,t.jsx)("p",{className:"text-sm text-muted-foreground mt-2",children:"We take pride in our thorough approach to brake service, going beyond what most shops offer"})]}),(0,t.jsxs)(i.Wu,{children:[(0,t.jsx)("div",{className:"relative group",children:(0,t.jsxs)(c.FN,{setApi:s,opts:{align:"start",loop:!0},className:"w-full",children:[(0,t.jsx)(c.Q8,{onClick:u,className:"absolute left-0 top-1/2 -translate-y-1/2 z-10 opacity-0 group-hover:opacity-60 hover:opacity-90 transition"}),(0,t.jsx)(c.Oj,{onClick:u,className:"absolute right-0 top-1/2 -translate-y-1/2 z-10 opacity-0 group-hover:opacity-60 hover:opacity-90 transition"}),(0,t.jsx)(c.Wk,{className:"-ml-4",children:o.map((e,s)=>(0,t.jsx)(c.A7,{className:"pl-4 md:basis-1/2",children:(0,t.jsxs)("div",{className:"border border-muted rounded-lg p-5 bg-background shadow-sm h-full flex flex-col",children:[(0,t.jsxs)("div",{className:"flex items-center mb-3",children:[(0,t.jsx)("div",{className:"p-2 rounded-full bg-blue-100 text-blue-600",children:(0,t.jsx)(n.Icon,{icon:e.icon,className:"text-xl"})}),(0,t.jsx)("h4",{className:"text-lg font-medium ml-3 text-foreground",children:e.title})]}),(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:e.desc})]})},s))})]})}),(0,t.jsx)("div",{className:"mt-6 bg-blue-50 p-2 rounded-lg border border-blue-100",children:(0,t.jsxs)("div",{className:"flex items-start gap-2",children:[(0,t.jsx)("div",{className:"p-1 rounded-full bg-blue-100 text-blue-600 mt-0.5",children:(0,t.jsx)(n.Icon,{icon:"lucide:alert-circle",className:"text-lg"})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h4",{className:"text-base font-medium text-blue-800",children:"Why These Steps Matter"}),(0,t.jsx)("p",{className:"text-xs text-blue-700 mt-0.5",children:"Many shops and technicians skip these crucial steps to save time, but at Hansen Mobile Brakes, we never compromise on quality. Our comprehensive approach ensures your brakes perform better, last longer, and provide the safety you deserve."})]})]})})]})]})]})};var u=r(6510),m=r(7602),x="horizontal",h=["horizontal","vertical"],p=a.forwardRef((e,s)=>{var r;let{decorative:a,orientation:i=x,...n}=e,l=(r=i,h.includes(r))?i:x;return(0,t.jsx)(m.sG.div,{"data-orientation":l,...a?{role:"none"}:{"aria-orientation":"vertical"===l?l:void 0,role:"separator"},...n,ref:s})});p.displayName="Separator";var f=r(5016);function v({className:e,orientation:s="horizontal",decorative:r=!0,...a}){return(0,t.jsx)(p,{"data-slot":"separator",decorative:r,orientation:s,className:(0,f.cn)("bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",e),...a})}let b=({title:e,icon:s,services:r,description:a,featured:l=!1,highlightLabel:o})=>(0,t.jsxs)(i.Zp,{className:`overflow-visible border ${l?"border-blue-500 shadow-xl":"border-gray-200"}`,children:[(o||l)&&(0,t.jsx)("div",{className:`text-center py-1.5 text-sm font-medium rounded-t-md ${o?"bg-green-600 text-white":"bg-blue-500 text-white"}`,children:o||"MOST POPULAR"}),(0,t.jsx)(i.aR,{className:"pb-3",children:(0,t.jsxs)("div",{className:"flex items-center space-x-3",children:[(0,t.jsx)("div",{className:`p-2 rounded-full ${l?"bg-blue-100 text-blue-600":"bg-gray-100 text-gray-600"}`,children:(0,t.jsx)(n.Icon,{icon:s,className:"text-xl"})}),(0,t.jsx)(i.ZB,{className:"text-xl",children:e})]})}),(0,t.jsxs)(i.Wu,{className:"text-sm text-muted-foreground space-y-4",children:[(0,t.jsx)("p",{children:a}),(0,t.jsx)(v,{}),(0,t.jsx)("div",{className:"space-y-3",children:r.map((e,s)=>(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(n.Icon,{icon:"lucide:check",className:l?"text-blue-500":"text-green-500"}),(0,t.jsx)("span",{className:"text-foreground",children:e.name}),e.discount&&(0,t.jsx)("span",{className:"ml-2 text-xs bg-green-100 text-green-700 px-2 py-0.5 rounded",children:e.discountAmount?`${e.discountAmount}`:""})]}),(0,t.jsxs)("span",{className:"font-semibold text-foreground",children:["$",e.price]})]},s))})]})]});var g=r(7003),j=r(7937);function N(){let[e,s]=(0,a.useState)(!1),[r,i]=(0,a.useState)(!1);return(0,t.jsx)("div",{className:"min-h-screen bg-white",children:(0,t.jsxs)("main",{className:"max-w-6xl mx-auto px-4 py-12",children:[(0,t.jsxs)("div",{className:"text-center mb-12",children:[(0,t.jsx)("h1",{className:"text-3xl font-semibold text-foreground mb-3",children:"Brake Service Pricing"}),(0,t.jsx)("p",{className:"text-muted-foreground max-w-2xl mx-auto",children:"Professional brake service at competitive prices, delivered right to your location. No need to visit a shop - we bring the expertise to you."})]}),(0,t.jsx)("div",{className:"mb-4 flex justify-center",children:(0,t.jsxs)("div",{className:"bg-yellow-100 border-l-4 border-yellow-400 text-yellow-800 p-3 rounded",children:[(0,t.jsx)("strong",{children:"Note:"})," All prices listed are for"," ",(0,t.jsx)("span",{className:"font-semibold",children:"labor only"}),". Parts are not included in this pricing."]})}),(0,t.jsxs)("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-8 mb-12",children:[(0,t.jsx)(b,{title:"Front Brakes (Labor)",icon:"lucide:disc",services:j.j.frontBrakes,description:"Complete front brake service including removal, installation, and testing.",featured:!0,ctaLabel:"Book Service"}),(0,t.jsx)(b,{title:"Rear Brakes (Labor)",icon:"lucide:disc",services:j.j.rearBrakes,description:"Complete rear brake service including removal, installation, and testing."}),(0,t.jsx)(b,{title:"Complete Brake Service (Labor)",icon:"lucide:check-circle",services:j.j.completeBrakeService,description:"Full vehicle brake service with special package pricing.",highlightLabel:"BEST DEAL"})]}),(0,t.jsxs)("div",{className:"mb-12 flex flex-col sm:flex-row gap-4 justify-center items-center",children:[(0,t.jsxs)(g.$,{size:"lg",className:"font-medium",onClick:()=>i(!0),children:[(0,t.jsx)(n.Icon,{icon:"lucide:file-text",className:"mr-2 h-5 w-5"}),"Request Quote"]}),(0,t.jsx)(g.$,{asChild:!0,variant:"outline",size:"lg",className:"font-medium",children:(0,t.jsxs)("a",{href:"tel:18019462590",className:"flex items-center",children:[(0,t.jsx)(n.Icon,{icon:"lucide:phone",className:"mr-2 h-5 w-5"}),"Call Us"]})})]}),(0,t.jsx)(u.default,{opened:r,onClose:()=>i(!1)}),(0,t.jsxs)("div",{className:"bg-blue-50 border-l-4 border-blue-400 text-blue-900 p-4 rounded text-left mt-12 mb-8",children:[(0,t.jsx)("p",{className:"font-medium",children:"Parts Pricing Information:"}),(0,t.jsx)("ul",{className:"list-disc list-inside mt-2 space-y-1 text-sm",children:(0,t.jsxs)("li",{children:[(0,t.jsx)("strong",{children:"Locally Sourced Parts:"})," All parts required for your brake service will be sourced from trusted local retailers (e.g., AutoZone, O'Reilly). This ensures same-day service and quality parts.",(0,t.jsx)("div",{className:"flex justify-center",children:(0,t.jsxs)("span",{className:"text-blue-800",children:[(0,t.jsx)("strong",{children:"Estimated Prices:"})," Pads: $45â$85 per set, Rotors: $75â$110 each"]})})]})})]}),(0,t.jsx)("div",{id:"premium-standards",children:(0,t.jsx)(d,{})}),(0,t.jsxs)("div",{className:"mb-12",children:[(0,t.jsxs)("button",{className:"w-full flex items-center justify-center gap-2 text-2xl font-semibold text-foreground mb-2 focus:outline-none",onClick:()=>s(e=>!e),"aria-expanded":e,"aria-controls":"additional-services-content",children:[(0,t.jsx)("span",{children:"Additional Services"}),(0,t.jsx)(n.Icon,{icon:e?"lucide:chevron-up":"lucide:chevron-down",className:"h-6 w-6"})]}),(0,t.jsx)("div",{id:"additional-services-content",className:`transition-all duration-300 overflow-hidden ${e?"max-h-[1000px] opacity-100":"max-h-0 opacity-0"}`,"aria-hidden":!e,children:(0,t.jsxs)("div",{className:"grid md:grid-cols-2 gap-6",children:[(0,t.jsx)(l,{title:"Brake Fluid Flush",price:j.j.brakeFluidFlush,icon:"lucide:droplet",description:"Complete brake fluid flush and replacement with high-quality DOT-approved fluid. Recommended every 2 years or 30,000 miles.",benefits:["Removes air, moisture, and contaminants","Prevents brake system corrosion","Maintains proper brake pedal feel","Extends the life of brake components"]}),(0,t.jsx)(l,{title:"Electronic Parking Brake Service",price:j.j.electronicParkingBrake,icon:"lucide:cpu",description:"Additional service for vehicles equipped with electronic parking brake systems that require special tools and procedures.",benefits:["Computer-assisted caliper retraction","Electronic system diagnostic check","Parking brake function test","Calibration of electronic components"]})]})})]})]})})}},3209:(e,s,r)=>{"use strict";r.d(s,{Wu:()=>o,ZB:()=>l,Zp:()=>i,aR:()=>n});var t=r(5155);r(2115);var a=r(5016);function i({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"card",className:(0,a.cn)("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",e),...s})}function n({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"card-header",className:(0,a.cn)("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",e),...s})}function l({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"card-title",className:(0,a.cn)("leading-none font-semibold",e),...s})}function o({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"card-content",className:(0,a.cn)("px-6",e),...s})}},3637:(e,s,r)=>{"use strict";r.d(s,{A7:()=>h,FN:()=>m,Oj:()=>f,Q8:()=>p,Wk:()=>x});var t=r(5155),a=r(2115),i=r(8072),n=r(5626),l=r(2987),o=r(5016),c=r(7003);let d=a.createContext(null);function u(){let e=a.useContext(d);if(!e)throw Error("useCarousel must be used within a <Carousel />");return e}function m({orientation:e="horizontal",opts:s,setApi:r,plugins:n,className:l,children:c,...u}){let[m,x]=(0,i.A)({...s,axis:"horizontal"===e?"x":"y"}
24,n),[h,p]=a.useState(!1),[f,v]=a.useState(!1),b=a.useCallback(e=>{e&&(p(e.canScrollPrev()),v(e.canScrollNext()))},[]),g=a.useCallback(()=>{x?.scrollPrev()},[x]),j=a.useCallback(()=>{x?.scrollNext()},[x]),N=a.useCallback(e=>{"ArrowLeft"===e.key?(e.preventDefault(),g()):"ArrowRight"===e.key&&(e.preventDefault(),j())},[g,j]);return a.useEffect(()=>{x&&r&&r(x)},[x,r]),a.useEffect(()=>{if(x)return b(x),x.on("reInit",b),x.on("select",b),()=>{x?.off("select",b)}},[x,b]),(0,t.jsx)(d.Provider,{value:{carouselRef:m,api:x,opts:s,orientation:e||(s?.axis==="y"?"vertical":"horizontal"),scrollPrev:g,scrollNext:j,canScrollPrev:h,canScrollNext:f},children:(0,t.jsx)("div",{onKeyDownCapture:N,className:(0,o.cn)("relative",l),role:"region","aria-roledescription":"carousel","data-slot":"carousel",...u,children:c})})}function x({className:e,...s}){let{carouselRef:r,orientation:a}=u();return(0,t.jsx)("div",{ref:r,className:"overflow-hidden","data-slot":"carousel-content",children:(0,t.jsx)("div",{className:(0,o.cn)("flex","horizontal"===a?"-ml-4":"-mt-4 flex-col",e),...s})})}function h({className:e,...s}){let{orientation:r}=u();return(0,t.jsx)("div",{role:"group","aria-roledescription":"slide","data-slot":"carousel-item",className:(0,o.cn)("min-w-0 shrink-0 grow-0 basis-full","horizontal"===r?"pl-4":"pt-4",e),...s})}function p({className:e,variant:s="outline",size:r="icon",...a}){let{orientation:i,scrollPrev:l,canScrollPrev:d}=u();return(0,t.jsxs)(c.$,{"data-slot":"carousel-previous",variant:s,size:r,className:(0,o.cn)("absolute size-8 rounded-full","horizontal"===i?"top-1/2 -left-12 -translate-y-1/2":"-top-12 left-1/2 -translate-x-1/2 rotate-90",e),disabled:!d,onClick:l,...a,children:[(0,t.jsx)(n.A,{}),(0,t.jsx)("span",{className:"sr-only",children:"Previous slide"})]})}function f({className:e,variant:s="outline",size:r="icon",...a}){let{orientation:i,scrollNext:n,canScrollNext:d}=u();return(0,t.jsxs)(c.$,{"data-slot":"carousel-next",variant:s,size:r,className:(0,o.cn)("absolute size-8 rounded-full","horizontal"===i?"top-1/2 -right-12 -translate-y-1/2":"-bottom-12 left-1/2 -translate-x-1/2 rotate-90",e),disabled:!d,onClick:n,...a,children:[(0,t.jsx)(l.A,{}),(0,t.jsx)("span",{className:"sr-only",children:"Next slide"})]})}},5016:(e,s,r)=>{"use strict";r.d(s,{cn:()=>i});var t=r(2821),a=r(5889);function i(...e){return(0,a.QP)((0,t.$)(e))}},7003:(e,s,r)=>{"use strict";r.d(s,{$:()=>o,r:()=>l});var t=r(5155);r(2115);var a=r(2467),i=r(3101),n=r(5016);let l=(0,i.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",destructive:"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9"}},defaultVariants:{variant:"default",size:"default"}});function o({className:e,variant:s,size:r,asChild:i=!1,...o}){let c=i?a.DX:"button";return(0,t.jsx)(c,{"data-slot":"button",className:(0,n.cn)(l({variant:s,size:r,className:e})),...o})}},7340:(e,s,r)=>{Promise.resolve().then(r.bind(r,372))},7937:(e,s,r)=>{"use strict";r.d(s,{j:()=>o});let t=[{name:"Brake Pads Only",price:130},{name:"Brake Pads & Rotors",price:160}],a=[{name:"Brake Pads Only",price:130},{name:"Brake Pads & Rotors",price:160}],i=t[0].price+a[0].price,n=t[0].price+a[1].price,l=t[1].price+a[1].price,o={frontBrakes:t,rearBrakes:a,completeBrakeService:[{name:"All Brake Pads",price:200,discount:!0,discountAmount:`SAVE $${i-200}`},{name:"All Pads & One Set of Rotors",price:220,discount:!0,discountAmount:`SAVE $${n-220}`},{name:"All Pads & All Rotors",price:240,discount:!0,discountAmount:`SAVE $${l-240}`}],brakeFluidFlush:85,electronicParkingBrake:45,caliperReplacement:140}}},e=>{e.O(0,[909,34,678,262,259,510,441,255,358],()=>e(e.s=7340)),_N_E=e.O()}]);
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.