1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[977],{759:(e,t,r)=>{"use strict";r.d(t,{X:()=>l,y:()=>n});var i=r(95155),a=r(12115);let s=r(95704).env.NEXT_PUBLIC_TURNSTILE_SITE_KEY||"",n=!!s;function l(e){let{onVerify:t}=e,r=(0,a.useId)().replace(/:/g,""),n=(0,a.useRef)(null),l=(0,a.useRef)(null),[o,c]=(0,a.useState)(!1);return((0,a.useEffect)(()=>{if(!s)return;if(document.querySelector("script[data-turnstile]"))return void c(!0);let e=document.createElement("script");e.src="https://challenges.cloudflare.com/turnstile/v0/api.js",e.async=!0,e.defer=!0,e.setAttribute("data-turnstile","true"),e.onload=()=>c(!0),document.head.appendChild(e)},[]),(0,a.useEffect)(()=>{if(s&&o&&n.current&&window.turnstile)return l.current=window.turnstile.render("#".concat(n.current.id),{sitekey:s,callback:e=>t(e),theme:"dark","error-callback":()=>t(""),"expired-callback":()=>t("")}),()=>{try{window.turnstile&&l.current&&window.turnstile.reset(l.current)}catch(e){}}},[o,t]),s)?(0,i.jsx)("div",{id:"turnstile-".concat(r),ref:n,className:"cf-turnstile"}):null}},15239:(e,t,r)=>{"use strict";r.d(t,{default:()=>a.a});var i=r(54652),a=r.n(i)},18085:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});let i=(0,r(71847).A)("Send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]])},52601:(e,t,r)=>{Promise.resolve().then(r.t.bind(r,52619,23)),Promise.resolve().then(r.bind(r,80890)),Promise.resolve().then(r.bind(r,34011)),Promise.resolve().then(r.bind(r,92374))},53491:(e,t,r)=>{"use strict";r.d(t,{Wu:()=>l,rn:()=>o});let i="tg_first_touch_v1",a=["utm_source","utm_medium","utm_campaign","utm_term","utm_content"],s=["gclid","fbclid","li_fat_id","msclkid"];function n(e,t){return e.length>t?e.slice(0,t):e}function l(){try{if(window.sessionStorage.getItem(i))return;let e=new URLSearchParams(window.location.search),t={};for(let r of[...a,...s]){let i=e.get(r);i&&(t[r]=n(i,200))}t.first_landing_path=n(window.location.pathname,200);let r="undefined"!=typeof document?document.referrer:"";r&&(t.first_referrer=n(r,300)),window.sessionStorage.setItem(i,JSON.stringify(t))}catch(e){}}function o(){let e=function(){try{let e=window.sessionStorage.getItem(i);return e||(l(),e=window.sessionStorage.getItem(i)),e?JSON.parse(e):{}}catch(e){return{}}}();return 0===Object.keys(e).filter(e=>"first_landing_path"!==e).length?{}:{attribution:e}}},54652:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{default:function(){return o},getImageProps:function(){return l}});let i=r(28140),a=r(75040),s=r(81356),n=i._(r(71124));function l(e){let{props:t}=(0,a.getImgProps)(e,{defaultLoader:n.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[e,r]of Object.entries(t))void 0===r&&delete t[e];return{props:t}}let o=s.Image},71847:(e,t,r)=>{"use strict";r.d(t,{A:()=>l});var i=r(12115);let a=function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return t.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim()};var s={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,i.forwardRef)((e,t)=>{let{color:r="currentColor",size:n=24,strokeWidth:l=2,absoluteStrokeWidth:o,className:c="",children:d,iconNode:u,...m}=e;return(0,i.createElement)("svg",{ref:t,...s,width:n,height:n,stroke:r,strokeWidth:o?24*Number(l)/Number(n):l,className:a("lucide",c),...m},[...u.map(e=>{let[t,r]=e;return(0,i.createElement)(t,r)}),...Array.isArray(d)?d:[d]])}),l=(e,t)=>{let r=(0,i.forwardRef)((r,s)=>{let{className:l,...o}=r;return(0,i.createElement)(n,{ref:s,iconNode:t,className:a("lucide-".concat(e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()),l),...o})});return r.displayName="".concat(e),r}},76445:(e,t,r)=>{"use strict";r.d(t,{cn:()=>s});var i=r(2821),a=r(75889);function s(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return(0,a.QP)((0,i.$)(t))}},80890:(e,t,r)=>{"use strict";r.d(t,{ContactForm:()=>y});var i=r(95155),a=r(12115),s=r(52619),n=r.n(s),l=r(18085),o=r(759),c=r(22027),d=r(96432),u=r(53491);let m=new Set(["home-automation","lighting-automation","home-theatre","multi-room-audio","acoustics","smart-control","video-walls","control-rooms","smart-classroom","led-panel-projector","epabx-ippbx","professional-audio-pa","auditoriums-boardrooms","digital-conferencing-voting","recording-studios","stage-lighting","cctv-surveillance","access-control","fire-alarm-system","fire-hydrant-system","x-ray-baggage-scanners","under-vehicle-surveillance","door-frame-metal-detectors","boom-barriers-motorized-gates","nurse-calling-system","building-management-system","online-ups","battery-energy-storage-bess","it-networking","curtains-shading","architectural-facade
1-lighting","conference-room-av","hospitality-venue-av","structured-cabling","enterprise-wifi","network-security","servers-storage","video-conferencing","amc-maintenance","turnkey-projects","gas-suppression-system","fire-sprinkler-system","emergency-lighting-signage","fire-doors","fire-extinguishers","automatic-tube-fire-suppression","intrusion-detection-alarm","intercom-video-door-phone","digital-library-system","smart-rack-precision-cooling","motorised-shutters-skylights","digital-signage","iptv-hospitality-tv","facial-recognition-system","anpr-number-plate-recognition","queue-management-system","ip-paging-system","ai-video-analytics","centralised-cctv-monitoring","fireman-talk-back-system"]),p=[{id:"home",label:"Private Home"},{id:"hotel",label:"Hotel / Resort"},{id:"school",label:"School / Campus"},{id:"hospital",label:"Hospital"},{id:"office",label:"Office"},{id:"industrial",label:"Industrial"},{id:"civic",label:"Civic / Govt"}],h=[{id:"new-build",label:"New build"},{id:"renovation",label:"Renovation"},{id:"upgrade",label:"Upgrade"},{id:"amc",label:"AMC"}],g=[{id:"single-space",label:"Single space / room"},{id:"whole-floor",label:"Whole floor"},{id:"whole-building",label:"Whole building"},{id:"multi-building",label:"Multi-building / campus"},{id:"unsure",label:"Not sure yet"}],f=[{id:"this-quarter",label:"This quarter"},{id:"this-year",label:"This year"},{id:"next-year",label:"Next year"},{id:"exploratory",label:"Exploring"}],x={home:"residences-villas",hotel:"hospitality",school:"education",hospital:"healthcare",office:"corporate-offices",industrial:"industrial-warehousing",civic:"government-defence"};function y(){let[e,t]=(0,a.useState)(!1),[r,s]=(0,a.useState)(!1),[y,w]=(0,a.useState)(""),[j,N]=(0,a.useState)(""),[k]=(0,a.useState)(()=>Date.now()),[_]=(0,a.useState)(()=>{try{return crypto.randomUUID()}catch(e){return"s-".concat(Date.now().toString(36),"-").concat(Math.random().toString(36).slice(2,10))}}),S=(0,a.useRef)(!1),[C,A]=(0,a.useState)("home"),[P,E]=(0,a.useState)("new-build"),[q,O]=(0,a.useState)("unsure"),[T,I]=(0,a.useState)("this-year");async function R(e){var r,i,a,n,l,o,y,b;e.preventDefault(),s(!0),w("");let v=Object.fromEntries(new FormData(e.currentTarget).entries()),N=null!=(l=null==(r=p.find(e=>e.id===C))?void 0:r.label)?l:"",S=null!=(o=null==(i=h.find(e=>e.id===P))?void 0:i.label)?o:"",A=null!=(y=null==(a=g.find(e=>e.id===q))?void 0:a.label)?y:"",E=null!=(b=null==(n=f.find(e=>e.id===T))?void 0:n.label)?b:"",O=["Building: ".concat(N),"Stage: ".concat(S),v.city?"City: ".concat(v.city):null,"Project scale: ".concat(A),"Timeline: ".concat(E)].filter(Boolean).join(" \xb7 ");try{let e={kind:"enquiry",...v,buildingType:N,stage:S,projectScale:A,timeline:E,brief:O,captchaToken:j,formStartedAt:k,formElapsedMs:Date.now()-k,submissionId:_,source:window.location.pathname,referrer:document.referrer,...(0,u.rn)()},r=await fetch("/api/contact",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!r.ok){let e=await r.json().catch(()=>null);throw Error((null==e?void 0:e.error)||"delivery_failed")}t(!0);let i=function(e){if("string"!=typeof e)return null;let t=e.trim().toLowerCase();return!t||t.length>64?null:m.has(t)?t:null}(new URLSearchParams(window.location.search).get("service"));(0,c.u4)("contact_submit",{form_id:"contact-enquiry",sector_slug:x[C],...i?{service_slug:i}:{},origin_path:window.location.pathname})}catch(t){let e=t instanceof Error?t.message:"delivery_failed";(0,c.u4)("form_error",{form_id:"contact-enquiry",error_kind:(0,d.X)(e),origin_path:window.location.pathname}),w("captcha_missing"===e?"Please complete the verification and try again.":"We could not send the enquiry. Please email [email protected] directly.")}finally{s(!1)}}return e?(0,i.jsxs)("div",{className:"border border-sc-ivory-50/20 bg-sc-ivory-50/5 p-8 md:p-10",children:[(0,i.jsx)("p",{className:"text-[11.5px] font-semibold uppercase tracking-[0.30em] text-sc-gold-600",children:"Brief received"}),(0,i.jsx)("h2",{className:"font-geist font-medium mt-3 text-[clamp(1.6rem,2.6vw,2.25rem)] leading-[1.1] text-sc-ivory-50",children:"Thank y
1ou. A project lead has it now."}),(0,i.jsxs)("ol",{className:"mt-7 space-y-5 border-t border-sc-ivory-50/15 pt-6",children:[(0,i.jsxs)("li",{className:"flex gap-4",children:[(0,i.jsx)("span",{className:"font-sans text-[15px] italic leading-none text-sc-gold-600",children:"01"}),(0,i.jsxs)("p",{className:"text-[14px] leading-[1.55] text-sc-ivory-50/85",children:[(0,i.jsx)("span",{className:"text-sc-ivory-50",children:"Read by an engineer."})," A project lead reviews the brief against the building and the systems you named â not a sales desk, not an auto-responder."]})]}),(0,i.jsxs)("li",{className:"flex gap-4",children:[(0,i.jsx)("span",{className:"font-sans text-[15px] italic leading-none text-sc-gold-600",children:"02"}),(0,i.jsxs)("p",{className:"text-[14px] leading-[1.55] text-sc-ivory-50/85",children:[(0,i.jsx)("span",{className:"text-sc-ivory-50",children:"A reply within two working days."})," A considered first reading, with the most useful next step â a written response, a call, or a site meeting."]})]}),(0,i.jsxs)("li",{className:"flex gap-4",children:[(0,i.jsx)("span",{className:"font-sans text-[15px] italic leading-none text-sc-gold-600",children:"03"}),(0,i.jsxs)("p",{className:"text-[14px] leading-[1.55] text-sc-ivory-50/85",children:[(0,i.jsx)("span",{className:"text-sc-ivory-50",children:"Drawings, when youâre ready."})," You can send drawings, a BOQ or site photos by replying to that first email â they are handled in confidence."]})]})]}),(0,i.jsx)("p",{className:"mt-7 text-[13px] leading-[1.5] text-sc-ivory-50/70",children:"For anything urgent, message us on WhatsApp using the floating button â we'll respond same-day during practice hours."})]}):(0,i.jsxs)("form",{onSubmit:R,onFocus:function(){S.current||(S.current=!0,(0,c.u4)("form_start",{form_id:"contact-enquiry",origin_path:window.location.pathname}))},className:"space-y-3.5",children:[(0,i.jsx)("div",{className:"absolute -left-[9999px] top-auto h-0 w-0 overflow-hidden","aria-hidden":"true",children:(0,i.jsxs)("label",{children:["Leave this empty",(0,i.jsx)("input",{type:"text",name:"hpField",tabIndex:-1,autoComplete:"off",defaultValue:""})]})}),(0,i.jsxs)("div",{className:"grid gap-3.5 md:grid-cols-2",children:[(0,i.jsx)(b,{name:"name",label:"Your name",required:!0}),(0,i.jsx)(b,{name:"email",type:"email",label:"Email",required:!0})]}),(0,i.jsxs)("div",{className:"grid gap-3.5 md:grid-cols-2",children:[(0,i.jsx)(b,{name:"phone",label:"Phone or WhatsApp",required:!0}),(0,i.jsx)(b,{name:"city",label:"City / region",required:!0})]}),(0,i.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2",children:[(0,i.jsx)(v,{label:"Building type",options:p,value:C,onChange:A}),(0,i.jsx)(v,{label:"Stage",options:h,value:P,onChange:E}),(0,i.jsx)(v,{label:"Project scale",options:g,value:q,onChange:O}),(0,i.jsx)(v,{label:"Timeline",options:f,value:T,onChange:I})]}),(0,i.jsxs)("div",{children:[(0,i.jsxs)("label",{className:"text-[12px] font-medium uppercase tracking-[0.22em] text-sc-ivory-50/85",htmlFor:"notes",children:["/ Anything else ",(0,i.jsx)("span",{className:"text-[11px] normal-case tracking-normal text-sc-ivory-50/65",children:"(optional)"})]}),(0,i.jsx)("textarea",{id:"notes",name:"notes",rows:3,placeholder:"Drawing stage, brands youâre considering, the date the architect needs us by â or paste a planning-tool result link.",className:"mt-1.5 w-full border border-sc-ivory-50/20 bg-sc-ivory-50/5 px-3 py-2 text-[14px] text-sc-ivory-50 placeholder:text-sc-ivory-50/40 focus:border-sc-gold-500 focus:outline-none"}),(0,i.jsx)("p",{className:"mt-1.5 text-[11.5px] leading-[1.4] text-sc-ivory-50/55",children:"Used one of our calculators? Paste its share link here and weâll pick up your inputs. Drawings, BOQs and site photos can follow by email once a project lead replies â theyâre handled in confidence."})]}),(0,i.jsxs)("ul",{className:"grid gap-x-6 gap-y-3 border-t border-sc-ivory-50/15 pt-4 sm:grid-cols-3",children:[(0,i.jsxs)("li",{children:[(0,i.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-[0.22em] text-sc-gold-600",children:"Confidential"}),(0,i.jsx)("p",{className:"mt-1 text-[12.5px] leading-[1.45] text-sc-ivory-50/70",children:"Most of our work sits under contractual confidentiality. Your drawings and details are treated the same way."})]}),(0,i.jsxs)("li",{children:[(0,i.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-[0.22em] text-sc-gold-600",children:"Read by an engineer"}),(0,i.jsx)("p",{className:"mt-1 text-[12.5px] leading-[1.45] text-sc-ivory-50/70",children:"A project lead reads every brief â not a sales gateway or an auto-responder."})]}),(0,i.jsxs)("li",{children:[(0,i.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-[0.22em] text-sc-gold-600",children:"Two w
1orking days"}),(0,i.jsx)("p",{className:"mt-1 text-[12.5px] leading-[1.45] text-sc-ivory-50/70",children:"A considered first reading, with the most useful next step for your project."})]})]}),(0,i.jsx)(o.X,{onVerify:N}),(0,i.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:gap-5",children:[(0,i.jsxs)("button",{type:"submit",disabled:r||o.y&&!j,className:"btn-primary w-full justify-center disabled:opacity-50 sm:w-auto sm:justify-start",children:[r?"Sendingâ¦":"Send the brief",(0,i.jsx)(l.A,{className:"h-4 w-4"})]}),(0,i.jsxs)("p",{className:"text-[11.5px] leading-[1.4] text-sc-ivory-50/60",children:["We donât share enquiries with third parties."," ",(0,i.jsx)(n(),{href:"/data-protection",className:"underline decoration-sc-ivory-50/30 underline-offset-2 transition-colors hover:text-sc-gold-500",children:"How we handle your data"}),"."]})]}),y&&(0,i.jsx)("p",{role:"alert","aria-live":"polite",className:"text-[13px] text-sc-gold-600",children:y})]})}function b(e){let{name:t,label:r,type:a="text",required:s}=e;return(0,i.jsxs)("div",{children:[(0,i.jsxs)("label",{className:"text-[12px] font-medium uppercase tracking-[0.22em] text-sc-ivory-50/85",htmlFor:t,children:["/ ",r]}),(0,i.jsx)("input",{id:t,name:t,type:a,required:s,className:"mt-1.5 w-full border border-sc-ivory-50/20 bg-sc-ivory-50/5 px-3 py-2 text-[14px] text-sc-ivory-50 focus:border-sc-gold-500 focus:outline-none"})]})}function v(e){let{label:t,options:r,value:a,onChange:s}=e;return(0,i.jsxs)("div",{children:[(0,i.jsxs)("p",{className:"text-[12px] font-medium uppercase tracking-[0.22em] text-sc-ivory-50/85",children:["/ ",t]}),(0,i.jsx)("div",{className:"mt-1.5 flex flex-wrap gap-1.5",children:r.map(e=>{let t=e.id===a;return(0,i.jsx)("button",{type:"button",onClick:()=>s(e.id),"aria-pressed":t,className:"border px-3 py-2 text-[12px] font-medium uppercase tracking-[0.16em] transition-colors "+(t?"border-sc-ivory-50 bg-sc-ivory-50 text-sc-forest-900":"border-sc-ivory-50/20 bg-sc-ivory-50/5 text-sc-ivory-50/85 hover:border-sc-gold-500 hover:text-sc-gold-500"),children:e.label},e.id)})})]})}},92374:(e,t,r)=>{"use strict";r.r(t),r.d(t,{TrackedLink:()=>l});var i=r(95155),a=r(52619),s=r.n(a),n=r(22027);function l(e){let{href:t,event:r,payload:a={},external:l=!1,className:o,children:c,...d}=e;function u(){let e="origin_path"in a?a:{...a,origin_path:window.location.pathname};(0,n.u4)(r,e)}let m={"data-tg-tracked":r};return l?(0,i.jsx)("a",{href:t,onClick:u,className:o,...m,...d,children:c}):(0,i.jsx)(s(),{href:t,onClick:u,className:o,...m,...d,children:c})}},96432:(e,t,r)=>{"use strict";function i(e){return e.startsWith("captcha")?"captcha":e.startsWith("rate_limit")?"rate_limit":e.startsWith("delivery")?"delivery":"validation"}r.d(t,{X:()=>i})}},e=>{e.O(0,[2619,4909,1356,2027,4011,8441,1255,7358],()=>e(e.s=52601)),_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.