1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,98879,(e,t,o)=>{"use strict";Object.defineProperty(o,"__esModule",{value:!0}),Object.defineProperty(o,"default",{enumerable:!0,get:function(){return s}});let a=e.r(71645),n="u"<typeof window,i=n?()=>{}:a.useLayoutEffect,r=n?()=>{}:a.useEffect;function s(e){let{headManager:t,reduceComponentsToState:o}=e;function s(){if(t&&t.mountedInstances){let e=a.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(o(e))}}return n&&(t?.mountedInstances?.add(e.children),s()),i(()=>(t?.mountedInstances?.add(e.children),()=>{t?.mountedInstances?.delete(e.children)})),i(()=>(t&&(t._pendingUpdate=s),()=>{t&&(t._pendingUpdate=s)})),r(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},25633,(e,t,o)=>{"use strict";Object.defineProperty(o,"__esModule",{value:!0});var a={default:function(){return b},defaultHead:function(){return c}};for(var n in a)Object.defineProperty(o,n,{enumerable:!0,get:a[n]});let i=e.r(55682),r=e.r(90809),s=e.r(43476),l=r._(e.r(71645)),d=i._(e.r(98879)),u=e.r(42732);function c(){return[(0,s.jsx)("meta",{charSet:"utf-8"},"charset"),(0,s.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function h(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===l.default.Fragment?e.concat(l.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}e.r(33525);let g=["name","httpEquiv","charSet","itemProp"];function p(e){let t,o,a,n;return e.reduce(h,[]).reverse().concat(c().reverse()).filter((t=new Set,o=new Set,a=new Set,n={},e=>{let i=!0,r=!1;if(e.key&&"number"!=typeof e.key&&e.key.indexOf("$")>0){r=!0;let o=e.key.slice(e.key.indexOf("$")+1);t.has(o)?i=!1:t.add(o)}switch(e.type){case"title":case"base":o.has(e.type)?i=!1:o.add(e.type);break;case"meta":for(let t=0,o=g.length;t<o;t++){let o=g[t];if(e.props.hasOwnProperty(o))if("charSet"===o)a.has(o)?i=!1:a.add(o);else{let t=e.props[o],a=n[o]||new Set;("name"!==o||!r)&&a.has(t)?i=!1:(a.add(t),n[o]=a)}}}return i})).reverse().map((e,t)=>{let o=e.key||t;return l.default.cloneElement(e,{key:o})})}let b=function({children:e}){let t=(0,l.useContext)(u.HeadManagerContext);return(0,s.jsx)(d.default,{reduceComponentsToState:p,headManager:t,children:e})};("function"==typeof o.default||"object"==typeof o.default&&null!==o.default)&&void 0===o.default.__esModule&&(Object.defineProperty(o.default,"__esModule",{value:!0}),Object.assign(o.default,o),t.exports=o.default)},88143,(e,t,o)=>{"use strict";function a({widthInt:e,heightInt:t,blurWidth:o,blurHeight:n,blurDataURL:i,objectFit:r}){let s=o?40*o:e,l=n?40*n:t,d=s&&l?`viewBox='0 0 ${s} ${l}'`:"";return`%3Csvg xmlns='http://www.w3.org/2000/svg' ${d}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${d?"none":"contain"===r?"xMidYMid":"cover"===r?"xMidYMid slice":"none"}' style='filter: url(%23b);' href='${i}'/%3E%3C/svg%3E`}Object.defineProperty(o,"__esModule",{value:!0}),Object.defineProperty(o,"getImageBlurSvg",{enumerable:!0,get:function(){return a}})},87690,(e,t,o)=>{"use strict";Object.defineProperty(o,"__esModule",{value:!0});var a={VALID_LOADERS:function(){return i},imageConfigDefault:function(){return r}};for(var n in a)Object.defineProperty(o,n,{enumerable:!0,get:a[n]});let i=["default","imgix","cloudinary","akamai","custom"],r={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],maximumDiskCacheSize:void 0,maximumRedirects:3,maximumResponseBody:5e7,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,
1contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1,customCacheHandler:!1}},8927,(e,t,o)=>{"use strict";Object.defineProperty(o,"__esModule",{value:!0}),Object.defineProperty(o,"getImgProps",{enumerable:!0,get:function(){return d}}),e.r(33525);let a=e.r(43369),n=e.r(88143),i=e.r(87690),r=["-moz-initial","fill","none","scale-down",void 0];function s(e){return void 0!==e.default}function l(e){return void 0===e?e:"number"==typeof e?Number.isFinite(e)?e:NaN:"string"==typeof e&&/^[0-9]+$/.test(e)?parseInt(e,10):NaN}function d({src:e,sizes:t,unoptimized:o=!1,priority:u=!1,preload:c=!1,loading:h,className:g,quality:p,width:b,height:f,fill:y=!1,style:w,overrideSrc:m,onLoad:v,onLoadingComplete:k,placeholder:x="empty",blurDataURL:W,fetchPriority:C,decoding:S="async",layout:A,objectFit:q,objectPosition:j,lazyBoundary:E,lazyRoot:T,...P},O){var I;let D,_,G,{imgConf:L,showAltText:N,blurComplete:R,defaultLoader:M}=O,B=L||i.imageConfigDefault;if("allSizes"in B)D=B;else{let e=[...B.deviceSizes,...B.imageSizes].sort((e,t)=>e-t),t=B.deviceSizes.sort((e,t)=>e-t),o=B.qualities?.sort((e,t)=>e-t);D={...B,allSizes:e,deviceSizes:t,qualities:o}}if(void 0===M)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let z=P.loader||M;delete P.loader,delete P.srcSet;let F="__next_img_default"in z;if(F){if("custom"===D.loader)throw Object.defineProperty(Error(`Image with src "${e}" is missing "loader" prop. 2Read more: https://nextjs.org/docs/messages/next-image-missing-loader`),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let e=z;z=t=>{let{config:o,...a}=t;return e(a)}}if(A){"fill"===A&&(y=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[A];e&&(w={...w,...e});let o={responsive:"100vw",fill:"100vw"}[A];o&&!t&&(t=o)}let H="",$=l(b),Y=l(f);if((I=e)&&"object"==typeof I&&(s(I)||void 0!==I.src)){let t=s(e)?e.default:e;if(!t.src)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!t.height||!t.width)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(_=t.blurWidth,G=t.blurHeight,W=W||t.blurDataURL,H=t.src,!y)if($||Y){if($&&!Y){let e=$/t.width;Y=Math.round(t.height*e)}else if(!$&&Y){let e=Y/t.height;$=Math.round(t.width*e)}}else $=t.width,Y=t.height}let J=!u&&!c&&("lazy"===h||void 0===h);(!(e="string"==typeof e?e:H)||e.startsWith("data:")||e.startsWith("blob:"))&&(o=!0,J=!1),D.unoptimized&&(o=!0),F&&!D.dangerouslyAllowSVG&&e.split("?",1)[0].endsWith(".svg")&&(o=!0);let U=l(p),V=Object.assign(y?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:q,objectPosition:j}:{},N?{}:{color:"transparent"},w),X=R||"empty"===x?null:"blur"===x?`url("data:image/svg+xml;charset=utf-8,${(0,n.getImageBlurSvg)({widthInt:$,heightInt:Y,blurWidth:_,blurHeight:G,blurDataURL:W||"",objectFit:V.objectFit})}")`:`url("${x}")`,K=r.includes(V.objectFit)?"fill"===V.objectFit?"100% 100%":"cover":V.objectFit,Q=X?{backgroundSize:K,backgroundPosition:V.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:X}:{},Z=function({config:e,src:t,unoptimized:o,width:n,quality:i,sizes:r,loader:s}){if(o){if(t.startsWith("/")&&!t.startsWith("//")){let e=(0,a.getDeploymentId)();if(e){let o=t.indexOf("?");if(-1!==o){let a=new URLSearchParams(t.slice(o+1));a.get("dpl")||(a.append("dpl",e),t=t.slice(0,o)+"?"+a.toString())}else t+=`?dpl=${e}`}}return{src:t,srcSet:void 0,sizes:void 0}}let{widths:l,kind:d}=function({deviceSizes:e,allSizes:t},o,a){if(a){let o=/(^|\s)(1?\d?\d)vw/g,n=[];for(let e;e=o.exec(a);)n.push(parseInt(e[2]));if(n.length){let o=.01*Math.min(...n);return{widths:t.filter(t=>t>=e[0]*o),kind:"w"}}return{widths:t,kind:"w"}}return"number"!=typeof o?{widths:e,kind:"w"}:{widths:[...new Set([o,2*o].map(e=>t.find(t=>t>=e)||t[t.length-1]))],kind:"x"}}(e,n,r),u=l.length-1;return{sizes:r||"w"!==d?r:"100vw",srcSet:l.map((o,a)=>`${s({config:e,src:t,quality:i,width:o})} ${"w"===d?o:a+1}${d}`).join(", "),src:s({config:e,src:t,quality:i,width:l[u]})}}({config:D,src:e,unoptimized:o,width:$,quality:U,sizes:t,loader:z}),ee=J?"lazy":h;return{props:{...P,loading:ee,fetchPriority:C,width:$,height:Y,decoding:S,className:g,style:{...V,...Q},sizes:Z.sizes,srcSet:Z.srcSet,src:m||Z.src},meta:{unoptimized:o,preload:c||u,placeholder:x,fill:y}}}},18556,(e,t,o)=>{"use strict";Object.defineProperty(o,"__esModule",{value:!0}),Object.defineProperty(o,"ImageConfigContext",{enumerable:!0,get:function(){return i}});let a=e.r(55682)._(e.r(71645)),n=e.r(87690),i=a.default.createContext(n.imageConfigDefault)},65856,(e,t,o)=>{"use strict";Object.defineProperty(o,"__esModule",{value:!0}),Object.defineProperty(o,"RouterContext",{enumerable:!0,get:function(){return a}});let a=e.r(55682)._(e.r(71645)).default.createContext(null)},70965,(e,t,o)=>{"use strict";function a(e,t){let o=e||75;return t?.qualities?.length?t.qualities.reduce((e,t)=>
2Math.abs(t-o)<Math.abs(e-o)?t:e,t.qualities[0]):o}Object.defineProperty(o,"__esModule",{value:!0}),Object.defineProperty(o,"findClosestQuality",{enumerable:!0,get:function(){return a}})},1948,(e,t,o)=>{"use strict";Object.defineProperty(o,"__esModule",{value:!0}),Object.defineProperty(o,"default",{enumerable:!0,get:function(){return r}});let a=e.r(70965),n=e.r(43369);function i({config:e,src:t,width:o,quality:r}){let s=(0,n.getDeploymentId)();if(t.startsWith("/")&&!t.startsWith("//")){let e=t.indexOf("?");if(-1!==e){let o=new URLSearchParams(t.slice(e+1)),a=o.get("dpl");if(a){s=a,o.delete("dpl");let n=o.toString();t=t.slice(0,e)+(n?"?"+n:"")}}}if(t.startsWith("/")&&t.includes("?")&&e.localPatterns?.length===1&&"**"===e.localPatterns[0].pathname&&""===e.localPatterns[0].search)throw Object.defineProperty(Error(`Image with src "${t}" is using a query string which is not configured in images.localPatterns. 3Read more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`),"__NEXT_ERROR_CODE",{value:"E871",enumerable:!1,configurable:!0});let l=(0,a.findClosestQuality)(r,e);return`${e.path}?url=${encodeURIComponent(t)}&w=${o}&q=${l}${t.startsWith("/")&&s?`&dpl=${s}`:""}`}i.__next_img_default=!0;let r=i},5500,(e,t,o)=>{"use strict";Object.defineProperty(o,"__esModule",{value:!0}),Object.defineProperty(o,"Image",{enumerable:!0,get:function(){return v}});let a=e.r(55682),n=e.r(90809),i=e.r(43476),r=n._(e.r(71645)),s=a._(e.r(74080)),l=a._(e.r(25633)),d=e.r(8927),u=e.r(87690),c=e.r(18556);e.r(33525);let h=e.r(65856),g=a._(e.r(1948)),p=e.r(18581),b={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image/",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!0};function f(e,t,o,a,n,i,r){let s=e?.src;e&&e["data-loaded-src"]!==s&&(e["data-loaded-src"]=s,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(e.parentElement&&e.isConnected){if("empty"!==t&&n(!0),o?.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let a=!1,n=!1;o.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>a,isPropagationStopped:()=>n,persist:()=>{},preventDefault:()=>{a=!0,t.preventDefault()},stopPropagation:()=>{n=!0,t.stopPropagation()}})}a?.current&&a.current(e)}}))}function y(e){return r.use?{fetchPriority:e}:{fetchpriority:e}}"u"<typeof window&&(globalThis.__NEXT_IMAGE_IMPORTED=!0);let w=(0,r.forwardRef)(({src:e,srcSet:t,sizes:o,height:a,width:n,decoding:s,className:l,style:d,fetchPriority:u,placeholder:c,loading:h,unoptimized:g,fill:b,onLoadRef:w,onLoadingCompleteRef:m,setBlurComplete:v,setShowAltText:k,sizesInput:x,onLoad:W,onError:C,...S},A)=>{let q=(0,r.useCallback)(e=>{e&&(C&&(e.src=e.src),e.complete&&f(e,c,w,m,v,g,x))},[e,c,w,m,v,C,g,x]),j=(0,p.useMergedRef)(A,q);return(0,i.jsx)("img",{...S,...y(u),loading:h,width:n,height:a,decoding:s,"data-nimg":b?"fill":"1",className:l,style:d,sizes:o,srcSet:t,src:e,ref:j,onLoad:e=>{f(e.currentTarget,c,w,m,v,g,x)},onError:e=>{k(!0),"empty"!==c&&v(!0),C&&C(e)}})});function m({isAppRouter:e,imgAttributes:t}){let o={as:"image",imageSrcSet:t.srcSet,imageSizes:t.sizes,crossOrigin:t.crossOrigin,referrerPolicy:t.referrerPolicy,...y(t.fetchPriority)};return e&&s.default.preload?(s.default.preload(t.src,o),null):(0,i.jsx)(l.default,{children:(0,i.jsx)("link",{rel:"preload",href:t.srcSet?void 0:t.src,...o},"__nimg-"+t.src+t.srcSet+t.sizes)})}let v=(0,r.forwardRef)((e,t)=>{let o=(0,r.useContext)(h.RouterContext),a=(0,r.useContext)(c.ImageConfigContext),n=(0,r.useMemo)(()=>{let e=b||a||u.imageConfigDefault,t=[...e.deviceSizes,...e.imageSizes].sort((e,t)=>e-t),o=e.deviceSizes.sort((e,t)=>e-t),n=e.qualities?.sort((e,t)=>e-t);return{...e,allSizes:t,deviceSizes:o,qualities:n,localPatterns:"u"<typeof window?a?.localPatterns:e.localPatterns}},[a]),{onLoad:s,onLoadingComplete:l}=e,p=(0,r.useRef)(s);(0,r.useEffect)(()=>{p.current=s},[s]);let f=(0,r.useRef)(l);(0,r.useEffect)(()=>{f.current=l},[l]);let[y,v]=(0,r.useState)(!1),[k,x]=(0,r.useState)(!1),{props:W,meta:C}=(0,d.getImgProps)(e,{defaultLoader:g.default,imgConf:n,blurComplete:y,showAltText:k});return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(w,{...W,unoptimized:C.unoptimized,placeholder:C.placeholder,fill:C.fill,onLoadRef:p,onLoadingCompleteRef:f,setBlurComplete:v,setShowAltText:x,sizesInput:e.sizes,ref:t}),C.preload?(0,i.jsx)(m,{isAppRouter:!o,imgAttributes:W}):null]})});("function"==typeof o.default||"object"==typeof o.default&&null!==o.default)&&void 0===o.default.__esModule&&(Object.defineProperty(o.default,"__esMo
3dule",{value:!0}),Object.assign(o.default,o),t.exports=o.default)},96661,5014,e=>{"use strict";let t=(...e)=>e.filter((e,t,o)=>!!e&&""!==e.trim()&&o.indexOf(e)===t).join(" ").trim();e.s(["mergeClasses",0,t],96661);var o=e.i(71645),a={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let n=(0,o.createContext)({}),i=(0,o.forwardRef)(({color:e,size:i,strokeWidth:r,absoluteStrokeWidth:s,className:l="",children:d,iconNode:u,...c},h)=>{let{size:g=24,strokeWidth:p=2,absoluteStrokeWidth:b=!1,color:f="currentColor",className:y=""}=(0,o.useContext)(n)??{},w=s??b?24*Number(r??p)/Number(i??g):r??p;return(0,o.createElement)("svg",{ref:h,...a,width:i??g??a.width,height:i??g??a.height,stroke:e??f,strokeWidth:w,className:t("lucide",y,l),...!d&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0;return!1})(c)&&{"aria-hidden":"true"},...c},[...u.map(([e,t])=>(0,o.createElement)(e,t)),...Array.isArray(d)?d:[d]])});e.s(["default",0,i],5014)},94909,(e,t,o)=>{"use strict";Object.defineProperty(o,"__esModule",{value:!0});var a={default:function(){return u},getImageProps:function(){return d}};for(var n in a)Object.defineProperty(o,n,{enumerable:!0,get:a[n]});let i=e.r(55682),r=e.r(8927),s=e.r(5500),l=i._(e.r(1948));function d(e){let{props:t}=(0,r.getImgProps)(e,{defaultLoader:l.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image/",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!0}});for(let[e,o]of Object.entries(t))void 0===o&&delete t[e];return{props:t}}let u=s.Image},57688,(e,t,o)=>{t.exports=e.r(94909)},56420,e=>{"use strict";var t=e.i(71645),o=e.i(96661);let a=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,o)=>o?o.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)};var n=e.i(5014);e.s(["default",0,(e,i)=>{let r=(0,t.forwardRef)(({className:r,...s},l)=>(0,t.createElement)(n.default,{ref:l,iconNode:i,className:(0,o.mergeClasses)(`lucide-${a(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,r),...s}));return r.displayName=a(e),r}],56420)},45910,54313,e=>{"use strict";var t=e.i(43476),o=e.i(22016);function a({className:e="",strokeWidth:o=13}){return(0,t.jsx)("svg",{viewBox:"0 0 100 100",className:e,fill:"none","aria-hidden":"true",children:(0,t.jsxs)("g",{stroke:"currentColor",strokeWidth:o,strokeLinecap:"round",transform:"rotate(10 50 50)",children:[(0,t.jsx)("line",{x1:"50",y1:"11",x2:"50",y2:"89"}),(0,t.jsx)("line",{x1:"16.2",y1:"30.5",x2:"83.8",y2:"69.5"}),(0,t.jsx)("line",{x1:"83.8",y1:"30.5",x2:"16.2",y2:"69.5"})]})})}e.s(["Asterisk",0,a],54313),e.s(["CTAButton",0,function({href:e,children:a,variant:n="primary",className:i="",onClick:r,external:s=!1}){let l=`group inline-flex items-center justify-center gap-2 rounded-full px-7 py-3.5 text-base font-semibold tracking-tight transition-all duration-200 cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-brand active:scale-[0.98] ${{primary:"bg-brand text-ink hover:bg-brand-600 shadow-[0_8px_24px_-8px_rgba(252,214,5,0.6)] hover:shadow-[0_12px_32px_-8px_rgba(252,214,5,0.7)] focus-visible:ring-offset-paper",ghost:"bg-transparent text-ink ring-1 ring-line hover:ring-ink/40 hover:bg-ink/[0.03] focus-visible:ring-offset-paper","ghost-dark":"bg-white/5 text-white ring-1 ring-white/15 hover:bg-white/10 hover:ring-white/30 focus-visible:ring-offset-ink-900"}[n]} ${i}`;return s?(0,t.jsx)("a",{href:e,target:"_blank",rel:"noopener noreferrer",onClick:r,className:l,children:a}):(0,t.jsx)(o.default,{href:e,onClick:r,className:l,children:a})},"Container",0,function({children:e,className:o=""}){return(0,t.jsx)("div",{className:`container-x ${o}`,children:e})},"Eyebrow",0,function({children:e,dark:o=!1}){return(0,t.jsxs)("span",{className:`inline-flex items-center gap-2.5 font-mono text-[0.7rem] font-medium uppercase tracking-[0.2em] ${o?"text-brand":"text-muted"}`,children:[(0,t.jsx)(a,{className:"size-3.5 shrink-0 text-brand"}),e]})},"Highlight",0,function({children:e,className:o=""}){return(0,t.jsxs)("span",{className:`relative inline-block ${o}
3`,children:[(0,t.jsx)("span",{"aria-hidden":!0,className:"absolute inset-x-[-0.1em] bottom-[0.1em] top-[0.12em] -z-0 -rotate-1 rounded-[4px] bg-brand"}),(0,t.jsx)("span",{className:"relative z-10",children:e})]})}],45910)},8803,e=>{"use strict";e.s(["nav",0,[{label:"Why us",href:"/#why-us"},{label:"Results",href:"/#results"},{label:"How it works",href:"/#how-it-works"},{label:"Services",href:"/#services"},{label:"Tools",href:"/website-cost-calculator/"},{label:"Blog",href:"/blog/"},{label:"Reviews",href:"/#reviews"}],"results",0,[{prefix:"+",value:5359,suffix:"%",decimals:0,label:"organic traffic growth",name:"IPC",sub:"PVC manufacturer",timeframe:"12 months"},{prefix:"",value:6300,suffix:"",decimals:0,label:"leads generated",name:"Cupboard Value",sub:"Cupboard manufacturer",timeframe:"24 months"},{prefix:"",value:3921,suffix:"",decimals:0,label:"leads generated",name:"Dr Augustine & Parikh",sub:"Obstetricians & gynaecologists",timeframe:"24 months"},{prefix:"",value:1828,suffix:"",decimals:0,label:"leads generated",name:"Berklaw",sub:"Legal practice",timeframe:"12 months"},{prefix:"+",value:474,suffix:"%",decimals:0,label:"organic traffic growth",name:"Sterling Group",sub:"Access hire",timeframe:"12 months"},{prefix:"",value:7,suffix:"Ã",decimals:0,label:"return on ad spend",name:"TorchSA",sub:"+156% revenue growth",timeframe:"12 months"},{prefix:"",value:2875,suffix:"",decimals:0,label:"leads generated",name:"Gutter Doc",sub:"Gutter installation",timeframe:"12 months"},{prefix:"+",value:187,suffix:"%",decimals:0,label:"organic traffic growth",name:"Tufbag",sub:"Manufacturer",timeframe:"24 months"},{prefix:"",value:2998,suffix:"",decimals:0,label:"Facebook leads",name:"Renishaw Hills",sub:"Lifestyle estate",timeframe:"6 months"}],"resultsInitialCount",0,6,"site",0,{name:"The Weblab",url:"https://theweblab.co.za",phone:"087 223 2282",email:"[email protected]",location:"West Coast, Western Cape, South Africa",bookingHref:"/#assessment",googleReviewsUrl:"https://www.google.com/search?q=the+web+lab",reviewCount:"60+"},"tools",0,[{href:"/website-cost-calculator/",label:"Website Cost Calculator"}]])},48303,e=>{"use strict";var t=e.i(43476),o=e.i(71645),a=e.i(57688),n=e.i(22016),i=e.i(56420);let r=(0,i.default)("menu",[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]]),s=(0,i.default)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),l=(0,i.default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);var d=e.i(45910),u=e.i(8803);let c={"web-design-company":{slug:"web-design-company",toolCta:{href:"/website-cost-calculator/",label:"Estimate your website cost"},metaTitle:"Web Design Company | Conversion Websites | The Weblab",metaDescription:"A web design company building fast, mobile-first websites engineered to turn traffic into leads, not just to look good. West Coast based, serving worldwide.",eyebrow:"Web design",h1:"A web design company that builds for leads, not likes",highlight:"leads, not likes",heroGallery:["/gallery/serene-estate.webp","/gallery/forestmanor.webp","/gallery/fluxtrends.webp","/gallery/inspireddecor.webp","/gallery/renishaw.webp","/gallery/reinhardt.webp","/gallery/thelemonademovement.webp","/gallery/aphoticsecurity.webp"],intro:"Most websites are built to look good, then left to gather dust. We build websites with one job: turning the traffic you already have into qualified leads in your inbox. There is strategy and copy behind every section, not just a pretty layout.",ctaLabel:"Get a free website assessment",valuePropsHeading:"A website that earns its place, not just fills it.",valueProps:[{icon:"Target",title:"Built to convert",body:"Every layout, headline and call to action is designed around the action you want a visitor to take. We build for a real uplift in your conversion rate, not just a fresh coat of paint."},{icon:"Gauge",title:"Fast and mobile-first",body:"Most of your visitors are on a phone. We build fast-loading, mobile-first sites that keep people engaged and keep Google happy."},{icon:"Search",title:"Search and AI ready",body:"Structured cleanly so you can be found in Google, and increasingly in AI answers, with the technical groundwork for SEO baked in from day one."},{icon:"PackageCheck",title:"Done for you, end to end",body:"Copy, design, build and launch, all handled by us. Your site becomes your hardest-working salesperson while you get on with running the business."}],includedTitle:"Everything we handle",included:["Conversion-focused design and layout","Sales copy that does the selling","Fast, mobile-first build","On-page SEO foundations","Lead capture and tracking set up","Hosting and maintenance (optional)"],process:[{n:"01",title:"Goal and quote",body:"We start with the end in mind: what the site needs to achieve and how we will measure it. You get a clear quote up front, no surprises."},{n:"02",title:"Content and copy",body:"We gather what we need from you, then write copy designed to convert. You approve the direction before anything gets designed."},{n:"03",title:"Design and approval",body:"We design your homepage first and send it for sign-off, so you see the look and feel before we build out the rest."},{n:"04",title:"Build and launch",body:"We build the full site, wire up lead capture and tracking, and launch. Most projects go live in around four weeks."}],portfolio:[{client:"Sterling Group",type:"Access hire",result:"+474% organic traffic",image:"/portfolio/sterling.webp"},{client:"Renishaw Hills",type:"Lifestyle estate",result:"2,998 Facebook leads",image:"/portfolio/renishaw-hills.webp"},{client:"Dr Augustine & Parikh",type:"Medical practice",result:"3,921 leads generated",image:"/portfolio/dr-augustine.webp"},{client:"IPC",type:"PVC manufacturer",result:"+5,359% organic traffic",image:"/portfolio/ipc.webp"},{client:"Berklaw",type:"Legal practice",result:"1,828 leads in 12 months",image:"/portfolio/berklaw.webp"},{client:"Gutter Doc",type:"Gutter installation",result:"2,875 leads in 12 months",image:"/portfolio/gutter-doc.webp"}],faqs:[{q:"How much does a website cost?",a:"It depends on what the site needs to do and how many pages it has. Websites are a once-off project, priced to the scope, and you get a clear quote up front. Entry-level sites start from around R20,000, and the best next step is a quick conversation about your goals so we can put real numbers to it."},{q:"Do I need to provide the copy?",a:"No. You give us the raw information about your business, the things only you know, and we shape it into copy that converts. We can write light, easy-to-read copy or hard-hitting sales copy depending on your goals and budget."},{q:"What about images?",a:"Professional photography always works best, and we can arrange a shoot. If that is not an option, we will source high-quality stock images so your site still looks the part."},{q:"How long does it take?",a:"Most sites are designed and live in around four weeks. Week one is content, week two is the homepage design and feel, and the following weeks are the rest of the build, with feedback along the way."},{q:"Do I have to be local to work with you?",a:"Not at all. We work with clients across South Africa and internationally over email, calls and video. We are based on the West Coast of the Western Cape."},{q:"Will my website rank on Google?",a:"A new site does not rank on its own. We build the technical foundations for SEO, but ranking for competitive terms takes ongoing SEO work, which we are happy to handle as part of a lead-generation retainer."}],related:["seo-agency","google-advertising-agency","facebook-advertising-agency"],form:{eyebrow:"Start your project",heading:"Let's build you a website that works",intro:"Tell us about your business and what you want the site to do, and we'll get back to you within one business day. Need ongoing leads too? Tick the box and we'll factor it in.",submitLabel:"Request my quote",optionalLeadGen:!0}},"seo-agency":{slug:"seo-agency",metaTitle:"SEO Company in South Africa | The Weblab",metaDescription:"An SEO company for service businesses that ranks you for the terms your buyers search, and measures it in leads, not vanity traffic. West Coast based, serving worldwide.",eyebrow:"SEO",h1:"An SEO company that ranks you for leads, not vanity traffic",highlight:"leads, not vanity traffic",intro:"Traffic is easy to buy and easy to fake. We do SEO the honest way: ranking you for the terms your buyers actually search, getting you cited in AI answers too, and measuring it all in enquiries, not impressions.",ctaLabel:"Get a free SEO assessment",valueProps:[{icon:"Search",title:"Rank for buying intent",body:"We target the terms people search when they are ready to act, not high-volume keywords that never convert."},{icon:"TrendingUp",title:"Compounding results",body:"SEO is an asset that keeps paying. The work we do now lowers your cost per lead for months afterward."},{icon:"MapPin",title:"Local and national",body:"From your Google Business Profile to national rankings, we get you found where your buyers are looking."},{icon:"BarChart3",title:"Measured in leads",body:"Clean tracking ties rankings to enquiries, so you see what SEO actually returns."}],includedTitle:"Everything we handle",included:["Technical SEO and site health","Keyword and intent research","On-page optimisation","Content that ranks and gets cited by AI","Google Business Profile and local","Reporting tied to leads"],process:[{n:"01",title:"Audit",body:"We find what is holding you back: technical issues, content gaps, and the keywords worth winning."},{n:"02",title:"Foundations",body:"We fix the technical health and on-page basics so Google can read and trust your site."},{n:"03",title:"Content and authority",body:"We build the content and signals that earn rankings for the terms that matter."},{n:"04",title:"Measure and refine",body:"We track rankings to leads and double down on what works, every month."}],faqs:[{q:"How long does SEO take?",a:"SEO is a compounding investment. You will usually see movement within a few months and meaningful results over six to twelve, depending on your market."},{q:"Do you guarantee rankings?",a:"No, and be wary of anyone who does. We guarantee the right work done consistently, and we report honestly on the results."},{q:"Is SEO better than paid ads?",a:"They do different jobs. Ads buy leads today, SEO earns cheaper leads over time. Most businesses do best running both."},{q:"Do I need to sign a long contract?",a:"No. We work month to month with 30 days' notice. We would rather be kept by results than a contract."},{q:"Can you help with local SEO?",a:"Yes. For service businesses, your Google Business Profile and local rankings often drive the most enquiries, and we handle both."},{q:"Can you help me show up in AI search?",a:"Yes. As more people get answers from tools like ChatGPT and Google's AI overviews, we structure your content and authority so you are the source they pull from, not just a blue link. It is the same foundation as good SEO, pointed at a newer surface."}],related:["web-design-company","google-advertising-agency","copywriting-services"],form:{eyebrow:"Free SEO assessment",heading:"Let's see what SEO can do for you",intro:"Tell us about your business and what you want to rank for. We will take a look and tell you straight whether SEO is worth it for you.",submitLabel:"Request my SEO assessment",optionalLeadGen:!1}},"google-advertising-agency":{slug:"google-advertising-agency",metaTitle:"Google Advertising Agency | Google Ads | The Weblab",metaDescription:"A Google advertising agency that runs Google Ads for qualified leads, not clicks. Tight targeting, conversion tracking, no lock-in. West Coast based, serving worldwide.",eyebrow:"Google Ads",h1:"A Google advertising agency built around leads, not clicks",highlight:"leads, not clicks",intro:"Anyone can spend your budget. We run Google Ads to spend it well: tight targeting, landing pages that convert, and tracking that ties every rand to a lead.",ctaLabel:"Get a free Google Ads assessment",valueProps:[{icon:"MousePointerClick",title:"Clicks that convert",body:"We optimise for qualified leads, not cheap clicks, so your budget reaches people who can actually buy."},{icon:"Target",title:"Tight targeting",body:"Negative keywords, audiences and match types kept sharp, so you stop paying for searches that never convert."},{icon:"Gauge",title:"Faster results",body:"Ads put you at the top today. We use that speed to learn fast and scale what works."},{icon:"BarChart3",title:"Tracked to revenue",body:"Proper conversion tracking shows your true cost per lead, not just clicks and impressions."}],includedTitle:"Everything we handle",included:["Campaign strategy and setup","Keyword and audience targeting","Conversion-focused ad copy","
3Landing page guidance","Conversion tracking setup","Ongoing optimisation and reporting"],process:[{n:"01",title:"Plan",body:"We map your goals, audiences and budget, and set up tracking before a cent is spent."},{n:"02",title:"Launch",body:"We build tightly-themed campaigns with copy and keywords matched to buyer intent."},{n:"03",title:"Optimise",body:"We cut what wastes budget and scale what produces leads, continuously."},{n:"04",title:"Report",body:"You get clear reporting on cost per lead and what your spend actually returns."}],faqs:[{q:"How much should I spend on Google Ads?",a:"Enough to gather real data, then scale what works. We help you set a budget tied to your goals, not a number plucked from the air."},{q:"How fast will I see results?",a:"Ads can drive leads within days. The first few weeks are about learning, then we optimise toward a steady cost per lead."},{q:"Is the ad budget separate from your fee?",a:"Yes. Your ad spend goes to Google. Our retainer covers the strategy, management and optimisation."},{q:"What if it is not working?",a:"We track to leads, so we know quickly. No lock-in contract means you are never stuck if it is not delivering."},{q:"Do I need a landing page?",a:"Often yes. The ad is only half the job. Where the click lands does as much of the converting, and we will tell you if yours needs work."}],related:["web-design-company","seo-agency","facebook-advertising-agency"],form:{eyebrow:"Free Google Ads assessment",heading:"Let's see if Google Ads will pay off",intro:"Tell us about your business and your goals. We will look at the opportunity and tell you straight whether Google Ads is worth your budget.",submitLabel:"Request my Google Ads assessment",optionalLeadGen:!1}},"facebook-advertising-agency":{slug:"facebook-advertising-agency",metaTitle:"Facebook & Paid Social Advertising Agency | The Weblab",metaDescription:"A paid social advertising agency that turns Facebook and Instagram ads into qualified leads for service businesses. No vanity metrics, no lock-in. West Coast based, serving worldwide.",eyebrow:"Paid social",h1:"Paid social advertising that brings leads, not just likes",highlight:"leads, not just likes",intro:"Likes do not pay the bills. We run Facebook and Instagram ads to find the right people before they are searching, and turn their attention into real enquiries.",ctaLabel:"Get a free paid social assessment",valueProps:[{icon:"Users",title:"Reach the right people",body:"Precise audience targeting puts you in front of the people most likely to need you, before they go searching."},{icon:"Megaphone",title:"Scroll-stopping creative",body:"Ads built to earn attention in a crowded feed, then turn it into a click and an enquiry."},{icon:"Target",title:"Built for leads",body:"We optimise campaigns for qualified leads and conversions, not vanity metrics like reach and likes."},{icon:"BarChart3",title:"Tracked properly",body:"Pixel and conversion tracking set up right, so you know what each campaign actually produces."}],includedTitle:"Everything we handle",included:["Paid social strategy","Audience research and targeting","Ad creative and copy","Pixel and conversion tracking","Retargeting campaigns","Optimisation and reporting"],process:[{n:"01",title:"Strategy",body:"We define who to target, what to say, and how we will measure success."},{n:"02",title:"Create",body:"We build the audiences, creative and copy designed to stop the scroll and earn the click."},{n:"03",title:"Optimise",body:"We test, cut the losers and scale the winners toward a steady cost per lead."},{n:"04",title:"Retarget and report",body:"We bring back the people who did not convert, and report on what works."}],faqs:[{q:"Facebook or Instagram?",a:"Usually both. They share an ad system, and we run whichever placements reach your buyers most cost-effectively."},{q:"Is paid social right for a service business?",a:"Often yes. It finds people before they search, which fills the top of your pipeline. We will tell you honestly if it fits your business."},{q:"How much budget do I need?",a:"Enough to test properly and learn. We help you set a sensible starting budget and scale once we see what converts."},{q:"What about vanity metrics?",a:"We ignore them. Reach and likes are nice, but we optimise for leads and report on cost per lead."},{q:"Do you handle the creative?",a:"Yes. Copy and creative are part of the service, because the creative is what makes paid social work."}],related:["web-design-company","google-advertising-agency","seo-agency"],form:{eyebrow:"Free paid social assessment",heading:"Let's see if paid social can grow you",intro:"Tell us about your business and your goals. We will assess whether Facebook and Instagram ads are worth it for you, and say so straight.",submitLabel:"Request my paid social assessment",optionalLeadGen:!1}},"digital-marketing-company":{slug:"digital-marketing-company",metaTitle:"Digital Marketing for Service Businesses | The Weblab",metaDescription:"A digital marketing company that runs SEO, ads, paid social and conversion websites as one lead engine for service businesses. No lock-in. West Coast based, serving worldwide.",eyebrow:"Digital marketing",h1:"A digital marketing company with one job: your leads",highlight:"your leads",intro:"Most agencies sell channels. We sell outcomes. We run SEO, ads, paid social and your website as one connected lead engine, built around the only number that matters: qualified enquiries.",ctaLabel:"Get a free growth assessment",valueProps:[{icon:"Target",title:"One lead engine",body:"SEO, ads and your website working together toward leads, not five disconnected tactics."},{icon:"BarChart3",title:"Measured on outcomes",body:"We report on leads and cost per lead, not impressions and likes. The number that pays your bills."},{icon:"Megaphone",title:"The right channel mix",body:"We put your budget where it works for your business, and move it as the data tells us to."},{icon:"PackageCheck",title:"One senior team",body:"No juggling suppliers. One team that owns your growth end to end, and answers to it."}],includedTitle:"Everything we handle",included:["Growth strategy","SEO and local search","Google Ads and paid social","Conversion website and landing pages","Tracking and analytics","Reporting tied to leads"],process:[{n:"01",title:"Discovery",body:"We learn your business, your goals and your numbers, and find where the leads are leaking."},{n:"02",title:"Plan",body:"We build a channel mix around your budget and the fastest path to more leads."},{n:"03",title:"Execute",body:"We run the work: search, ads, social and conversion, as one connected engine."},{n:"04",title:"Grow",body:"We measure everything against leads, and move budget to what works, every month."}],faqs:[{q:"Do I have to use every channel?",a:"No. We recommend the mix that fits your business and budget. Sometimes that is one channel, sometimes several."},{q:"What does it cost?",a:"Our retainers start from R15,000 a month. The right number depends on your goals and the channels involved."},{q:"Will I be locked in?",a:"No. We work month to month with 30 days' notice. We earn the relationship with results."},{q:"How is this different from a big agency?",a:"You deal directly with the senior people doing the work, and we turn down clients we cannot grow. No bloated retainers, no juniors learning on your budget."},{q:"How soon will I see results?",a:"Ads can move within weeks, SEO compounds over months. We are honest about timelines for each channel up front."}],related:["seo-agency","google-advertising-agency","web-design-company"],form:{eyebrow:"Free growth assessment",heading:"Let's see if we can grow your business",intro:"Tell us about your business. If we think we can move the needle, we will set up a free discovery call. If we can't, we will tell you.",submitLabel:"Request my assessment",optionalLeadGen:!1}},"copywriting-services":{slug:"copywriting-services",metaTitle:"Copywriting Services That Convert | The Weblab",metaDescription:"Conversion copywriting for service businesses: website copy, landing pages and ads that turn readers into enquiries. West Coast based, serving worldwide.",eyebrow:"Copywriting",h1:"Copywriting that turns readers into enquiries",highlight:"into enquiries",intro:"Good design gets noticed. Good copy gets the click. We write words that do a job: speaking to your buyer's problem and moving them to act, on your website, your landing pages and your ads.",ctaLabel:"Get a free copy asse
3ssment",valueProps:[{icon:"PenTool",title:"Written to convert",body:"Every line earns its place, structured around the action you want the reader to take."},{icon:"Target",title:"Speaks to the buyer",body:"We write about your reader's problem, not your features. That is what gets the enquiry."},{icon:"Search",title:"Search and AI aware",body:"Copy that reads naturally for people and cleanly for search engines and AI, so it gets found and gets read."},{icon:"FileText",title:"Clear, not clever",body:"Plain, sharp writing that anyone can follow. Confusion never converted anyone."}],includedTitle:"Everything we handle",included:["Website and landing page copy","Sales and ad copy","Messaging and positioning","SEO-aware writing","Email and nurture copy","Tone and brand voice"],process:[{n:"01",title:"Understand",body:"We learn your business, your buyer and the action you want, before writing a word."},{n:"02",title:"Research",body:"We dig into what your buyers care about and the language they use."},{n:"03",title:"Write",body:"We draft copy built to convert, structured around one clear next step."},{n:"04",title:"Refine",body:"We tighten it with you until every line earns its place."}],faqs:[{q:"Do I need to supply the content?",a:"Just the raw information only you know. We shape it into copy that converts. You do not need to write it yourself."},{q:"Do you write for SEO?",a:"Yes. We write for people first, structured so search engines and AI tools can read it cleanly too."},{q:"Can you match our voice?",a:"Yes. We work from your brand and tone, or help you define one if you do not have it nailed down."},{q:"What do you write?",a:"Websites, landing pages, ads, emails and more. Anywhere words need to earn an action."},{q:"Is copy really worth paying for?",a:"The words do the selling. Strong copy on the same traffic can lift your conversion rate, which is the cheapest growth there is."}],related:["web-design-company","seo-agency","digital-marketing-company"],form:{eyebrow:"Free copy assessment",heading:"Let's see what better copy could do",intro:"Tell us about your business and where your copy needs to work harder. We will take a look and tell you straight.",submitLabel:"Request my copy assessment",optionalLeadGen:!0}},"web-design-cape-town":{slug:"web-design-cape-town",toolCta:{href:"/website-cost-calculator/",label:"Estimate your website cost"},hideFromNav:!0,area:"Cape Town",metaTitle:"Web Design Cape Town | Websites Built to Convert",metaDescription:"Web design for Cape Town businesses, built to turn visitors into enquiries. A South African agency working with Cape Town clients remotely, plus nationwide and abroad.",eyebrow:"Web design · Cape Town",h1:"Web design for Cape Town businesses, built for leads",highlight:"built for leads",heroGallery:["/gallery/serene-estate.webp","/gallery/forestmanor.webp","/gallery/fluxtrends.webp","/gallery/inspireddecor.webp","/gallery/renishaw.webp","/gallery/reinhardt.webp","/gallery/thelemonademovement.webp","/gallery/aphoticsecurity.webp"],intro:"Looking for web design in Cape Town? We build fast, conversion-focused websites for Cape Town businesses, and we run the whole project remotely. We are a South African agency working with clients across the country and abroad, so you get a site engineered to turn visitors into enquiries, wherever you are based. If you are happy with online meetings and email, we are a great fit.",ctaLabel:"Get a free website assessment",valuePropsHeading:"A Cape Town website that earns its keep, not just fills a tab.",valueProps:[{icon:"Target",title:"Built to convert",body:"Every section, headline and call to action is designed around the enquiry you want a visitor to make. We build for a real lift in your conversion rate, not just a fresh coat of paint."},{icon:"Gauge",title:"Fast and mobile-first",body:"Most of your Cape Town visitors arrive on a phone. We build fast-loading, mobile-first sites that hold attention and keep Google happy."},{icon:"Search",title:"Found on Google",body:"Clean structure and on-page SEO from day one, so you can rank for the Cape Town searches your buyers actually make, and get picked up in AI answers too."},{icon:"PackageCheck",title:"Done for you, remotely",body:"Copy, design, build and launch, all handled by us over email, calls and video. Distance has never been a barrier to great work."}],includedTitle:"Everything we handle",included:["Conversion-focused design and layout","Sales copy that does the selling","Fast, mobile-first build","On-page SEO foundations","Lead capture and tracking setup","Hosting and maintenance (optional)"],process:[{n:"01",title:"Goal and quote",body:"We start with what the site needs to achieve and how we will measure it, then give you a clear quote up front. No surprises."},{n:"02",title:"Content and copy",body:"We gather what only you know about your Cape Town business, then write copy built to convert. You sign off the direction before anything gets designed."},{n:"03",title:"Design and approval",body:"We design your homepage first and send it for sign-off, so you see the look and feel before we build out the rest."},{n:"04",title:"Build and launch",body:"We build the full site, wire up lead capture and tracking, and launch. Most projects go live in around four weeks."}],portfolio:[{client:"Sterling Group",type:"Access hire",result:"+474% organic traffic",image:"/portfolio/sterling.webp"},{client:"Renishaw Hills",type:"Lifestyle estate",result:"2,998 Facebook leads",image:"/portfolio/renishaw-hills.webp"},{client:"Dr Augustine & Parikh",type:"Medical practice",result:"3,921 leads generated",image:"/portfolio/dr-augustine.webp"},{client:"IPC",type:"PVC manufacturer",result:"+5,359% organic traffic",image:"/portfolio/ipc.webp"},{client:"Berklaw",type:"Legal practice",result:"1,828 leads in 12 months",image:"/portfolio/berklaw.webp"},{client:"Gutter Doc",type:"Gutter installation",result:"2,875 leads in 12 months",image:"/portfolio/gutter-doc.webp"}],faqs:[{q:"Are you based in Cape Town?",a:"No. We are a South African agency based on the West Coast of the Western Cape, and we work with Cape Town businesses remotely. Almost everything happens over email, calls and shared screens, so where we sit has no effect on the quality of the work."},{q:"Do you work with Cape Town businesses remotely?",a:"Yes, and most of our clients prefer it. If you are happy with online meetings and email, we are a great fit. If you would rather meet in person every week, we are probably not the right team, and we will tell you that honestly."},{q:"How much does a website cost in Cape Town?",a:"It depends on what the site needs to do and how many pages it has. Websites are a once-off project, priced to the scope, with a clear quote up front. Entry-level sites start from around R20,000, and the best next step is a quick chat about your goals so we can put real numbers to it."},{q:"How long does it take?",a:"Most sites are designed and live in around four weeks. Week one is content, week two is the homepage design and feel, and the following weeks are the rest of the build, with your feedback along the way."},{q:"Will my website rank on Google in Cape Town?",a:"A new site does not rank on its own. We build the technical and on-page foundations for SEO, and ranking for competitive Cape Town terms takes ongoing SEO work, which we are happy to handle as part of a lead-generation retainer."},{q:"Do I need to provide the copy?",a:"No. You give us the raw information only you know about your business, and we shape it into copy that converts. We can write light, readable copy or hard-hitting sales copy depending on your goals and budget."}],related:["web-design-company","seo-agency","google-advertising-agency"],form:{eyebrow:"Start your project",heading:"Let's build you a website that works",intro:"Tell us about your Cape Town business and what you want the site to do, and we'll get back to you within one business day. Need ongoing leads too? Tick the box and we'll factor it in.",submitLabel:"Request my quote",optionalLeadGen:!0}},"web-design-johannesburg":{slug:"web-design-johannesburg",toolCta:{href:"/website-cost-calculator/",label:"Estimate your website cost"},hideFromNav:!0,area:"Johannesburg",metaTitle:"Web Design Johannesburg | Websites Built to Convert",metaDescription:"Web design for Johannesburg businesses, built to turn visitors into enquiries. A South African agency working with Joburg clients remotely and across the country.",eyebrow:"Web design · Johannesburg",h1:"Web design for Johannesburg businesses, built for leads",highlight:"built for leads",heroGallery:["/gallery/serene-estate.webp","/gallery/forestmanor.webp","/gallery/fluxtrends.webp","/gallery/inspireddecor.webp","/gallery/renishaw.webp","/gallery/reinhardt.webp","/gallery/thelemonademovement.webp","/gallery/aphoticsecurity.webp"],intro:"Looking for web design in Johannesburg? Joburg is a crowded, competitive market, and a good-looking website is not enough to win in it. We build fast, conversion-focused sites for Johannesburg businesses, run remotely, from a South African agency that works with clients across the country and abroad. The point is simple: a site that turns your traffic into enquiries you can actually close.",ctaLabel:"Get a free website assessment",valuePropsHeading:"A Johannesburg website that competes, not just exists.",valueProps:[{icon:"Target",title:"Built to convert",body:"In a market as busy as Joburg, attention is expensive. Every section, headline and call to action is built around the enquiry you want, so the traffic you pay for turns into leads instead of bounces."},{icon:"Gauge",title:"Fast and mobile-first",body:"Your Johannesburg buyers are mostly on a phone, often on the move. We build fast, mobile-first sites that load quickly and keep them reading."},{icon:"Search",title:"Found on Google",body:"Clean structure and on-page SEO from day one, so you can compete for the Johannesburg searches your buyers make, and show up in AI answers too."},{icon:"PackageCheck",title:"Done for you, remotely",body:"Copy, design, build and launch, all handled by us over email, calls and video. You get senior people on the work, wherever your office sits."}],includedTitle:"Everything we handle",included:["Conversion-focused design and layout","Sales copy that does the selling","Fast, mobile-first build","On-page SEO foundations","Lead capture and tracking setup","Hosting and maintenance (optional)"],process:[{n:"01",title:"Goal and quote",body:"We start with what the site needs to achieve and how we will measure it, then give you a clear quote up front. No surprises."},{n:"02",title:"Content and copy",body:"We gather what only you know about your Johannesburg business, then write copy built to convert. You sign off the direction before anything gets designed."},{n:"03",title:"Design and approval",body:"We design your homepage first and send it for sign-off, so you see the look and feel before we build out the rest."},{n:"04",title:"Build and launch",body:"We build the full site, wire up lead capture and tracking, and launch. Most projects go live in around four weeks."}],portfolio:[{client:"Sterling Group",type:"Access hire",result:"+474% organic traffic",image:"/portfolio/sterling.webp"},{client:"Renishaw Hills",type:"Lifestyle estate",result:"2,998 Facebook leads",image:"/portfolio/renishaw-hills.webp"},{client:"Dr Augustine & Parikh",type:"Medical practice",result:"3,921 leads generated",image:"/portfolio/dr-augustine.webp"},{client:"IPC",type:"PVC manufacturer",result:"+5,359% organic traffic",image:"/portfolio/ipc.webp"},{client:"Berklaw",type:"Legal practice",result:"1,828 leads in 12 months",image:"/portfolio/berklaw.webp"},{client:"Gutter Doc",type:"Gutter installation",result:"2,875 leads in 12 months",image:"/portfolio/gutter-doc.webp"}],faqs:[{q:"Are you based in Johannesburg?",a:"No. We are a South African agency based on the West Coast of the Western Cape, and we work with Johannesburg businesses remotely. The work happens over email, calls and shared screens, so our location makes no difference to what you get."},{q:"Do you work with Johannesburg businesses remotely?",a:"Yes, and most of our clients prefer it. If you are comfortable with online meetings and email, we are a great fit. If you would rather meet in person in Sandton every week, we are honest that we are probably not the right team."},{q:"How much does a website cost in Johannesburg?",a:"It depends on what the site needs to do and how many pages it has. Websites are a once-off project, priced to the scope, with a clear quote up front. Entry-level sites start from around R20,000, and the best next step is a quick chat about your goals so we can put real numbers to it."},{q:"How long does it take?",a:"Most sites are designed and live in around four weeks. Week one is content, week two is the homepage design and feel, and the following weeks are the rest of the build, with your feedback along the way."},{q:"Will my website rank on Google in Johannesburg?",a:"A new site does not rank on its own. We build the technical and on-page foundations for SEO, and ranking for competitive Johannesburg terms takes ongoing SEO work, which we are happy to handle as part of a lead-generation retainer."},{q:"Do I need to provide the copy?",a:"No. You give us the raw information only you know about your business, and we shape it into copy that converts. We can write light, readable copy or hard-hitting sales copy depending on your goals and budget."}],related:["web-design-company","seo-agency","google-advertising-agency"],form:{eyebrow:"Start your project",heading:"Let's build you a website that works",intro:"Tell us about your Johannesburg business and what you want the site to do, and we'll get back to you within one business day. Need ongoing leads too? Tick the box and we'll factor it in.",submitLabel:"Request my quote",optionalLeadGen:!0}},"web-design-durban":{slug:"web-design-durban",toolCta:{href:"/website-cost-calculator/",label:"Estimate your website cost"},hideFromNav:!0,area:"Durban",metaTitle:"Web Design Durban | Websites Built to Convert",metaDescription:"Web design for Durban businesses, built to turn visitors into enquiries. A South African agency working with Durban clients remotely and across the country.",eyebrow:"Web design · Durban",h1:"Web design for Durban businesses, built for leads",highlight:"built for leads",heroGallery:["/gallery/serene-estate.webp","/gallery/forestmanor.webp","/gallery/fluxtrends.webp","/gallery/inspireddecor.webp","/gallery/renishaw.webp","/gallery/reinhardt.webp","/gallery/thelemonademovement.webp","/gallery/aphoticsecurity.webp"],intro:"Looking for web design in Durban? We build fast, conversion-focused websites for Durban businesses, run entirely remotely, from a South African agency that works with clients across the country and abroad. Whether you are in the CBD, Umhlanga or Ballito, you get a site engineered to turn visitors into enquiries. If online meetings and email suit how you work, we are a great fit.",ctaLabel:"Get a free website assessment",valuePropsHeading:"A Durban website that pulls its weight, not just looks good.",valueProps:[{icon:"Target",title:"Built to convert",body:"A good-looking site is not the goal. Every section, headline and call to action is built around the enquiry you want, so your Durban visitors take the next step instead of drifting off."},{icon:"Gauge",title:"Fast and mobile-first",body:"Most of your Durban visitors are on a phone. We build fast, mobile-first sites that load quickly on any connection and keep people engaged."},{icon:"Search",title:"Found on Google",body:"Clean structure and on-page SEO from day one, so you can rank for the Durban searches your buyers make, and get picked up in AI answers too."},{icon:"PackageCheck",title:"Done for you, remotely",body:"Copy, design, build and launch, all handled by us over email, calls and video. You work directly with the people building your site, wherever you are."}],includedTitle:"Everything we handle",included:["Conversion-focused design and layout","Sales copy that does the selling","Fast, mobile-first build","On-page SEO foundations","Lead capture and tracking setup","Hosting and maintenance (optional)"],process:[{n:"01",title:"Goal and quote",body:"We start with what the site needs to achieve and how we wil
3l measure it, then give you a clear quote up front. No surprises."},{n:"02",title:"Content and copy",body:"We gather what only you know about your Durban business, then write copy built to convert. You sign off the direction before anything gets designed."},{n:"03",title:"Design and approval",body:"We design your homepage first and send it for sign-off, so you see the look and feel before we build out the rest."},{n:"04",title:"Build and launch",body:"We build the full site, wire up lead capture and tracking, and launch. Most projects go live in around four weeks."}],portfolio:[{client:"Sterling Group",type:"Access hire",result:"+474% organic traffic",image:"/portfolio/sterling.webp"},{client:"Renishaw Hills",type:"Lifestyle estate",result:"2,998 Facebook leads",image:"/portfolio/renishaw-hills.webp"},{client:"Dr Augustine & Parikh",type:"Medical practice",result:"3,921 leads generated",image:"/portfolio/dr-augustine.webp"},{client:"IPC",type:"PVC manufacturer",result:"+5,359% organic traffic",image:"/portfolio/ipc.webp"},{client:"Berklaw",type:"Legal practice",result:"1,828 leads in 12 months",image:"/portfolio/berklaw.webp"},{client:"Gutter Doc",type:"Gutter installation",result:"2,875 leads in 12 months",image:"/portfolio/gutter-doc.webp"}],faqs:[{q:"Are you based in Durban?",a:"No. We are a South African agency based on the West Coast of the Western Cape, and we work with Durban businesses remotely. Everything runs over email, calls and shared screens, so the distance has no effect on the work."},{q:"Do you work with Durban businesses remotely?",a:"Yes, and it is how most of our clients like to work. If you are happy with online meetings and email, we are a great fit. If you would rather sit down together in person every week, we will tell you straight that we are probably not the best fit."},{q:"How much does a website cost in Durban?",a:"It depends on what the site needs to do and how many pages it has. Websites are a once-off project, priced to the scope, with a clear quote up front. Entry-level sites start from around R20,000, and the best next step is a quick chat about your goals so we can put real numbers to it."},{q:"How long does it take?",a:"Most sites are designed and live in around four weeks. Week one is content, week two is the homepage design and feel, and the following weeks are the rest of the build, with your feedback along the way."},{q:"Will my website rank on Google in Durban?",a:"A new site does not rank on its own. We build the technical and on-page foundations for SEO, and ranking for competitive Durban terms takes ongoing SEO work, which we are happy to handle as part of a lead-generation retainer."},{q:"Do I need to provide the copy?",a:"No. You give us the raw information only you know about your business, and we shape it into copy that converts. We can write light, readable copy or hard-hitting sales copy depending on your goals and budget."}],related:["web-design-company","seo-agency","google-advertising-agency"],form:{eyebrow:"Start your project",heading:"Let's build you a website that works",intro:"Tell us about your Durban business and what you want the site to do, and we'll get back to you within one business day. Need ongoing leads too? Tick the box and we'll factor it in.",submitLabel:"Request my quote",optionalLeadGen:!0}},"lead-management":{slug:"lead-management",metaTitle:"Lead Management: WhatsApp & Email in One Inbox | The Weblab",metaDescription:"Centralise your WhatsApp and email conversations in one AI-powered inbox. The Weblab is an official respond.io implementation partner. Book a demo.",eyebrow:"Lead management",h1:"Every WhatsApp and email conversation, in one inbox",highlight:"one inbox",intro:"Your customers message you on WhatsApp, email you, fill in forms, then message again somewhere else. Spread across apps and phones, leads slip through the cracks. We fix that. As an official respond.io implementation partner, we bring every conversation into one AI-powered inbox, so nothing gets missed, every lead gets a fast reply, and your team always has the full picture.",ctaLabel:"Book a demo",secondaryCta:{label:"Learn more",href:"https://get.respond.io/weblab-service-page",external:!0},valuePropsHeading:"Stop losing leads in scattered inboxes.",valueProps:[{icon:"Users",title:"One inbox, every channel",body:"WhatsApp, email, web chat and social land in a single shared inbox. No more leads lost across five apps and three phones."},{icon:"Gauge",title:"Answered in seconds",body:"Every enquiry gets an instant, on-brand reply, day or night, so no lead sits waiting while a competitor answers first."},{icon:"Target",title:"AI that qualifies and routes",body:"An AI agent asks the right questions, sorts serious buyers from time-wasters, and hands hot leads to the right person with full context."},{icon:"PackageCheck",title:"Full context, every time",body:"Every message, note and detail sits in one thread, synced to your CRM, so your team always knows who they are talking to."}],includedTitle:"Everything we handle",included:["WhatsApp Business API application and setup","respond.io setup and configuration","One shared inbox for WhatsApp, email and social","AI agent build for instant replies and qualification","
3Lead capture from ads, forms and your website","CRM integration, routing and follow-up automation","Team training and ongoing support"],process:[{n:"01",title:"Audit",body:"We map how customers reach you today, where conversations scatter, and where leads go cold."},{n:"02",title:"Setup",body:"We get you verified on the WhatsApp Business API and set up respond.io, connecting WhatsApp, email and your CRM into one inbox."},{n:"03",title:"Build",body:"We build the AI agent, routing and follow-up flows that reply instantly, qualify leads and hand them to the right person."},{n:"04",title:"Launch and support",body:"We go live, train your team, and fine-tune the setup so more conversations turn into customers."}],partner:{heading:"An official respond.io implementation partner",body:"respond.io is the platform we build on, and we are certified to implement it. We handle the setup, configuration and training, so you get a powerful system running properly, not just a login and a shrug.",badge:"/respond-io-partner-light.png",badgeAlt:"The Weblab is a respond.io Qualified Partner",learnMoreHref:"https://get.respond.io/weblab-service-page",learnMoreLabel:"Learn more about respond.io",signupHref:"https://get.respond.io/70lrxj8y58zv",signupLabel:"sign up here"},stats:{eyebrow:"Proven at scale",heading:"What respond.io delivers, in the numbers",note:"These are respond.io's own platform and customer figures, not The Weblab's results. They show what the software can do once it is set up and run well.",items:[{value:"10,000+",label:"businesses run their customer conversations on respond.io"},{value:"42.5x",label:"ROI from WhatsApp broadcasts, in one respond.io customer case"},{value:"3x",label:"more leads from ads, in another respond.io customer case"},{value:"99.999%",label:"respond.io platform uptime"}],source:"Source: respond.io"},faqs:[{q:"What is respond.io, and are you a partner?",a:"respond.io is a conversation management platform that brings WhatsApp, email and other channels into one AI-powered inbox. We are an official implementation partner, so we set it up, configure it and support you, rather than leaving you to figure out a powerful tool on your own."},{q:"Which channels can you centralise?",a:"The focus is WhatsApp and email, the two that matter most for most businesses. respond.io also connects web chat, Instagram and Messenger, so you can add them when you are ready."},{q:"Can it handle phone calls?",a:"It handles WhatsApp voice calls inside the same inbox, so a chat can move to a call without losing context. We do not currently offer landline or VoIP call handling, so if that is your main need, we will tell you honestly."},{q:"Will it work with my CRM?",a:"In most cases, yes. respond.io connects to popular CRMs, calendars and lead sources. We handle the integrations so everything feeds the systems you already use."},{q:"How does the AI actually help?",a:"An AI agent replies instantly, answers common questions, qualifies leads and books or routes them to a human when it matters. Your team spends time on real buyers, not filtering noise."},{q:"Do I have to be local to work with you?",a:"No. We set this up remotely for businesses across South Africa and beyond, over email, calls and video. We are based on the West Coast of the Western Cape."}],related:["google-advertising-agency","web-design-company","digital-marketing-company"],form:{eyebrow:"Book a demo",heading:"See it working on your business",intro:"Tell us how customers reach you now and what happens after. We'll show you how one inbox and a bit of AI could stop leads slipping through, and whether it's a fit.",submitLabel:"Book my demo",optionalLeadGen:!1,hideBudget:!0,challengeLabel:"What does your customer follow-up look like now?",challengePlaceholder:"e.g. Leads message us on WhatsApp but we only get to them hours laterâ¦",formName:"Lead Management demo"}}},h={"web-design-company":"Web Design","seo-agency":"SEO","google-advertising-agency":"Google Ads","facebook-advertising-agency":"Paid Social","digital-marketing-company":"Digital Marketing","copywriting-services":"Copywriting","lead-management":"Lead Management","web-design-cape-town":"Web Design Cape Town","web-design-johannesburg":"Web Design Johannesburg","web-design-durban":"Web Design Durban"},g={"/#services":Object.keys(c).filter(e=>!c[e].hideFromNav).map(e=>({href:`/${e}/`,label:h[e]??e})),"/website-cost-calculator/":u.tools},p="relative text-sm font-medium text-ink/70 transition-colors duration-200 hover:text-ink after:absolute after:-bottom-1.5 after:left-0 after:h-0.5 after:w-full after:origin-left after:scale-x-0 after:rounded-full after:bg-brand after:transition-transform after:duration-300 hover:after:scale-x-100";e.s(["SiteHeader",0,function(){let[e,i]=(0,o.useState)(!1),[c,h]=(0,o.useState)(!1);return(0,o.useEffect)(()=>{let e=()=>h(window.scrollY>8);return e(),window.addEventListener("scroll",e,{passive:!0}),()=>window.removeEventListener("scroll",e)},[]),(0,o.useEffect)(()=>{let e=()=>i(!1);return window.addEventListener("weblab:anchorscroll",e),()=>window.removeEventListener("weblab:anchorscroll",e)},[]),(0,t.jsxs)("header",{className:`sticky top-0 z-50 transition-colors duration-300 ${c?"border-b border-line/80 bg-paper/70 backdrop-blur-xl supports-[backdrop-filter]:bg-paper/60":"border-b border-transparent bg-paper"}`,children:[(0,t.jsxs)(d.Container,{className:"flex h-18 items-center justify-between py-3 lg:h-20",children:[(0,t.jsx)(n.default,{href:"/",className:"flex items-center","aria-label":"The Weblab home",children:(0,t.jsx)(a.default,{src:"/weblab-logo.png",alt:"The Weblab",width:150,height:56,priority:!0,className:"h-10 w-auto sm:h-11 lg:h-14"})}),(0,t.jsx)("nav",{className:"hidden items-center gap-8 lg:flex","aria-label":"Primary",children:u.nav.map(e=>{let o=g[e.href];return o?(0,t.jsxs)("div",{className:"group relative",children:[(0,t.jsxs)(n.default,{href:e.href,className:`${p} inline-flex items-center gap-1`,children:[e.label,(0,t.jsx)(l,{className:"size-3.5 transition-transform duration-200 group-hover:rotate-180"})]}),(0,t.jsx)("div",{className:"invisible absolute left-1/2 top-full z-50 -translate-x-1/2 pt-3 opacity-0 transition-all duration-200 group-hover:visible group-hover:opacity-100 group-focus-within:visible group-focus-within:opacity-100",children:(0,t.jsx)("div",{className:"min-w-[210px] rounded-2xl border border-line bg-paper p-2 shadow-[0_20px_50px_-20px_rgba(0,0,0,0.25)]",children:o.map(e=>(0,t.jsx)(n.default,{href:e.href,className:"block whitespace-nowrap rounded-xl px-3 py-2.5 text-sm font-medium text-ink/75 transition-colors hover:bg-cream hover:text-ink",children:e.label},e.href))})})]},e.href):(0,t.jsx)(n.default,{href:e.href,className:p,children:e.label},e.href)})}),(0,t.jsx)("div",{className:"hidden lg:block",children:(0,t.jsx)(d.
3CTAButton,{href:u.site.bookingHref,className:"!px-6 !py-3 text-sm",children:"Get a free assessment"})}),(0,t.jsx)("button",{type:"button",onClick:()=>i(e=>!e),className:"inline-flex size-11 items-center justify-center rounded-full text-ink lg:hidden cursor-pointer hover:bg-ink/5 transition-colors","aria-label":e?"Close menu":"Open menu","aria-expanded":e,children:e?(0,t.jsx)(s,{className:"size-6"}):(0,t.jsx)(r,{className:"size-6"})})]}),e&&(0,t.jsx)("div",{className:"lg:hidden border-t border-line bg-paper animate-fade-up",children:(0,t.jsxs)(d.Container,{className:"flex flex-col gap-1 py-4",children:[u.nav.map(e=>{let o=g[e.href];return o?(0,t.jsxs)("div",{children:[(0,t.jsx)(n.default,{href:e.href,onClick:()=>i(!1),className:"block rounded-xl px-3 py-3 text-base font-medium text-ink/80 transition-colors hover:bg-ink/5",children:e.label}),(0,t.jsx)("div",{className:"ml-3 flex flex-col gap-0.5 border-l border-line pl-3",children:o.map(e=>(0,t.jsx)(n.default,{href:e.href,onClick:()=>i(!1),className:"rounded-lg px-3 py-2 text-sm text-ink/70 transition-colors hover:bg-ink/5",children:e.label},e.href))})]},e.href):(0,t.jsx)(n.default,{href:e.href,onClick:()=>i(!1),className:"rounded-xl px-3 py-3 text-base font-medium text-ink/80 transition-colors hover:bg-ink/5",children:e.label},e.href)}),(0,t.jsx)(d.CTAButton,{href:u.site.bookingHref,onClick:()=>i(!1),className:"mt-2 w-full",children:"Get a free assessment"})]})})]})}],48303)}]);
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.