1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[894],{884:(e,t,a)=>{a.d(t,{A:()=>n});var s=a(5155),r=a(5526);function n(e){let{eyebrow:t,title:a,intro:n,center:l=!0,dark:o=!1}=e;return(0,s.jsxs)(r.default,{className:"max-w-2xl ".concat(l?"mx-auto text-center":""),children:[t&&(0,s.jsxs)("div",{className:"mb-4 flex items-center gap-3 text-xs font-semibold uppercase tracking-[0.25em] ".concat(l?"justify-center":""," ").concat(o?"text-yellow":"text-green"),children:[(0,s.jsx)("span",{className:"h-px w-8 bg-current opacity-50"}),t,(0,s.jsx)("span",{className:"h-px w-8 bg-current opacity-50"})]}),(0,s.jsx)("h2",{className:"font-display text-3xl font-semibold leading-tight tracking-tight text-balance sm:text-4xl lg:text-[2.75rem] ".concat(o?"text-white":"text-charcoal"),children:a}),n&&(0,s.jsx)("p",{className:"mt-5 text-lg leading-relaxed ".concat(o?"text-white/80":"text-stone-700"),children:n})]})}},1752:(e,t,a)=>{a.d(t,{default:()=>l});var s=a(5155),r=a(7174),n=a(6893);function l(){return(0,s.jsxs)("div",{className:"fixed inset-x-0 bottom-0 z-50 grid grid-cols-2 gap-px border-t border-black/10 bg-black/10 lg:hidden",children:[(0,s.jsxs)("a",{href:n.Pu.phoneHref,className:"flex items-center justify-center gap-2 bg-charcoal py-3.5 text-sm font-semibold text-white",children:[(0,s.jsx)(r.A,{name:"phone",className:"h-4 w-4"})," Call Now"]}),(0,s.jsxs)("a",{href:"#quote",className:"flex items-center justify-center gap-2 bg-yellow py-3.5 text-sm font-bold text-charcoal",children:[(0,s.jsx)(r.A,{name:"quote",className:"h-4 w-4"})," Free Quote"]})]})}},1876:(e,t,a)=>{a.d(t,{default:()=>i});var s=a(5155),r=a(2115),n=a(5239),l=a(7174),o=a(6893);let c=["Exposed Aggregate","Concrete Driveway","Brick Paving","Pool Surround","Outdoor Area","Not sure yet"];function i(){let[e,t]=(0,r.useState)(!1);return(0,s.jsxs)("section",{id:"quote",className:"relative overflow-hidden py-24 lg:py-32",children:[(0,s.jsx)(n.default,{src:"/images/cta-background.png",alt:"",fill:!0,sizes:"100vw",className:"object-cover"}),(0,s.jsx)("div",{className:"absolute inset-0 bg-charcoal/80"}),(0,s.jsxs)("div",{className:"relative mx-auto grid max-w-7xl items-center gap-12 px-5 lg:grid-cols-2 lg:px-8",children:[(0,s.jsxs)("div",{className:"text-white",children:[(0,s.jsx)("h2",{className:"font-display text-4xl font-semibold leading-tight tracking-tight text-balance sm:text-5xl",children:"Ready to transform your driveway?"}),(0,s.jsx)("p",{className:"mt-5 max-w-md text-lg text-white/85",children:"Tell us about your project and weâll get back to you with an honest, detailed quote â no pressure, no obligation."}),(0,s.jsxs)("a",{href:o.Pu.phoneHref,className:"mt-8 inline-flex items-center gap-3 text-2xl font-bold text-yellow",children:[(0,s.jsx)(l.A,{name:"phone",className:"h-6 w-6"})," ",o.Pu.phone]}),(0,s.jsx)("div",{className:"mt-8 flex flex-wrap gap-x-6 gap-y-2 text-sm text-white/80",children:["40+ years experience","Family owned","Fully insured","Free quotes"].map(e=>(0,s.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,s.jsx)(l.A,{name:"tick",className:"h-4 w-4 text-yellow",strokeWidth:2}),e]},e))})]}),(0,s.jsx)("div",{className:"rounded-3xl bg-warmwhite p-6 shadow-2xl sm:p-8",children:e?(0,s.jsxs)("div",{className:"flex flex-col items-center py-10 text-center",children:[(0,s.jsx)("div",{className:"flex h-14 w-14 items-center justify-center rounded-full bg-green text-white",children:(0,s.jsx)(l.A,{name:"check",className:"h-8 w-8"})}),(0,s.jsx)("h3",{className:"mt-4 font-display text-2xl font-semibold text-charcoal",children:"Almost there!"}),(0,s.jsxs)("p",{className:"mt-2 text-stone-600",children:["Your email should be opening now. Prefer to talk? Call ",o.Pu.phone,"."]})]}):(0,s.jsxs)("form",{onSubmit:function(e){e.preventDefault();let a=new FormData(e.currentTarget),s="Name: ".concat(a.get("name"),"\nPhone: ").concat(a.get("phone"),"\nEmail: ").concat(a.get("email"),"\nSuburb: ").concat(a.get("suburb"),"\nService: ").concat(a.get("service"),"\n\n").concat(a.get("message"));window.location.href="mailto:".concat(o.Pu.email,"?subject=").concat(encodeURIComponent("Free Quote Request â "+a.get("name")),"&body=").concat(encodeURIComponent(s)),t(!0)},className:"grid gap-4",children:[(0,s.jsx)("h3",{className:"font-display text-xl font-semibold text-charcoal",children:"Request your free quote"}),(0,s.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,s.jsx)("input",{name:"name",required:!0,placeholder:"Your name",className:"rounded-xl border border-concrete-dark bg-white px-4 py-3 text-charcoal outline-none focus:border-green"}),(0,s.jsx)("input",{name:"phone",required:!0,placeholder:"Phone",className:"rounded-xl border border-concrete-dark bg-white px-4 py-3 text-charcoal outline-none focus:border-green"})]}),(0,s.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,s.jsx)("input",{name:"email",type:"email",placeholder:"Email",className:"rounded-xl border border-concrete-dark bg-white px-4 py-3 text-charcoal outline-none focus:border-green"}),(0,s.jsx)("input",{name:"suburb",placeholder:"Suburb",className:"rounded-xl border border-concrete-dark bg-white px-4 py-3 text-charcoal outline-none focus:border-green"})]}),(0,s.jsxs)("select",{name:"service",defaultValue:"",className:"rounded-xl border border-concrete-dark bg-white px-4 py-3 text-charcoal outline-none focus:border-green",children:[(0,s.jsx)("option",{value:"",disabled:!0,children:"What do you need?"}),c.map(e=>(0,s.jsx)("option",{children:e},e))]}),(0,s.jsx)("textarea",{name:"message",rows:3,placeholder:"Tell us about your project (optional)",className:"rounded-xl border border-concrete-dark bg-white px-4 py-3 text-charcoal outline-none focus:border-green"}),(0,s.jsx)("button",{type:"submit",className:"rounded-full bg-yellow px-6 py-4 text-base font-bold text-charcoal transition-transform hover:-translate-y-0.5",children:"Get My Free Quote"}),(0,s.jsx)("p",{className:"text-center text-xs text-stone-500",children:"Weâll only use your details to prepare your quote."})]})})]})]})}},3005:(e,t,a)=>{a.d(t,{default:()=>i});var s=a(5155),r=a(2115),n=a(5239),l=a(5526),o=a(884),c=a(6893);function i(){let[e,t]=(0,r.useState)("All"),a="All"===e?c.jA:c.jA.filter(t=>t.category===e);return(0,s.jsx)("section",{id:"projects",className:"bg-warmwhite py-24 lg:py-32",children:(0,s.jsxs)("div",{className:"mx-auto max-w-7xl px-5 lg:px-8",children:[(0,s.jsx)(o.A,{eyebrow:"Featured Projects",title:"Recent work across Melbourne",intro:"A selection of driveways, pool surrounds and outdoor areas we've completed for homeowners across the bayside suburbs and Mornington Peninsula."}),(0,s.jsx)("div",{className:"mt-10 flex flex-wrap justify-center gap-2",children:c.Di.map(a=>(0,s.jsx)("button",{onClick:()=>t(a),className:"rounded-full px-4 py-2 text-sm font-medium transition-colors ".concat(e===a?"bg-green text-white":"bg-concrete text-stone-700 hover:bg-concrete-dark"),children:a},a))}),(0,s.jsx)("div",{className:"mt-10 columns-1 gap-5 sm:columns-2 lg:columns-3 [&>*]:mb-5",children:a.map((e,t)=>(0,s.jsx)(l.default,{className:"break-inside-avoid",children:(0,s.jsxs)("figure",{className:"group relative overflow-hidden rounded-2xl",children:[(0,s.jsx)(n.default,{src:e.image,alt:"".concat(e.title," â ").concat(e.location),width:800,height:t%3==0?1e3:600,sizes:"(min-width:1024px) 30vw, (min-width:640px) 45vw, 100vw",className:"w-full object-cover transition-transform duration-700 group-hover:scale-105"}),(0,s.jsx)("div",{className:"absolute inset-0 bg-gradient-to-t from-charcoal/85 via-trans
1parent to-transparent opacity-0 transition-opacity duration-300 group-hover:opacity-100"}),(0,s.jsxs)("figcaption",{className:"absolute inset-x-0 bottom-0 translate-y-2 p-5 text-white opacity-0 transition-all duration-300 group-hover:translate-y-0 group-hover:opacity-100",children:[(0,s.jsx)("div",{className:"text-xs font-semibold uppercase tracking-widest text-yellow",children:e.category}),(0,s.jsx)("div",{className:"font-display text-lg font-semibold",children:e.title}),(0,s.jsx)("div",{className:"text-sm text-white/80",children:e.location})]})]})},e.title+t))})]})})}},5526:(e,t,a)=>{a.r(t),a.d(t,{default:()=>n});var s=a(5155),r=a(2115);function n(e){let{children:t,className:a="",delay:n=0,as:l="div"}=e,o=(0,r.useRef)(null),[c,i]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{let e=o.current;if(!e)return;let t=new IntersectionObserver(e=>{e.forEach(e=>{e.isIntersecting&&(i(!0),t.disconnect())})},{threshold:.15,rootMargin:"0px 0px -8% 0px"});return t.observe(e),()=>t.disconnect()},[]),(0,s.jsx)(l,{ref:o,"data-reveal":"",className:"".concat(c?"is-visible":""," ").concat(a),style:{transitionDelay:"".concat(n,"ms")},children:t})}},8242:(e,t,a)=>{a.d(t,{default:()=>c});var s=a(5155),r=a(2115),n=a(7174),l=a(884);let o="/images/before-after.png";function c(){let[e,t]=(0,r.useState)(50),a=(0,r.useRef)(null),c=(0,r.useRef)(!1),i=(0,r.useCallback)(e=>{let s=a.current;if(!s)return;let r=s.getBoundingClientRect();t(Math.max(0,Math.min(100,(e-r.left)/r.width*100)))},[]);return(0,s.jsx)("section",{id:"results",className:"bg-concrete py-24 lg:py-32",children:(0,s.jsxs)("div",{className:"mx-auto max-w-7xl px-5 lg:px-8",children:[(0,s.jsx)(l.A,{eyebrow:"Before & After",title:"The Cam Wells transformation",intro:"Drag the handle to see how we turn a tired, cracked driveway into a premium exposed aggregate entrance."}),(0,s.jsxs)("div",{ref:a,className:"relative mx-auto mt-12 aspect-[3/4] w-full max-w-lg cursor-ew-resize touch-none select-none overflow-hidden rounded-3xl shadow-xl sm:max-w-xl",onPointerDown:e=>{c.current=!0,e.target.setPointerCapture(e.pointerId),i(e.clientX)},onPointerMove:e=>c.current&&i(e.clientX),onPointerUp:()=>c.current=!1,children:[(0,s.jsx)("div",{className:"absolute inset-0 bg-[length:auto_100%] bg-right bg-no-repeat",style:{backgroundImage:"url(".concat(o,")")}}),(0,s.jsx)("div",{className:"absolute inset-0 bg-[length:auto_100%] bg-left bg-no-repeat",style:{backgroundImage:"url(".concat(o,")"),clipPath:"inset(0 ".concat(100-e,"% 0 0)")}}),(0,s.jsx)("div",{className:"absolute inset-y-0 z-10 w-0.5 bg-white/90",style:{left:"".concat(e,"%")},children:(0,s.jsxs)("div",{className:"absolute top-1/2 left-1/2 flex h-11 w-11 -translate-x-1/2 -translate-y-1/2 items-center justify-center rounded-full bg-white text-charcoal shadow-lg",children:[(0,s.jsx)(n.A,{name:"arrow",className:"h-4 w-4 -scale-x-100",strokeWidth:2}),(0,s.jsx)(n.A,{name:"arrow",className:"h-4 w-4",strokeWidth:2})]})})]}),(0,s.jsx)("p",{className:"mt-4 text-center text-sm text-stone-500",children:"Same home, same week â drag to compare."})]})})}}}]);
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.