{
  "version": 3,
  "sources": ["/cdn/shop/t/13/assets/cj-app.js?x=1793743234353"],
  "sourcesContent": ["(function(){const realDoc=window.document,ROOT=realDoc.querySelector(\".cj-root\");if(!ROOT){console.warn(\"CJ: no .cj-root\");return}const CFG=window.CJ_CONFIG||{},RAW=window.CJ_DATA||window.CJ_DATA_FALLBACK;if(!RAW){console.warn(\"CJ: no catalogue data\");return}const document=new Proxy(realDoc,{get(t,prop){if(prop===\"getElementById\")return id=>ROOT.querySelector(\"#\"+(window.CSS&&CSS.escape?CSS.escape(id):id))||t.getElementById(id);if(prop===\"querySelector\")return s=>ROOT.querySelector(s)||t.querySelector(s);if(prop===\"querySelectorAll\")return s=>ROOT.querySelectorAll(s);if(prop===\"body\")return ROOT;const v=Reflect.get(t,prop);return typeof v==\"function\"?v.bind(t):v}}),CJ={cfg:CFG,root:ROOT,realDoc};window.CJ=CJ;const DATA={styles:[],families:[],products:[]},sortBy=(a,k)=>a.slice().sort((x,y)=>(+x[k]||0)-(+y[k]||0));DATA.styles=sortBy((RAW.styles||[]).filter(s=>!/gloss/i.test(String(s.finish||\"\")+\" \"+String(s.id||s.key||\"\"))),\"sort\").map(s=>({id:s.id||s.key,name:s.name,colour:s.colour,finish:s.finish,hex:s.hex||\"#CCCCCC\",suffix:s.suffix||s.sku_suffix||s.id,tag:s.tag||\"\",image:s.image||null,swatch:s.swatch||null,sample:s.sample||null})),DATA.families=sortBy(RAW.families||[],\"sort\").map(f=>({id:f.id||f.key,name:f.name,blurb:f.blurb||\"\",groups:(typeof f.groups==\"string\"?JSON.parse(f.groups||\"[]\"):f.groups)||[]}));const asArr=g=>Array.isArray(g)?g:String(g||\"D\").split(\",\").map(x=>x.trim()).filter(Boolean),uniq=a=>[...new Set(a)];(RAW.products||[]).filter(u=>!/^(wine-rack-base|angled-base-unit|tall-angled-unit|swing-out-pantry|swing-out-larder|curved-wall-unit|angled-corner-wall|acc-external-curved-cornice-pelmet|acc-glazed-door|acc-wall-door|acc-fluted-glass-door|acc-pan-drawer-front|acc-appliance-door)$/.test(u.id||u.key||\"\")).forEach(u=>{const vs=(typeof u.variants==\"string\"?JSON.parse(u.variants||\"[]\"):u.variants||[]).map(v=>({sku:v.sku,w:v.w==null?void 0:+v.w,d:v.d==null?null:+v.d,h:v.h==null?null:+v.h,doors:v.doors||null,size:v.size,label:v.label,price:+v.price||0,styles:v.styles||null}));if(!vs.length)return;const p={id:u.id||u.key,family:u.family,group:u.group,name:u.name,blurb:u.blurb||\"\",glyph:asArr(u.glyph),variants:vs,from:Math.min(...vs.map(v=>v.price)),sort:+u.sort||0};[\"base\",\"wall\",\"tall\",\"appliance\"].includes(p.family)?(p.widths=uniq(vs.map(v=>v.w)).filter(x=>x!=null).sort((a,b)=>a-b),p.depths=uniq(vs.map(v=>v.d||0)).sort((a,b)=>a-b),p.heights=uniq(vs.map(v=>v.h||0)).sort((a,b)=>a-b),p.doorsOpts=uniq(vs.map(v=>v.doors||\"\"))):p.sizes=uniq(vs.map(v=>v.size||v.label)).filter(Boolean),DATA.products.push(p)}),DATA.products.sort((a,b)=>a.sort-b.sort),DATA.products.forEach(p=>{/^acc-(base-door|larder-door|drawer-front)$/.test(p.id)&&(p.group=\"fascia\")}),(RAW.ranges||[]).forEach(r=>{const props=(typeof r.props==\"string\"?JSON.parse(r.props||\"{}\"):r.props)||{},vs=(r.variants||[]).map(v=>({sku:v.sku,label:v.label&&v.label!==\"Default Title\"?v.label:(props.variants||[]).find(x=>x.sku===v.sku)?.label||\"\",hex:v.hex||((props.variants||[]).find(x=>x.sku===v.sku)||{}).hex||null,price:+v.price||0,variantId:v.variantId||v.id||null,available:v.available!==!1,image:v.image||null}));vs.length&&DATA.products.push({id:r.id||r.key||r.handle,family:r.family,group:r.group,name:r.name||r.title,blurb:r.blurb||\"\",glyph:asArr(props.glyph||(r.family===\"handles\"?\"H\":r.family===\"worktops\"?\"K\":\"T\")),kind:props.kind||r.kind,len:props.len||r.len||160,hex:props.hex||r.hex||\"#C89A5B\",hex2:props.hex2||r.hex2||\"#A87A40\",handle:r.handle,image:r.image||null,shop:!0,variants:vs,from:Math.min(...vs.map(v=>v.price))})}),(RAW.samples||[]).forEach(sm=>{const st=DATA.styles.find(s=>s.id===sm.styleId);if(!st)return;const v=(sm.variants||[])[0]||{};DATA.products.push({id:\"sample-\"+st.id,family:\"samples\",group:\"samples\",name:st.name+\" door sample\",blurb:\"Real door front, same board and finish.\",glyph:[\"T\"],styleId:st.id,handle:sm.handle,shop:!0,variants:[{sku:v.sku||\"KB-SAMPLE-\"+st.suffix.toUpperCase(),label:\"Sample\",price:+v.price||0,variantId:v.variantId||v.id||null,available:v.available!==!1}],from:+v.price||0})});const fees=RAW.fees||{};fees.sampleDelivery&&DATA.products.push({id:\"sample-delivery\",family:\"fees\",group:\"fees\",name:\"Sample delivery\",blurb:\"Royal Mail tracked, 2 to 3 days.\",glyph:[\"T\"],handle:fees.sampleDelivery.handle,shop:!0,variants:[{sku:fees.sampleDelivery.sku||\"KB-SAMPLE-POST\",label:\"Tracked\",price:+fees.sampleDelivery.price||4.95,variantId:fees.sampleDelivery.variantId}],from:+fees.sampleDelivery.price||4.95}),CJ.assembly=fees.assembly||null,CJ.hasSamples=DATA.products.some(p=>p.family===\"samples\"),DATA.families=DATA.families.filter(f=>DATA.products.some(p=>p.family===f.id)||[\"base\",\"wall\",\"tall\",\"appliance\",\"trims\"].includes(f.id)),CJ.data=DATA;const CJ_FREE=+CFG.freeThreshold||399,CJ_ASSEMBLY=CJ.assembly&&+CJ.assembly.price||30,CJ_CUTOFF=CFG.cutoffHour==null?12:+CFG.cutoffHour,CJ_DISPATCH=CFG.dispatchDays==null?3:+CFG.dispatchDays,CJ_TRANSIT=[+(CFG.transitMin||2),+(CFG.transitMax||3)],CJ_DELIVERY=parseFloat(String(CFG.deliveryPrice||\"\").replace(/[^0-9.]/g,\"\"))||29.99,GBP0=n=>\"\\xA3\"+(+n).toLocaleString(\"en-GB\",{minimumFractionDigits:0,maximumFractionDigits:2}),FREE=CJ_FREE,ASSEMBLY=CJ_ASSEMBLY,CUTOFF_H=CJ_CUTOFF,S={mode:\"components\",kit:null,style:null,family:null,product:null,variant:null,qty:1,assembled:!1,view:\"front\",basket:[],notes:!1,help:!1,gap:\"\",plan:{len:\"\",opts:{}},current:\"style\"};try{const s=localStorage.getItem(\"kb-style\");s&&DATA.styles.find(x=>x.id===s)&&(S.style=s)}catch{}const GBP=n=>\"\\xA3\"+n.toLocaleString(\"en-GB\",{minimumFractionDigits:2,maximumFractionDigits:2}),byId=id=>DATA.products.find(p=>p.id===id),style=()=>DATA.styles.find(s=>s.id===S.style)||DATA.styles[4],fam=id=>DATA.families.find(f=>f.id===id),famCount=id=>DATA.products.filter(p=>p.family===id).length,el=h=>{const t=document.createElement(\"template\");return t.innerHTML=h.trim(),t.content.firstElementChild},isCab=p=>[\"base\",\"wall\",\"tall\",\"appliance\"].includes(p.family),needsStyle=p=>isCab(p)||p.family===\"trims\",vLabel=(p,v)=>isCab(p)?`${v.w}mm${v.d?\" \\xB7 \"+v.d+\"mm deep\":\"\"}${v.h?\" \\xB7 \"+v.h+\"mm high\":\"\"}`:v.label||v.size||\"\",GLOSS_MAP={\"KB-BBPSP900X1165-900x1165\":59,\"KB-BBPSP900X2000-900x2000\":59,\"KB-BBPSP900X900-900x900\":59,\"KB-BD-700\":59,\"KB-BD5-1000\":59,\"KB-BD5-800\":59,\"KB-BD5-900\":59,\"KB-BPSP15-3000\":59,\"KB-FSSP24-2400\":59,\"KB-RPL-BD-1000\":59,\"KB-RPL-BD-700\":59,\"KB-RPL-BD-800\":59,\"KB-RPL-BD-900\":59,\"KB-RPL-DF-1000\":59,\"KB-RPL-DF-800\":59,\"KB-RPL-DF-900\":59,\"KB-RPL-PF-1000\":59,\"KB-RPL-PF-800\":59,\"KB-RPL-PF-900\":59,\"KB-RPL-WD-1000\":59,\"KB-RPL-WD-700\":59,\"KB-RPL-WD-800\":59,\"KB-RPL-WD-900\":59,\"KB-SPCP-3000\":59};function glossUp(p,v,st){if(!st||st.finish!==\"Gloss\"||!p||p.shop||!needsStyle(p)||!v)return 0;const m=GLOSS_MAP[v.sku];return m??(isCab(p)&&(+v.w||0)>600?59:39)}CJ.glossUp=glossUp,DATA.products.forEach(p=>{p.shop||!needsStyle(p)||p.variants.forEach(v=>{let base=+v.price||0;Object.defineProperty(v,\"price\",{configurable:!0,enumerable:!0,get(){return base+glossUp(p,v,CJ._pst||style())},set(x){base=(+x||0)-glossUp(p,v,CJ._pst||style())}})})});function priceIn(st,fn){const was=CJ._pst;CJ._pst=st||null;try{return fn()}finally{CJ._pst=was}}function shade(hex,k){const n=parseInt(hex.slice(1),16);let r=n>>16,g=n>>8&255,b=n&255;const c=v=>Math.max(0,Math.min(255,Math.round(v*k))).toString(16).padStart(2,\"0\");return\"#\"+c(r)+c(g)+c(b)}function packH(rows,H){if(rows.length<3||!rows.every(r=>r===\"d\"))return null;const w=rows.map((_,i)=>1+.2*i),s=w.reduce((a,b)=>a+b,0);return w.map(x=>x/s*H)}function unitH(p,v){const fam2=p.family;let H=v.h||(fam2===\"wall\"?720:fam2===\"tall\"||fam2===\"appliance\"?1970:720);return p.id===\"1000mm-high-base-unit\"&&(H=1e3),fam2===\"appliance\"&&/mid-height/.test(p.id)&&(H=1250),fam2===\"appliance\"&&/built-under/.test(p.id)&&(H=720),H}function unitSVG(p,v,st,opts={}){const W=v.w||600,fam2=p.family,H=unitH(p,v),open=opts.open,scale=opts.scale||.3,px=mm=>mm*scale,w=px(W),h=px(H),legs=fam2===\"base\"||fam2===\"appliance\"&&H<=1250?px(150):0,gloss=st.finish===\"Gloss\",door=st.hex,edge=shade(st.hex,.82),rows=p.glyph,gap=px(3),fixed={d:140,P:282,A:fam2===\"appliance\"?590:360};let fixedTotal=0,flex=0;rows.forEach(r=>{fixed[r]?fixedTotal+=fixed[r]:flex++});const flexH=flex?Math.max(120,(H-fixedTotal)/flex):0;let y=0;const parts=[],doorsCount=()=>v.doors===\"Double\"?2:v.doors===\"Single\"?1:W>=600&&!(fam2===\"tall\"&&W<700)&&!/corner|angled|curved|wine|spice|oven|microwave|compact|fridge|coffee/.test(p.id)?2:1,handle=(x,yy,hh,ww,vert)=>opts.noHandles?\"\":vert?`<rect x=\"${x}\" y=\"${yy}\" width=\"${px(10)}\" height=\"${Math.min(px(160),hh*.5)}\" rx=\"2\" fill=\"${shade(st.hex,.55)}\"/>`:`<rect x=\"${x}\" y=\"${yy}\" width=\"${Math.min(px(160),ww*.5)}\" height=\"${px(10)}\" rx=\"2\" fill=\"${shade(st.hex,.55)}\"/>`,front=(x,yy,ww,hh)=>`<rect x=\"${x}\" y=\"${yy}\" width=\"${ww}\" height=\"${hh}\" rx=\"${px(4)}\" fill=\"${door}\" stroke=\"${edge}\" stroke-width=\"1\"/><rect x=\"${x}\" y=\"${yy}\" width=\"${ww}\" height=\"${hh}\" rx=\"${px(4)}\" fill=\"url(#${gloss?\"kbgG\":\"kbgM\"})\"/>`,GP=packH(rows,H);rows.forEach((r,ri)=>{const rh=px(GP?GP[ri]:fixed[r]||flexH);if(r===\"D\"||r===\"X\"){const n=r===\"X\"?1:doorsCount(),dw=(w-gap*(n+1))/n;for(let i=0;i<n;i++){const x=gap+i*(dw+gap);if(open&&i===0&&r===\"D\"){parts.push(`<rect x=\"${x}\" y=\"${y+gap}\" width=\"${dw}\" height=\"${rh-gap*2}\" fill=\"#F3F1EA\" stroke=\"#D9D6CE\"/><line x1=\"${x}\" y1=\"${y+rh/2}\" x2=\"${x+dw}\" y2=\"${y+rh/2}\" stroke=\"#D9D6CE\"/><line x1=\"${x}\" y1=\"${y+rh*.75}\" x2=\"${x+dw}\" y2=\"${y+rh*.75}\" stroke=\"#D9D6CE\"/><polygon points=\"${x},${y+gap} ${x-dw*.35},${y+gap+rh*.08} ${x-dw*.35},${y+rh-gap-rh*.08} ${x},${y+rh-gap}\" fill=\"${door}\" stroke=\"${edge}\"/>`);continue}if(r===\"X\"){const blank=dw*.45;parts.push(`<rect x=\"${x}\" y=\"${y+gap}\" width=\"${blank}\" height=\"${rh-gap*2}\" fill=\"${door}\" stroke=\"${edge}\" opacity=\".9\"/>`),parts.push(front(x+blank+gap,y+gap,dw-blank-gap,rh-gap*2)),parts.push(handle(x+blank+gap+px(20),y+rh/2-px(60),rh,dw,!0))}else parts.push(front(x,y+gap,dw,rh-gap*2)),parts.push(handle(n===2&&i===0?x+dw-px(30):x+px(20),y+gap+Math.min(px(60),rh*.15),rh-gap*2,dw,!0))}}else if(r===\"d\"||r===\"P\")parts.push(front(gap,y+gap,w-gap*2,rh-gap*2)),parts.push(handle(w/2-Math.min(px(80),w*.25),y+rh/2-px(5),rh,w,!1));else if(r===\"S\"){parts.push(`<rect x=\"${gap}\" y=\"${y+gap}\" width=\"${w-gap*2}\" height=\"${px(90)}\" fill=\"#C9CCD1\" stroke=\"#A9ADB3\"/><rect x=\"${w*.25}\" y=\"${y+px(12)}\" width=\"${w*.5}\" height=\"${px(60)}\" rx=\"${px(8)}\" fill=\"#E9EBEE\" stroke=\"#A9ADB3\"/>`);const n=doorsCount(),dw=(w-gap*(n+1))/n,yy=y+px(100);for(let i=0;i<n;i++){const x=gap+i*(dw+gap);parts.push(front(x,yy,dw,rh-px(100)-gap)),parts.push(handle(n===2&&i===0?x+dw-px(30):x+px(20),yy+px(40),rh,dw,!0))}}else if(r===\"A\")parts.push(`<rect x=\"${gap}\" y=\"${y+gap}\" width=\"${w-gap*2}\" height=\"${rh-gap*2}\" fill=\"#2A2C31\"/><rect x=\"${w*.14}\" y=\"${y+rh*.3}\" width=\"${w*.72}\" height=\"${rh*.45}\" rx=\"${px(6)}\" fill=\"#111\" stroke=\"#55585F\"/><rect x=\"${w*.14}\" y=\"${y+rh*.14}\" width=\"${w*.72}\" height=\"${px(12)}\" rx=\"2\" fill=\"#9A9DA3\"/>`);else if(r===\"W\"){const rws=Math.max(2,Math.round(H/250));for(let i=0;i<rws;i++)for(let j=0;j<2;j++)parts.push(`<rect x=\"${gap+j*(w-gap*2)/2}\" y=\"${y+gap+i*(rh-gap*2)/rws}\" width=\"${(w-gap*2)/2}\" height=\"${(rh-gap*2)/rws}\" fill=\"#F3F1EA\" stroke=\"#D9D6CE\"/>`)}else r===\"T\"&&parts.push(front(gap,y+gap,w-gap*2,rh-gap*2));y+=rh});const legsSVG=legs?`<rect x=\"${px(40)}\" y=\"${h}\" width=\"${px(40)}\" height=\"${legs}\" fill=\"#9A9DA3\"/><rect x=\"${w-px(80)}\" y=\"${h}\" width=\"${px(40)}\" height=\"${legs}\" fill=\"#9A9DA3\"/>${opts.noPlinth?\"\":`<rect x=\"${px(10)}\" y=\"${h+px(8)}\" width=\"${w-px(20)}\" height=\"${legs-px(8)}\" fill=\"${door}\" stroke=\"${edge}\" opacity=\".9\"/>`}`:\"\",dim=opts.dims?`<text x=\"${w/2}\" y=\"${h+legs+px(60)}\" text-anchor=\"middle\" font-family=\"JetBrains Mono,monospace\" font-size=\"12\" fill=\"currentColor\" opacity=\".6\">${W} mm</text>`:\"\",mx=open?w*.22:2;return`<svg viewBox=\"-${mx} -2 ${w+mx+2} ${h+legs+4+(opts.dims?px(80):0)}\" width=\"${w+mx+2}\" height=\"${h+legs+4+(opts.dims?px(80):0)}\" xmlns=\"http://www.w3.org/2000/svg\" style=\"color:var(--ink)\"><defs><linearGradient id=\"kbgG\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\"><stop offset=\".3\" stop-color=\"rgba(255,255,255,0)\"/><stop offset=\".48\" stop-color=\"rgba(255,255,255,.55)\"/><stop offset=\".6\" stop-color=\"rgba(255,255,255,0)\"/></linearGradient><linearGradient id=\"kbgM\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\"><stop offset=\"0\" stop-color=\"rgba(255,255,255,.12)\"/><stop offset=\"1\" stop-color=\"rgba(0,0,0,.06)\"/></linearGradient></defs><rect x=\"0\" y=\"0\" width=\"${w}\" height=\"${h}\" fill=\"var(--carcass)\" stroke=\"var(--carcass-edge)\" stroke-width=\"1\"/>${parts.join(\"\")}${legsSVG}${dim}</svg>`}function trimSVG(p,st){const d=st.hex,e=shade(st.hex,.82),n=p.name.toLowerCase();return/plinth|cornice|pelmet|fly over/.test(n)?`<svg viewBox=\"0 0 220 60\" width=\"200\"><rect x=\"4\" y=\"22\" width=\"212\" height=\"18\" rx=\"2\" fill=\"${d}\" stroke=\"${e}\"/></svg>`:/corner post|filler/.test(n)?`<svg viewBox=\"0 0 220 140\" width=\"140\"><rect x=\"100\" y=\"6\" width=\"20\" height=\"128\" rx=\"2\" fill=\"${d}\" stroke=\"${e}\"/></svg>`:/panel/.test(n)?`<svg viewBox=\"0 0 220 140\" width=\"150\"><rect x=\"50\" y=\"6\" width=\"120\" height=\"128\" rx=\"2\" fill=\"${d}\" stroke=\"${e}\"/></svg>`:`<svg viewBox=\"0 0 220 140\" width=\"150\"><rect x=\"70\" y=\"6\" width=\"80\" height=\"128\" rx=\"3\" fill=\"${d}\" stroke=\"${e}\"/><rect x=\"80\" y=\"20\" width=\"4\" height=\"40\" rx=\"1.5\" fill=\"${shade(d,.55)}\"/></svg>`}function handleSVG(p,v,big){const c=v.hex,e=shade(c,.7),hi=shade(c,1.25),w=big?260:170;if(p.kind===\"knob\")return`<svg viewBox=\"0 0 220 140\" width=\"${w}\"><circle cx=\"110\" cy=\"70\" r=\"34\" fill=\"${c}\" stroke=\"${e}\"/><circle cx=\"100\" cy=\"60\" r=\"12\" fill=\"${hi}\" opacity=\".5\"/></svg>`;if(p.kind===\"cup\")return`<svg viewBox=\"0 0 220 140\" width=\"${w}\"><path d=\"M50 55 h120 v22 a60 34 0 0 1 -120 0 z\" fill=\"${c}\" stroke=\"${e}\"/><rect x=\"50\" y=\"48\" width=\"120\" height=\"10\" rx=\"4\" fill=\"${hi}\" opacity=\".6\"/></svg>`;const L=Math.min(200,p.len*.55+40);return`<svg viewBox=\"0 0 220 140\" width=\"${w}\"><rect x=\"${110-L/2}\" y=\"60\" width=\"${L}\" height=\"14\" rx=\"7\" fill=\"${c}\" stroke=\"${e}\"/><rect x=\"${110-L/2+18}\" y=\"74\" width=\"10\" height=\"22\" rx=\"2\" fill=\"${e}\"/><rect x=\"${110+L/2-28}\" y=\"74\" width=\"10\" height=\"22\" rx=\"2\" fill=\"${e}\"/><rect x=\"${110-L/2+6}\" y=\"62\" width=\"${L-12}\" height=\"4\" rx=\"2\" fill=\"${hi}\" opacity=\".6\"/></svg>`}function worktopSVG(p,v,big){return`<svg viewBox=\"0 0 330 90\" width=\"${big?330:200}\"><defs><linearGradient id=\"wt${p.id}\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"0\"><stop offset=\"0\" stop-color=\"${p.hex}\"/><stop offset=\".5\" stop-color=\"${p.hex2}\"/><stop offset=\"1\" stop-color=\"${p.hex}\"/></linearGradient></defs><polygon points=\"30,20 320,20 300,50 10,50\" fill=\"url(#wt${p.id})\"/><rect x=\"10\" y=\"50\" width=\"290\" height=\"20\" rx=\"3\" fill=\"${shade(p.hex,.85)}\"/><rect x=\"10\" y=\"50\" width=\"290\" height=\"4\" fill=\"${shade(p.hex,.7)}\"/></svg>`}function picSVG(p,v,st,opts){return p.family===\"samples\"?doorSwatch(DATA.styles.find(x=>x.id===p.styleId)):p.family===\"fees\"?'<svg viewBox=\"0 0 60 40\" width=\"44\"><rect x=\"4\" y=\"8\" width=\"52\" height=\"26\" rx=\"4\" fill=\"#C9CCD1\"/><path d=\"M4 10l26 14 26-14\" stroke=\"#fff\" stroke-width=\"2\" fill=\"none\"/></svg>':p.family===\"trims\"?trimSVG(p,st):p.family===\"handles\"?handleSVG(p,v,opts&&opts.big):p.family===\"worktops\"?worktopSVG(p,v,opts&&opts.big):unitSVG(p,v,st,opts)}function handleCount(p,v){if(!isCab(p))return 0;const W=v.w||600,dc=v.doors===\"Double\"?2:v.doors===\"Single\"?1:W>=600&&!(p.family===\"tall\"&&W<700)&&!/corner|angled|curved|wine|spice|oven|microwave|compact|fridge|coffee/.test(p.id)?2:1;let n=0;return p.glyph.forEach(r=>{r===\"D\"||r===\"S\"?n+=dc:(r===\"X\"||r===\"d\"||r===\"P\")&&(n+=1)}),n}const wd=(d,n)=>{const x=new Date(d);for(x.setHours(12,0,0,0);n>0;)x.setDate(x.getDate()+1),x.getDay()!==0&&x.getDay()!==6&&n--;return x},fmtD=d=>d.toLocaleDateString(\"en-GB\",{weekday:\"short\",day:\"numeric\",month:\"short\"});function shipInfo(){const now=new Date,cut=new Date;cut.setHours(CUTOFF_H,0,0,0);const before=now<cut&&now.getDay()!==0&&now.getDay()!==6,dispatch=wd(now,before?CJ_DISPATCH:CJ_DISPATCH+1);return{before,ms:Math.max(0,cut-now),dispatch,from:wd(dispatch,CJ_TRANSIT[0]),to:wd(dispatch,CJ_TRANSIT[1])}}function cdText(){const s=shipInfo();if(!s.before)return`Order now for dispatch <b>${fmtD(s.dispatch)}</b>`;const m=Math.floor(s.ms/6e4),sec=Math.floor(s.ms/1e3)%60;return`Order within <span class=\"cd\">${Math.floor(m/60)}h ${String(m%60).padStart(2,\"0\")}m ${String(sec).padStart(2,\"0\")}s</span> for dispatch <b>${fmtD(s.dispatch)}</b>`}setInterval(()=>{document.querySelectorAll(\"[data-cd]\").forEach(e=>e.innerHTML=cdText())},1e3);function go(view,payload){if((view===\"home\"||view===\"style\"||view===\"parts\")&&(S.family=null,S.product=null,S.variant=null),view===\"place\"&&(S.product=null,S.variant=null),view===\"plan\"&&(S.mode=\"kitchen\",S.product=null,S.variant=null,S.family=null,T3&&(T3.inited=!1),payload&&payload.restart&&S.wiz&&(S.wiz.step=0)),view===\"builder\"&&(S.mode=\"kitchen\",S.product=null,S.variant=null,S.family=null,S.style||(S.style=\"cashmere-matt\"),T3&&(T3.inited=!1)),(view===\"presets\"||view===\"preset\")&&(S.mode=\"kitchen\",S.product=null,S.variant=null,S.family=null,T3&&(T3.inited=!1),view===\"preset\")){const pl=Object.assign({},payload||{});delete pl.view,S.preset=Object.assign(S.preset||{size:1,design:\"slab\",assembled:!1,addons:{}},pl)}if(view!==\"preset\"&&view!==\"builder\"&&(S.doorDesign=\"slab\"),view===\"units\"&&(S.product=null,S.variant=null,payload&&payload.family&&(S.family=payload.family),S.family===\"trims\"&&!S.style&&(S.style=\"white-matt\")),view===\"product\"){const p=byId(payload.id);S.product=p.id,S.family=p.family,S.variant=payload.variant||defaultVariant(p),S.qty=payload.qty||(p.family===\"handles\"&&S.qtyHint?S.qtyHint:1),S.assembled=!1,S.view=\"3d\",S.extras={},S.extrasFor=p.id,needsStyle(p)&&!S.style&&(S.style=\"white-matt\")}S.current=view,render()}function defaultVariant(p,w){if(!isCab(p))return p.variants[0];w||(w=p.widths.reduce((a,b)=>Math.abs(b-600)<Math.abs(a-600)?b:a,p.widths[0]));const vs=p.variants.filter(v=>v.w===w);return vs.find(v=>(!v.d||v.d===0)&&(p.family===\"wall\"?v.h===720:p.family===\"tall\"||p.family===\"appliance\"?v.h===1970||!v.h:!0))||vs[0]}function journeyEl(){const st=S.style?style():null,f=S.family?fam(S.family):null,p=S.product?byId(S.product):null,CHK='<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M4 12.5l5 5L20 7\"/></svg>',J=el('<div class=\"journey\"></div>'),add=(label,state,fn,sw)=>{const b=el(`<button class=\"jp ${state}\">${state===\"done\"?\"<i>\"+CHK+\"</i>\":\"\"}${sw?`<span class=\"sw ${sw.finish===\"Gloss\"?\"gloss\":\"\"}\" style=\"background:${sw.hex}\"></span>`:\"\"}<span>${label}</span></button>`);fn?b.onclick=fn:b.disabled=!0,J.appendChild(b);const sep=el('<span class=\"jsep\">\\u203A</span>');return J.appendChild(sep),b};return S.current===\"presets\"?add(\"Pre-set kitchens\",\"now\",null):S.current===\"preset\"?(add(\"Pre-set kitchens\",\"done\",()=>go(\"presets\")),add((typeof DESIGNS<\"u\"&&DESIGNS.find(d=>d.id===(S.preset||{}).design)||{name:\"Pre-set\"}).name+\" Kitchen\",\"now\",null)):S.current===\"plan\"?add(\"Plan my kitchen\",\"now\",null):S.current===\"builder\"?S.kit&&S.kit.presetName?(add(\"Pre-set kitchens\",\"done\",()=>go(\"presets\")),add(S.kit.presetName,\"done\",()=>go(\"preset\")),add(\"Make it yours\",\"now\",null)):S.kit&&S.kit.generated?(add(\"Plan my kitchen\",\"done\",()=>go(\"plan\")),add(\"Your kitchen\",\"now\",null)):(add(st?st.name:\"Style\",st?\"done\":\"now\",openPop,st),add(\"Kitchen builder\",\"now\",null)):S.current===\"parts\"?add(\"Parts\",\"now\",null):f&&(f.id===\"handles\"||f.id===\"worktops\"||f.id===\"trims\")?(add(\"Parts\",\"link\",()=>go(\"parts\")),f.id===\"trims\"&&st&&add(st.name,\"done\",openPop,st),add(f.name,p?\"done\":\"now\",()=>go(\"units\")),p&&add(p.name+(S.variant&&S.variant.label?\" \\xB7 \"+S.variant.label:\"\"),\"now\",null)):(add(st?st.name:\"Kitchen style\",st?\"done\":\"now\",()=>st?openPop():go(\"style\"),st),S.current!==\"style\"&&add(f?f.name:\"Where it goes\",f&&p?\"done\":\"now\",()=>go(f?\"units\":\"place\")),p&&add(p.name+(S.variant&&S.variant.w?\" \\xB7 \"+S.variant.w+\"mm\":\"\"),\"now\",null)),J.lastChild.remove(),J}function render(){S.io&&(S.io.disconnect(),S.io=null),S.jo&&(S.jo.disconnect(),S.jo=null),renderRail();const V0=document.getElementById(\"view\");V0.innerHTML=\"\",V0.classList.remove(\"in\"),V0.offsetWidth,V0.classList.add(\"in\"),{home:vHome,style:vStyle,place:vPlace,units:vUnits,product:vProduct,parts:vParts,plan:vPlan,presets:vPresets,preset:vPreset,builder:()=>S.kit&&S.kit.generated?vReveal():vBuilder()}[S.current||\"home\"](),document.getElementById(\"sbar\").classList.remove(\"show\"),document.body.classList.remove(\"sb\");const c0=V0.querySelector(\".crumbs\");c0&&S.current!==\"home\"&&c0.replaceWith(journeyEl()),renderNotes()}function doorSwatch(st){const gloss=st.finish===\"Gloss\";return`<svg viewBox=\"0 0 200 210\" preserveAspectRatio=\"none\"><defs><linearGradient id=\"sg${st.id}\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\"><stop offset=\".25\" stop-color=\"rgba(255,255,255,0)\"/><stop offset=\".45\" stop-color=\"rgba(255,255,255,${gloss?.6:.14})\"/><stop offset=\".6\" stop-color=\"rgba(255,255,255,0)\"/></linearGradient></defs><rect width=\"200\" height=\"210\" fill=\"#D9D6CE\"/><rect x=\"12\" y=\"12\" width=\"176\" height=\"186\" rx=\"3\" fill=\"${st.hex}\" stroke=\"${shade(st.hex,.82)}\"/><rect x=\"12\" y=\"12\" width=\"176\" height=\"186\" rx=\"3\" fill=\"url(#sg${st.id})\"/><rect x=\"26\" y=\"34\" width=\"5\" height=\"60\" rx=\"2\" fill=\"${shade(st.hex,.55)}\"/></svg>`}function elevationSVG(st){const d=st.hex,e=shade(st.hex,.82),gloss=st.finish===\"Gloss\",door=(x2,y,w,h,hv)=>`<rect x=\"${x2}\" y=\"${y}\" width=\"${w}\" height=\"${h}\" rx=\"2\" fill=\"${d}\" stroke=\"${e}\"/><rect x=\"${x2}\" y=\"${y}\" width=\"${w}\" height=\"${h}\" rx=\"2\" fill=\"url(#eg)\"/>${hv?`<rect x=\"${x2+8}\" y=\"${y+14}\" width=\"4\" height=\"${Math.min(40,h*.4)}\" rx=\"1.5\" fill=\"${shade(d,.55)}\"/>`:`<rect x=\"${x2+w/2-18}\" y=\"${y+h/2-2}\" width=\"36\" height=\"4\" rx=\"1.5\" fill=\"${shade(d,.55)}\"/>`}`;let s=`<svg viewBox=\"0 0 1000 440\" role=\"group\" aria-label=\"Kitchen elevation\"><defs><linearGradient id=\"eg\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\"><stop offset=\".3\" stop-color=\"rgba(255,255,255,0)\"/><stop offset=\".48\" stop-color=\"rgba(255,255,255,${gloss?.5:.12})\"/><stop offset=\".6\" stop-color=\"rgba(255,255,255,0)\"/></linearGradient></defs><rect x=\"0\" y=\"0\" width=\"1000\" height=\"440\" fill=\"var(--bg)\" rx=\"10\"/><rect x=\"40\" y=\"40\" width=\"920\" height=\"360\" fill=\"none\" stroke=\"var(--line)\"/>`;s+=`<rect x=\"40\" y=\"226\" width=\"640\" height=\"14\" fill=\"#8B7355\" rx=\"2\"/><rect x=\"44\" y=\"372\" width=\"636\" height=\"12\" fill=\"${d}\" stroke=\"${e}\"/>`;const by=246,bh=122;let x=44;[[192,\"D\"],[192,\"P\"],[256,\"S\"],[112,\"D\"],[80,\"d\"]].forEach(([w,k])=>{if(k===\"D\"&&(s+=door(x+2,by,w-4,bh,!0)),k===\"P\"&&(s+=door(x+2,by,w-4,bh/2-2,!1),s+=door(x+2,by+bh/2+2,w-4,bh/2-2,!1)),k===\"S\"&&(s+=`<rect x=\"${x+40}\" y=\"${by-22}\" width=\"${w-80}\" height=\"20\" rx=\"6\" fill=\"#C9CCD1\" stroke=\"#A9ADB3\"/><rect x=\"${x+w/2-4}\" y=\"${by-44}\" width=\"8\" height=\"24\" rx=\"4\" fill=\"#A9ADB3\"/>`,s+=door(x+2,by,w/2-4,bh,!0),s+=door(x+w/2+2,by,w/2-4,bh,!0)),k===\"d\")for(let i=0;i<4;i++)s+=door(x+2,by+i*(bh/4)+1,w-4,bh/4-3,!1);x+=w});const wy=62,wh=118;x=44,[[160,\"D\"],[160,\"D\"],[192,\"X\"],[160,\"D\"]].forEach(([w,k])=>{k===\"X\"?s+=`<rect x=\"${x+20}\" y=\"${wy+40}\" width=\"${w-40}\" height=\"${wh-40}\" rx=\"3\" fill=\"#5A5E66\"/><rect x=\"${x+8}\" y=\"${wy+wh-6}\" width=\"${w-16}\" height=\"6\" fill=\"#8A8E95\"/>`:(s+=door(x+2,wy,w/2-4,wh,!0),s+=door(x+w/2+2,wy,w/2-4,wh,!0)),x+=w});const ty=62;s+=door(688,ty,74,120,!0),s+=door(688,ty+124,74,198,!0),s+=door(770,ty,74,60,!1),s+=`<rect x=\"770\" y=\"${ty+64}\" width=\"74\" height=\"96\" rx=\"3\" fill=\"#2A2C31\"/><rect x=\"780\" y=\"${ty+92}\" width=\"54\" height=\"52\" rx=\"3\" fill=\"#111\" stroke=\"#55585F\"/><rect x=\"780\" y=\"${ty+72}\" width=\"54\" height=\"8\" rx=\"2\" fill=\"#9A9DA3\"/>`,s+=door(770,ty+164,74,158,!0),s+=door(852,ty,100,196,!0),s+=door(852,ty+200,100,122,!0),s+=`<rect x=\"688\" y=\"384\" width=\"264\" height=\"10\" fill=\"${d}\" stroke=\"${e}\"/><rect x=\"40\" y=\"54\" width=\"640\" height=\"8\" fill=\"${d}\" stroke=\"${e}\"/><rect x=\"684\" y=\"54\" width=\"272\" height=\"8\" fill=\"${d}\" stroke=\"${e}\"/>`;const zone=(fid,x2,y,w,h,lx,ly,lbl,sub)=>`<g class=\"zone\" data-fam=\"${fid}\" tabindex=\"0\" role=\"button\" aria-label=\"${lbl}\"><rect class=\"hit\" x=\"${x2}\" y=\"${y}\" width=\"${w}\" height=\"${h}\" rx=\"8\"/><g><rect class=\"pin\" x=\"${lx-6}\" y=\"${ly-16}\" width=\"${lbl.length*9+30}\" height=\"38\" rx=\"8\"/><text class=\"lbl\" x=\"${lx+6}\" y=\"${ly}\">${lbl}</text><text class=\"sub\" x=\"${lx+6}\" y=\"${ly+15}\">${sub}</text></g></g>`;return s+=zone(\"wall\",40,52,644,134,60,88,\"Wall units\",famCount(\"wall\")+\" types\"),s+=zone(\"worktops\",40,218,644,30,300,236,\"Worktops\",famCount(\"worktops\")+\" decors\"),s+=zone(\"base\",40,250,644,138,60,290,\"Base units\",famCount(\"base\")+\" types\"),s+=zone(\"tall\",684,52,84,340,690,200,\"Tall\",famCount(\"tall\")+\" types\"),s+=zone(\"appliance\",766,52,190,340,772,340,\"Appliance housings\",famCount(\"appliance\")+\" types\"),s+=zone(\"trims\",40,394,916,22,60,412,\"Plinth, cornice, panels & trims\",famCount(\"trims\")+\" types\"),s+=zone(\"handles\",40,415,916,24,560,432,\"Handles\",famCount(\"handles\")+\" designs \\xB7 sold separately\"),s+\"</svg>\"}function lineUnit(b){return priceIn(b.style,()=>unitPrice(byId(b.pid),b.v,b.assembled))}function basketTotal(){return S.basket.reduce((a,b)=>a+lineUnit(b)*b.qty,0)}function addItem(p,v,qty,assembled,silent){const st=style(),before=basketTotal(),key=v.sku+(needsStyle(p)?st.id:\"\")+(assembled?\"A\":\"\"),ex=S.basket.find(b=>b.key===key);ex?ex.qty+=qty:S.basket.push({key,pid:p.id,sku:v.sku,name:(isCab(p)?v.w+\"mm \":\"\")+p.name+(v.label?\" \\xB7 \"+v.label:v.size?\" \"+v.size:\"\"),style:needsStyle(p)?st:null,qty,v,assembled:!!assembled}),renderBasket();const after=basketTotal();before<FREE&&after>=FREE&&celebrate(),silent||(toast(`Added ${qty} \\xD7 ${(isCab(p)?v.w+\"mm \":\"\")+p.name}`),S.current!==\"product\"&&renderInboxMaybe())}function renderInboxMaybe(){document.querySelector(\"#inbox\")&&S.product&&renderInbox(byId(S.product),S.variant)}function openSheet(p,title){const sh=document.getElementById(\"sheet\"),last=S.basket[S.basket.length-1],lp=last?byId(last.pid):null;sh.querySelector(\".ok b\").textContent=title||\"Added to your cart\",sh.querySelector(\".ok span\").textContent=last?`${last.qty} \\xD7 ${last.name}${last.style?\" \\xB7 \"+last.style.name:\"\"}${last.assembled?\" \\xB7 assembled\":\"\"}`:\"\";const kb=sh.querySelector(\".kb\");kb.innerHTML=\"\";const opt=(t2,s,fn)=>{const b=el(`<button>${t2}<small>${s}</small></button>`);b.onclick=()=>{closeSheet(),fn()},kb.appendChild(b)},f=lp?lp.family:\"base\";isCab(lp||{family:\"\"})&&(opt(\"Another \"+fam(f).name.toLowerCase().replace(/s$/,\"\"),\"Same style, back to the types\",()=>go(\"units\",{family:f})),f===\"base\"&&opt(\"Matching wall units\",\"Above this run\",()=>go(\"units\",{family:\"wall\"})),f===\"wall\"&&opt(\"Matching base units\",\"Below this run\",()=>go(\"units\",{family:\"base\"})),opt(\"Plinth, cornice & panels\",\"Finish the run in \"+style().name,()=>go(\"units\",{family:\"trims\"})),inCart(q2=>q2.family===\"handles\")||opt(\"Handles\",\"Not included. From \\xA32.95\",()=>go(\"units\",{family:\"handles\"})),inCart(q2=>q2.family===\"worktops\")||opt(\"Worktops\",\"Not included. From \\xA389\",()=>go(\"units\",{family:\"worktops\"}))),title&&/units/.test(title)?opt(\"Back to the builder\",\"Your plan is saved\",()=>go(\"builder\")):(opt(\"Base units\",\"Start a run\",()=>go(\"units\",{family:\"base\"})),opt(\"Wall units\",\"\",()=>go(\"units\",{family:\"wall\"})),opt(\"All parts\",\"Worktops, handles, trims\",()=>go(\"parts\")));const t=basketTotal(),rem=Math.max(0,FREE-t);sh.querySelector(\"#shfree\").innerHTML=rem>0?`<b>${GBP(rem)}</b> more for free delivery`:`<b style=\"color:var(--cyan)\">Free delivery unlocked</b> \\xB7 ${GBP(t)} in your cart`,sh.classList.add(\"open\")}function closeSheet(){document.getElementById(\"sheet\").classList.remove(\"open\")}function renderBasket(){document.getElementById(\"cnt\").textContent=S.basket.reduce((a,b)=>a+b.qty,0);const it=document.getElementById(\"bitems\");it.innerHTML=\"\";const run=document.getElementById(\"run\"),bases=S.basket.filter(b=>byId(b.pid).family===\"base\"),walls=S.basket.filter(b=>byId(b.pid).family===\"wall\"),stripFor=arr=>arr.flatMap(b=>Array(b.qty).fill(b)).map(b=>picSVG(byId(b.pid),{w:b.v.w,h:b.v.h,doors:b.v.doors},b.style||style(),{scale:.045,noHandles:!0})).join(\"\"),len=arr=>arr.reduce((a,b)=>a+b.v.w*b.qty,0);run.innerHTML=(bases.length?`<div class=\"lab\"><span>Your base run</span><b>${len(bases)} mm</b></div><div class=\"strip\">${stripFor(bases)}</div>`:\"\")+(walls.length?`<div class=\"lab\"><span>Your wall run</span><b>${len(walls)} mm</b></div><div class=\"strip\">${stripFor(walls)}</div>`:\"\"),run.style.display=bases.length||walls.length?\"block\":\"none\",S.basket.length||(it.innerHTML='<div class=\"empty\">Nothing yet. Pick a style, tap where it goes, size it up.</div>'),S.basket.forEach(b=>{const p=byId(b.pid),cab=isCab(p),r=el(`<div class=\"bi\"><div class=\"pic\">${p.family===\"samples\"||p.family===\"fees\"?picSVG(p,b.v,style()):unitPic(p,cab?{w:Math.min(b.v.w,600),h:b.v.h,doors:b.v.doors}:b.v,b.style||style(),{scale:.06})}</div><div class=\"t\"><b>${b.name}</b><small>${b.style?b.style.name+\" \\xB7 \":\"\"}${b.sku}</small><div class=\"ctl\"><span class=\"q2\"><button data-d=\"-1\">\\u2013</button><span>${b.qty}</span><button data-d=\"1\">+</button></span>${cab?`<button class=\"asm2 ${b.assembled?\"on\":\"\"}\">${b.assembled?\"Assembled\":\"Flatpack\"} \\xB7 ${b.assembled?\"+\"+GBP(ASSEMBLY):\"tap for assembled\"}</button>`:\"\"}<button class=\"rm\">Remove</button></div></div><div class=\"p\">${GBP(lineUnit(b)*b.qty)}</div></div>`);r.querySelectorAll(\"[data-d]\").forEach(x=>x.onclick=()=>{b.qty=Math.max(1,b.qty+ +x.dataset.d),renderBasket(),renderInboxMaybe()});const a2=r.querySelector(\".asm2\");a2&&(a2.onclick=()=>{b.assembled=!b.assembled,renderBasket()}),r.querySelector(\".rm\").onclick=()=>{S.basket=S.basket.filter(x=>x!==b),renderBasket(),S.current===\"product\"&&updateProduct()},it.appendChild(r)});const nz=document.getElementById(\"nudges\");nz.innerHTML=\"\";const fronts=S.basket.filter(b=>isCab(byId(b.pid))).reduce((a,b)=>a+handleCount(byId(b.pid),b.v)*b.qty,0),hcount=S.basket.filter(b=>byId(b.pid).family===\"handles\").reduce((a,b)=>a+b.qty,0),nudge=(t2,btn,fn)=>{const n=el(`<div class=\"nudge\"><span>${t2}</span><button>${btn}</button></div>`);n.querySelector(\"button\").onclick=()=>{document.getElementById(\"bk\").classList.remove(\"open\"),fn()},nz.appendChild(n)};fronts>0&&hcount<fronts&&nudge(`<b>${fronts-hcount} front${fronts-hcount>1?\"s\":\"\"} without a handle.</b> Handles aren't included.`,\"Add handles\",()=>go(\"units\",{family:\"handles\"})),bases.length&&!inCart(q2=>q2.id===\"acc-plinth\")&&nudge(\"<b>No plinth yet.</b> Base units need one to hide the legs.\",\"Add plinth\",()=>go(\"product\",{id:\"acc-plinth\"})),bases.length&&!inCart(q2=>q2.family===\"worktops\")&&nudge(`<b>Need a worktop?</b> ${len(bases)}mm of base run so far.`,\"See worktops\",()=>go(\"units\",{family:\"worktops\"}));const t=basketTotal(),rem=Math.max(0,FREE-t),asmN=S.basket.filter(b=>b.assembled).reduce((a,b)=>a+b.qty,0);document.getElementById(\"btot\").textContent=GBP(t),document.getElementById(\"bk3\").textContent=\"3 \\xD7 \"+GBP(t/3),document.getElementById(\"blines\").innerHTML=`<div><span>Subtotal (inc VAT)</span><span class=\"mono\">${GBP(t)}</span></div>${asmN?`<div><span>Assembly, ${asmN} cabinet${asmN>1?\"s\":\"\"}</span><span class=\"mono\">included above</span></div>`:\"\"}<div><span>Delivery</span><span class=\"mono\">${rem===0?\"FREE\":GBP(CJ_DELIVERY)}</span></div>`,document.getElementById(\"bdlv\").classList.toggle(\"free\",rem===0&&t>0),document.getElementById(\"bdt\").innerHTML=rem>0?`<b>${GBP(rem)}</b> away from free delivery`:t>0?'<b class=\"unl\">Free delivery unlocked</b>':\"Free delivery over \\xA3${FREE}\",document.getElementById(\"bdb\").textContent=GBP(Math.min(t,FREE))+\" / \"+GBP(FREE),document.getElementById(\"bdbar\").style.width=Math.min(100,t/FREE*100)+\"%\"}function celebrate(){toast(\"Free delivery unlocked\");const c=document.getElementById(\"cf\"),ctx=c.getContext(\"2d\");c.width=innerWidth,c.height=innerHeight;const cols=[\"#00BBEA\",\"#0A1116\",\"#FFB3C7\",\"#FFFFFF\",\"#7FDDF5\"],ps=Array.from({length:140},()=>({x:innerWidth/2+(Math.random()-.5)*200,y:innerHeight*.6,vx:(Math.random()-.5)*14,vy:-Math.random()*16-4,r:Math.random()*6+3,c:cols[Math.floor(Math.random()*cols.length)],a:Math.random()*6}));let t=0;(function f(){ctx.clearRect(0,0,c.width,c.height),ps.forEach(p=>{p.x+=p.vx,p.y+=p.vy,p.vy+=.45,p.a+=.2,ctx.save(),ctx.translate(p.x,p.y),ctx.rotate(p.a),ctx.fillStyle=p.c,ctx.fillRect(-p.r/2,-p.r/2,p.r,p.r*1.6),ctx.restore()}),++t<90?requestAnimationFrame(f):ctx.clearRect(0,0,c.width,c.height)})(),document.querySelectorAll(\".bar i\").forEach(b=>{b.classList.remove(\"pulse\"),b.offsetWidth,b.classList.add(\"pulse\")})}document.getElementById(\"bkbtn\").onclick=()=>document.getElementById(\"bk\").classList.add(\"open\"),document.querySelectorAll(\"[data-close]\").forEach(b=>b.onclick=()=>{document.getElementById(\"bk\").classList.remove(\"open\"),document.getElementById(\"pop\").classList.remove(\"open\"),closeSheet()});let tt;function toast(m){const t=document.getElementById(\"toast\");t.textContent=m,t.classList.add(\"show\"),clearTimeout(tt),tt=setTimeout(()=>t.classList.remove(\"show\"),2e3)}function openPop(){const g=document.getElementById(\"popgrid\");g.innerHTML=\"\",DATA.styles.forEach(s2=>{const b=el(`<button class=\"${s2.id===S.style?\"on\":\"\"}\"><span class=\"sw ${s2.finish===\"Gloss\"?\"gloss\":\"\"}\" style=\"background:${s2.hex}\"></span><b>${s2.name}</b><small>${s2.colour} \\xB7 ${s2.finish}</small></button>`);b.onclick=()=>{S.style=s2.id;try{localStorage.setItem(\"kb-style\",s2.id)}catch{}document.getElementById(\"pop\").classList.remove(\"open\"),!S.current||S.current===\"style\"?go(\"place\"):render()},g.appendChild(b)}),document.getElementById(\"pop\").classList.add(\"open\")}const q=document.getElementById(\"q\"),sp=document.getElementById(\"spop\");q.oninput=()=>{const t=q.value.trim().toLowerCase();if(!t){sp.classList.add(\"hidden\");return}const w=(t.match(/\\d{3,4}/)||[])[0],words=t.replace(/\\d+/g,\"\").split(/\\s+/).filter(Boolean),hits=DATA.products.map(p=>{const hay=(p.name+\" \"+p.blurb+\" \"+fam(p.family).name+\" \"+p.group).toLowerCase(),score=words.reduce((a,x)=>a+(hay.includes(x)?1:0),0)+(w&&p.widths&&p.widths.includes(+w)?1:0);return{p,score}}).filter(x=>x.score>0).sort((a,b)=>b.score-a.score).slice(0,6);sp.innerHTML=\"\",hits.length||(sp.innerHTML='<div style=\"padding:10px 12px;color:var(--ink-3)\">No match. Try \"sink\", \"larder\", \"handle\", \"worktop\" or a width.</div>'),hits.forEach(({p})=>{const ww=w&&p.widths&&p.widths.includes(+w)?+w:null,b=el(`<button><span>${ww?ww+\"mm \":\"\"}${p.name}</span><span class=\"m\">${fam(p.family).name}</span></button>`);b.onclick=()=>{sp.classList.add(\"hidden\"),q.value=\"\",go(\"product\",{id:p.id,variant:ww?defaultVariant(p,ww):null})},sp.appendChild(b)}),sp.classList.remove(\"hidden\")},q.onblur=()=>setTimeout(()=>sp.classList.add(\"hidden\"),200),q.onfocus=()=>{q.value&&q.oninput()},document.getElementById(\"helpbtn\").onclick=()=>{S.help=!S.help,document.getElementById(\"hp\").classList.toggle(\"on\",S.help)},document.getElementById(\"hpgo\").onclick=()=>{const hp=document.getElementById(\"hp\");hp.querySelector(\"form\").innerHTML='<div class=\"done\"><b>Got it.</b> A kitchen planner will come back within one working day with a free layout and a priced list. (Demo: nothing was sent.)</div>'},document.getElementById(\"hp\").querySelectorAll(\".ways button\").forEach(b=>b.onclick=()=>{/sample/i.test(b.textContent)?(S.help=!1,document.getElementById(\"hp\").classList.remove(\"on\"),openSamples()):toast(b.dataset.m)}),document.getElementById(\"view\").addEventListener(\"click\",e=>{const b=e.target.closest(\"[data-go]\");b&&go(b.dataset.go)}),document.getElementById(\"logo\").onclick=()=>go(\"home\"),document.addEventListener(\"click\",e=>{e.target.closest(\"[data-mclose]\")&&closeModal();const n=e.target.closest(\"[data-nav]\");if(n&&ROOT.contains(n)){const k=n.dataset.nav;k===\"samples\"?openSamples():go(k===\"presets\"?\"presets\":k===\"parts\"?\"parts\":k===\"builder\"?\"builder\":\"style\")}}),document.addEventListener(\"keydown\",e=>{e.key===\"Escape\"&&(closeModal(),closeSheet(),document.getElementById(\"bk\").classList.remove(\"open\"),document.getElementById(\"pop\").classList.remove(\"open\"))}),document.getElementById(\"notesbtn\").onclick=()=>{S.notes=!S.notes,document.getElementById(\"notes\").classList.toggle(\"on\",S.notes)};function renderNotes(){const N={plan:[\"<b>Seven questions, zero jargon.</b> Shape, wall lengths, openings, water and gas, appliances, storage, look. Each one changes the layout; nothing is asked that does not.\",\"<b>How-to-measure panel on every step</b> with a diagram, so the customer is never guessing what we mean by 'from left' or 'sill height'.\",\"<b>The plan draws itself</b> as they type: walls, windows, doors, sink and hob markers, so mistakes are visible before they matter.\",\"<b>Water and gas anchor the layout.</b> Sink sits on the waste point, hob on the gas point, dishwasher next to the sink, tall units at the end of the roomiest run, nothing across a doorway, no wall units over a window.\",\"<b>Output is a complete basket,</b> not a drawing: units sized to the mm, worktop lengths, plinth, cornice, handles per front, end panels, fillers, sink and tap. Add it in one tap or fine-tune in 3D first.\"],parts:[\"<b>One hub for everything that is not a cabinet.</b> Worktops and handles need no colour; plinths, panels and doors take the colour strip at the top.\",\"<b>Category tiles jump to sections</b> on the same page, so a handle shopper never has to find the right menu.\"],home:[\"<b>One question, three doors.</b> Components, full kitchen, parts. The live 3D kitchen behind it is the same model the builder uses.\",\"<b>The trust row answers the four objections</b> people have before they click anything: what is included, assembly, delivery, paying.\"],style:[\"<b>One decision per screen.</b> Style first, because it never changes once settled. It then stays pinned in the rail.\",\"<b>Every style is the same kitchen, rendered live</b> from the 3D engine in that finish, so the comparison is colour and finish, not photography. Real lifestyle shots can replace these per style.\",\"<b>Range-card anatomy</b> borrowed from the best UK kitchen retailers: image, tag, name, from-price, three bullets, colour swatches, one CTA, free sample.\",\"<b>Free samples</b> are the highest-converting tool in kitchen ecom. Surfaced on step 1 and on every product page.\"],place:[\"<b>Tap the kitchen, not a menu.</b> It is now the 3D kitchen in their chosen style; hovering any part lights up every unit of that type, and the pins follow the camera.\",\"<b>Seven families, not sixteen collections.</b> Highline, Drawerline, Sink etc. are moved to step 3.\"],units:[\"<b>Help me choose</b> asks one question (what is going in this spot?) and lights up the recommended card, dimming the rest. Same tool as the product page advisor.\",\"<b>Every card is a real 3D render</b> of that unit in the chosen finish, from the same engine as the builder.\",'<b>Plan my run</b> turns a wall length into a priced layout with one \"Add all\". This is the multi-unit purchase path for people who know their measurements.',\"<b>Quick add on hover</b> for repeat buyers who already know the unit; everyone else goes to the product page.\",'<b>Cards answer \"what does it do?\"</b> with a silhouette, one line and a from-price.'],builder:[\"<b>Real 3D room</b> in the chosen finish, drag to orbit, plan and face-the-wall views. Arrive from the planner and it is pre-built from the answers; arrive direct and you place every unit.\",\"<b>Walls are tabs</b>, tall units always sit at the end of a run, freestanding appliances are gaps. Three rules that keep it understandable.\",\"<b>Tap a unit in 3D</b> to change its width, slide it along the wall or remove it; the cyan block shows exactly how much room is left.\",\"<b>Free space is a live number</b> on the wall and in the palette; widths that won't fit are greyed out, so there is never an impossible layout.\",\"<b>Extras are worked out, not sold:</b> worktop lengths, plinth, cornice, handles per front, end panels, fillers. Each is a tick box with a price.\",\"<b>One button adds the whole kitchen</b>, with flatpack or assembled applied to every cabinet, and then the same keep-building sheet appears.\",'<b>A starter layout is pre-filled</b> so the page is never empty, and \"Send us my plan instead\" is one tap away for anyone who would rather we did it.'],product:[\"<b>Live dispatch countdown and real delivery dates</b> (working days, 12pm cut-off). True urgency, no fake stock counters.\",\"<b>Klarna in three places:</b> price line, detail box, cart. Pay in 3 is quoted on the actual line price.\",'<b>Free delivery progress</b> counts this item, flips to \"unlocked\" and fires confetti when the cart crosses \\xA3399.','<b>Flatpack vs assembled</b> is a card toggle with \"included\" vs \"+\\xA330\", and can be flipped per item in the cart.',\"<b>In the box / You'll also need</b> makes the included doors, hinges and legs explicit, then one-tap adds handles (counted per front), plinth, worktop, end panel, filler.\",'<b>Is this the right unit?</b> checks the spot (sink, hob, dishwasher, corner) and redirects if a better unit exists. Dishwasher gives \"no unit needed\", which saves a return.',\"<b>After add, a sheet keeps them building:</b> another unit, matching wall/base, trims, handles, worktops. Nobody is dumped in the cart.\",\"<b>Cart draws the run to scale</b> with total mm, and nudges on missing handles, plinth and worktop.\"]},k=S.current||\"style\";document.getElementById(\"notes\").innerHTML=`<h4>${{parts:\"Parts\",home:\"Start here\",style:\"Step 1 \\xB7 Kitchen style\",place:\"Step 2 \\xB7 Where it goes\",units:\"Step 3 \\xB7 Unit type\",product:\"Product page\",builder:\"Kitchen builder\",plan:\"Plan my kitchen\"}[k]}</h4><ol>${(N[k]||[]).map(x=>`<li>${x}</li>`).join(\"\")}</ol>`}renderBasket();const SHAPES=[[\"straight\",\"Straight\",\"One wall\"],[\"galley\",\"Galley\",\"Two facing walls\"],[\"L\",\"L-shape\",\"Two walls, one corner\"],[\"Lp\",\"L + peninsula\",\"Breakfast bar off the L\"],[\"U\",\"U-shape\",\"Three walls\"],[\"G\",\"G-shape\",\"U with a peninsula\"]],GAPS=[[\"dw\",\"Dishwasher\",600],[\"wm\",\"Washing machine\",600],[\"fr\",\"Freestanding fridge\",600],[\"rc\",\"Range cooker\",900]],WALL_BOTTOM=1320,ROOM_H=2500,BASE_D=560,WALL_D=300,kit=()=>S.kit;function kitItem(pid,w){const p=byId(pid),ww=p.widths.includes(w)?w:p.widths.reduce((a,b)=>Math.abs(b-w)<Math.abs(a-w)?b:a);return{pid,w:ww,v:defaultVariant(p,ww)}}function kitGap(k){const g=GAPS.find(x=>x[0]===k);return{gap:!0,k,w:g[2],label:g[1]}}const used=arr=>arr.reduce((a,x)=>a+x.w,0);function kitStart(wi,row){const K=kit();return K.shape===\"straight\"||K.shape===\"galley\"||wi===0?0:row===\"wall\"?WALL_D:BASE_D}function kitRunLen(w,wi){return w.len-kitStart(wi,\"base\")}function kitFit(w){const K=kit(),wi=K.walls.indexOf(w),trim=(arr,limit)=>{for(;arr.length&&used(arr)>limit;)arr.pop()};trim(w.tall,kitRunLen(w,wi));const avail=kitRunLen(w,wi)-used(w.tall);trim(w.base,avail),trim(w.wall,avail+kitStart(wi,\"base\")-kitStart(wi,\"wall\"))}function kitAvail(w,row){const K=kit(),wi=K.walls.indexOf(w),run=w.len-kitStart(wi,row===\"wall\"?\"wall\":\"base\");return row===\"tall\"?run-Math.max(used(w.base),used(w.wall)):run-used(w.tall)}function kitFree(w,row){return kitAvail(w,row)-used(w[row])}function kitAdd(pid,w0,gapKey){const K=kit(),W=K.walls[K.sel],item=gapKey?kitGap(gapKey):kitItem(pid,w0),p=gapKey?null:byId(pid),row=gapKey||p.family===\"base\"||p.family===\"appliance\"&&/built-under/.test(p.id)?\"base\":p.family===\"wall\"?\"wall\":\"tall\",free=kitFree(W,row);if(item.w>free){toast(`Only ${free}mm left on ${W.name}${free>=150?\". Try a narrower width\":\"\"}`);return}W[row].push(item),K.pick={row,i:W[row].length-1},K.row=row,renderBuilder()}function kitExtras(){const K=kit(),out=[],add=(key,pid,qty,label,sub)=>{const p=byId(pid);if(!p||qty<=0)return;const v=p.variants[0];out.push({key,p,v,qty,label,sub,price:v.price*qty,on:K.extras[key]!==!1})},wallLen=K.walls.reduce((a,w)=>a+used(w.wall),0),runLen=K.walls.reduce((a,w)=>a+used(w.base)+used(w.tall),0);add(\"worktop\",\"oakblock\",K.walls.reduce((a,w,i)=>a+Math.ceil((used(w.base)+kitStart(i,\"base\"))/3e3),0),\"Worktop\",\"Oak block effect 3m lengths, change decor later\"),add(\"plinth\",\"acc-plinth\",Math.ceil(runLen/2800),\"Plinth\",\"2.8m lengths to hide the legs\"),add(\"cornice\",\"acc-cornice-pelmet\",Math.ceil(wallLen/2800),\"Cornice / pelmet\",\"2.8m lengths above and below wall units\");const c=kitCounts();add(\"handles\",\"bar160\",c.fronts,\"Handles\",\"Bar 160mm, one per front, change design later\");const ends={straight:2,L:2,U:2,galley:4}[K.shape];add(\"ends\",\"acc-base-end-panel\",ends,\"End panels\",\"One per exposed run end\");const fill=K.walls.filter(w=>{const f=kitFree(w,\"base\");return f>0&&f<150}).length;return add(\"fillers\",\"acc-filler-panel\",fill,\"Filler panels\",\"Close the last few mm to the wall\"),out}function renderBuilder(){const K=kit(),root=document.getElementById(\"kb\");if(!root)return;const W=K.walls[K.sel];root.querySelector(\"#kstep\").innerHTML=`<div class=\"ks\"><b>1</b>Shape</div><div class=\"shapes\">${SHAPES.map(([id,n,d])=>`<button class=\"shp ${(K.shapeId||K.shape)===id?\"on\":\"\"}\" data-s=\"${id}\">${shapeIcon(id)}<b>${n}</b><small>${d}</small></button>`).join(\"\")}</div><div class=\"ks\"><b>2</b>Wall lengths</div><div class=\"walls\">${K.walls.map((w,i)=>`<label class=\"wl ${i===K.sel?\"on\":\"\"}\"><span>${w.name}</span><input inputmode=\"numeric\" value=\"${w.len}\" data-len=\"${i}\"><em>mm</em></label>`).join(\"\")}</div>`,root.querySelector(\"#ktabs\").innerHTML=K.walls.map((w,i)=>`<button class=\"${i===K.sel?\"on\":\"\"}\" data-t=\"${i}\">${w.name} <small>${w.len}mm</small></button>`).join(\"\")+`<span class=\"kleg\">Adding to <b>${W.name}</b> \\xB7 ${K.row===\"gaps\"?\"base\":K.row} row</span>`,root.querySelector(\"#kviews\").innerHTML=[[\"3d\",\"3D\"],[\"plan\",\"Plan\"],[\"front\",\"Face wall\"]].map(([k,l])=>`<button class=\"${K.view===k?\"on\":\"\"}\" data-v=\"${k}\">${l}</button>`).join(\"\"),root.querySelector(\"#kph\").innerHTML=`<b>3</b>Tap to add to <span>${W.name}</span>`,root.querySelector(\"#ptabs\").innerHTML=[[\"base\",\"Base\"],[\"wall\",\"Wall\"],[\"tall\",\"Tall & appliance\"],[\"gaps\",\"Gaps\"]].map(([k,l])=>`<button class=\"${K.row===k?\"on\":\"\"}\" data-r=\"${k}\">${l}</button>`).join(\"\");const c=kitCounts(),ex=kitExtras(),exOn=ex.filter(e=>e.on).reduce((a,e)=>a+e.price,0),total=c.price+exOn;root.querySelector(\"#ksum\").innerHTML=`<div class=\"ks\"><b>4</b>Your kitchen</div><div class=\"ksgrid\">\n      <div class=\"kunits\"><div class=\"kl\">${c.units} units \\xB7 ${c.cabs} cabinets \\xB7 ${c.fronts} fronts</div><div class=\"kp\">${GBP(c.price)}</div>\n        <div class=\"asm\" style=\"margin-top:10px\">${[[!1,\"Flatpack\",\"Included\"],[!0,\"Ready assembled\",\"+\"+GBP(ASSEMBLY)+\" \\xD7 \"+c.cabs+\" cabinets\"]].map(([v,t,p])=>`<button class=\"${K.assembled===v?\"on\":\"\"}\" data-asm=\"${v}\"><b>${t}</b><span class=\"pr\">${p}</span></button>`).join(\"\")}</div></div>\n      <div class=\"kextras\"><div class=\"kl\">Worked out for you \\xB7 untick anything you have</div>${ex.map(e=>`<label class=\"kx\"><input type=\"checkbox\" data-x=\"${e.key}\" ${e.on?\"checked\":\"\"}><span><b>${e.label}</b> \\xD7 ${e.qty}<small>${e.sub}</small></span><em>${GBP(e.price)}</em></label>`).join(\"\")}</div>\n      <div class=\"ktotal\"><div class=\"kl\">Kitchen total <small>inc VAT</small></div><div class=\"kp big\">${GBP(total)}</div><div class=\"klarna\" style=\"margin-top:6px\"><span class=\"kl2\">Klarna.</span>3 \\xD7 ${GBP(total/3)}</div><div class=\"kfree\">${total>=FREE?'<b style=\"color:var(--cyan)\">Free delivery</b> included':GBP(FREE-total)+\" more for free delivery\"}</div><button class=\"add\" id=\"kadd\" style=\"margin-top:12px;width:100%\"><span style=\"font-family:var(--body);font-weight:800;font-size:17px\">Add whole kitchen to cart</span><span>${GBP(total)}</span></button><button class=\"klink\" id=\"kclear\">Start again</button></div></div>`;const rb=document.getElementById(\"rbprice\");rb&&(rb.textContent=GBP(total)),root.querySelectorAll(\".shp\").forEach(b=>b.onclick=()=>{const keep=K.walls;kitInit(b.dataset.s,!1);const K2=kit();K2.walls.forEach((w,i)=>{keep[i]&&Object.assign(w,{len:keep[i].len,base:keep[i].base,tall:keep[i].tall,wall:keep[i].wall,obs:keep[i].obs||[]})}),K2.walls.forEach(w=>kitFit(w)),K2.assembled=K.assembled,K2.extras=K.extras,K2.view=K.view,K2.choices=K.choices,K2.generated=K.generated,renderBuilder(),view3D(K2.view,!0)}),root.querySelectorAll(\"[data-len]\").forEach(i=>{i.onchange=()=>{const w=K.walls[+i.dataset.len];w.len=Math.max(900,parseInt(i.value)||900),kitFit(w),renderBuilder(),view3D(K.view,!0)},i.onfocus=()=>{K.sel=+i.dataset.len}}),root.querySelectorAll(\"[data-t]\").forEach(b=>b.onclick=()=>{K.sel=+b.dataset.t,K.pick=null,renderBuilder(),K.view===\"front\"&&view3D(\"front\")}),root.querySelectorAll(\"[data-r]\").forEach(b=>b.onclick=()=>{K.row=b.dataset.r,renderBuilder()}),root.querySelectorAll(\"[data-v]\").forEach(b=>b.onclick=()=>{K.view=b.dataset.v,view3D(K.view),renderBuilder()}),root.querySelectorAll(\"[data-asm]\").forEach(b=>b.onclick=()=>{K.assembled=b.dataset.asm===\"true\",renderBuilder()}),root.querySelectorAll(\"[data-x]\").forEach(i=>i.onchange=()=>{K.extras[i.dataset.x]=i.checked,renderBuilder()}),root.querySelector(\"#kclear\").onclick=()=>{kitInit(K.shape,!1),renderBuilder(),view3D(\"3d\",!0)},root.querySelector(\"#kadd\").onclick=()=>{let n=0;K.walls.forEach(w=>[\"base\",\"tall\",\"wall\"].forEach(r=>w[r].forEach(it=>{it.gap||(addItem(byId(it.pid),it.v,1,K.assembled,!0),n++)}))),kitExtras().filter(e=>e.on).forEach(e=>addItem(e.p,e.v,e.qty,!1,!0)),renderBasket(),openSheet(null,`${n} units + extras added`)},renderTool(),renderPalette(),build3D()}function renderTool(){const K=kit(),W=K.walls[K.sel],tool=document.getElementById(\"ktool\");if(!K.pick){tool.innerHTML=`<span class=\"kmuted\">Tap a unit in the 3D view to change its width, move it along the wall or remove it. Free space on ${W.name}: <b>${kitFree(W,\"base\")}mm</b> base, <b>${kitFree(W,\"wall\")}mm</b> wall.</span>`;return}const it=W[K.pick.row][K.pick.i];if(!it){K.pick=null,tool.innerHTML=\"\";return}const p=it.gap?null:byId(it.pid),free=kitFree(W,K.pick.row)+it.w;tool.innerHTML=`<div class=\"kt1\"><b>${it.gap?it.label+\" gap\":it.w+\"mm \"+p.name}</b>${p?`<span>${GBP(unitPrice(p,it.v,K.assembled))}</span>`:\"\"}</div>${p?`<div class=\"pills\">${p.widths.map(w=>`<button class=\"pill ${w===it.w?\"on\":\"\"} ${w>free?\"dim\":\"\"}\" data-w=\"${w}\"><b>${w}</b></button>`).join(\"\")}</div>`:\"\"}<div class=\"kt2\"><button data-mv=\"-1\">\\u2190 Move</button><button data-mv=\"1\">Move \\u2192</button>${p?'<button data-open=\"1\">Open product page</button>':\"\"}<button data-rm=\"1\" class=\"danger\">Remove</button><button data-un=\"1\">Done</button></div>`,tool.querySelectorAll(\"[data-w]\").forEach(b=>b.onclick=()=>{const w=+b.dataset.w;if(w>free){toast(\"Not enough room for \"+w+\"mm\");return}Object.assign(it,kitItem(it.pid,w)),renderBuilder()}),tool.querySelectorAll(\"[data-mv]\").forEach(b=>b.onclick=()=>{const arr=W[K.pick.row],i=K.pick.i,j=i+ +b.dataset.mv;j<0||j>=arr.length||([arr[i],arr[j]]=[arr[j],arr[i]],K.pick.i=j,renderBuilder())}),tool.querySelector(\"[data-rm]\").onclick=()=>{W[K.pick.row].splice(K.pick.i,1),K.pick=null,renderBuilder()},tool.querySelector(\"[data-un]\").onclick=()=>{K.pick=null,renderBuilder()};const op=tool.querySelector(\"[data-open]\");op&&(op.onclick=()=>go(\"product\",{id:it.pid,variant:it.v}))}function renderPalette(){const K=kit(),W=K.walls[K.sel],st=style(),list=document.getElementById(\"plist\"),pf=document.getElementById(\"pfree\"),row=K.row,free=row===\"gaps\"?kitFree(W,\"base\"):kitFree(W,row);if(pf.innerHTML=`<span>${W.name} \\xB7 <b>${free}mm</b> free on the ${row===\"gaps\"?\"base\":row} row</span>${free<150&&free>0?`<em>Add a filler for the last ${free}mm</em>`:\"\"}`,row===\"gaps\"){list.innerHTML=`<p class=\"kmuted\" style=\"margin:0 0 8px\">Freestanding appliances need a gap, not a cabinet. We'll add plinth and filler to finish it.</p>`+GAPS.map(([k,l,w])=>`<button class=\"pitem gap\" data-g=\"${k}\"><b>${l}</b><span>${w}mm gap \\xB7 no unit</span></button>`).join(\"\"),list.querySelectorAll(\"[data-g]\").forEach(b=>b.onclick=()=>kitAdd(null,null,b.dataset.g));return}const groups=(row===\"base\"?[\"base\"]:row===\"wall\"?[\"wall\"]:[\"tall\",\"appliance\"]).flatMap(fid=>fam(fid).groups.map(g=>({...g,fid})));list.innerHTML=groups.map(g=>{const ps=DATA.products.filter(p=>p.family===g.fid&&p.group===g.id&&!(row===\"tall\"&&/built-under/.test(p.id)));return ps.length?`<div class=\"pgrp\"><div class=\"pgh\">${g.name}</div>${ps.map(p=>{const dv=defaultVariant(p);return`<div class=\"pitem\"><div class=\"pic\">${unitSVG(p,{w:Math.min(dv.w,800),h:dv.h,doors:dv.doors},st,{scale:.045,noHandles:!0})}</div><div class=\"ptx\"><b>${p.name}</b><span>from ${GBP(p.from)}</span></div><div class=\"pw\">${p.widths.map(w=>`<button class=\"${w>free?\"dim\":\"\"}\" data-add=\"${p.id}:${w}\">${w}</button>`).join(\"\")}</div></div>`}).join(\"\")}</div>`:\"\"}).join(\"\"),list.querySelectorAll(\"[data-add]\").forEach(b=>b.onclick=()=>{const[pid,w]=b.dataset.add.split(\":\");kitAdd(pid,+w)})}let T3=null;function placeLabels(){const t=T3;if(!t||!t.labels.length)return;const r=t.renderer.domElement.getBoundingClientRect(),w=t.host.clientWidth,h=t.host.clientHeight;t.labels.forEach(l=>{const v=l.pos.clone().project(t.camera),x=(v.x+1)/2*w,y=(1-v.y)/2*h,vis=v.z<1&&x>0&&x<w&&y>0&&y<h;l.el.style.transform=`translate(${x}px,${y}px) translate(-50%,-100%)`,l.el.style.opacity=vis?1:0})}function roomDims(){return roomDimsFor(kit())}function camTo(t,kind,K,wi,instant){const{A,depth}=roomDimsFor(K),span=Math.max(A,depth);let to,toT=new THREE.Vector3(A/2,900,depth/2);if(kind===\"plan\")to={th:1e-4,ph:.06,r:span*1.5};else if(kind===\"front\"){const th={0:0,1:Math.PI/2,2:-Math.PI/2}[wi],isGal=K.shape===\"galley\"&&wi===1,rmax=wi===0&&K.shape===\"galley\"||isGal?depth*.9:wi>0&&K.shape===\"U\"?A*.9:1e9;to={th:isGal?Math.PI:th,ph:1.42,r:Math.min(span*1.35,rmax)};const W=K.walls[wi];toT=wi===0?new THREE.Vector3(A/2,1100,0):isGal?new THREE.Vector3(A/2,1100,depth):wi===1?new THREE.Vector3(0,1100,W.len/2):new THREE.Vector3(A,1100,W.len/2)}else kind===\"hero\"?(to={th:K.shape===\"U\"?.3:.95,ph:1.12,r:span*1.45},toT=new THREE.Vector3(A/2,1e3,depth/2)):to={th:K.shape===\"U\"?.18:.75,ph:1.05,r:span*(K.shape===\"U\"?1.55:1.7)};instant?(Object.assign(t.cam,to),t.target.copy(toT),t.upd(),t.dirty=!0):t.anim={from:{...t.cam},to,fromT:t.target.clone(),toT,t0:performance.now(),dur:650}}function view3D(kind,instant){const t=T3;t&&camTo(t,kind,kit(),kit().sel,instant)}const MAT={},box=(w,h,d,m,x,y,z,shadow=!0)=>{const g=new THREE.Mesh(new THREE.BoxGeometry(w,h,d),m);return g.position.set(x+w/2,y+h/2,z+d/2),g.castShadow=shadow,g.receiveShadow=!0,g};function unit3D(p,v,st,opts={}){const W=v.w,fam2=p.family,H=unitH(p,v),D=fam2===\"wall\"?WALL_D:v.d||BASE_D,gloss=st.finish===\"Gloss\",g=new THREE.Group,carc=mat(\"#F4F4F1\",!1),door=mat(st.hex,gloss),hand=mat(\"#55595F\",!1),dark=mat(\"#23262B\",!1),glass=mat(\"#0D0F12\",!0),steel=mat(\"#B9BDC2\",!0),legs=fam2===\"base\"||fam2===\"appliance\"&&H<=1250?150:0,y0=legs;g.add(box(W,H,D-20,carc,0,y0,0)),legs&&[[60,60],[W-100,60],[60,D-120],[W-100,D-120]].forEach(([x,z])=>g.add(box(40,legs,40,mat(\"#9A9DA3\",!1),x,0,z,!1)));const rows=p.glyph,fixed={d:140,P:282,A:fam2===\"appliance\"?590:360};let fixedTotal=0,flex=0;rows.forEach(r=>{fixed[r]?fixedTotal+=fixed[r]:flex++});const flexH=flex?Math.max(120,(H-fixedTotal)/flex):0,dc=v.doors===\"Double\"?2:v.doors===\"Single\"?1:W>=600&&!(fam2===\"tall\"&&W<700)&&!/corner|angled|curved|wine|spice|oven|microwave|compact|fridge|coffee/.test(p.id)?2:1;let y=y0+H;const gap=3,zf=D-20,handles=[],flip=!!opts.flip,slab=(x,yy,w,h,kind,hr)=>{kind===\"drawer\"?drawerSlab(g,w,h,door,x,yy,zf):doorSlab(g,w,h,door,x,yy,zf,flip?!hr:!!hr)},vh=(x,yy)=>{if(opts.noHandles||S.doorDesign===\"jpull\")return;const m=box(10,160,24,hand,x,yy,zf+18);handles.push(m),g.add(m)},hh=(x,yy,w)=>{if(opts.noHandles||S.doorDesign===\"jpull\")return;const m=box(Math.min(160,w*.4),10,24,hand,x,yy,zf+18);handles.push(m),g.add(m)},GP=packH(rows,H);return rows.forEach((r,ri)=>{const rh=GP?GP[ri]:fixed[r]||flexH;if(y-=rh,r===\"D\"||r===\"X\"){const n=r===\"X\"?1:dc,dw=(W-gap*(n+1))/n;for(let i=0;i<n;i++){const x=gap+i*(dw+gap);if(r===\"X\"){const blank=dw*.45;g.add(box(blank,rh-gap*2,18,door,x,y+gap,zf)),slab(x+blank+gap,y+gap,dw-blank-gap,rh-gap*2,\"door\",!0),vh(x+blank+gap+20,y+rh/2-80)}else slab(x,y+gap,dw,rh-gap*2,\"door\",n===2?i===1:!0),vh(n===2&&i===0?x+dw-30:x+20,y+rh-gap-Math.min(60,rh*.15)-160)}}else if(r===\"d\"||r===\"P\")slab(gap,y+gap,W-gap*2,rh-gap*2,\"drawer\"),hh(W/2-Math.min(80,W*.2),y+rh/2-5,W);else if(r===\"S\"){const n=dc,dw=(W-gap*(n+1))/n;for(let i=0;i<n;i++){const x=gap+i*(dw+gap);slab(x,y+gap,dw,rh-100-gap,\"door\",n===2?i===1:!0),vh(n===2&&i===0?x+dw-30:x+20,y+rh-100-200)}g.add(box(W*.6,10,400,steel,W*.2,y0+H+42,80)),g.add(box(W*.5,60,320,mat(\"#DADDE0\",!1),W*.25,y0+H+42-60,120)),g.add(box(14,220,14,steel,W/2-7,y0+H+42,30))}else if(r===\"A\")g.add(box(W-gap*2,rh-gap*2,20,dark,gap,y+gap,zf)),g.add(box(W*.72,rh*.45,8,glass,W*.14,y+rh*.25,zf+18)),g.add(box(W*.72,12,8,steel,W*.14,y+rh*.78,zf+18));else if(r===\"W\"){const rws=Math.max(2,Math.round(H/250));for(let i=0;i<=rws;i++)g.add(box(W-gap*2,16,D-40,carc,gap,y+gap+i*(rh-gap*2)/rws-8,10));for(let j=0;j<=2;j++)g.add(box(16,rh-gap*2,D-40,carc,gap+j*(W-gap*2)/2-8,y+gap,10))}else r===\"T\"&&slab(gap,y+gap,W-gap*2,rh-gap*2,\"door\",!0)}),g.userData.handles=handles,g}function gap3D(it){const g=new THREE.Group,steel=mat(\"#C3C7CC\",!0),white=mat(\"#F7F7F5\",!1),black=mat(\"#1C1E22\",!1);return it.k===\"dw\"||it.k===\"wm\"?(g.add(box(it.w,820,560,steel,0,0,0)),g.add(box(it.w-40,40,20,mat(\"#8A8E94\",!1),20,760,560)),it.k===\"wm\"&&g.add(box(380,380,20,black,110,220,560))):it.k===\"fr\"?(g.add(box(it.w,1800,650,white,0,0,0)),g.add(box(it.w-20,4,20,mat(\"#D5D8DC\",!1),10,1050,650))):(g.add(box(it.w,900,600,black,0,0,0)),g.add(box(it.w-40,20,560,mat(\"#2B2E33\",!1),20,890,20)),[[.25,.3],[.75,.3],[.25,.7],[.75,.7]].forEach(([a,b])=>g.add(box(180,6,180,mat(\"#44474D\",!1),it.w*a-90,910,560*b-90)))),g}function kitStartK(K,wi,row){return K.shape===\"straight\"||K.shape===\"galley\"||wi===0?0:row===\"wall\"?WALL_D:BASE_D}function kitAvailK(K,w,row){const wi=K.walls.indexOf(w),run=w.len-kitStartK(K,wi,row===\"wall\"?\"wall\":\"base\");return row===\"tall\"?run-Math.max(used(w.base),used(w.wall)):run-used(w.tall)}function kitchenGroup(K,st,opts={}){const G=new THREE.Group,{A,depth}=roomDimsFor(K),wallM=wallMat(),wtM=worktopMat(K),plinthM=mat(st.hex,st.finish===\"Gloss\"),floor=box(A+1200,20,depth+1200,floorMat(),-600,-20,-600,!1);floor.receiveShadow=!0,G.add(floor),G.add(box(A+200,ROOM_H,100,wallM,-100,0,-100,!1)),(K.shape===\"L\"||K.shape===\"U\")&&G.add(box(100,ROOM_H,depth+100,wallM,-100,0,-100,!1)),K.shape===\"U\"&&G.add(box(100,ROOM_H,depth+100,wallM,A,0,-100,!1)),K.shape===\"galley\"&&G.add(box(A+200,ROOM_H,100,wallM,-100,0,depth,!1));const pickables=[],famBoxes={base:[],wall:[],tall:[],appliance:[],worktops:[],trims:[],handles:[]},tag=(o,famId,pick)=>{o.userData.fam=famId,pick&&(o.userData.pick=pick),pickables.push(o),famBoxes[famId]&&famBoxes[famId].push(o)};if(K.walls.forEach((w,wi)=>{let x=0;w.base.forEach((it,i)=>{const o=it.gap?gap3D(it):unit3D(byId(it.pid),it.v,st,{flip:it.flip});if(o.userData.w=it.w,placeOnWallK(K,o,wi,x,!1),G.add(o),it.gap)o.userData.pick={row:\"base\",i,wi},pickables.push(o);else{const p=byId(it.pid);tag(o,p.family===\"appliance\"?\"appliance\":\"base\",{row:\"base\",i,wi}),(o.userData.handles||[]).forEach(h=>famBoxes.handles.push(h))}x+=it.w});const baseUsed=x,avail=kitAvailK(K,w,\"base\");if(baseUsed>0){let sx=0;const segs=[];let cur=null;w.base.forEach(it=>{it.gap&&(it.k===\"door\"||it.k===\"space\")?cur=null:cur?cur.b=sx+it.w:(cur={a:sx,b:sx+it.w},segs.push(cur)),sx+=it.w}),segs.forEach(sg=>{const L=sg.b-sg.a,g=new THREE.Group;g.add(wtBox(L,600,wtM,0,870,0)),g.userData.w=L,placeOnWallK(K,g,wi,sg.a,!1),G.add(g),tag(g,\"worktops\");const pl=new THREE.Group;pl.add(box(L,150,20,plinthM,0,0,50)),pl.userData.w=L,placeOnWallK(K,pl,wi,sg.a,!1),G.add(pl),tag(pl,\"trims\")})}const isClear=it=>it&&it.gap&&(it.k===\"door\"||it.k===\"space\"),w0=K.walls[0].base,cornerClear=isClear(wi===1?w0[0]:w0[w0.length-1]);if(wi>0&&wi<3&&K.shape!==\"galley\"&&baseUsed>0&&!cornerClear&&!isClear(w.base[0])){const c=new THREE.Group;c.add(box(BASE_D,720,BASE_D,mat(\"#F4F4F1\",!1),0,150,0)),c.add(wtBox(600,600,wtM,0,870,0)),c.position.set(wi===1?0:A-BASE_D,0,0),G.add(c)}let xt=avail;if(w.tall.forEach((it,i)=>{const o=unit3D(byId(it.pid),it.v,st,{flip:it.flip});o.userData.w=it.w,placeOnWallK(K,o,wi,xt,!1),G.add(o);const p=byId(it.pid);tag(o,p.family===\"appliance\"?\"appliance\":\"tall\",{row:\"tall\",i,wi}),(o.userData.handles||[]).forEach(h=>famBoxes.handles.push(h)),xt+=it.w}),w.tall.length){const tw=used(w.tall),pl=new THREE.Group;pl.add(box(tw,150,20,plinthM,0,0,50)),pl.userData.w=tw,placeOnWallK(K,pl,wi,avail,!1),G.add(pl),tag(pl,\"trims\")}let xw=0;const wsegs=[];let wcur=null;if(w.wall.forEach((it,i)=>{if(it.gap){wcur=null;const o2=new THREE.Group;o2.userData.w=it.w,o2.userData.pick={row:\"wall\",i,wi},placeOnWallK(K,o2,wi,xw,!0),G.add(o2),xw+=it.w;return}const o=unit3D(byId(it.pid),it.v,st,{flip:it.flip});o.userData.w=it.w,placeOnWallK(K,o,wi,xw,!0),o.position.y=WALL_BOTTOM,G.add(o),tag(o,\"wall\",{row:\"wall\",i,wi}),(o.userData.handles||[]).forEach(h=>famBoxes.handles.push(h)),wcur?wcur.b=xw+it.w:(wcur={a:xw,b:xw+it.w},wsegs.push(wcur)),xw+=it.w}),wsegs.forEach(sg=>{const L=sg.b-sg.a,c=new THREE.Group;c.add(box(L,40,330,plinthM,0,WALL_BOTTOM+720,0)),c.userData.w=L,placeOnWallK(K,c,wi,sg.a,!0),G.add(c),tag(c,\"trims\")}),opts.markers&&wi===K.sel){const row=K.row===\"gaps\"?\"base\":K.row,free=kitFree(w,row);if(free>0){const hgt=row===\"wall\"?720:row===\"tall\"?1970:870,dep=row===\"wall\"?WALL_D:BASE_D,m=new THREE.Mesh(new THREE.BoxGeometry(free,hgt,dep),new THREE.MeshBasicMaterial({color:48106,transparent:!0,opacity:.14})),g=new THREE.Group;m.position.set(free/2,hgt/2,dep/2),g.add(m),g.userData.w=free,placeOnWallK(K,g,wi,row===\"wall\"?xw:row===\"tall\"?xt:x,row===\"wall\"),row===\"wall\"&&(g.position.y=WALL_BOTTOM),G.add(g)}}}),opts.markers&&K.pick){const o=pickables.find(o2=>o2.userData.pick&&o2.userData.pick.wi===K.sel&&o2.userData.pick.row===K.pick.row&&o2.userData.pick.i===K.pick.i);o&&G.add(glow(o))}return G.userData.pickables=pickables,G.userData.famBoxes=famBoxes,G}function glow(o,pad=40,op=.22){const g=new THREE.Group,b=new THREE.Box3().setFromObject(o),sz=b.getSize(new THREE.Vector3),c=b.getCenter(new THREE.Vector3),h=new THREE.Mesh(new THREE.BoxGeometry(sz.x+pad,sz.y+pad,sz.z+pad),new THREE.MeshBasicMaterial({color:48106,transparent:!0,opacity:op,depthWrite:!1}));h.position.copy(c),g.add(h);const e=new THREE.LineSegments(new THREE.EdgesGeometry(new THREE.BoxGeometry(sz.x+pad,sz.y+pad,sz.z+pad)),new THREE.LineBasicMaterial({color:48106}));return e.position.copy(c),g.add(e),g}function build3D(){const t=ensure3D(document.getElementById(\"k3d\"));if(!t)return;const K=kit(),st=style();for(;t.group.children.length;)t.group.remove(t.group.children[0]);const g=kitchenGroup(K,st,{markers:!0});t.group.add(g),t.pickables=g.userData.pickables,t.labels=[],t.auto=!1,t.onClick=pick3D,t.onHover=null;const{A,depth}=roomDimsFor(K);t.target.set(A/2,900,depth/2),t.inited||(t.inited=!0,view3D(K.view||\"3d\",!0)),t.dirty=!0}function pick3D(e){const t=T3;if(!t||!t.pickables)return;const r=t.renderer.domElement.getBoundingClientRect(),m=new THREE.Vector2((e.clientX-r.left)/r.width*2-1,-((e.clientY-r.top)/r.height)*2+1),rc=new THREE.Raycaster;rc.setFromCamera(m,t.camera);const hits=rc.intersectObjects(t.pickables,!0);if(!hits.length){kit().pick=null,renderBuilder();return}let o=hits[0].object;for(;o&&!(o.userData&&o.userData.pick);)o=o.parent;if(!o)return;const K=kit();K.sel=o.userData.pick.wi,K.pick={row:o.userData.pick.row,i:o.userData.pick.i},K.row=o.userData.pick.row,renderBuilder()}function showcaseKit(){const K={shape:\"L\",walls:[{name:\"Wall A\",len:3600,base:[],tall:[],wall:[]},{name:\"Wall B\",len:2400,base:[],tall:[],wall:[]}],sel:0,row:\"base\",pick:null,extras:{}},it=(pid,w)=>{const p=byId(pid);return{pid,w,v:defaultVariant(p,w)}},gapI=k=>{const g=GAPS.find(x=>x[0]===k);return{gap:!0,k,w:g[2],label:g[1]}};return K.walls[0].base=[it(\"highline-base-unit\",600),it(\"pan-drawer-base\",800),it(\"sink-base-unit\",1e3),gapI(\"dw\"),it(\"highline-base-unit\",600)],K.walls[0].wall=[it(\"wall-unit\",600),it(\"top-box\",800),it(\"wall-unit\",1e3),it(\"wall-unit\",600),it(\"wall-unit\",600)],K.walls[1].tall=[it(\"single-oven-housing\",600),it(\"fridge-freezer-housing\",600)],K.walls[1].base=[it(\"highline-corner-base\",900)],K.walls[1].wall=[it(\"corner-wall-unit\",600)],K}function showcasePrice(){const K=showcaseKit();let n=0,p=0;return K.walls.forEach(w=>[\"base\",\"tall\",\"wall\"].forEach(r=>w[r].forEach(it=>{it.gap||(n++,p+=it.v.price)}))),{n,p}}const SNAP={};function styleSnapshot(st,w=1200,h=750){if(SNAP[st.id])return SNAP[st.id];if(typeof THREE>\"u\")return null;if(!SNAP._r){const r=new THREE.WebGLRenderer({antialias:!0,preserveDrawingBuffer:!0});r.setPixelRatio(1),setupRenderer(r),r.setSize(w,h,!1),SNAP._r=r,SNAP._s=makeScene(),applyEnv(r,SNAP._s),SNAP._c=new THREE.PerspectiveCamera(38,w/h,50,6e4)}const K=showcaseKit(),g=kitchenGroup(K,st,{}),s=SNAP._s;s.add(g);const{A,depth}=roomDimsFor(K),cam={th:.78,ph:1.18,r:Math.max(A,depth)*1.3},tg=new THREE.Vector3(A/2,950,depth/2-150),c=SNAP._c;c.position.set(tg.x+cam.r*Math.sin(cam.ph)*Math.sin(cam.th),tg.y+cam.r*Math.cos(cam.ph),tg.z+cam.r*Math.sin(cam.ph)*Math.cos(cam.th)),c.lookAt(tg),SNAP._r.render(s,c);const url=SNAP._r.domElement.toDataURL(\"image/jpeg\",.86);return s.remove(g),SNAP[st.id]=url,url}const MODE_ART={components:'<svg viewBox=\"0 0 400 118\" preserveAspectRatio=\"xMidYMax slice\"><rect x=\"60\" y=\"30\" width=\"80\" height=\"80\" rx=\"3\" fill=\"#CBC1B4\"/><rect x=\"150\" y=\"30\" width=\"80\" height=\"80\" rx=\"3\" fill=\"#CBC1B4\"/><rect x=\"150\" y=\"30\" width=\"80\" height=\"22\" rx=\"3\" fill=\"#BFB5A8\"/><rect x=\"240\" y=\"30\" width=\"110\" height=\"80\" rx=\"3\" fill=\"#CBC1B4\"/><rect x=\"60\" y=\"22\" width=\"290\" height=\"8\" rx=\"2\" fill=\"#8B7355\"/><rect x=\"72\" y=\"46\" width=\"4\" height=\"30\" rx=\"2\" fill=\"#6E6760\"/><rect x=\"162\" y=\"46\" width=\"4\" height=\"30\" rx=\"2\" fill=\"#6E6760\"/><rect x=\"252\" y=\"46\" width=\"4\" height=\"30\" rx=\"2\" fill=\"#6E6760\"/><rect x=\"150\" y=\"10\" width=\"80\" height=\"12\" rx=\"6\" fill=\"#00BBEA\"/><text x=\"190\" y=\"19\" text-anchor=\"middle\" font-size=\"9\" font-weight=\"800\" fill=\"#fff\" font-family=\"Urbanist,sans-serif\">ONE UNIT</text></svg>',kitchen:'<svg viewBox=\"0 0 400 118\" preserveAspectRatio=\"xMidYMax slice\"><polygon points=\"40,40 180,10 360,40 360,118 40,118\" fill=\"#E9EEF2\"/><polygon points=\"40,40 180,10 180,118 40,118\" fill=\"#DCE4EA\"/><rect x=\"200\" y=\"56\" width=\"150\" height=\"56\" fill=\"#CBC1B4\"/><rect x=\"200\" y=\"50\" width=\"150\" height=\"6\" fill=\"#8B7355\"/><rect x=\"200\" y=\"14\" width=\"150\" height=\"30\" fill=\"#CBC1B4\"/><polygon points=\"60,60 170,52 170,118 60,118\" fill=\"#BFB5A8\"/><polygon points=\"60,54 170,46 170,52 60,60\" fill=\"#8B7355\"/><rect x=\"330\" y=\"20\" width=\"22\" height=\"92\" fill=\"#B9AFA2\"/><rect x=\"236\" y=\"68\" width=\"3\" height=\"22\" fill=\"#6E6760\"/><rect x=\"290\" y=\"68\" width=\"3\" height=\"22\" fill=\"#6E6760\"/><text x=\"112\" y=\"36\" text-anchor=\"middle\" font-size=\"9\" font-weight=\"800\" fill=\"#00BBEA\" font-family=\"Urbanist,sans-serif\">3D \\xB7 PRICED LIVE</text></svg>',parts:'<svg viewBox=\"0 0 400 118\" preserveAspectRatio=\"xMidYMax slice\"><rect x=\"50\" y=\"40\" width=\"300\" height=\"14\" rx=\"3\" fill=\"#C08A4B\"/><rect x=\"50\" y=\"54\" width=\"300\" height=\"6\" fill=\"#A87A40\"/><rect x=\"80\" y=\"80\" width=\"120\" height=\"8\" rx=\"4\" fill=\"#9A9DA3\"/><rect x=\"92\" y=\"88\" width=\"6\" height=\"12\" fill=\"#6E7278\"/><rect x=\"182\" y=\"88\" width=\"6\" height=\"12\" fill=\"#6E7278\"/><rect x=\"240\" y=\"74\" width=\"110\" height=\"26\" rx=\"2\" fill=\"#CBC1B4\"/><circle cx=\"330\" cy=\"30\" r=\"10\" fill=\"#55595F\"/></svg>'},STYLE_BULLETS={Gloss:[\"High-gloss slab edged door, 18mm MDF\",\"Wipe-clean, reflects light in smaller rooms\",\"Soft-close hinges, white carcass\"],Matt:[\"Matt slab edged door, 18mm MDF\",\"Hides fingerprints, calm modern look\",\"Soft-close hinges, white carcass\"]},FAM_PIN={base:{label:\"Base units\",pos:[850,520,620]},wall:{label:\"Wall units\",pos:[1300,2100,330]},tall:{label:\"Tall units\",pos:[640,2050,1e3]},appliance:{label:\"Appliance housings\",pos:[640,1500,1600]},worktops:{label:\"Worktops\",pos:[2300,960,620]},trims:{label:\"Plinth, cornice & panels\",pos:[3100,130,620]},handles:{label:\"Handles\",pos:[2850,1750,330]}};function vPlace(){const V=document.getElementById(\"view\"),st=style();V.appendChild(el('<div class=\"crumbs\"><button data-go=\"style\">Kitchen style</button><span>\\u203A</span><span>Where it goes</span></div>')),V.appendChild(el(`<div class=\"ttl\"><div><div class=\"eyebrow\">Step 1 of 2 \\xB7 Components</div><h1>Where is it <em>going?</em></h1><p>Tap the part of the kitchen you're buying for. No menus, no filters. Buying several things? Each one you add keeps you in the flow.</p></div><div class=\"bact\"><button class=\"hbtn ghost\" id=\"pstyle\">Change colour</button></div></div>`)),V.querySelector(\"#pstyle\").onclick=openPop;const stage=el('<div class=\"place3d\" id=\"place3d\"><div class=\"plabels\" id=\"plabels\"></div><div class=\"phint\">Drag to look around \\xB7 tap any part of the kitchen</div></div>');V.appendChild(stage);const row=el('<div class=\"famrow v2\"></div>');DATA.families.forEach(f=>{const b=el(`<button class=\"fam\" data-fam=\"${f.id}\"><span class=\"fic\">${famThumb(f.id,st)}</span><b>${f.name}</b><span>${f.blurb}</span><span class=\"ct\">${famCount(f.id)} ${f.id===\"handles\"||f.id===\"worktops\"?\"options\":\"unit types\"} \\u2192</span></button>`);b.onclick=()=>go(\"units\",{family:f.id}),b.onmouseenter=()=>hotFam2(f.id),b.onmouseleave=()=>hotFam2(null),row.appendChild(b)}),V.appendChild(row);const kb=el('<div class=\"kbanner\"><div><b>Doing the whole kitchen?</b><span>Build it in 3D, wall by wall, and add everything in one go.</span></div><button>Open the Kitchen Builder</button></div>');kb.querySelector(\"button\").onclick=()=>go(\"builder\"),V.appendChild(kb);const t=ensure3D(stage);if(!t){stage.innerHTML=elevationSVG(st),stage.querySelectorAll(\".zone\").forEach(z=>z.onclick=()=>go(\"units\",{family:z.dataset.fam}));return}for(;t.group.children.length;)t.group.remove(t.group.children[0]);const K=showcaseKit(),g=kitchenGroup(K,st,{});t.group.add(g),t.pickables=g.userData.pickables,t.fam=g.userData.famBoxes,t.hl=null,t.auto=!0,camTo(t,\"hero\",K,0,!0);const lab=stage.querySelector(\"#plabels\");t.labels=[],Object.entries(FAM_PIN).forEach(([fid,d])=>{const e=el(`<button class=\"pin\" data-fam=\"${fid}\"><b>${d.label}</b><small>${famCount(fid)} ${fid===\"handles\"||fid===\"worktops\"?\"options\":\"types\"}</small></button>`);e.onclick=()=>go(\"units\",{family:fid}),e.onmouseenter=()=>hotFam2(fid),e.onmouseleave=()=>hotFam2(null),lab.appendChild(e),t.labels.push({el:e,pos:new THREE.Vector3(...d.pos)})});const famOf=o=>{let x=o;for(;x&&!(x.userData&&x.userData.fam);)x=x.parent;return x?x.userData.fam:null},ray=e=>{const r=t.renderer.domElement.getBoundingClientRect(),m=new THREE.Vector2((e.clientX-r.left)/r.width*2-1,-((e.clientY-r.top)/r.height)*2+1),rc=new THREE.Raycaster;rc.setFromCamera(m,t.camera);const hits=rc.intersectObjects(t.pickables,!0);if(!hits.length)return null;const h=hits[0].object;return t.fam.handles.includes(h)?\"handles\":famOf(h)};t.onHover=e=>{const f=e?ray(e):null;hotFam2(f),t.renderer.domElement.style.cursor=f?\"pointer\":\"grab\"},t.onClick=e=>{const f=ray(e);f&&go(\"units\",{family:f})};function hotFam2(fid){if(t.hl&&(t.group.remove(t.hl),t.hl=null),document.querySelectorAll(\".fam,.pin\").forEach(x=>x.classList.toggle(\"hot\",x.dataset.fam===fid)),fid&&t.fam[fid]){const hg=new THREE.Group;t.fam[fid].forEach(o=>hg.add(glow(o,30,.18))),t.group.add(hg),t.hl=hg}t.dirty=!0}V._hotFam=hotFam2}function hotFam(f){const V=document.getElementById(\"view\");V&&V._hotFam&&V._hotFam(f)}function famIcon(id){const s='fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"';return{base:`<svg viewBox=\"0 0 24 24\" ${s}><rect x=\"3\" y=\"9\" width=\"18\" height=\"11\" rx=\"1\"/><path d=\"M3 9h18M12 9v11\"/></svg>`,wall:`<svg viewBox=\"0 0 24 24\" ${s}><rect x=\"4\" y=\"3\" width=\"16\" height=\"12\" rx=\"1\"/><path d=\"M12 3v12\"/></svg>`,tall:`<svg viewBox=\"0 0 24 24\" ${s}><rect x=\"7\" y=\"2\" width=\"10\" height=\"20\" rx=\"1\"/><path d=\"M7 11h10\"/></svg>`,appliance:`<svg viewBox=\"0 0 24 24\" ${s}><rect x=\"6\" y=\"2\" width=\"12\" height=\"20\" rx=\"1\"/><rect x=\"8\" y=\"8\" width=\"8\" height=\"6\"/></svg>`,trims:`<svg viewBox=\"0 0 24 24\" ${s}><path d=\"M3 18h18M3 6h18\"/></svg>`,worktops:`<svg viewBox=\"0 0 24 24\" ${s}><path d=\"M2 10h20v4H2z\"/></svg>`,handles:`<svg viewBox=\"0 0 24 24\" ${s}><path d=\"M5 12h14M8 12v4M16 12v4\"/></svg>`}[id]||\"\"}const TEX={};function cnv(w,h){const c=document.createElement(\"canvas\");return c.width=w,c.height=h,c}function noiseFill(g,w,h,base,amp,n=4e3){for(let i=0;i<n;i++){const x=Math.random()*w,y=Math.random()*h,r=Math.random()*3+1,v=(Math.random()-.5)*amp;g.fillStyle=`rgba(${v>0?255:0},${v>0?255:0},${v>0?255:0},${Math.abs(v)})`,g.beginPath(),g.arc(x,y,r,0,7),g.fill()}}function texWood(hex1,hex2,planks){const c=cnv(512,512),g=c.getContext(\"2d\");g.fillStyle=hex1,g.fillRect(0,0,512,512);const ph=planks?512/planks:512;for(let p=0;p<(planks||1);p++){const y0=p*ph,off=Math.random()*200;for(let i=0;i<60;i++){const y=y0+Math.random()*ph;g.strokeStyle=hex2,g.globalAlpha=.08+Math.random()*.14,g.lineWidth=.6+Math.random()*1.6,g.beginPath();for(let x=0;x<=512;x+=16)g.lineTo(x,y+Math.sin((x+off)/60+i)*2.2+Math.sin((x+off)/17)*.8);g.stroke()}if(planks){g.globalAlpha=.35,g.strokeStyle=\"#5a4631\",g.lineWidth=1.5,g.beginPath(),g.moveTo(0,y0+.75),g.lineTo(512,y0+.75),g.stroke();const jx=p*173%512;g.beginPath(),g.moveTo(jx,y0),g.lineTo(jx,y0+ph),g.stroke()}}return g.globalAlpha=1,noiseFill(g,512,512,hex1,.06,2500),c}function texMarble(base,vein){const c=cnv(512,512),g=c.getContext(\"2d\");g.fillStyle=base,g.fillRect(0,0,512,512);for(let i=0;i<14;i++){g.strokeStyle=vein,g.globalAlpha=.05+Math.random()*.18,g.lineWidth=.8+Math.random()*2.5,g.beginPath();let x=Math.random()*512,y=Math.random()*512;g.moveTo(x,y);for(let k=0;k<40;k++)x+=(Math.random()-.5)*60,y+=(Math.random()-.3)*40,g.lineTo(x,y);g.stroke()}return g.globalAlpha=1,noiseFill(g,512,512,base,.05,3e3),c}function texSpeckle(base,specks,amp){const c=cnv(512,512),g=c.getContext(\"2d\");return g.fillStyle=base,g.fillRect(0,0,512,512),specks.forEach(([col,n,r])=>{g.fillStyle=col;for(let i=0;i<n;i++)g.globalAlpha=.3+Math.random()*.6,g.beginPath(),g.arc(Math.random()*512,Math.random()*512,Math.random()*r+.5,0,7),g.fill()}),g.globalAlpha=1,noiseFill(g,512,512,base,amp,3e3),c}function texFlat(base,amp){const c=cnv(256,256),g=c.getContext(\"2d\");return g.fillStyle=base,g.fillRect(0,0,256,256),noiseFill(g,256,256,base,amp,1500),c}function texTile(base,grout,n){const c=cnv(512,512),g=c.getContext(\"2d\");g.fillStyle=grout,g.fillRect(0,0,512,512);const s=512/n;for(let i=0;i<n;i++)for(let j=0;j<n;j++)g.fillStyle=base,g.globalAlpha=.92+Math.random()*.08,g.fillRect(i*s+2,j*s+2,s-4,s-4);return g.globalAlpha=1,noiseFill(g,512,512,base,.05,2e3),c}function mkTex(key,builder,rep,aniso=8){if(TEX[key])return TEX[key];const t=new THREE.CanvasTexture(builder());return t.wrapS=t.wrapT=THREE.RepeatWrapping,t.repeat.set(rep[0],rep[1]),t.anisotropy=aniso,t.colorSpace=THREE.SRGBColorSpace,TEX[key]=t,t}const WORKTOPS={oakblock:{tex:()=>texWood(\"#C8955A\",\"#8B5E2E\",0),rep:[1/1200,1/600],rough:.55,color:\"#D9A86B\"},whitemarble:{tex:()=>texMarble(\"#F3F2EE\",\"#9EA3A8\"),rep:[1/1500,1/600],rough:.22,color:\"#F6F5F2\"},concrete:{tex:()=>texSpeckle(\"#9DA3A6\",[[\"#7E8588\",900,1.4],[\"#B8BDBF\",600,1.2]],.08),rep:[1/1200,1/600],rough:.7,color:\"#A4A9AC\"},blackgranite:{tex:()=>texSpeckle(\"#1F2224\",[[\"#4B4F53\",2200,1.2],[\"#8C9094\",500,.9],[\"#0A0B0C\",900,1.1]],.06),rep:[1/900,1/600],rough:.18,color:\"#2A2D30\"},slate:{tex:()=>texSpeckle(\"#3C4247\",[[\"#2A2F33\",1200,1.6],[\"#565D63\",700,1.2]],.07),rep:[1/1100,1/600],rough:.6,color:\"#444A4F\"},lightgrey:{tex:()=>texFlat(\"#CFD3D6\",.05),rep:[1/1e3,1/600],rough:.45,color:\"#D4D8DB\"}};function worktopMat(K){const id=K&&K.choices&&K.choices.worktop||\"oakblock\",key=\"wt:\"+id;if(MAT[key])return MAT[key];const W=WORKTOPS[id]||WORKTOPS.oakblock,m=new THREE.MeshPhysicalMaterial({color:new THREE.Color(\"#ffffff\"),map:mkTex(\"wt:\"+id,W.tex,[1,1]),roughness:W.rough,metalness:0,clearcoat:W.rough<.3?.6:0,clearcoatRoughness:.2,envMapIntensity:.9});return MAT[key]=m,m}function wtBox(L,D,m,x,y,z){const geo=new THREE.BoxGeometry(L,40,D),uv=geo.attributes.uv,pos=geo.attributes.position;for(let i=0;i<uv.count;i++)uv.setXY(i,(pos.getX(i)+L/2)/1200,(pos.getZ(i)+D/2)/600);const mesh=new THREE.Mesh(geo,m);return mesh.position.set(x+L/2,y+20,z+D/2),mesh.castShadow=!0,mesh.receiveShadow=!0,mesh}const METALS={\"#B9BDC2\":1,\"#C3C7CC\":1,\"#C9CDD2\":1,\"#55595F\":1,\"#8E9298\":1,\"#9A9DA3\":.6,\"#DADDE0\":.8,\"#5C656E\":1,\"#0D0F12\":0};function mat(hex,gloss){const k=hex+(gloss?\"g\":\"m\");if(MAT[k])return MAT[k];const metal=METALS[hex]||0,m=new THREE.MeshPhysicalMaterial({color:new THREE.Color(hex),roughness:metal?.28:gloss?.1:.55,metalness:metal,clearcoat:gloss&&!metal?1:0,clearcoatRoughness:.06,envMapIntensity:gloss?1.1:.8});return hex===\"#0D0F12\"&&(m.roughness=.05,m.metalness=.2,m.clearcoat=1),MAT[k]=m,m}function floorMat(){if(MAT.floor)return MAT.floor;const t=mkTex(\"floor\",()=>texWood(\"#D8C3A5\",\"#A98B66\",6),[1,1]);return t.repeat.set(1/1800,1/1800),MAT.floor=new THREE.MeshStandardMaterial({map:t,roughness:.62,metalness:0,envMapIntensity:.5}),MAT.floor}function wallMat(){return MAT.wall||(MAT.wall=new THREE.MeshStandardMaterial({color:new THREE.Color(\"#E4E8EB\"),roughness:.95,metalness:0,envMapIntensity:.35})),MAT.wall}function doorSlab(g,w,h,m,x,yy,zf,hingeRight){const geo=new THREE.BoxGeometry(w,h,18),mesh=new THREE.Mesh(geo,m);mesh.castShadow=!0,mesh.receiveShadow=!0;const piv=new THREE.Group,hx=hingeRight?x+w:x;return piv.position.set(hx,yy+h/2,zf),mesh.position.set(hingeRight?-w/2:w/2,0,9),piv.add(mesh),designDetail(piv,mesh,w,h,m),S.open3d&&(piv.rotation.y=hingeRight?Math.PI*.42:-Math.PI*.42),piv.userData.door=!0,g.add(piv),piv}function drawerSlab(g,w,h,m,x,yy,zf){const mesh=new THREE.Mesh(new THREE.BoxGeometry(w,h,18),m);mesh.castShadow=!0,mesh.receiveShadow=!0;const grp=new THREE.Group;if(grp.position.set(x+w/2,yy+h/2,zf+9),grp.add(mesh),designDetail(grp,mesh,w,h,m),S.open3d){grp.position.z+=Math.min(380,h*2.2);const body=new THREE.Mesh(new THREE.BoxGeometry(w-30,Math.max(60,h-40),Math.min(380,h*2.2)),mat(\"#F4F4F1\",!1));body.position.set(0,-h/2+Math.max(60,h-40)/2,-Math.min(380,h*2.2)/2-9),grp.add(body)}return g.add(grp),grp}function makeScene(){const scene=new THREE.Scene;scene.background=new THREE.Color(15660022),scene.add(new THREE.HemisphereLight(16777215,13226971,.55));const sun=new THREE.DirectionalLight(16774890,2.4);sun.position.set(2800,5200,3600),sun.castShadow=!0,sun.shadow.mapSize.set(2048,2048);const sc=sun.shadow.camera;sc.left=-7e3,sc.right=7e3,sc.top=7e3,sc.bottom=-7e3,sc.near=100,sc.far=2e4,sun.shadow.bias=-6e-4,sun.shadow.normalBias=8,sun.shadow.radius=4,scene.add(sun);const fill=new THREE.DirectionalLight(14478335,.7);return fill.position.set(-3500,2600,-2500),scene.add(fill),scene}function setupRenderer(r){return r.outputColorSpace=THREE.SRGBColorSpace,r.toneMapping=THREE.ACESFilmicToneMapping,r.toneMappingExposure=1.05,r.shadowMap.enabled=!0,r.shadowMap.type=THREE.PCFSoftShadowMap,r}function applyEnv(r,scene){if(!r._env){const pm=new THREE.PMREMGenerator(r);r._env=pm.fromScene(new KB3D.RoomEnvironment(r),.04).texture,pm.dispose()}scene.environment=r._env}function ensure3D(host){if(!host||typeof THREE>\"u\")return null;if(T3&&T3.host===host&&document.body.contains(host))return T3;T3&&(T3.ro.disconnect(),T3.controls.dispose(),T3.renderer.dispose(),T3.renderer.domElement.remove());let renderer;try{renderer=new THREE.WebGLRenderer({antialias:!0,alpha:!0,powerPreference:\"high-performance\"})}catch{return null}renderer.setPixelRatio(Math.min(2,devicePixelRatio)),setupRenderer(renderer),host.insertBefore(renderer.domElement,host.firstChild);const scene=makeScene();applyEnv(renderer,scene);const camera=new THREE.PerspectiveCamera(42,1,50,6e4),ortho=new THREE.OrthographicCamera(-1,1,1,-1,10,6e4),group=new THREE.Group;scene.add(group);const target=new THREE.Vector3,cam={th:.75,ph:1.05,r:7e3},controls=new KB3D.OrbitControls(camera,renderer.domElement);controls.enableDamping=!0,controls.dampingFactor=.08,controls.minDistance=900,controls.maxDistance=18e3,controls.maxPolarAngle=Math.PI/2-.02,controls.autoRotateSpeed=.5,controls.target=target;const upd=()=>{camera.position.set(target.x+cam.r*Math.sin(cam.ph)*Math.sin(cam.th),target.y+cam.r*Math.cos(cam.ph),target.z+cam.r*Math.sin(cam.ph)*Math.cos(cam.th)),camera.lookAt(target)},sync=()=>{const o=camera.position.clone().sub(target),r=o.length();r<1||(cam.r=r,cam.ph=Math.acos(Math.max(-1,Math.min(1,o.y/r))),cam.th=Math.atan2(o.x,o.z))},dom=renderer.domElement;let down=null;dom.addEventListener(\"pointerdown\",e=>{down={x:e.clientX,y:e.clientY,moved:!1,t:performance.now()},T3.auto=!1,controls.autoRotate=!1,T3.onDown&&T3.onDown(e)}),dom.addEventListener(\"pointermove\",e=>{down?(Math.abs(e.clientX-down.x)+Math.abs(e.clientY-down.y)>5&&(down.moved=!0),T3.onDrag&&T3.onDrag(e,down)):T3.onHover&&T3.onHover(e)});const endDown=e=>{const d=down;down=null,T3.onUp&&T3.onUp(e,d),d&&!d.moved&&T3.onClick&&T3.onClick(e)};dom.addEventListener(\"pointerup\",endDown),dom.addEventListener(\"pointercancel\",()=>{down=null}),dom.addEventListener(\"pointerleave\",e=>{T3.onHover&&T3.onHover(null)});const size=()=>{const w=host.clientWidth,h=host.clientHeight;if(!w||!h)return;renderer.setSize(w,h,!1),camera.aspect=w/h,camera.updateProjectionMatrix();const a=w/h,s=T3&&T3.orthoSpan||4e3;ortho.left=-s*a/2,ortho.right=s*a/2,ortho.top=s/2,ortho.bottom=-s/2,ortho.updateProjectionMatrix(),T3.dirty=!0},ro=new ResizeObserver(size);return ro.observe(host),T3={host,renderer,scene,camera,persp:camera,ortho,group,target,cam,upd,sync,controls,ro,dirty:!0,size,anim:null,auto:!1,labels:[],onClick:null,onHover:null,onDown:null,onDrag:null,onUp:null,mode:\"3d\",walk:null,orthoSpan:4e3},size(),requestAnimationFrame(size),(function loop(){if(!document.body.contains(dom))return;const t=T3;if(!(!t||t.renderer!==renderer)){if(t.anim){const a=t.anim,k0=Math.min(1,(performance.now()-a.t0)/a.dur),k=1-Math.pow(1-k0,3);cam.th=a.from.th+(a.to.th-a.from.th)*k,cam.ph=a.from.ph+(a.to.ph-a.from.ph)*k,cam.r=a.from.r+(a.to.r-a.from.r)*k,target.lerpVectors(a.fromT,a.toT,k),upd(),t.dirty=!0,k0>=1&&(t.anim=null)}else t.mode===\"walk\"&&t.walk?(walkStep(t),t.dirty=!0):(controls.autoRotate=t.auto,controls.update()&&(t.dirty=!0),sync(),t.auto&&(t.dirty=!0));(t.dirty||t.mode===\"walk\")&&(renderer.render(scene,t.camera),t.dirty=!1,placeLabels()),requestAnimationFrame(loop)}})(),T3}function walkStep(t){const w=t.walk,sp2=38,k=w.keys;let f=0,s=0;if((k.ArrowUp||k.KeyW)&&(f+=1),(k.ArrowDown||k.KeyS)&&(f-=1),(k.ArrowLeft||k.KeyA)&&(s-=1),(k.ArrowRight||k.KeyD)&&(s+=1),w.pad&&(f+=w.pad.f,s+=w.pad.s),f||s){const dx=Math.sin(w.yaw)*f+Math.cos(w.yaw)*s,dz=Math.cos(w.yaw)*f-Math.sin(w.yaw)*s;w.x+=dx*sp2,w.z+=dz*sp2,w.x=Math.max(w.bounds.x0,Math.min(w.bounds.x1,w.x)),w.z=Math.max(w.bounds.z0,Math.min(w.bounds.z1,w.z))}const c=t.camera;c.position.set(w.x,w.h,w.z),c.lookAt(w.x+Math.sin(w.yaw)*Math.cos(w.pitch),w.h+Math.sin(w.pitch),w.z+Math.cos(w.yaw)*Math.cos(w.pitch))}function setMode(t,mode,K){if(!t)return;const{A,depth}=roomDimsFor(K);if(t.mode=mode,t.anim=null,mode===\"walk\"){t.camera=t.persp,t.controls.enabled=!1,t.walk={x:A/2,z:Math.min(depth-300,depth*.78),h:1550,yaw:Math.PI,pitch:-.06,keys:{},pad:null,bounds:{x0:300,x1:A-300,z0:300,z1:depth+800}};const onKey=e=>{!T3||!T3.walk||[\"ArrowUp\",\"ArrowDown\",\"ArrowLeft\",\"ArrowRight\",\"KeyW\",\"KeyA\",\"KeyS\",\"KeyD\"].includes(e.code)&&(T3.walk.keys[e.code]=e.type===\"keydown\",e.preventDefault())};window._kbKeys||(window.addEventListener(\"keydown\",onKey),window.addEventListener(\"keyup\",onKey),window._kbKeys=!0),t.dirty=!0;return}if(mode===\"plan\"){t.camera=t.ortho,t.orthoSpan=Math.max(A,depth)+1300,t.ortho.zoom=1,t.size(),t.ortho.position.set(A/2,9e3,depth/2),t.ortho.up.set(0,0,-1),t.ortho.lookAt(A/2,0,depth/2),t.controls.object=t.ortho,t.controls.enabled=!0,t.controls.enableRotate=!1,t.controls.target.set(A/2,0,depth/2),t.controls.update(),t.dirty=!0;return}t.camera=t.persp,t.controls.object=t.persp,t.controls.enabled=!0,t.controls.enableRotate=!0,t.persp.up.set(0,1,0),t.dirty=!0}var DESIGNS=[{id:\"slab\",name:\"Linea\",design:\"Slab Edged\",blurb:\"Flat 18mm slab edged doors in a smooth matt finish. The cleanest look and the lowest price.\",uplift:1,finishes:[\"Matt\"],handles:!0,handle:\"kb-preset-linea\",photo:\"kb-place-\"},{id:\"shaker\",name:\"Harewood\",design:\"Shaker\",blurb:\"Five-piece framed doors with a recessed centre panel, in a smooth matt finish.\",uplift:1.12,finishes:[\"Matt\"],handles:!0,handle:\"kb-preset-harewood\",photo:\"kb-preset-harewood-\"},{id:\"jpull\",name:\"Edge\",design:\"J-Pull\",blurb:\"Handleless doors with a J profile along the top edge. No handles to buy.\",uplift:1.08,finishes:[\"Matt\"],handles:!1,handle:\"kb-preset-edge\",photo:\"kb-preset-edge-\"}],PRESET_SIZES=[{n:8,disc:.05,units:[[\"highline-base-unit\",1e3,1],[\"wall-unit\",1e3,1],[\"built-under-oven-housing\",600,1],[\"3-drawer-base\",500,1],[\"highline-base-unit\",500,1],[\"wall-unit\",300,2],[\"tall-larder\",600,1]],fascias:[[\"Appliance fascia 600 \\xD7 731mm\",\"acc-base-door\",\"600x715\",1],[\"Appliance fascia 600 \\xD7 1319mm\",\"acc-larder-door\",\"600x1245\",1]]},{n:12,disc:.075,units:[[\"highline-base-unit\",1e3,2],[\"3-drawer-base\",500,1],[\"wall-unit\",500,3],[\"wall-unit\",300,2],[\"highline-corner-base\",1e3,1],[\"highline-base-unit\",500,1],[\"built-under-oven-housing\",600,1],[\"tall-larder\",600,1]],fascias:[[\"Appliance fascia 600 \\xD7 731mm\",\"acc-base-door\",\"600x715\",1],[\"Appliance fascia 600 \\xD7 1319mm\",\"acc-larder-door\",\"600x1245\",1]]},{n:16,disc:.1,units:[[\"highline-base-unit\",1e3,5],[\"3-drawer-base\",500,1],[\"wall-unit\",500,3],[\"wall-unit\",300,4],[\"highline-corner-base\",1e3,1],[\"tall-larder\",600,2]],fascias:[[\"Appliance fascia 600 \\xD7 731mm\",\"acc-base-door\",\"600x715\",2],[\"Appliance fascia 600 \\xD7 1319mm\",\"acc-larder-door\",\"600x1245\",1],[\"Appliance fascia 600 \\xD7 584mm\",\"acc-base-door\",\"600x715\",1],[\"Appliance panel 600 \\xD7 131mm\",\"acc-drawer-front\",\"600x140\",1]]}];const PRESET_NOT=[\"handles\",\"worktops\",\"appliances\",\"sinks\",\"taps\",\"accessories\",\"end panels\",\"plinths\"],psDesign=id=>DESIGNS.find(d=>d.id===id)||DESIGNS[0],psHandle=D=>(CJ.cfg&&CJ.cfg.presetHandles||{})[D.id]||D.handle;function stylesFor(D){return DATA.styles.filter(s=>D.finishes.includes(s.finish))}function psDefaultStyle(D){const sts=stylesFor(D);return sts.find(s=>s.id===S.style)||sts.find(s=>s.id===\"graphite-matt\")||sts.find(s=>s.id===\"cashmere-matt\")||sts[0]}const PS={live:{},pending:null,loaded:!1};function psImg(src,w){return src?(src=String(src),src.startsWith(\"//\")&&(src=\"https:\"+src),src+(src.includes(\"?\")?\"&\":\"?\")+\"width=\"+(w||900)):\"\"}function psPhoto(D,stId,w){const p=PS.live[D.id],v=p&&p.variants.find(x=>x.style===stId&&x.image);return psImg(v?v.image:\"/cdn/shop/files/\"+D.photo+stId+\".png\",w)}function psRegister(D,pj){if(!pj||!pj.variants)return null;const names=(pj.options||[]).map(o=>String(o.name||o).toLowerCase()),iS=names.indexOf(\"size\"),iC=Math.max(names.indexOf(\"colour\"),names.indexOf(\"color\")),iB=names.indexOf(\"build\"),vs=pj.variants.map(v=>{const o=[v.option1,v.option2,v.option3],n=parseInt(o[iS],10),cn=String(o[iC]||\"\").toLowerCase(),st=DATA.styles.find(s=>s.name.toLowerCase()===cn),asm=/assembled/i.test(String(o[iB]||\"\"));return{sku:v.sku||\"KB-PS-\"+D.id+\"-\"+v.id,label:[o[iS],o[iC],o[iB]].filter(Boolean).join(\" \\xB7 \"),price:v.price/100,compare:v.compare_at_price?v.compare_at_price/100:null,variantId:v.id,available:v.available!==!1,n,style:st?st.id:null,asm,image:v.featured_image&&v.featured_image.src||null}}),id=\"preset-\"+D.id;let p=byId(id);return p?(p.variants=vs,p.from=Math.min(...vs.map(v=>v.price))):(p={id,family:\"presets\",group:\"presets\",name:pj.title||D.name+\" Pre-Set Kitchen\",blurb:D.blurb,glyph:[\"T\"],handle:pj.handle,shop:!0,preset:D.id,variants:vs,from:Math.min(...vs.map(v=>v.price)),image:pj.featured_image||null},DATA.products.push(p)),vs.forEach(v=>{SKU_INDEX[v.sku]={p,v}}),PS.live[D.id]=p,p}function loadPresets(){return PS.pending||(PS.pending=Promise.all(DESIGNS.map(D=>jfetch(\"/products/\"+psHandle(D)+\".js\").then(pj=>psRegister(D,pj)).catch(e=>(console.warn(\"CJ pre-set\",psHandle(D),e&&e.message),null)))).then(r=>{const first=!PS.loaded;return PS.loaded=!0,r.some(x=>!x)&&(PS.retry=!0),first&&r.some(Boolean)&&([\"presets\",\"preset\"].includes(S.current)&&(CJ.softRender||render)(),CART.cart&&hydrateBasket()),r})),PS.pending}function presetLive(D,sizeIdx,styleId,asm){const p=PS.live[D.id];if(!p)return null;const n=PRESET_SIZES[sizeIdx].n;return p.variants.find(v=>v.n===n&&v.style===styleId&&v.asm===!!asm)||null}function presetVariant(pid,w){const p=byId(pid);return p?defaultVariant(p,w):null}function fasciaVariant(pid,size){const p=byId(pid);return p?p.variants.find(v=>v.size===size)||p.variants[0]:null}function presetCalc(sizeIdx,designId,assembled){const sz=PRESET_SIZES[sizeIdx],D=psDesign(designId);let units=0,cabs=0;sz.units.forEach(([pid,w,q2])=>{const p=byId(pid),v=presetVariant(pid,w);p&&v&&(units+=unitPrice(p,v,assembled)*D.uplift*q2),cabs+=q2});let fasc=0;sz.fascias.forEach(([l,pid,size,q2])=>{const v=fasciaVariant(pid,size);v&&(fasc+=v.price*D.uplift*q2)});const list=units+fasc;return{list,saving:list*sz.disc,price:list*(1-sz.disc),cabs,disc:sz.disc,live:!1}}function presetPrice(sizeIdx,designId,assembled,styleId){const D=psDesign(designId),c=presetCalc(sizeIdx,designId,assembled),v=presetLive(D,sizeIdx,styleId||psDefaultStyle(D).id,assembled);if(!v)return c;const list=v.compare&&v.compare>v.price?v.compare:v.price;return{list,saving:list-v.price,price:v.price,cabs:c.cabs,disc:list>0?(list-v.price)/list:0,live:!0,v,calcList:c.list}}const pct=x=>(Math.round(x*1e3)/10).toString().replace(/\\.0$/,\"\")+\"%\";function presetKit(sizeIdx){const it=(pid,w)=>kitItem(pid,w);let K;return sizeIdx===0?K={shape:\"straight\",shapeId:\"straight\",walls:[{name:\"Wall A\",len:3200,base:[it(\"built-under-oven-housing\",600),it(\"highline-base-unit\",1e3),it(\"3-drawer-base\",500),it(\"highline-base-unit\",500)],tall:[it(\"tall-larder\",600)],wall:[it(\"wall-unit\",300),it(\"wall-unit\",1e3),it(\"wall-unit\",300)],obs:[]}]}:sizeIdx===1?K={shape:\"L\",shapeId:\"L\",walls:[{name:\"Wall A\",len:3700,base:[it(\"built-under-oven-housing\",600),it(\"highline-base-unit\",1e3),it(\"3-drawer-base\",500),it(\"highline-base-unit\",1e3)],tall:[it(\"tall-larder\",600)],wall:[it(\"wall-unit\",500),it(\"wall-unit\",500),it(\"wall-unit\",300),it(\"wall-unit\",500),it(\"wall-unit\",300)],obs:[]},{name:\"Wall B\",len:2100,base:[it(\"highline-corner-base\",1e3),it(\"highline-base-unit\",500)],tall:[],wall:[],obs:[]}]}:(K={shape:\"L\",shapeId:\"L\",walls:[{name:\"Wall A\",len:4700,base:[it(\"highline-base-unit\",1e3),it(\"3-drawer-base\",500),it(\"highline-base-unit\",1e3),it(\"highline-base-unit\",1e3)],tall:[it(\"tall-larder\",600),it(\"tall-larder\",600)],wall:[it(\"wall-unit\",500),it(\"wall-unit\",300),it(\"wall-unit\",500),it(\"wall-unit\",300),it(\"wall-unit\",500),it(\"wall-unit\",300),it(\"wall-unit\",300)],obs:[]},{name:\"Wall B\",len:2600,base:[it(\"highline-corner-base\",1e3),it(\"highline-base-unit\",1e3)],tall:[],wall:[],obs:[]}]},K.walls[0].base[1].hob=!0),sizeIdx<2&&(K.walls[0].base[0].hob=!0),Object.assign(K,{sel:0,row:\"base\",assembled:!1,extras:{worktop:!0,plinth:!0,cornice:!0,handles:!0,ends:!0,fillers:!0,sink:!0,tap:!0},pick:null,view:\"3d\",choices:{},preset:sizeIdx}),K}const PSNAP={};function presetSnap(sizeIdx,st,designId,w=900,h=560){const key=\"ps:\"+sizeIdx+\":\"+st.id+\":\"+designId+\":\"+w;if(PSNAP[key])return PSNAP[key];const prev=S.doorDesign;S.doorDesign=designId;let url=null;try{const K=presetKit(sizeIdx),{A,depth}=roomDimsFor(K),span=Math.max(A,depth);url=snapGroup(key,()=>kitchenGroup(K,st,{}),{t:new THREE.Vector3(A/2,950,depth/2-100),th:K.shape===\"straight\"?.5:.78,ph:1.16,r:span*(K.shape===\"straight\"?1.35:1.3)},w,h)}catch{}return S.doorDesign=prev,PSNAP[key]=url,url}function psExtras(K,st){const sk=S.kit,ss=S.style;S.kit=K,S.style=st.id;try{return kitExtras()}catch(e){return console.warn(\"CJ pre-set extras\",e),[]}finally{S.kit=sk,S.style=ss}}CJ.psGalFail=function(img){const g=img.closest(\".pkgal\"),P=S.preset;if(!g||!P)return;const D=psDesign(P.design),st=DATA.styles.find(s=>s.id===P.style)||psDefaultStyle(D),url=presetSnap(P.size,st,D.id,1200,750);url?(img.removeAttribute(\"srcset\"),img.onerror=null,img.src=url,g.classList.add(\"is3d\")):g.classList.add(\"nophoto\")},CJ.psPhotoFail=function(img){const card=img.closest(\"[data-psd]\");if(img.remove(),!card)return;const D=psDesign(card.dataset.psd),st=DATA.styles.find(s=>s.id===card.dataset.pss)||psDefaultStyle(D),url=presetSnap(+card.dataset.psz||0,st,D.id);if(url){const host=card.querySelector(\".pkimg\");host&&host.insertAdjacentHTML(\"afterbegin\",`<img src=\"${url}\" alt=\"\">`)}};const psShort=q2=>String(q2.name||\"\").replace(/ effect$/i,\"\").replace(/ handle/i,\"\").replace(/^Round knob.*/i,\"Knob\").replace(/^White marble/i,\"Marble\").replace(/^Black granite/i,\"Granite\").replace(/ kitchen tap$/i,\"\").replace(/ mixer tap$/i,\" mixer\").replace(/^Stainless steel /i,\"\").replace(/^Inset sink /i,\"Inset \");function psSub(e){const v=e.v||{};return e.key===\"worktop\"?e.p.name+\" \\xB7 \"+(v.label?v.label+\" lengths\":\"3m lengths\"):e.key===\"handles\"?e.p.name+(v.label?\" \\xB7 \"+v.label:\"\")+\" \\xB7 one per front\":e.sub||\"\"}function vPresets(){loadPresets();const V=document.getElementById(\"view\"),F=S.pf=S.pf||{design:\"All\",size:1,finish:\"All\",colour:{}};V.appendChild(el('<div class=\"crumbs\"></div>')),V.appendChild(el('<div class=\"ttl\"><div><div class=\"eyebrow\">Pre-set kitchens</div><h1>Three designs, three sizes, <em>bundle prices</em></h1><p>Pick a design, a size and a colour. Every pre-set is priced from its units added up, minus a bundle saving of up to 10%. Add the worktop, handles and finishing parts on the next page.</p></div></div>'));const bar=el(`<div class=\"pkfbar\"><div class=\"pkfg\"><span>Design</span>${[\"All\",...DESIGNS.map(d=>d.design)].map(x=>`<button type=\"button\" class=\"chip ${F.design===x?\"on\":\"\"}\" data-pd=\"${x}\">${x}</button>`).join(\"\")}</div><div class=\"pkfg\"><span>Size</span>${PRESET_SIZES.map((s,i)=>`<button type=\"button\" class=\"chip ${F.size===i?\"on\":\"\"}\" data-ps=\"${i}\">${s.n} units</button>`).join(\"\")}</div><div class=\"pkfg\" style=\"display:none\"><span>Finish</span>${[\"All\",\"Gloss\",\"Matt\"].map(x=>`<button type=\"button\" class=\"chip ${F.finish===x?\"on\":\"\"}\" data-pfn=\"${x}\">${x}</button>`).join(\"\")}</div><div class=\"pkfn\"><b id=\"pkcount\"></b></div></div>`);V.appendChild(bar);const re=()=>(CJ.softRender||render)();bar.querySelectorAll(\"[data-pd]\").forEach(b=>b.onclick=()=>{F.design=b.dataset.pd,re()}),bar.querySelectorAll(\"[data-ps]\").forEach(b=>b.onclick=()=>{F.size=+b.dataset.ps,re()}),bar.querySelectorAll(\"[data-pfn]\").forEach(b=>b.onclick=()=>{F.finish=b.dataset.pfn,re()});const grid=el('<div class=\"pkgrid\"></div>');V.appendChild(grid);let count=0;const sz=PRESET_SIZES[F.size];DESIGNS.filter(d=>F.design===\"All\"||d.design===F.design).forEach(D=>{const sts=stylesFor(D).filter(s=>F.finish===\"All\"||s.finish===F.finish);if(!sts.length)return;count++;const cur=sts.find(s=>s.id===F.colour[D.id])||sts.find(s=>s.id===S.style)||sts.find(s=>s.id===\"graphite-matt\")||sts[0],pr=presetPrice(F.size,D.id,!1,cur.id),open=()=>go(\"preset\",{design:D.id,size:F.size,style:cur.id}),c=el(`<article class=\"pkcard\" data-psd=\"${D.id}\" data-pss=\"${cur.id}\" data-psz=\"${F.size}\"><button type=\"button\" class=\"pkimg\" aria-label=\"View the ${D.name} kitchen\"><img src=\"${psPhoto(D,cur.id,900)}\" srcset=\"${psPhoto(D,cur.id,600)} 600w, ${psPhoto(D,cur.id,900)} 900w, ${psPhoto(D,cur.id,1300)} 1300w\" sizes=\"(max-width:640px) 100vw, (max-width:1000px) 50vw, 33vw\" alt=\"${D.name} ${D.design} kitchen in ${cur.name}\" loading=\"lazy\" decoding=\"async\" onerror=\"CJ.psPhotoFail(this)\"><span class=\"rbadge\">${D.design}</span><span class=\"rtm\">Example kitchen \\xB7 ${cur.name}</span></button>\n      <div class=\"pkbody\"><div class=\"rtop\"><div><h3>${D.name} Kitchen</h3><span class=\"rsub\">${D.design} design \\xB7 ${sz.n} units \\xB7 ${cur.name}</span></div><div class=\"rsw\">${sts.map(x=>`<button type=\"button\" class=\"sw ${x.finish===\"Gloss\"?\"gloss\":\"\"} ${x.id===cur.id?\"on\":\"\"}\" style=\"background:${x.hex}\" title=\"${x.name}\" aria-label=\"${x.name}\" data-col=\"${x.id}\"></button>`).join(\"\")}</div></div>\n      <p class=\"pkblurb\">${D.blurb}</p>\n      <div class=\"pkprice\"><b>${GBP(pr.price)}</b>${pr.saving>.5?`<s>${GBP(pr.list)}</s><span>Save ${GBP(pr.saving)}</span>`:\"\"}<button type=\"button\" class=\"pkinfo\" aria-label=\"How this is priced\">i</button></div>\n      <div class=\"pkfine\">${sz.n} units, flatpack, inc VAT. ${D.handles?\"Handles, worktops\":\"Worktops\"}, appliances, sinks, taps, end panels and plinths are not included; add them on the next page.</div>\n      <button type=\"button\" class=\"rview\">View ${D.name} Kitchen</button></div></article>`);c.querySelectorAll(\"[data-col]\").forEach(b=>b.onclick=e=>{e.stopPropagation(),F.colour[D.id]=b.dataset.col,re()}),c.querySelector(\".rview\").onclick=open,c.querySelector(\".pkimg\").onclick=open,c.querySelector(\".pkinfo\").onclick=e=>{e.stopPropagation(),toast(`${sz.n} units added up ${GBP(pr.list)}, minus ${pct(sz.disc)} pre-set saving = ${GBP(pr.price)}`)},grid.appendChild(c)}),bar.querySelector(\"#pkcount\").textContent=count===1?\"1 kitchen\":count+\" kitchens\",V.appendChild(el(`<div class=\"pkhow\"><div class=\"eyebrow\">How pre-sets work</div><div class=\"hsteps\"><div><i>1</i><b>Priced from the units</b><span>Every unit in the bundle at its normal price, added up, minus 5% on 8 units, 7.5% on 12 and 10% on 16.</span></div><div><i>2</i><b>Pick the colour</b><span>Four matt colours. Order a free sample if you're torn.</span></div><div><i>3</i><b>Add what's not included</b><span>Worktop, handles, plinth, end panels, sink and tap are counted for you and added in one tap.</span></div><div><i>4</i><b>Flatpack or assembled</b><span>${CJ.assembly?`Ready assembled is +${GBP(ASSEMBLY)} per cabinet. `:\"\"}Free delivery over \\xA3${FREE}.</span></div></div></div>`)),V.appendChild(el('<div class=\"pkplan\"><div><b>Need a different layout?</b><span>Measure your room and our planner lays out every unit for you, priced.</span></div><button type=\"button\" class=\"hbtn ghost\" id=\"pkplan\">Plan my own kitchen</button></div>')),V.querySelector(\"#pkplan\").onclick=()=>go(\"plan\",{restart:!0})}function vPreset(){loadPresets();const V=document.getElementById(\"view\"),P=S.preset=S.preset||{size:1,design:\"slab\",assembled:!1,addons:{}};P.addons=P.addons||{};const D=psDesign(P.design);P.design=D.id,P.size>=0&&P.size<PRESET_SIZES.length||(P.size=1);const sts=stylesFor(D),st=sts.find(s=>s.id===P.style)||psDefaultStyle(D);P.style=st.id,S.doorDesign=D.id,CJ.assembly||(P.assembled=!1);const sz=PRESET_SIZES[P.size],pr=presetPrice(P.size,D.id,P.assembled,st.id),liveV=pr.live?pr.v:null,flat=presetPrice(P.size,D.id,!1,st.id);V.appendChild(el('<div class=\"crumbs\"></div>'));const K=presetKit(P.size),sinkId=P.sink||\"sink-inset-15\",tapId=P.tap||\"tap-mono\";K.choices={worktop:P.worktop||\"oakblock\",handle:P.handle||{pid:\"bar160\",sku:null},sink:byId(sinkId)?sinkId:null,tap:byId(tapId)?tapId:null},K.assembled=!!P.assembled;const addons=psExtras(K,st).filter(e=>!(D.id===\"jpull\"&&e.key===\"handles\")).map(e=>({...e,on:!!P.addons[e.key]})),addonTotal=addons.filter(e=>e.on).reduce((a,e)=>a+e.price,0),total=pr.price+addonTotal,lineP=(p,v,q2,isF)=>(isF?v.price:unitPrice(p,v,P.assembled))*D.uplift*q2,showLines=!pr.live||Math.abs(pr.calcList-pr.list)<1,inc=sz.units.map(([pid,w,q2])=>{const p=byId(pid),v=presetVariant(pid,w);return!p||!v?\"\":`<div class=\"rvline\"><span class=\"q\">${q2}\\xD7</span><span class=\"n\">${w}mm ${p.name}<small>Doors in ${st.name}</small></span>${showLines?`<em>${GBP(lineP(p,v,q2))}</em>`:\"\"}</div>`}).join(\"\")+sz.fascias.map(([l,pid,size,q2])=>{const v=fasciaVariant(pid,size);return`<div class=\"rvline\"><span class=\"q\">${q2}\\xD7</span><span class=\"n\">${l}<small>Colour matched, for integrated appliances</small></span>${showLines&&v?`<em>${GBP(v.price*D.uplift*q2)}</em>`:\"\"}</div>`}).join(\"\"),pic=(q2,v)=>unitPic(q2,v||q2.variants[0],st,{scale:.08}),tile=(key,val,on,q2,v,label,price)=>`<button type=\"button\" class=\"pkt ${on?\"on\":\"\"}\" data-aopt=\"${key}\" data-v=\"${cjEsc(val)}\" aria-pressed=\"${on}\" title=\"${cjEsc(q2.name+(v&&v.label?\" \\xB7 \"+v.label:\"\"))}\"><span class=\"pic\">${pic(q2,v)}</span><small>${cjEsc(label)}</small><em>${GBP(price)}</em></button>`,opts=e=>{let rows=[];if(e.key===\"worktop\"){const ps=DATA.products.filter(q2=>q2.family===\"worktops\");ps.length>1&&rows.push([\"Decor\",ps.map(q2=>tile(\"worktop\",q2.id,q2.id===e.p.id,q2,q2.variants[0],psShort(q2),q2.variants[0].price))])}else if(e.key===\"handles\"){const ps=DATA.products.filter(q2=>q2.family===\"handles\"),fi=Math.max(0,e.p.variants.findIndex(v=>v.sku===e.v.sku));ps.length>1&&rows.push([\"Style\",ps.map(q2=>{const qv=q2.variants[Math.min(fi,q2.variants.length-1)];return tile(\"handles\",q2.id+\"|\"+qv.sku,q2.id===e.p.id,q2,qv,psShort(q2),qv.price)})]),e.p.variants.length>1&&rows.push([\"Finish\",e.p.variants.map(v=>tile(\"handles\",e.p.id+\"|\"+v.sku,v.sku===e.v.sku,e.p,v,v.label||v.sku,v.price))])}else if(e.key===\"sink\"||e.key===\"tap\"){const tap=/^tap/.test(e.p.id),ps=DATA.products.filter(q2=>q2.family===e.p.family&&q2.group===e.p.group&&/^tap/.test(q2.id)===tap);ps.length>1&&rows.push([tap?\"Tap\":\"Sink\",ps.map(q2=>tile(e.key,q2.id,q2.id===e.p.id,q2,q2.variants[0],psShort(q2),q2.variants[0].price))])}return rows.map(([l,t])=>`<div class=\"pkopt\"><span class=\"pkol\">${l}</span><div class=\"pksib\">${t.join(\"\")}</div></div>`).join(\"\")},klarna=CJ.cfg.klarna!==!1?`<div class=\"klmsg\"><div class=\"r\"><span class=\"kl\">Klarna.</span><span class=\"t\">Pay in 3 interest-free payments of <b>${GBP(total/3)}</b></span><a href=\"https://www.klarna.com/uk/\" target=\"_blank\" rel=\"noopener\">Learn more</a></div><small>18+, UK residents only. Subject to status. T&amp;Cs and late fees apply.</small></div>`:\"\",canBuild=D.id===\"slab\",sec=el(`<section class=\"pkd\">\n    <div class=\"pdl\"><div class=\"pkgal\" id=\"pkgal\"><img class=\"pkmain\" src=\"${psPhoto(D,st.id,1300)}\" srcset=\"${psPhoto(D,st.id,900)} 900w, ${psPhoto(D,st.id,1300)} 1300w, ${psPhoto(D,st.id,1800)} 1800w\" sizes=\"(max-width:980px) 100vw, 60vw\" alt=\"${D.name} ${D.design} kitchen in ${st.name}\" onerror=\"CJ.psGalFail&&CJ.psGalFail(this)\">\n        <span class=\"pkcap\"><span class=\"sw ${st.finish===\"Gloss\"?\"gloss\":\"\"}\" style=\"background:${st.hex}\"></span><b>${st.name}</b><span class=\"pkcx\"> \\xB7 example kitchen</span></span>\n        ${sts.length>1?`<div class=\"pkdots\" role=\"tablist\" aria-label=\"Door colours\">${sts.map(x=>`<button type=\"button\" role=\"tab\" class=\"${x.id===st.id?\"on\":\"\"}\" aria-selected=\"${x.id===st.id}\" aria-label=\"${x.name}\" title=\"${x.name}\" data-gcol=\"${x.id}\" style=\"background-color:${x.hex}\"></button>`).join(\"\")}</div>`:\"\"}</div>\n      <div class=\"pdinc\"><div class=\"pdh\"><b>What's included \\xB7 ${sz.n} units</b><span>${pr.cabs} cabinets with doors, hinges and legs${P.assembled?\", ready assembled\":\", flatpack\"} \\xB7 doors pre-drilled to hang left or right</span></div><div class=\"pdlist\">${inc}</div>\n        <div class=\"pdnot\"><b>Not included</b> ${PRESET_NOT.filter(x=>D.handles||x!==\"handles\").join(\", \")}, unless you add them.${D.handles?\"\":\" Handleless design: no handles needed.\"}</div></div></div>\n    <div class=\"pdr\">\n      <div class=\"eyebrow\">${D.design} design \\xB7 ${st.name}</div><h1>${D.name} <em>Kitchen</em></h1><p class=\"pkblurb\">${D.blurb}</p>\n      <div class=\"pdq\"><b>Size</b><div class=\"pdsizes\">${PRESET_SIZES.map((s,i)=>{const pp=presetPrice(i,D.id,P.assembled,st.id);return`<button type=\"button\" class=\"pdsz ${i===P.size?\"on\":\"\"}\" data-size=\"${i}\"><b>${s.n} units</b><span>${GBP(pp.price)}</span><small>save ${pct(s.disc)}</small></button>`}).join(\"\")}</div></div>\n      <div class=\"pdq\"><b>Colour <span class=\"pkcn\">${st.name}</span></b><div class=\"pkcols\">${sts.map(x=>`<button type=\"button\" class=\"pkcol ${x.id===st.id?\"on\":\"\"}\" data-style=\"${x.id}\" title=\"${x.name}\" aria-label=\"${x.name}\"><span class=\"sw ${x.finish===\"Gloss\"?\"gloss\":\"\"}\" style=\"background:${x.hex}\"></span><span>${x.name}</span></button>`).join(\"\")}</div></div>\n      ${CJ.assembly?`<div class=\"pdq\"><b>Assembly</b><div class=\"asm\">${[[!1,\"Flatpack\",\"Included\"],[!0,\"Ready assembled\",\"+\"+GBP(Math.max(0,presetPrice(P.size,D.id,!0,st.id).price-flat.price))]].map(([v,t,p])=>`<button type=\"button\" class=\"${!!P.assembled===v?\"on\":\"\"}\" data-asm=\"${v}\"><b>${t}</b><span class=\"pr\">${p}</span></button>`).join(\"\")}</div></div>`:\"\"}\n      ${addons.length?`<div class=\"pdq\"><b>Add what's not included</b><span class=\"pzsub\">Quantities counted from this kitchen. Tick to add.</span><div class=\"pdadd\">${addons.map(e=>`<div class=\"pdao ${e.on?\"on\":\"\"}\"><label><input type=\"checkbox\" data-addon=\"${e.key}\" ${e.on?\"checked\":\"\"}><span class=\"pkth\">${pic(e.p,e.v)}</span><span class=\"n\">${e.label} \\xD7 ${e.qty}<small>${cjEsc(psSub(e))}</small></span><em>${GBP(e.price)}</em></label>${opts(e)}</div>`).join(\"\")}</div></div>`:\"\"}\n      <div class=\"pdprice\"><div><span>Units added up</span><em>${GBP(pr.list)}</em></div>${pr.saving>.005?`<div class=\"sv\"><span>Pre-set saving (${pct(sz.disc)})</span><em>\\u2212${GBP(pr.saving)}</em></div>`:\"\"}${addonTotal?`<div><span>Add-ons</span><em>${GBP(addonTotal)}</em></div>`:\"\"}<div class=\"t\"><span>Your price inc VAT</span><em>${GBP(total)}</em></div><div class=\"pkdel\">${total>=FREE?\"Free delivery\":GBP(FREE-total)+\" to free delivery\"} \\xB7 dispatched within ${CJ_DISPATCH*24} hours</div></div>${klarna}\n      <button type=\"button\" class=\"add\" id=\"pdadd\" ${liveV&&liveV.available===!1?\"disabled\":\"\"}><span>${liveV&&liveV.available===!1?\"Out of stock\":\"Add this kitchen to cart\"}</span><span>${GBP(total)}</span></button>\n      ${canBuild?'<button type=\"button\" class=\"rvghost\" id=\"pdbuild\">Move or swap units in the 3D builder</button>':\"\"}\n      <button type=\"button\" class=\"rvghost\" id=\"pdsample\">Order a free ${st.name} sample</button>\n      <div class=\"pkfine\">The photo shows the design and colour; your kitchen is the ${sz.n} units listed under What's included. Prices exclude delivery.${canBuild?\"\":' Need a different layout? <button type=\"button\" class=\"pklink\" id=\"pdhelp\">Talk to a planner</button>.'}</div>\n    </div></section>`);V.appendChild(sec);const re=()=>(CJ.softRender||render)();V.querySelectorAll(\"[data-size]\").forEach(b=>b.onclick=()=>{P.size=+b.dataset.size,re()}),V.querySelectorAll(\"[data-style]\").forEach(b=>b.onclick=()=>{P.style=b.dataset.style,re()}),V.querySelectorAll(\"[data-asm]\").forEach(b=>b.onclick=()=>{P.assembled=b.dataset.asm===\"true\",re()}),V.querySelectorAll(\"[data-addon]\").forEach(i=>i.onchange=()=>{P.addons[i.dataset.addon]=i.checked,re()}),V.querySelectorAll(\"[data-aopt]\").forEach(s=>s.onclick=()=>{const k=s.dataset.aopt,v=s.dataset.v;if(!(s.classList.contains(\"on\")&&P.addons[k])){if(k===\"worktop\")P.worktop=v;else if(k===\"handles\"){const[pid,sku]=v.split(\"|\");P.handle={pid,sku}}else k===\"sink\"?P.sink=v:k===\"tap\"&&(P.tap=v);P.addons[k]=!0,re()}}),V.querySelector(\"#pdsample\").onclick=()=>openSamples(st.id);const hb=V.querySelector(\"#pdhelp\");hb&&(hb.onclick=()=>{S.help=!0,document.getElementById(\"hp\").classList.add(\"on\")}),V.querySelector(\"#pdadd\").onclick=async e=>{const b=e.currentTarget;let v=presetLive(D,P.size,st.id,P.assembled);if(!v){b.disabled=!0,b.firstElementChild.textContent=\"Checking\\u2026\",PS.retry&&(PS.pending=null,PS.retry=!1);try{await loadPresets()}catch{}v=presetLive(D,P.size,st.id,P.assembled),b.disabled=!1,b.firstElementChild.textContent=\"Add this kitchen to cart\"}if(!v){toast(\"This pre-set kitchen is not available to order right now. Please try again in a moment.\");return}if(v.available===!1){toast(\"This pre-set is out of stock in \"+st.name);return}const p=byId(\"preset-\"+D.id),prev=S.style;S.style=st.id;let n=0;try{addItem(p,v,1,!1,!0),addons.filter(a=>a.on).forEach(a=>{addItem(a.p,a.v,a.qty,!1,!0),n++})}finally{S.style=prev}P.addons={},re(),psSheet(D,st,v,n)};const pbtn=V.querySelector(\"#pdbuild\");pbtn&&(pbtn.onclick=()=>{S.style=st.id;try{localStorage.setItem(\"kb-style\",st.id)}catch{}const K2=presetKit(P.size);K2.choices={worktop:K.choices.worktop,handle:K.choices.handle},K2.assembled=!!P.assembled,K2.generated=!1,K2.presetName=D.name+\" Kitchen\",S.kit=K2,go(\"builder\")});const gal=V.querySelector(\"#pkgal\"),setCol=id=>{id&&id!==P.style&&(P.style=id,re())};gal.querySelectorAll(\"[data-gcol]\").forEach(b=>b.onclick=()=>setCol(b.dataset.gcol));const ci=sts.findIndex(x=>x.id===st.id);let tx=null,ty=null;gal.addEventListener(\"touchstart\",e=>{const t=e.touches[0];tx=t.clientX,ty=t.clientY},{passive:!0}),gal.addEventListener(\"touchend\",e=>{if(tx===null)return;const t=e.changedTouches[0],dx=t.clientX-tx,dy=t.clientY-ty;tx=null,Math.abs(dx)>40&&Math.abs(dx)>Math.abs(dy)*1.3&&sts.length>1&&setCol(sts[(ci+(dx<0?1:-1)+sts.length)%sts.length].id)},{passive:!0});const pk=\"pre:\"+D.id;PS[pk]||(PS[pk]=1,setTimeout(()=>sts.forEach(x=>{if(x.id!==st.id){const im=new Image;im.decoding=\"async\",im.src=psPhoto(D,x.id,1300)}}),600))}function psSheet(D,st,v,n){openSheet(null,`${D.name} Kitchen added to your cart`);const sh=document.getElementById(\"sheet\");if(!sh)return;const sp2=sh.querySelector(\".ok span\");sp2&&(sp2.textContent=`1 \\xD7 ${v.label}${n?` + ${n} add-on${n>1?\"s\":\"\"}`:\"\"}`);const kb=sh.querySelector(\".kb\");if(!kb)return;kb.innerHTML=\"\";const opt=(t,s,fn)=>{const b=el(`<button>${t}<small>${s}</small></button>`);b.onclick=()=>{closeSheet(),fn()},kb.appendChild(b)};opt(\"Back to this kitchen\",\"Change the size, colour or extras\",()=>{}),opt(\"All pre-set kitchens\",\"Linea, Harewood and Edge\",()=>go(\"presets\")),opt(\"Worktops, handles & parts\",\"Anything else you need\",()=>go(\"parts\"))}const PS_SHADE=new Map;function psShade(m,k){const key=m.uuid+\":\"+k;let d=PS_SHADE.get(key);return d||(d=m.clone(),d.color&&d.color.multiplyScalar(k),PS_SHADE.set(key,d)),d}function designDetail(grp,mesh,w,h,m){const d=S.doorDesign||\"slab\";if(d===\"slab\")return;const off=mesh.position.clone();if(d===\"shaker\"){const r=Math.min(70,w*.18),t=5,rail=(ww,hh,x,y)=>{const b=new THREE.Mesh(new THREE.BoxGeometry(ww,hh,t),m);b.position.set(off.x+x,off.y+y,off.z+9+t/2),b.castShadow=!0,grp.add(b)};if(h>160){rail(w,r,0,h/2-r/2),rail(w,r,0,-h/2+r/2),rail(r,h-2*r,-w/2+r/2,0),rail(r,h-2*r,w/2-r/2,0);const pn=new THREE.Mesh(new THREE.BoxGeometry(w-2*r,h-2*r,1),psShade(m,.9));pn.position.set(off.x,off.y,off.z+9+.6),pn.receiveShadow=!0,grp.add(pn);const ln=psShade(m,.62),lw=3;[[w-2*r,lw,0,h/2-r-lw/2],[w-2*r,lw,0,-h/2+r+lw/2],[lw,h-2*r,-w/2+r+lw/2,0],[lw,h-2*r,w/2-r-lw/2,0]].forEach(([ww,hh,x,y])=>{const q2=new THREE.Mesh(new THREE.BoxGeometry(ww,hh,1),ln);q2.position.set(off.x+x,off.y+y,off.z+9+1.2),grp.add(q2)})}}else if(d===\"jpull\"){const g=new THREE.Mesh(new THREE.BoxGeometry(w-4,22,12),mat(\"#2B2E33\",!1));g.position.set(off.x,off.y+h/2-11,off.z+9-2),grp.add(g);const lip=new THREE.Mesh(new THREE.BoxGeometry(w-4,6,16),m);lip.position.set(off.x,off.y+h/2-25,off.z+9+2),grp.add(lip)}}const SAMPLE_DELIVERY=4.95,SAMPLE_MAX=4;function renderRail(){const r0=document.getElementById(\"rail\");r0&&(r0.innerHTML=\"\",r0.classList.add(\"hidden\"))}function renderRail_old(){const st=S.style?style():null,f=S.family?fam(S.family):null,p=S.product?byId(S.product):null,rail=document.getElementById(\"rail\");rail.innerHTML=\"\",rail.classList.toggle(\"hidden\",!S.current||S.current===\"home\");const CHK='<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M4 12.5l5 5L20 7\"/></svg>',noStyle=f&&(f.id===\"handles\"||f.id===\"worktops\");let steps;if(S.current===\"builder\"){const c=S.kit?kitCounts():{units:0,price:0};steps=[{t:\"Kitchen style\",v:st?st.name:\"Choose\",state:\"done\",go:openPop,sw:st},{t:\"Build your kitchen\",v:c.units?`${c.units} units \\xB7 ${GBP(c.price)}`:\"Add units to the walls\",state:\"active\",go:()=>go(\"builder\")},{t:\"Add to cart\",v:\"When you're happy\",state:\"todo\"}]}else{const s1=st?\"done\":\"active\",s2=f?p?\"done\":\"active\":st?\"active\":\"todo\",s3=p?\"active\":\"todo\";steps=[{t:\"Kitchen style\",v:st?st.name:noStyle?\"Not needed\":\"Choose a style\",state:noStyle&&!st?\"done\":s1,go:()=>st?openPop():go(\"style\"),sw:st},{t:\"Where it goes\",v:f?f.name:\"Tap the kitchen\",state:s2,go:()=>go(st?\"place\":\"style\")},{t:\"Choose & size the unit\",v:p?p.name+(S.variant&&S.variant.w?\" \\xB7 \"+S.variant.w+\"mm\":\"\"):\"Pick the unit\",state:s3,go:()=>f?go(\"units\"):null}]}steps.forEach((s,i)=>{const b=el(`<button class=\"pstep ${s.state}\"><span class=\"pn\">${s.state===\"done\"?CHK:i+1}</span>${s.sw?`<span class=\"sw ${s.sw.finish===\"Gloss\"?\"gloss\":\"\"}\" style=\"background:${s.sw.hex}\"></span>`:\"\"}<span class=\"pl\"><small>Step ${i+1} \\xB7 ${s.t}</small><b>${s.v}</b></span>${s.state===\"done\"&&s.go?'<span class=\"pch\">Change</span>':\"\"}</button>`);s.go&&s.state!==\"todo\"?b.onclick=s.go:b.disabled=!0,rail.appendChild(b)})}function openModal(html,cls=\"\"){const m=document.getElementById(\"modal\");return m.querySelector(\".mbody\").innerHTML=html,m.querySelector(\".mpan\").className=\"mpan \"+cls,m.classList.add(\"open\"),m.querySelector(\".mbody\")}function closeModal(){document.getElementById(\"modal\").classList.remove(\"open\")}function openSamples(pre){const sel=new Set(pre?[pre]:[]),inCartS=DATA.styles.filter(st=>inCart(q2=>q2.id===\"sample-\"+st.id)).map(st=>st.id),B=openModal(`<div class=\"smp\"><div class=\"mh\"><div><div class=\"eyebrow\">Free door samples</div><h2>See the colour in your kitchen first</h2><p>Real 150 \\xD7 150mm door fronts, same board and finish as the cabinets. Pick up to ${SAMPLE_MAX}. Samples are free; delivery is ${GBP(SAMPLE_DELIVERY)} tracked, refunded against your first cabinet order.</p></div><button class=\"mx\" data-mclose aria-label=\"Close\">\\xD7</button></div>\n    <div class=\"sgrid\">${DATA.styles.map(st=>`<button class=\"stile2 ${sel.has(st.id)?\"on\":\"\"} ${inCartS.includes(st.id)?\"had\":\"\"}\" data-s=\"${st.id}\"><div class=\"door\">${doorSwatch(st)}</div><div class=\"nm\"><b>${st.name}</b><span>${st.colour} \\xB7 ${st.finish}</span></div><span class=\"tick\"></span></button>`).join(\"\")}</div>\n    <div class=\"sfoot\"><div class=\"ssum\"><b id=\"scount\">0 of ${SAMPLE_MAX} selected</b><span>Samples \\xA30.00 \\xB7 Delivery ${GBP(SAMPLE_DELIVERY)} \\xB7 <b>Total <em id=\"stot\">${GBP(SAMPLE_DELIVERY)}</em></b></span></div><button class=\"add\" id=\"sadd\"><span style=\"font-family:var(--body);font-weight:800;font-size:16px\">Add samples to cart</span><span id=\"saddp\">${GBP(SAMPLE_DELIVERY)}</span></button></div>\n    <div class=\"snote\">Arrive in 2 to 3 working days. Keep them; no need to send back.</div></div>`,\"wide\"),upd=()=>{B.querySelector(\"#scount\").textContent=`${sel.size} of ${SAMPLE_MAX} selected`,B.querySelectorAll(\".stile2\").forEach(x=>x.classList.toggle(\"on\",sel.has(x.dataset.s))),B.querySelector(\"#sadd\").disabled=sel.size===0};B.querySelectorAll(\".stile2\").forEach(b=>b.onclick=()=>{const id=b.dataset.s;if(sel.has(id))sel.delete(id);else if(sel.size>=SAMPLE_MAX){toast(`Up to ${SAMPLE_MAX} samples per order`);return}else sel.add(id);upd()}),B.querySelector(\"#sadd\").onclick=()=>{sel.forEach(id=>{const p=byId(\"sample-\"+id);inCart(q2=>q2.id===p.id)||addItem(p,p.variants[0],1,!1,!0)});const d=byId(\"sample-delivery\");inCart(q2=>q2.id===d.id)||addItem(d,d.variants[0],1,!1,!0),renderBasket(),closeModal(),toast(`${sel.size} sample${sel.size>1?\"s\":\"\"} added`),document.getElementById(\"bk\").classList.add(\"open\")},upd()}function openQuick(p,o={}){const st=style(),cab=isCab(p);let v=o.variant||defaultVariant(p),qty=o.qty||1;const B=openModal(`<div class=\"qs\"><button class=\"mx\" data-mclose aria-label=\"Close\">\\xD7</button><div class=\"qpic\" id=\"qpic\"></div><div class=\"qbuy\"><div class=\"eyebrow\">${fam(p.family)?fam(p.family).name:\"\"}${needsStyle(p)?\" \\xB7 \"+st.name:\"\"}${p.placeholder?' \\xB7 <span class=\"phl\">placeholder</span>':\"\"}</div><h2 id=\"qn\"></h2><p>${p.blurb}</p>\n    <div class=\"row\"><div class=\"lab\"><b>${cab?\"Width\":p.family===\"handles\"?\"Finish\":p.family===\"worktops\"?\"Length\":\"Size\"}</b></div><div class=\"pills\" id=\"qp\"></div></div>\n    ${cab?'<div class=\"qmore\">Depth, height and door options are on the <button id=\"qfull\">full product page</button>.</div>':\"\"}\n    <div class=\"qline\"><div class=\"qty\"><button id=\"qm\">\\u2013</button><span id=\"qv\">${qty}</span><button id=\"qplus\">+</button></div><div class=\"qprice\" id=\"qprice\"></div></div>\n    <button class=\"add\" id=\"qadd\"><span style=\"font-family:var(--body);font-weight:800;font-size:16px\">Add to cart</span><span id=\"qaddp\"></span></button>\n    <div class=\"qtrust\">In stock \\xB7 dispatch ${fmtD(shipInfo().dispatch)} \\xB7 counts toward free delivery</div></div></div>`),upd=()=>{B.querySelector(\"#qpic\").innerHTML=unitPic(p,cab?{w:Math.min(v.w,800),h:v.h,doors:v.doors}:v,st,{scale:.22,big:!0}),B.querySelector(\"#qn\").textContent=(cab?v.w+\"mm \":\"\")+p.name+(!cab&&(v.label||v.size)?\" \\xB7 \"+(v.label||v.size):\"\"),B.querySelector(\"#qv\").textContent=qty,B.querySelector(\"#qprice\").innerHTML=`<b>${GBP(v.price*qty)}</b><span>${qty>1?GBP(v.price)+\" each \\xB7 \":\"\"}inc VAT</span>`,B.querySelector(\"#qaddp\").textContent=GBP(v.price*qty);const pp=B.querySelector(\"#qp\");pp.innerHTML=\"\",cab?p.widths.forEach(w=>{const b=el(`<button class=\"pill ${w===v.w?\"on\":\"\"}\"><b>${w}</b><small>${GBP(defaultVariant(p,w).price)}</small></button>`);b.onclick=()=>{v=defaultVariant(p,w),upd()},pp.appendChild(b)}):p.variants.forEach(x=>{const b=el(`<button class=\"pill ${x.sku===v.sku?\"on\":\"\"}\">${x.hex?`<span class=\"sw\" style=\"background:${x.hex};margin:0 auto 3px;width:18px;height:18px\"></span>`:\"\"}<b style=\"font-family:var(--body)\">${x.label||x.size||\"Standard\"}</b><small>${GBP(x.price)}</small></button>`);b.onclick=()=>{v=x,upd()},pp.appendChild(b)})};B.querySelector(\"#qm\").onclick=()=>{qty=Math.max(1,qty-1),upd()},B.querySelector(\"#qplus\").onclick=()=>{qty++,upd()};const qf=B.querySelector(\"#qfull\");qf&&(qf.onclick=()=>{closeModal(),go(\"product\",{id:p.id,variant:v})}),B.querySelector(\"#qadd\").onclick=()=>{addItem(p,v,qty,!1,!0),renderBasket(),closeModal(),toast(`Added ${qty} \\xD7 ${(cab?v.w+\"mm \":\"\")+p.name}`),o.onAdd&&o.onAdd(),S.current===\"product\"&&updateProduct()},upd()}function xsells(p){const out=[],pick=id=>{const q2=byId(id);q2&&q2.id!==p.id&&!out.includes(q2)&&out.push(q2)};return p.family===\"base\"?(pick(\"acc-plinth\"),pick(\"wall-unit\"),pick(\"acc-base-end-panel\"),pick(\"acc-filler-panel\")):p.family===\"wall\"?(pick(\"acc-cornice-pelmet\"),pick(\"highline-base-unit\"),pick(\"acc-wall-end-panel\"),pick(\"acc-900mm-wall-corner-post\")):p.family===\"tall\"||p.family===\"appliance\"?(pick(\"acc-tall-end-panel\"),pick(\"acc-cornice-pelmet\"),pick(\"acc-plinth\"),pick(\"acc-tall-corner-post\")):p.family===\"handles\"?(pick(\"highline-base-unit\"),pick(\"pan-drawer-base\"),pick(\"wall-unit\"),pick(\"tall-larder\")):p.family===\"worktops\"?(pick(\"highline-base-unit\"),pick(\"sink-base-unit\"),pick(\"acc-plinth\"),pick(\"acc-base-end-panel\")):(pick(\"highline-base-unit\"),pick(\"wall-unit\"),pick(\"acc-plinth\"),pick(\"acc-cornice-pelmet\")),out.slice(0,4)}function unitPrice(p,v,assembled){return v.price+(assembled&&isCab(p)?ASSEMBLY:0)}function inCart(pred){return S.basket.some(b=>pred(byId(b.pid),b))}const ADVICE={base:[[\"Sink\",\"sink-base-unit\",\"A sink base has an open top so the bowl drops in.\"],[\"Hob\",\"pan-drawer-base\",\"Pan drawers under the hob keep pots where you cook.\"],[\"Built-under oven\",\"built-under-oven-housing\",\"A built-under housing sits the oven below the worktop.\"],[\"Dishwasher / washer\",null,\"No unit needed. Leave a 600mm gap and add a matching plinth and filler.\"],[\"Corner\",\"highline-corner-base\",\"A corner base uses the dead corner with one door.\"],[\"Cutlery & utensils\",\"4-drawer-base\",\"Four drawers sort the small stuff.\"],[\"General storage\",\"highline-base-unit\",\"A highline base is the simplest, cheapest cupboard.\"]],wall:[[\"Extractor\",\"top-box\",\"A top box sits over the extractor or hob.\"],[\"Corner\",\"corner-wall-unit\",\"A corner wall unit turns the corner cleanly.\"],[\"Boiler\",\"boiler-housing\",\"A boiler housing hides it behind a door.\"],[\"Microwave\",\"microwave-wall-housing\",\"Open shelf for the microwave, cupboard above.\"],[\"Glasses & crockery\",\"wall-unit\",\"A standard wall unit, 1 or 2 doors.\"]],tall:[[\"Food & dry goods\",\"tall-larder\",\"A tall larder, shelved top to bottom.\"],[\"Corner\",\"tall-corner-larder\",\"A corner larder uses the tall corner.\"]],appliance:[[\"Single oven\",\"single-oven-housing\",\"Single oven at eye level.\"],[\"Double oven\",\"double-oven-housing\",\"Double oven housing.\"],[\"Oven + microwave\",\"oven-microwave-housing\",\"Both in one tower.\"],[\"Fridge freezer\",\"fridge-freezer-housing\",\"Integrated fridge freezer, hidden behind doors.\"]]};function vProduct(){const V=document.getElementById(\"view\"),st=style(),p=byId(S.product),f=fam(p.family),cab=isCab(p);(!S.extras||S.extrasFor!==p.id)&&(S.extras={},S.extrasFor=p.id),V.appendChild(el(`<div class=\"crumbs\"><button data-go=\"style\">Kitchen style</button><span>\\u203A</span><button data-go=\"place\">Where it goes</button><span>\\u203A</span><button data-go=\"units\">${f.name}</button><span>\\u203A</span><span>${p.name}</span></div>`));const pp=el('<div class=\"pp2\"><div class=\"gal\"><div class=\"gmain\"><div class=\"g3d\" id=\"g3d\"></div><div class=\"gsvg\" id=\"gsvg\"></div><div class=\"gdims\" id=\"dims\"></div><div class=\"gtag\" id=\"gtag\"></div></div><div class=\"gthumbs\" id=\"gthumbs\"></div></div><div class=\"buy\"></div></div>');V.appendChild(pp);const buy=pp.querySelector(\".buy\");buy.innerHTML=`<div class=\"eyebrow\">${cab?f.name+\" \\xB7 \"+st.name:p.family===\"trims\"?\"Parts \\xB7 \"+f.name+\" \\xB7 \"+st.name:\"Parts \\xB7 \"+f.name}${p.placeholder?' \\xB7 <span class=\"phl\">placeholder</span>':\"\"}</div><h1 id=\"pn\"></h1>\n   <div class=\"prow\"><span class=\"sku\" id=\"psku\"></span><span class=\"rev\">\\u2605\\u2605\\u2605\\u2605\\u2605 <small>Be the first to review</small></span></div>\n   <p class=\"bl\">${p.blurb}</p>\n   <div class=\"pricecard\"><div class=\"pricebox\"><div class=\"p mono\" id=\"pprice\"></div><div class=\"x\" id=\"pex\"></div></div><div class=\"pchips\"><span class=\"klarna\"><span class=\"kl\">Klarna.</span><span id=\"pkl\"></span></span><span class=\"pm\">Price match &amp; beat</span><span class=\"stock\" style=\"margin:0\">In stock</span></div></div>\n   <div class=\"ship\"><div class=\"row1\"><span data-cd>${cdText()}</span></div><div class=\"tl\" id=\"tl\"></div></div>\n   <div class=\"cfg\" id=\"cfg\"></div>\n   <div class=\"sect\" id=\"complete\"><div class=\"sh\"><span class=\"sn\">${cab?\"4\":\"2\"}</span><b>Add the bits that aren't included</b><span class=\"sub\">Tick to add to the same order</span></div><div class=\"need\" id=\"need\"></div></div>\n   <div class=\"ctawrap\"><div class=\"cta\"><div class=\"qty\"><button id=\"qm\" aria-label=\"Fewer\">\\u2013</button><span id=\"qv\">1</span><button id=\"qp\" aria-label=\"More\">+</button></div><button class=\"add\" id=\"add\"><span style=\"font-family:var(--body);font-weight:800;font-size:17px\" id=\"addl\">Add to cart</span><span id=\"addp\"></span></button></div><div class=\"ctasub\" id=\"ctasub\"></div></div>\n   <div class=\"deliv\" id=\"dlv\"><div class=\"t\"><span id=\"dt\"></span><b id=\"db\"></b></div><div class=\"bar\"><i id=\"dbar\"></i></div><div class=\"pal\">Under \\xA3${FREE}: ${GBP(CJ_DELIVERY)} delivery. Tracked, kerbside, mainland UK.</div></div>\n   <div class=\"kbox\"><div><b id=\"k3\"></b><span>Pay in 3, interest free</span></div><div><b>Pay in 30 days</b><span>Try it in your kitchen first</span></div><div class=\"kl\"><i>Klarna.</i> No fees when you pay on time. Decision in seconds at checkout.</div></div>\n   <div class=\"trust\"><div>Doors, hinges &amp; legs included</div><div>18mm carcass, UK manufactured</div><div>Tracked UK delivery</div><div>Easy returns, encrypted checkout</div></div>\n   <div id=\"advisor\"></div>\n   <div class=\"tabs\"><div class=\"tabbar\">${[\"Overview\",\"Specs\",\"Delivery & returns\",\"Reviews\"].map((t,i)=>`<button class=\"${i===0?\"on\":\"\"}\" data-tab=\"${i}\">${t}</button>`).join(\"\")}</div>\n     <div class=\"tabp on\"><ul class=\"olist\"><li><b>In the box:</b> carcass, doors, soft-close hinges, adjustable legs, shelves and H\\xE4fele Rafix fixings.</li><li><b>Carcass:</b> 18mm white melamine, pre-drilled, <span id=\"ocarc\">${unitH(p,S.variant||p.variants[0])}mm</span> high${p.family===\"base\"?\" plus 150mm legs\":\"\"}.</li><li><b>Doors:</b> <span id=\"odoor\">18mm MDF ${st.finish.toLowerCase()} slab edged in ${st.colour}</span>${(p.glyph||[]).some(r=>r===\"D\"||r===\"S\"||r===\"X\")?\", with hinge holes pre-drilled on both sides so you can hang them left or right\":\"\"}.</li><li><b>Not included:</b> handles, plinth, worktop, end panels and fillers. Add them on the right.</li></ul></div>\n     <div class=\"tabp\" id=\"specs\"></div>\n     <div class=\"tabp\">Tracked delivery to kerbside across mainland UK. Free on orders over \\xA3${FREE}; ${GBP(CJ_DELIVERY)} below that. Orders dispatch within ${CJ_DISPATCH} working days, with tracking by email. Please check deliveries for damage before signing. 14-day returns on items in their original packaging; return postage is paid by the customer.</div>\n     <div class=\"tabp\"><div class=\"slot-rev\">Reviews widget slot (Judge.me / Trustpilot) \\xB7 shows once live reviews exist</div></div></div>`;const cfg=buy.querySelector(\"#cfg\");cab?(cfg.appendChild(el(`<div class=\"sect\"><div class=\"sh\"><span class=\"sn\">1</span><b>Width</b><span class=\"sub\" id=\"wlab\"></span></div><div class=\"pills\" id=\"pw\"></div><div class=\"gap\" style=\"display:none\"><input id=\"gapin\" inputmode=\"numeric\" placeholder=\"My gap, mm\" value=\"${S.gap}\"><span class=\"msg\" id=\"gapmsg\">Type the space you have and we'll highlight every width that fits.</span></div><div class=\"subrows\"><div class=\"row\" id=\"rdoors\"><div class=\"lab\"><b>Doors</b></div><div class=\"seg\" id=\"sdoors\"></div></div><div class=\"row\" id=\"rdepth\"><div class=\"lab\"><b>Depth</b><span>Standard 560mm</span></div><div class=\"seg\" id=\"sdepth\"></div></div><div class=\"row\" id=\"rheight\"><div class=\"lab\"><b>Height</b></div><div class=\"seg\" id=\"sheight\"></div></div></div></div>`)),cfg.appendChild(el('<div class=\"sect\"><div class=\"sh\"><span class=\"sn\">2</span><b>Finish</b><span class=\"sub\" id=\"finlab\"></span></div><div class=\"swrow\" id=\"swrow\"></div><div class=\"srow\"><button class=\"chip\" id=\"smp2\">Order free samples</button><button class=\"chip\" id=\"allst\">Compare all 8</button></div></div>')),cfg.appendChild(el('<div class=\"sect\"><div class=\"sh\"><span class=\"sn\">3</span><b>Assembly</b><span class=\"sub\">Doors, hinges &amp; legs included either way</span></div><div class=\"asm\" id=\"asm\"></div></div>'))):(cfg.appendChild(el(`<div class=\"sect\"><div class=\"sh\"><span class=\"sn\">1</span><b>${p.family===\"handles\"?\"Finish\":p.family===\"worktops\"?\"Length\":\"Size\"}</b></div><div class=\"pills\" id=\"pw\"></div></div>`)),needsStyle(p)&&cfg.appendChild(el('<div class=\"sect\"><div class=\"sh\"><span class=\"sn\">2</span><b>Colour</b></div><div class=\"swrow\" id=\"swrow\"></div></div>')));const sw=buy.querySelector(\"#swrow\");sw&&DATA.styles.forEach(s2=>{const b=el(`<button class=\"swbtn ${s2.id===st.id?\"on\":\"\"}\"><span class=\"sw ${s2.finish===\"Gloss\"?\"gloss\":\"\"}\" style=\"background:${s2.hex}\"></span>${s2.name}</button>`);b.onclick=()=>{S.style=s2.id;try{localStorage.setItem(\"kb-style\",s2.id)}catch{}render()},sw.appendChild(b)});const a8=buy.querySelector(\"#allst\");a8&&(a8.onclick=openPop);const sm=buy.querySelector(\"#smp2\");sm&&(sm.onclick=()=>openSamples(st.id)),buy.querySelector(\"#qm\").onclick=()=>{S.qty=Math.max(1,S.qty-1),updateProduct()},buy.querySelector(\"#qp\").onclick=()=>{S.qty++,updateProduct()},buy.querySelector(\"#add\").onclick=addCurrent,document.getElementById(\"sb-add\").onclick=addCurrent;const gi=buy.querySelector(\"#gapin\");gi&&(gi.oninput=()=>{S.gap=gi.value,updateProduct()}),buy.querySelectorAll(\"[data-tab]\").forEach(b=>b.onclick=()=>{buy.querySelectorAll(\"[data-tab]\").forEach(x=>x.classList.toggle(\"on\",x===b)),buy.querySelectorAll(\".tabp\").forEach((x,i)=>x.classList.toggle(\"on\",i===+b.dataset.tab))});const th=pp.querySelector(\"#gthumbs\"),views=cab?[[\"3d\",\"3D view\"],[\"front\",\"Front\"],[\"open\",\"Door open\"],[\"dims\",\"Dimensions\"],[\"room\",\"In a kitchen\"]]:[[\"front\",\"View\"],[\"3d\",\"3D view\"]];views.forEach(([k,l])=>{const b=el(`<button class=\"${S.view===k?\"on\":\"\"}\" data-v=\"${k}\"><span class=\"tl2\">${l}</span></button>`);b.onclick=()=>{S.view=k,updateProduct()},th.appendChild(b)}),views.some(v=>v[0]===S.view)||(S.view=views[0][0]);const xs=el('<div class=\"xsell\"><h2>Finish the <span style=\"color:var(--cyan)\">run</span></h2><p>Matching trims and the units that usually go with this one. Tap to add without leaving this page.</p><div class=\"cards\" id=\"xcards\"></div></div>');if(V.appendChild(xs),xsells(p).forEach(q2=>xs.querySelector(\"#xcards\").appendChild(cardFor(q2,st,{quick:!0}))),cab){const lk=el(`<div class=\"look\"><h2>Complete the <span style=\"color:var(--cyan)\">look</span></h2><p>Handles and worktops aren't included with cabinets. These fit any style.</p><div class=\"cards\" id=\"lcards\"></div></div>`);V.appendChild(lk),[...DATA.products.filter(q2=>q2.family===\"handles\").slice(0,2),...DATA.products.filter(q2=>q2.family===\"worktops\").slice(0,2)].forEach(q2=>lk.querySelector(\"#lcards\").appendChild(cardFor(q2,st,{quick:!0})))}updateProduct(),S.io=new IntersectionObserver(es=>{const e=es[0],past=!e.isIntersecting&&e.boundingClientRect.top<0;document.getElementById(\"sbar\").classList.toggle(\"show\",past),document.body.classList.toggle(\"sb\",past)},{threshold:0}),S.io.observe(buy.querySelector(\"#add\"))}function extrasFor(p,v){const n=handleCount(p,v),items=[],hp=byId(\"bar160\"),pl=byId(\"acc-plinth\"),wt=byId(\"oakblock\"),fl=byId(\"acc-filler-panel\"),cn=byId(\"acc-cornice-pelmet\"),ep=byId(p.family===\"wall\"?\"acc-wall-end-panel\":p.family===\"base\"?\"acc-base-end-panel\":\"acc-tall-end-panel\");return n>0&&hp&&items.push({key:\"handles\",p:hp,qty:n,t:`Handles \\xD7 ${n}`,s:\"One per front\"}),p.family===\"base\"&&pl&&items.push({key:\"plinth\",p:pl,qty:1,t:\"Plinth\",s:\"3m matching length, cut to size\"}),p.family===\"wall\"&&cn&&items.push({key:\"cornice\",p:cn,qty:1,t:\"Cornice / pelmet\",s:\"3m matching length\"}),p.family===\"base\"&&wt&&items.push({key:\"worktop\",p:wt,qty:1,t:\"Worktop\",s:\"6 decors, 3m or 4.1m\"}),ep&&items.push({key:\"end\",p:ep,qty:1,t:\"End panel\",s:\"If this end of the run shows\"}),fl&&items.push({key:\"filler\",p:fl,qty:1,t:\"Filler panel\",s:\"Closes a gap to the wall\"}),items}function renderComplete(p,v){const box2=document.querySelector(\"#need\"),sect=document.querySelector(\"#complete\");if(!isCab(p)){sect.classList.add(\"hidden\");return}sect.classList.remove(\"hidden\");const items=extrasFor(p,v);box2.innerHTML=\"\",items.forEach(it=>{const ex=S.extras[it.key]||(S.extras[it.key]={on:!1,v:it.p.variants[0],qty:it.qty});it.key===\"handles\"&&(ex.qty=it.qty);const done=inCart(q2=>q2.id===it.p.id),r=el(`<div class=\"it ${ex.on?\"on\":\"\"}\"><label class=\"ck\"><input type=\"checkbox\" ${ex.on?\"checked\":\"\"}></label><div class=\"ic\">${unitPic(it.p,ex.v,style(),{scale:.08})}</div><div class=\"tx\"><b>${it.t}</b><span>${ex.v.label||ex.v.size||it.s}${ex.v.label?\" \\xB7 \"+it.s:\"\"}</span></div><div class=\"pr2\">${GBP(ex.v.price*ex.qty)}</div><button class=\"ad\">${done?\"In cart \\xB7 change\":\"Choose\"}</button></div>`);r.querySelector(\"input\").onchange=e=>{ex.on=e.target.checked,r.classList.toggle(\"on\",ex.on),updateProduct()},r.querySelector(\".ad\").onclick=()=>openQuick(it.p,{qty:ex.qty,variant:ex.v,onAdd:()=>{ex.on=!1}}),box2.appendChild(r)})}function extrasTotal(){return Object.values(S.extras||{}).filter(e=>e.on).reduce((a,e)=>a+e.v.price*e.qty,0)}function addCurrent(){const p=byId(S.product);addItem(p,S.variant,S.qty,S.assembled,!0);let n=0;Object.entries(S.extras||{}).forEach(([k,e])=>{if(e.on){const it=extrasFor(p,S.variant).find(x=>x.key===k);it&&(addItem(it.p,e.v,e.qty,!1,!0),n++,e.on=!1)}}),renderBasket(),updateProduct(),openSheet(p,n?`Unit + ${n} extra${n>1?\"s\":\"\"} added`:null)}function updateProduct(){const st=style(),p=byId(S.product),cab=isCab(p);let v=S.variant;const buy=document.querySelector(\".buy\");if(!buy)return;const pw=buy.querySelector(\"#pw\");if(pw.innerHTML=\"\",!cab)p.variants.forEach(x=>{const b=el(`<button class=\"pill ${x.sku===v.sku?\"on\":\"\"}\">${x.hex?`<span class=\"sw\" style=\"background:${x.hex};margin:0 auto 3px;width:18px;height:18px\"></span>`:\"\"}<b style=\"font-family:var(--body)\">${x.label||x.size||\"Standard\"}</b><small>${GBP(x.price)}</small></button>`);b.onclick=()=>{S.variant=x,updateProduct()},pw.appendChild(b)});else{const gap=parseInt(S.gap)||0;p.widths.forEach(w=>{const best=p.variants.filter(x=>x.w===w).find(x=>x.d===v.d&&x.h===v.h&&(x.doors===v.doors||!x.doors||!v.doors))||defaultVariant(p,w),delta=best.price-v.price,fits=gap&&w<=gap,b=el(`<button class=\"pill ${w===v.w?\"on\":\"\"} ${gap&&!fits?\"dim\":\"\"} ${fits?\"fit\":\"\"}\"><b>${w}</b><small>${w===v.w?GBP(best.price):(delta>=0?\"+\":\"\\u2013\")+GBP(Math.abs(delta))}</small></button>`);b.onclick=()=>{S.variant=best,updateProduct()},pw.appendChild(b)}),buy.querySelector(\"#wlab\").textContent=p.widths.length+\" widths \\xB7 mm\";const gm=buy.querySelector(\"#gapmsg\");if(gap){const fit=p.widths.filter(w=>w<=gap),big=fit[fit.length-1];gm.innerHTML=big?`<b style=\"color:var(--ok)\">${big}mm</b> is the widest that fits a ${gap}mm gap${gap-big>0?`, leaving ${gap-big}mm for a filler`:\"\"}.`:\"Nothing this narrow. Try a filler panel instead.\"}else gm.textContent=\"Type the space you have and we'll highlight every width that fits.\";const atW=p.variants.filter(x=>x.w===v.w),norm=(x,k)=>k===\"doors\"?x.doors||\"\":x[k]||0,KEYS=[\"doors\",\"d\",\"h\"],seg=(rowId,segId,key,fmt)=>{const row=buy.querySelector(\"#\"+rowId),sEl=buy.querySelector(\"#\"+segId),cand=atW.filter(x=>KEYS.filter(k=>k!==key).every(k=>norm(x,k)===norm(v,k)));let vals=[...new Set(atW.map(x=>norm(x,key)))].filter(x=>x!==\"\");if(key!==\"doors\"&&vals.sort((a,b)=>a-b),vals.length<2){row.classList.add(\"hidden\");return}row.classList.remove(\"hidden\"),sEl.innerHTML=\"\",vals.forEach(val=>{const cur=norm(v,key)===val,match=cand.find(x=>norm(x,key)===val)||atW.find(x=>norm(x,key)===val),b=el(`<button class=\"${cur?\"on\":\"\"}\">${fmt(val)}<small>${cur?\"selected\":match.price===v.price?\"same price\":(match.price>v.price?\"+\":\"\\u2013\")+GBP(Math.abs(match.price-v.price))}</small></button>`);b.onclick=()=>{S.variant=match,updateProduct()},sEl.appendChild(b)})};seg(\"rdoors\",\"sdoors\",\"doors\",x=>x),seg(\"rdepth\",\"sdepth\",\"d\",x=>x?x+\"mm deep\":p.family===\"wall\"?\"Standard\":\"560mm standard\"),seg(\"rheight\",\"sheight\",\"h\",x=>x?x+\"mm high\":p.family===\"wall\"?\"720mm\":\"Standard\");const asm=buy.querySelector(\"#asm\");asm.innerHTML=\"\",[[!1,\"Flatpack\",\"Included\",\"\"],[!0,\"Ready assembled\",\"+\"+GBP(ASSEMBLY)+\" each\",\"\"]].forEach(([val,t,pr])=>{const b=el(`<button class=\"${S.assembled===val?\"on\":\"\"}\"><b>${t}</b><span class=\"pr\">${pr}</span></button>`);b.onclick=()=>{S.assembled=val,updateProduct()},asm.appendChild(b)})}v=S.variant;const unit=unitPrice(p,v,S.assembled),line=unit*S.qty;renderComplete(p,v);const fl=buy.querySelector(\"#finlab\");fl&&(fl.textContent=st.name);const oc=document.getElementById(\"ocarc\");oc&&(oc.textContent=unitH(p,v)+\"mm\");const od=document.getElementById(\"odoor\");od&&(od.textContent=\"18mm MDF \"+st.finish.toLowerCase()+\" slab edged in \"+st.colour);const ext=extrasTotal(),total=line+ext,extN=Object.values(S.extras||{}).filter(e=>e.on).length,name=cab?`${v.w}mm ${p.name}${v.d?\" \\xB7 \"+v.d+\"mm deep\":\"\"}${v.h?\" \\xB7 \"+v.h+\"mm high\":\"\"}`:`${p.name}${v.label?\" \\xB7 \"+v.label:v.size?\" \"+v.size:\"\"}`;buy.querySelector(\"#pn\").textContent=name,buy.querySelector(\"#psku\").textContent=\"SKU \"+v.sku+(needsStyle(p)?\"-\"+(st.suffix||st.id):\"\"),buy.querySelector(\"#pprice\").textContent=GBP(line),buy.querySelector(\"#pex\").innerHTML=\"inc VAT \\xB7 \"+GBP(line/1.2)+\" ex VAT\"+(S.assembled?\" \\xB7 <b>assembled</b>\":\"\"),buy.querySelector(\"#pkl\").textContent=\"3 \\xD7 \"+GBP(line/3),buy.querySelector(\"#k3\").textContent=\"3 \\xD7 \"+GBP(total/3),buy.querySelector(\"#qv\").textContent=S.qty,buy.querySelector(\"#addp\").textContent=GBP(total),buy.querySelector(\"#addl\").textContent=extN?`Add unit + ${extN} extra${extN>1?\"s\":\"\"}`:\"Add to cart\",buy.querySelector(\"#ctasub\").innerHTML=extN?`Unit ${GBP(line)} + extras ${GBP(ext)}`:\"\",document.getElementById(\"sb-nm\").innerHTML=name+\"<small>\"+(needsStyle(p)?st.name+\" \\xB7 \":\"\")+(cab?(S.assembled?\"assembled\":\"flatpack\")+\" \\xB7 \":\"\")+\"qty \"+S.qty+(extN?\" \\xB7 +\"+extN+\" extras\":\"\")+\"</small>\",document.getElementById(\"sb-p\").textContent=GBP(total);const sh=shipInfo();buy.querySelector(\"#tl\").innerHTML=`<div class=\"st now\"><i></i><b>Order today</b><em>${fmtD(new Date)}</em></div><div class=\"st\"><i></i><b>Dispatched</b><em>${fmtD(sh.dispatch)}</em></div><div class=\"st\"><i></i><b>Delivered</b><em>${fmtD(sh.from)} \\u2013 ${fmtD(sh.to)}</em></div>`;const sub=basketTotal()+total,rem=Math.max(0,FREE-sub);buy.querySelector(\"#dlv\").classList.toggle(\"free\",rem===0),buy.querySelector(\"#dt\").innerHTML=rem>0?`Add this and you're <b>${GBP(rem)}</b> from free delivery`:'<b class=\"unl\">Free delivery unlocked</b> with this in your cart',buy.querySelector(\"#db\").textContent=GBP(Math.min(sub,FREE))+\" / \"+GBP(FREE),buy.querySelector(\"#dbar\").style.width=Math.min(100,sub/FREE*100)+\"%\";const H=cab?unitH(p,v):\"\";(document.getElementById(\"specs\")||{}).innerHTML=cab?`<table><tr><td>Width</td><td>${v.w} mm</td></tr><tr><td>Height (carcass)</td><td>${H} mm${p.family===\"base\"?\" + 150 mm legs\":\"\"}</td></tr><tr><td>Depth</td><td>${v.d||(p.family===\"wall\"?300:560)} mm</td></tr><tr><td>Carcass</td><td>18 mm white</td></tr><tr><td>Doors</td><td>${v.doors||\"As pictured\"}</td></tr><tr><td>Handles needed</td><td>${handleCount(p,v)}</td></tr><tr><td>Weight (approx)</td><td>${Math.round(v.w/1e3*H/1e3*42+8)} kg</td></tr></table>`:`<table><tr><td>Option</td><td>${v.label||v.size||\"Standard\"}</td></tr>${needsStyle(p)?`<tr><td>Finish</td><td>${st.name}</td></tr>`:\"\"}<tr><td>Thickness</td><td>${p.family===\"worktops\"?\"38\":\"18\"} mm</td></tr></table>`,renderAdvisor(p),renderGallery(p,v,st),renderRail()}function renderGallery(p,v,st){const cab=isCab(p),g3=document.getElementById(\"g3d\"),gs=document.getElementById(\"gsvg\"),tag=document.getElementById(\"gtag\"),H=cab?unitH(p,v):0;document.querySelectorAll(\"#gthumbs button\").forEach(b=>b.classList.toggle(\"on\",b.dataset.v===S.view));const is3d=S.view===\"3d\";if(g3.classList.toggle(\"hidden\",!is3d),gs.classList.toggle(\"hidden\",is3d),document.getElementById(\"dims\").innerHTML=cab?`<span>W <b>${v.w}</b></span><span>H <b>${H}</b></span><span>D <b>${v.d||(p.family===\"wall\"?300:560)}</b></span><span>mm</span>`:`<b>${v.label||v.size||\"\"}</b>`,tag.textContent=is3d?\"Drag to rotate \\xB7 scroll to zoom\":S.view===\"room\"?\"Shown in a typical L-shape kitchen\":needsStyle(p)?\"Shown in \"+st.name:\"\",is3d){const t=ensure3D(g3);if(!t)return S.view=\"front\",renderGallery(p,v,st);for(;t.group.children.length;)t.group.remove(t.group.children[0]);const W=cab?v.w:p.family===\"worktops\"?3e3:400,D=cab?p.family===\"wall\"?WALL_D:v.d||BASE_D:p.family===\"worktops\"?600:60;let u;if(cab)u=unit3D(p,v,st);else if(p.family===\"worktops\")u=new THREE.Group,u.add(box(3e3,40,600,mat(p.hex,!1),0,0,0));else if(p.family===\"handles\"){u=new THREE.Group;const L=p.len+40;u.add(box(L,12,12,mat(v.hex||\"#B9BDC2\",!0),0,30,0)),u.add(box(10,30,10,mat(v.hex||\"#B9BDC2\",!0),16,0,1)),u.add(box(10,30,10,mat(v.hex||\"#B9BDC2\",!0),L-26,0,1))}else u=new THREE.Group,u.add(box(W,/panel|door/.test(p.name.toLowerCase())?720:150,18,mat(st.hex,st.finish===\"Gloss\"),0,0,0));const HH=cab?H+(p.family===\"base\"||p.family===\"appliance\"&&H<=1250?150:0):p.family===\"handles\"?60:p.family===\"worktops\"?40:720,floor=box(Math.max(W,1200)*3,10,Math.max(D,600)*4,floorMat(),-Math.max(W,1200),-12,-Math.max(D,600)*2,!1);floor.receiveShadow=!0,t.group.add(floor),t.group.add(box(Math.max(W,1200)*3,2600,60,mat(\"#D3DCE3\",!1),-Math.max(W,1200),0,-80,!1)),cab&&p.family===\"wall\"&&(u.position.y=WALL_BOTTOM),t.group.add(u);const bb=new THREE.Box3().setFromObject(u),cc=bb.getCenter(new THREE.Vector3),sz=bb.getSize(new THREE.Vector3);t.target.copy(cc);const diag=Math.max(sz.x,sz.y*1.15,sz.z);Object.assign(t.cam,{th:.62,ph:1.22,r:diag*1.9+400}),t.upd(),t.pickables=[],t.labels=[],t.onClick=null,t.onHover=null,t.auto=!0,t.dirty=!0}else if(S.view===\"room\"){const url=styleSnapshot(st);gs.innerHTML=url?`<img src=\"${url}\" alt=\"\">`:'<div class=\"kmuted\">3D not available</div>'}else{const maxW=cab?Math.max(...p.widths):1e3,Hmax=cab?(Math.max(...p.variants.map(x=>x.h||0))||H)+(p.family===\"base\"?150:0)+(S.view===\"dims\"?80:0):300,scale=Math.min(520/maxW,420/Hmax,.42);gs.innerHTML=picSVG(p,cab?{w:v.w,h:v.h,doors:v.doors}:v,st,{scale,open:S.view===\"open\",dims:S.view===\"dims\",big:!0})}}function snapGroup(key,build,cam,w=480,h=360){if(SNAP[key])return SNAP[key];if(typeof THREE>\"u\")return null;try{if(!SNAP._r){const r2=new THREE.WebGLRenderer({antialias:!0,preserveDrawingBuffer:!0});r2.setPixelRatio(1),setupRenderer(r2),SNAP._r=r2,SNAP._s=makeScene(),applyEnv(r2,SNAP._s),SNAP._c=new THREE.PerspectiveCamera(38,w/h,50,6e4)}const r=SNAP._r,s=SNAP._s,c=SNAP._c;r.setSize(w,h,!1),c.aspect=w/h,c.updateProjectionMatrix();const g=build();s.add(g),c.position.set(cam.t.x+cam.r*Math.sin(cam.ph)*Math.sin(cam.th),cam.t.y+cam.r*Math.cos(cam.ph),cam.t.z+cam.r*Math.sin(cam.ph)*Math.cos(cam.th)),c.lookAt(cam.t),r.render(s,c);const url=r.domElement.toDataURL(\"image/jpeg\",.86);return s.remove(g),SNAP[key]=url,url}catch{return null}}function unitStage(p,v,st){const cab=isCab(p),W=cab?v.w:p.family===\"worktops\"?3e3:p.family===\"handles\"?p.len+60:400,D=cab?p.family===\"wall\"?WALL_D:v.d||BASE_D:p.family===\"worktops\"?600:60;let u;if(cab)u=unit3D(p,v,st);else if(p.family===\"worktops\")u=new THREE.Group,u.add(box(3e3,40,600,mat(p.hex,!1),0,0,0));else if(p.family===\"handles\"){u=new THREE.Group;const L=p.len+40;u.add(box(L,12,12,mat(v.hex||\"#B9BDC2\",!0),0,30,0)),u.add(box(10,30,10,mat(v.hex||\"#B9BDC2\",!0),16,0,1)),u.add(box(10,30,10,mat(v.hex||\"#B9BDC2\",!0),L-26,0,1))}else{const n=p.name.toLowerCase(),h=/plinth|cornice|pelmet/.test(n)?150:/filler|post/.test(n)?720:/end panel|backing/.test(n)?870:/larder/.test(n)?1245:/drawer/.test(n)?140:715,w=/plinth|cornice|pelmet|fly/.test(n)?1200:/filler|post/.test(n)?100:/panel/.test(n)?600:500;u=new THREE.Group,u.add(box(w,h,18,mat(st.hex,st.finish===\"Gloss\"),0,0,0))}const H=cab?unitH(p,v)+(p.family===\"base\"||p.family===\"appliance\"&&unitH(p,v)<=1250?150:0):p.family===\"handles\"?60:p.family===\"worktops\"?40:720,g=new THREE.Group,fw=Math.max(W,1200),fl=box(fw*4,10,Math.max(D,600)*5,mat(\"#C9D2D9\",!1),-fw*1.5,-12,-Math.max(D,600)*2,!1);fl.receiveShadow=!0,g.add(fl),g.add(box(fw*4,2600,60,mat(\"#D3DCE3\",!1),-fw*1.5,0,-80,!1)),cab&&p.family===\"wall\"&&(u.position.y=WALL_BOTTOM),!cab&&p.family!==\"worktops\"&&p.family!==\"handles\"&&(u.position.y=p.family===\"trims\"&&/plinth|cornice|pelmet/.test(p.name.toLowerCase())?0:150),g.add(u);const bb=new THREE.Box3().setFromObject(u),c=bb.getCenter(new THREE.Vector3),sz=bb.getSize(new THREE.Vector3),diag=Math.max(sz.x,sz.y*1.15,sz.z);if(p.family===\"worktops\")return{g,cam:{t:new THREE.Vector3(520,40,320),th:.55,ph:1.05,r:1150}};if(p.family===\"handles\")return{g,cam:{t:c,th:.5,ph:1.15,r:diag*1.4+160}};if(!cab){const n=p.name.toLowerCase();return/plinth|cornice|pelmet|fly/.test(n)?{g,cam:{t:new THREE.Vector3(420,75,10),th:.5,ph:1.1,r:950}}:/filler|post/.test(n)?{g,cam:{t:c,th:.6,ph:1.2,r:1500}}:{g,cam:{t:c,th:.55,ph:1.22,r:diag*1.5+250}}}return{g,cam:{t:c,th:.62,ph:1.22,r:diag*1.75+350}}}function unitSnap(p,v,st,w=400,h=300){const key=\"u:\"+p.id+\":\"+(v.sku||\"\")+\":\"+(needsStyle(p)?st.id:\"\")+\":\"+w;return snapGroup(key,()=>unitStage(p,v,st).g,unitStage(p,v,st).cam,w,h)}function unitPic(p,v,st,fallbackOpts){const url=unitSnap(p,v,st);return url?`<img src=\"${url}\" alt=\"\" class=\"snap\">`:picSVG(p,v,st,fallbackOpts||{scale:.16})}const SPOT_ICON=k=>({sink:'<path d=\"M4 11h16v6a3 3 0 0 1-3 3H7a3 3 0 0 1-3-3z\"/><path d=\"M12 11V5M9 5h6\"/>',hob:'<rect x=\"3\" y=\"7\" width=\"18\" height=\"12\" rx=\"2\"/><circle cx=\"8\" cy=\"13\" r=\"2\"/><circle cx=\"16\" cy=\"13\" r=\"2\"/>',oven:'<rect x=\"4\" y=\"4\" width=\"16\" height=\"16\" rx=\"2\"/><rect x=\"7\" y=\"10\" width=\"10\" height=\"7\"/><path d=\"M7 7h2M11 7h2\"/>',dishwasher:'<rect x=\"4\" y=\"3\" width=\"16\" height=\"18\" rx=\"2\"/><path d=\"M4 8h16M8 5.5h.01\"/><circle cx=\"12\" cy=\"14\" r=\"3\"/>',corner:'<path d=\"M4 20V4h16\"/><path d=\"M4 12h8V4\"/>',drawers:'<rect x=\"4\" y=\"4\" width=\"16\" height=\"16\" rx=\"2\"/><path d=\"M4 9h16M4 14h16M10 6.5h4M10 11.5h4M10 16.5h4\"/>',storage:'<rect x=\"4\" y=\"4\" width=\"16\" height=\"16\" rx=\"2\"/><path d=\"M12 4v16M9 11v2M15 11v2\"/>',extractor:'<path d=\"M3 14h18l-3-6H6z\"/><path d=\"M12 8V3\"/>',boiler:'<rect x=\"6\" y=\"3\" width=\"12\" height=\"18\" rx=\"2\"/><circle cx=\"12\" cy=\"9\" r=\"2\"/><path d=\"M9 15h6\"/>',microwave:'<rect x=\"3\" y=\"6\" width=\"18\" height=\"12\" rx=\"2\"/><rect x=\"6\" y=\"9\" width=\"8\" height=\"6\"/><path d=\"M17 9v6\"/>',fridge:'<rect x=\"6\" y=\"2\" width=\"12\" height=\"20\" rx=\"2\"/><path d=\"M6 10h12M9 6v2M9 13v3\"/>',food:'<path d=\"M6 3h12v18H6z\"/><path d=\"M6 9h12M6 15h12\"/>',pullout:'<rect x=\"4\" y=\"3\" width=\"16\" height=\"18\" rx=\"2\"/><path d=\"M9 3v18M13 8h4M13 12h4M13 16h4\"/>'})[k]||\"\",SPOTS={sink:\"Sink\",hob:\"Hob\",oven:\"Built-under oven\",dishwasher:\"Dishwasher / washer\",corner:\"Corner\",drawers:\"Cutlery & utensils\",storage:\"General storage\",extractor:\"Extractor\",boiler:\"Boiler\",microwave:\"Microwave\",fridge:\"Fridge freezer\",food:\"Food & dry goods\",pullout:\"Pull-out baskets\"},ADVICE2={base:[[\"sink\",\"sink-base-unit\",\"A sink base has an open top so the bowl drops in.\"],[\"hob\",\"pan-drawer-base\",\"Pan drawers under the hob keep pots where you cook.\"],[\"oven\",\"built-under-oven-housing\",\"A built-under housing sits the oven below the worktop.\"],[\"dishwasher\",null,\"No unit needed. Leave a 600mm gap, add a matching plinth and filler.\"],[\"corner\",\"highline-corner-base\",\"A corner base uses the dead corner with one door.\"],[\"drawers\",\"4-drawer-base\",\"Four drawers sort the small stuff.\"],[\"storage\",\"highline-base-unit\",\"A highline base is the simplest, cheapest cupboard.\"]],wall:[[\"extractor\",\"top-box\",\"A top box sits over the extractor or hob.\"],[\"corner\",\"corner-wall-unit\",\"A corner wall unit turns the corner cleanly.\"],[\"boiler\",\"boiler-housing\",\"A boiler housing hides it behind a door.\"],[\"microwave\",\"microwave-wall-housing\",\"Open shelf for the microwave, cupboard above.\"],[\"storage\",\"wall-unit\",\"A standard wall unit, 1 or 2 doors.\"]],tall:[[\"food\",\"tall-larder\",\"A tall larder, shelved top to bottom.\"],[\"corner\",\"tall-corner-larder\",\"A corner larder uses the tall corner.\"]],appliance:[[\"oven\",\"single-oven-housing\",\"Single oven at eye level.\"],[\"microwave\",\"oven-microwave-housing\",\"Oven and microwave in one tower.\"],[\"fridge\",\"fridge-freezer-housing\",\"Integrated fridge freezer, hidden behind doors.\"]]};function spotTile(k,on){return`<button class=\"spot ${on?\"on\":\"\"}\" data-spot=\"${k}\"><span class=\"si\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\">${SPOT_ICON(k)}</svg></span><span>${SPOTS[k]}</span></button>`}function resultCard(pid,why,current){if(!pid)return`<div class=\"rc none\"><div class=\"rct\"><b>No unit needed here.</b><span>${why}</span></div></div>`;const q2=byId(pid),st=style(),dv=defaultVariant(q2),same=current&&current.id===pid;return`<div class=\"rc ${same?\"ok\":\"\"}\"><div class=\"rcp\">${unitPic(q2,{w:Math.min(dv.w,800),h:dv.h,doors:dv.doors},st)}</div><div class=\"rct\"><small>${same?\"You're on the right unit\":\"Better fit\"}</small><b>${q2.name}</b><span>${why}</span><div class=\"rca\"><span class=\"pr\">from ${GBP(q2.from)}</span>${same?'<span class=\"ok2\">\\u2713 Keep going</span>':`<button class=\"sw2\" data-sw=\"${pid}\">${current?\"Switch to this\":\"See this unit\"} \\u2192</button>`}</div></div></div>`}function renderAdvisor(p){const box2=document.querySelector(\"#advisor\"),list=ADVICE2[p.family];if(!list){box2.innerHTML=\"\";return}box2.innerHTML=`<div class=\"adv2\"><div class=\"q\"><i>?</i><div><b>Not sure it's the right unit?</b><span>Tap what's going in this spot and we'll check in 10 seconds.</span></div><em></em></div><div class=\"body\"><div class=\"spots\">${list.map(([k])=>spotTile(k,!1)).join(\"\")}</div><div class=\"res\"></div></div></div>`;const A=box2.querySelector(\".adv2\");A.querySelector(\".q\").onclick=()=>A.classList.toggle(\"open\"),A.querySelectorAll(\".spot\").forEach(b=>b.onclick=()=>{A.querySelectorAll(\".spot\").forEach(x=>x.classList.toggle(\"on\",x===b));const[k,pid,why]=list.find(x=>x[0]===b.dataset.spot),r=A.querySelector(\".res\");r.innerHTML=resultCard(pid,why,p),r.classList.add(\"show\");const g=r.querySelector(\"[data-sw]\");g&&(g.onclick=e=>{e.stopPropagation(),CJ.switchUnit(g.dataset.sw)}),A.classList.add(\"open\")})}function helpChoose(f){const list=ADVICE2[f.id];if(!list)return null;const H=el(`<div class=\"hc\"><div class=\"hch\"><div class=\"hci\">?</div><div><b>Help me choose</b><span>What's going in this spot?</span></div><button class=\"hcx hidden\">Show all ${famCount(f.id)}</button></div><div class=\"spots\">${list.map(([k])=>spotTile(k,!1)).join(\"\")}</div><div class=\"res\"></div></div>`);return H.querySelectorAll(\".spot\").forEach(b=>b.onclick=()=>{const on=b.classList.contains(\"on\");H.querySelectorAll(\".spot\").forEach(x=>x.classList.remove(\"on\"));const r=H.querySelector(\".res\");if(on){r.innerHTML=\"\",r.classList.remove(\"show\"),document.querySelectorAll(\".cards .card\").forEach(c=>c.classList.remove(\"dim\",\"rec\")),H.querySelector(\".hcx\").classList.add(\"hidden\");return}b.classList.add(\"on\");const[k,pid,why]=list.find(x=>x[0]===b.dataset.spot);r.innerHTML=resultCard(pid,why,null),r.classList.add(\"show\"),H.querySelector(\".hcx\").classList.remove(\"hidden\");const g=r.querySelector(\"[data-sw]\");g&&(g.onclick=e=>{e.stopPropagation(),CJ.switchUnit(g.dataset.sw)}),document.querySelectorAll(\".cards .card\").forEach(c=>{const hit=c.dataset.pid===pid;c.classList.toggle(\"dim\",!!pid&&!hit),c.classList.toggle(\"rec\",hit),hit&&c.scrollIntoView({behavior:\"smooth\",block:\"center\"})})}),H.querySelector(\".hcx\").onclick=()=>{H.querySelector(\".spot.on\")?.click()},H}const POPULAR={\"highline-base-unit\":\"Most popular\",\"pan-drawer-base\":\"Best under a hob\",\"sink-base-unit\":\"Most sinks\",\"wall-unit\":\"Most popular\",\"tall-larder\":\"Most popular\",\"single-oven-housing\":\"Most popular\"};function cardFor(p,st,opts={}){const dv=defaultVariant(p),cab=isCab(p),optsTags=[];cab&&(p.depths.length>1&&optsTags.push(\"Depth options\"),p.heights.length>1&&optsTags.push(\"Height options\"),p.doorsOpts.filter(Boolean).length>1&&optsTags.push(\"1 or 2 doors\"));const sizes=cab?p.widths.length>1?p.widths[0]+\"\\u2013\"+p.widths[p.widths.length-1]+\"mm \\xB7 \"+p.widths.length+\" widths\":p.widths[0]+\"mm\":p.family===\"trims\"?p.sizes.length+\" size\"+(p.sizes.length>1?\"s\":\"\"):p.variants.length+\" options\",c=el(`<button class=\"card c2\" data-pid=\"${p.id}\">${p.placeholder?'<span class=\"phl tagl\">Placeholder range</span>':POPULAR[p.id]?`<span class=\"tagl pop\">${POPULAR[p.id]}</span>`:\"\"}<span class=\"recb\">Recommended</span><div class=\"pic\"></div><div class=\"cb\"><b>${p.name}</b><div class=\"bl\">${p.blurb}</div>${optsTags.length?'<div class=\"opts\">'+optsTags.map(o=>`<span class=\"opt\">${o}</span>`).join(\"\")+\"</div>\":\"\"}<div class=\"ft\"><span class=\"w\">${sizes}</span><span class=\"pr\">${p.variants.length>1?\"<small>from</small> \":\"\"}${GBP(p.from)}</span></div></div><span class=\"cfgb\">${opts.quick?\"Quick shop\":\"Configure\"} \\u2192</span></button>`);return c.querySelector(\".pic\").innerHTML=unitPic(p,cab?{w:Math.min(dv.w,800),h:dv.h,doors:dv.doors}:dv,st,{scale:.16}),c.onclick=()=>{if(opts.quick){openQuick(p);return}go(\"product\",{id:p.id})},c}function vUnits(){const V=document.getElementById(\"view\"),f=fam(S.family),st=style(),noStyle=f.id===\"handles\"||f.id===\"worktops\";V.appendChild(el('<div class=\"crumbs\"></div>'));const isParts=noStyle||f.id===\"trims\";V.appendChild(el(`<div class=\"ttl\"><div><div class=\"eyebrow\">${isParts?\"Parts\"+(f.id===\"trims\"?\" \\xB7 matched to \"+st.name:\" \\xB7 fit any style\"):\"Step 2 of 2 \\xB7 \"+st.name}${f.placeholder?' \\xB7 <span class=\"phl\">placeholder range, prices to confirm</span>':\"\"}</div><h1>${f.name.replace(/ (\\S+)$/,\" <em>$1</em>\")}</h1><p>${f.blurb} ${isCab({family:f.id})?\"Pick what the unit needs to do. Sizes come next.\":\"\"}</p></div>${f.id===\"base\"||f.id===\"wall\"?'<div class=\"bact\"><button class=\"hbtn ghost\" id=\"tobuilder\">Whole run or kitchen? Open the builder</button></div>':\"\"}</div>`));const tb=V.querySelector(\"#tobuilder\");if(tb&&(tb.onclick=()=>go(\"builder\")),f.id===\"trims\"){const strip=el('<div class=\"stylestrip\"><b>Matching colour:</b></div>');DATA.styles.forEach(s2=>{const b=el(`<button class=\"swbtn ${s2.id===st.id?\"on\":\"\"}\"><span class=\"sw ${s2.finish===\"Gloss\"?\"gloss\":\"\"}\" style=\"background:${s2.hex}\"></span>${s2.name}</button>`);b.onclick=()=>{S.style=s2.id;try{localStorage.setItem(\"kb-style\",s2.id)}catch{}render()},strip.appendChild(b)}),V.appendChild(strip)}const hc=helpChoose(f);hc&&V.appendChild(hc);const wrapEl=el('<div class=\"units\"></div>'),jump=el('<nav class=\"jump\" aria-label=\"Groups\"></nav>'),main=el(\"<div></div>\");f.groups.forEach(g=>{const ps=DATA.products.filter(p=>p.family===f.id&&p.group===g.id);if(!ps.length)return;jump.appendChild(el(`<a href=\"#\" data-j=\"${g.id}\">${g.name}<small>${ps.length} ${ps.length===1?\"type\":\"types\"}</small></a>`));const sec=el(`<section class=\"grp\" id=\"g-${g.id}\"><h2>${g.name}</h2><p class=\"sub\">${g.blurb}</p><div class=\"cards\"></div></section>`),cards=sec.querySelector(\".cards\");ps.forEach(p=>cards.appendChild(cardFor(p,st))),main.appendChild(sec)}),wrapEl.appendChild(jump),wrapEl.appendChild(main),V.appendChild(wrapEl),jump.querySelectorAll(\"a\").forEach(a=>a.onclick=e=>{e.preventDefault(),document.getElementById(\"g-\"+a.dataset.j).scrollIntoView({behavior:\"smooth\"})}),S.jo=new IntersectionObserver(es=>{es.forEach(e=>{e.isIntersecting&&jump.querySelectorAll(\"a\").forEach(a=>a.classList.toggle(\"on\",a.dataset.j===e.target.id.slice(2)))})},{rootMargin:\"-20% 0px -70% 0px\"}),main.querySelectorAll(\".grp\").forEach(g=>S.jo.observe(g))}function vHome(){const V=document.getElementById(\"view\"),sp2=showcasePrice(),st=DATA.styles[4],hero=el(`<section class=\"home\"><div class=\"hh\"><div class=\"eyebrow\">Start here</div><h1>What are you here <em>for today?</em></h1><p>Four ways in. Same cart, so you can switch at any point.</p><div class=\"hcta\"><button class=\"add\" id=\"h1\">Buy components <span>\\u2192</span></button><button class=\"hbtn ghost\" id=\"h2\">Plan a full kitchen</button></div><div class=\"hproof\"><span class=\"hpk\">\\u2713</span> UK manufactured <span class=\"hpk\">\\u2713</span> 18mm carcasses <span class=\"hpk\">\\u2713</span> Price match &amp; beat</div></div><div class=\"hero3d\" id=\"home3d\"><div class=\"herotag\">${st.name} \\xB7 L-shape as shown from ${GBP(priceIn(st,()=>showcasePrice().p))}</div></div></section>`);V.appendChild(hero),hero.querySelector(\"#h1\").onclick=()=>{S.mode=\"components\",go(\"place\")},hero.querySelector(\"#h2\").onclick=()=>{S.mode=\"kitchen\",go(\"plan\",{restart:!0})};const modes=el('<div class=\"modes big\"></div>'),hl=byId(\"highline-base-unit\"),wt=byId(\"oakblock\"),hb=byId(\"bar160\"),arts={components:unitSnap(hl,defaultVariant(hl,600),st,720,440),kitchen:styleSnapshot(st),parts:snapGroup(\"parts\",()=>{const g=new THREE.Group,fl=box(6e3,10,4e3,floorMat(),-2e3,-12,-1500,!1);return fl.receiveShadow=!0,g.add(fl),g.add(box(6e3,2600,60,mat(\"#D6DEE4\",!1),-2e3,0,-80,!1)),g.add(box(1800,40,600,mat(\"#C08A4B\",!1),0,150,0)),g.add(box(1800,150,20,mat(st.hex,!0),0,0,560)),g.add(box(200,12,12,mat(\"#B9BDC2\",!0),300,330,250)),g.add(box(10,30,10,mat(\"#B9BDC2\",!0),316,300,251)),g.add(box(10,30,10,mat(\"#B9BDC2\",!0),474,300,251)),g.add(box(200,12,12,mat(\"#2A2C31\",!1),900,330,250)),g},{t:new THREE.Vector3(700,230,300),th:.55,ph:1.2,r:1700},720,440)};[[\"components\",\"Buy components\",\"One cabinet, a few units, or a whole run. Tap where it goes, pick the size and colour, add it.\",\"Start with where it goes\",\"Most popular\",\"place\"],[\"kitchen\",\"Plan a full kitchen\",\"Measure the room, mark the doors and windows, pick which walls get units. We plan the whole kitchen in 3D, priced, with every part in the basket.\",\"Plan my kitchen\",\"New\",\"plan\"],[\"presets\",\"Pre-set kitchens\",\"Three designs in 8, 12 or 16 units, priced from the units added up minus a bundle saving. Pick the colour, then add the extras.\",\"See the pre-sets\",\"Save up to 10%\",\"presets\"],[\"parts\",\"Parts only\",\"Worktops, handles, plinths and panels. No cabinets needed.\",\"Browse parts\",\"\",\"parts\"]].forEach(([k,t2,d,cta,tag,dest])=>{const b=el(`<button class=\"mode\"><span class=\"tg2 ${tag?\"\":\"hidden\"}\">${tag}</span><div class=\"art\">${arts[k]?`<img src=\"${arts[k]}\" alt=\"\">`:MODE_ART[k]||\"\"}</div><div class=\"tx\"><b>${t2}</b><span>${d}</span><span class=\"go\">${cta} <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\"><path d=\"M5 12h14M13 6l6 6-6 6\"/></svg></span></div></button>`);b.onclick=()=>{S.mode=k,dest===\"parts\"?go(\"parts\"):dest===\"presets\"?go(\"presets\"):dest===\"plan\"?go(\"plan\",{restart:!0}):go(\"style\")},modes.appendChild(b)}),V.appendChild(modes),V.appendChild(el(`<div class=\"how3\"><div class=\"eyebrow\">How it works</div><div class=\"hsteps\"><div><i>1</i><b>Tap where it goes</b><span>Base, wall, tall, worktop, handles. No filters.</span></div><div><i>2</i><b>Pick size &amp; colour</b><span>Slab edged doors in four matt colours. Free samples if you're torn.</span></div><div><i>3</i><b>Size it, add it</b><span>Width, depth, flatpack or assembled, plus the bits that aren't included.</span></div><div><i>4</i><b>Delivered on a pallet</b><span>Free over \\xA3${FREE}. Dispatched within ${CJ_DISPATCH} working days.</span></div></div></div>`)),V.appendChild(el(`<div class=\"homerow\"><div class=\"hcell\"><b>Doors, hinges &amp; legs included</b><span>Every cabinet. Nothing hidden.</span></div><div class=\"hcell\"><b>Flatpack or ready assembled</b><span>Assembled is +\\xA3${ASSEMBLY} per cabinet.</span></div><div class=\"hcell\"><b>Free delivery over \\xA3${FREE}</b><span>${GBP(CJ_DELIVERY)} below that, mainland UK.</span></div><div class=\"hcell\"><b>Pay in 3 with Klarna</b><span>Interest free, decision in seconds.</span></div><div class=\"hcell talk\"><b>Not sure where to start?</b><span>Send us your measurements and get a free plan.</span><button id=\"hometalk\">Talk to a planner</button></div></div>`)),V.querySelector(\"#hometalk\").onclick=()=>{S.help=!0,document.getElementById(\"hp\").classList.add(\"on\")};const host=V.querySelector(\"#home3d\"),t=ensure3D(host);if(t){for(;t.group.children.length;)t.group.remove(t.group.children[0]);const K=showcaseKit();t.group.add(kitchenGroup(K,st,{})),t.pickables=[],t.labels=[],t.onClick=null,t.onHover=null,camTo(t,\"hero\",K,0,!0),t.auto=!0}}const FAM_REP={base:[\"highline-base-unit\",600],wall:[\"wall-unit\",600],tall:[\"tall-larder\",500],appliance:[\"single-oven-housing\",600],trims:[\"acc-plinth\",null],worktops:[\"oakblock\",null],handles:[\"bar160\",null]};function famThumb(fid,st){const[pid,w]=FAM_REP[fid]||[],p=pid&&byId(pid);if(!p)return famIcon(fid);const v=w?defaultVariant(p,w):p.variants[0],url=unitSnap(p,v,st,360,270);return url?`<img src=\"${url}\" alt=\"\">`:famIcon(fid)}const PART_CATS=[[\"worktops\",\"lam\",\"Worktops\",\"oakblock\"],[\"handles\",\"bar\",\"Handles\",\"bar160\"],[\"trims\",\"plinth\",\"Plinth & cornice\",\"acc-plinth\"],[\"trims\",\"panels\",\"End & back panels\",\"acc-base-end-panel\"],[\"trims\",\"fillers\",\"Fillers & corner posts\",\"acc-filler-panel\"]];function vParts(){const V=document.getElementById(\"view\"),st=style();S.style||(S.style=\"white-matt\"),V.appendChild(el('<div class=\"crumbs\"></div>')),V.appendChild(el('<div class=\"ttl\"><div><div class=\"eyebrow\">Parts \\xB7 no cabinets needed</div><h1>Parts &amp; <em>finishing</em></h1><p>Worktops and handles fit any kitchen. Plinths, cornice and panels are colour matched, so pick the colour first.</p></div></div>'));const strip=el('<div class=\"stylestrip\"><b>Colour for plinths &amp; panels:</b></div>');DATA.styles.forEach(s2=>{const b=el(`<button class=\"swbtn ${s2.id===st.id?\"on\":\"\"}\"><span class=\"sw ${s2.finish===\"Gloss\"?\"gloss\":\"\"}\" style=\"background:${s2.hex}\"></span>${s2.name}</button>`);b.onclick=()=>{S.style=s2.id;try{localStorage.setItem(\"kb-style\",s2.id)}catch{}render()},strip.appendChild(b)}),V.appendChild(strip);const tiles=el('<div class=\"ptiles\"></div>');PART_CATS.forEach(([fid,gid,label,rep])=>{const n=DATA.products.filter(p2=>p2.family===fid&&(fid===\"handles\"?!0:p2.group===gid)).length,p=byId(rep)||DATA.products.find(x=>x.family===fid&&x.group===gid),v=p?p.variants[0]:null,url=p?unitSnap(p,v,st,360,270):null,t=el(`<button class=\"ptile\"><div class=\"pic\">${url?`<img src=\"${url}\" alt=\"\">`:p?picSVG(p,v,st):\"\"}</div><b>${label}</b><span>${n} ${n===1?\"option\":\"options\"} \\u2192</span></button>`);t.onclick=()=>document.getElementById(\"pg-\"+fid+\"-\"+gid).scrollIntoView({behavior:\"smooth\"}),tiles.appendChild(t)}),V.appendChild(tiles);const wrapEl=el('<div class=\"units\" style=\"margin-top:30px\"></div>'),jump=el('<nav class=\"jump\" aria-label=\"Groups\"></nav>'),main=el(\"<div></div>\");PART_CATS.forEach(([fid,gid,label])=>{const f=fam(fid),g=f.groups.find(x=>x.id===gid)||{blurb:\"\"},ps=DATA.products.filter(p=>p.family===fid&&(fid===\"handles\"?!0:p.group===gid));if(!ps.length)return;const id=\"pg-\"+fid+\"-\"+gid;jump.appendChild(el(`<a href=\"#\" data-j=\"${id}\">${label}<small>${ps.length} ${ps.length===1?\"option\":\"options\"}</small></a>`));const sec=el(`<section class=\"grp\" id=\"${id}\"><h2>${label}${fid===\"trims\"?` <span class=\"gcol\">in ${st.name}</span>`:\"\"}</h2><p class=\"sub\">${g.blurb||f.blurb}${f.placeholder?' \\xB7 <span class=\"phl\">placeholder range</span>':\"\"}</p><div class=\"cards\"></div></section>`),cards=sec.querySelector(\".cards\");ps.forEach(p=>cards.appendChild(cardFor(p,st))),main.appendChild(sec)}),wrapEl.appendChild(jump),wrapEl.appendChild(main),V.appendChild(wrapEl),jump.querySelectorAll(\"a\").forEach(a=>a.onclick=e=>{e.preventDefault(),document.getElementById(a.dataset.j).scrollIntoView({behavior:\"smooth\"})}),S.jo=new IntersectionObserver(es=>{es.forEach(e=>{e.isIntersecting&&jump.querySelectorAll(\"a\").forEach(a=>a.classList.toggle(\"on\",a.dataset.j===e.target.id))})},{rootMargin:\"-20% 0px -70% 0px\"}),main.querySelectorAll(\".grp\").forEach(g=>S.jo.observe(g))}GAPS.push([\"door\",\"Doorway\",900],[\"space\",\"Leave clear\",300]);const WZ_STEPS=[[\"shape\",\"Shape\"],[\"walls\",\"Walls\"],[\"openings\",\"Windows & doors\"],[\"services\",\"Water & gas\"],[\"appliances\",\"Appliances\"],[\"storage\",\"Storage\"],[\"style\",\"Style & finish\"]];function wizInit(){S.wiz={step:0,shape:\"L\",ceiling:2400,walls:[{len:3600,obs:[]},{len:2400,obs:[]},{len:3e3,obs:[]}],sink:{wall:0,from:1800},hob:{wall:0,from:800},app:{hob:\"induction\",oven:\"builtunder\",fridge:\"integrated\",dishwasher:\"600\",washer:\"no\",microwave:\"none\"},storage:{pref:\"balanced\",wallUnits:!0,larder:!0},style:S.style||\"cashmere-matt\",handle:{pid:\"bar160\",sku:null},worktop:\"oakblock\",sinkP:\"sink-inset-15\",tapP:\"tap-mono\",assembled:!1}}const wallsFor=w=>wallCount(w.shape),WNAME=i=>WALLNAMES[i];function vWizard(){const V=document.getElementById(\"view\");S.wiz||wizInit();const W=S.wiz;V.appendChild(el('<div class=\"crumbs\"></div>')),V.appendChild(el('<div class=\"wz\"><div class=\"wzl\"><div class=\"wzprog\" id=\"wzprog\"></div><div class=\"wzcard\" id=\"wzcard\"></div></div><div class=\"wzr\"><div class=\"wzplan\" id=\"wzplan\"></div><div class=\"wzhelp\" id=\"wzhelp\"></div></div></div>')),renderWizard()}function renderWizard(){const W=S.wiz,prog=document.getElementById(\"wzprog\"),card=document.getElementById(\"wzcard\");if(!card)return;prog.innerHTML=WZ_STEPS.map(([k2,l],i)=>`<button class=\"wzs ${i===W.step?\"on\":i<W.step?\"done\":\"\"}\" data-i=\"${i}\"><i>${i<W.step?\"\\u2713\":i+1}</i><span>${l}</span></button>`).join(\"\"),prog.querySelectorAll(\".wzs\").forEach(b=>b.onclick=()=>{+b.dataset.i<=W.step&&(W.step=+b.dataset.i,renderWizard())});const k=WZ_STEPS[W.step][0],nav=canSkip=>`<div class=\"wznav\">${W.step>0?'<button class=\"hbtn ghost\" data-prev>Back</button>':\"\"}<span class=\"wzsp\"></span>${canSkip?`<button class=\"wzskip\" data-skip>Skip this, I'll add it later</button>`:\"\"}<button class=\"add\" data-next><span style=\"font-family:var(--body);font-weight:800;font-size:16px\">${W.step===WZ_STEPS.length-1?\"Show me my kitchen\":\"Continue\"}</span><span>\\u2192</span></button></div>`;let html=\"\";if(k===\"shape\")html=`<div class=\"wzh\"><div class=\"eyebrow\">Step 1 of 7</div><h2>What shape is your kitchen?</h2><p>Count the walls that will have units on them. Islands come later.</p></div><div class=\"wzshapes\">${SHAPES.map(([id,n,d])=>`<button class=\"wzshape ${W.shape===id?\"on\":\"\"}\" data-shape=\"${id}\">${shapeIcon(id)}<b>${n}</b><small>${d}</small></button>`).join(\"\")}</div>${nav(!1)}`;else if(k===\"walls\")html=`<div class=\"wzh\"><div class=\"eyebrow\">Step 2 of 7</div><h2>How long is each wall?</h2><p>Wall to wall at worktop height, in millimetres. Round down to the nearest 10mm.</p></div><div class=\"wzwalls\">${W.walls.slice(0,wallsFor(W)).map((w,i)=>`<label class=\"wzin\"><span class=\"wl2\">${WNAME(i)}<small>${i===0?\"the wall you see first\":i===1?W.shape===\"galley\"?\"facing wall\":\"left of the corner\":\"right-hand wall\"}</small></span><span class=\"wzf\"><input inputmode=\"numeric\" value=\"${w.len}\" data-len=\"${i}\"><em>mm</em></span></label>`).join(\"\")}<label class=\"wzin\"><span class=\"wl2\">Ceiling height<small>floor to ceiling, lowest point</small></span><span class=\"wzf\"><input inputmode=\"numeric\" value=\"${W.ceiling}\" data-ceiling><em>mm</em></span></label></div><div class=\"wznote\">${W.ceiling<2300?\"Low ceiling: we'll use 1970mm tall units with room for cornice.\":\"We'll use 1970mm tall units (2150mm available on request).\"}</div>${nav(!1)}`;else if(k===\"openings\")html=`<div class=\"wzh\"><div class=\"eyebrow\">Step 3 of 7</div><h2>Any windows, doors or a boiler on these walls?</h2><p>Measure from the left corner, standing facing the wall. We keep units clear of doors and keep wall units off windows.</p></div>${W.walls.slice(0,wallsFor(W)).map((w,i)=>`<div class=\"wzob\"><div class=\"wzobh\"><b>${WNAME(i)}</b><span>${w.len}mm</span><span class=\"wzaddrow\"><button class=\"chip\" data-addob=\"${i}:window\">+ Window</button><button class=\"chip\" data-addob=\"${i}:door\">+ Door</button><button class=\"chip\" data-addob=\"${i}:boiler\">+ Boiler</button><button class=\"chip\" data-addob=\"${i}:radiator\">+ Radiator</button></span></div>${w.obs.length?w.obs.map((o,j)=>`<div class=\"wzobr\"><i class=\"ob ${o.type}\"></i><b>${o.type[0].toUpperCase()+o.type.slice(1)}</b><label>from left <input inputmode=\"numeric\" value=\"${o.from}\" data-ob=\"${i}:${j}:from\"><em>mm</em></label><label>width <input inputmode=\"numeric\" value=\"${o.w}\" data-ob=\"${i}:${j}:w\"><em>mm</em></label>${o.type===\"window\"?`<label>sill height <input inputmode=\"numeric\" value=\"${o.sill}\" data-ob=\"${i}:${j}:sill\"><em>mm</em></label>`:\"\"}<button class=\"wzrm\" data-rmob=\"${i}:${j}\">Remove</button></div>`).join(\"\"):'<div class=\"wzempty\">Nothing on this wall</div>'}</div>`).join(\"\")}${nav(!0)}`;else if(k===\"services\"){const walls=W.walls.slice(0,wallsFor(W)),sel=key=>walls.map((w,i)=>`<button class=\"chip ${W[key].wall===i?\"on\":\"\"}\" data-sv=\"${key}:${i}\">${WNAME(i)}</button>`).join(\"\");html=`<div class=\"wzh\"><div class=\"eyebrow\">Step 4 of 7</div><h2>Where are your water and gas points?</h2><p>The sink goes where the waste pipe is, the hob goes where the gas or cooker point is. We'll place everything else around them.</p></div><div class=\"wzsv\"><div class=\"wzsvb\"><div class=\"wzsvh\"><i class=\"ob sink\"></i><b>Sink &amp; waste</b></div><div class=\"chips\">${sel(\"sink\")}</div><label class=\"wzin\"><span class=\"wl2\">Centre of the waste pipe<small>from the left corner</small></span><span class=\"wzf\"><input inputmode=\"numeric\" value=\"${W.sink.from}\" data-sv=\"sink:from\"><em>mm</em></span></label></div><div class=\"wzsvb\"><div class=\"wzsvh\"><i class=\"ob hob\"></i><b>Hob / cooker point</b></div><div class=\"chips\">${sel(\"hob\")}</div><label class=\"wzin\"><span class=\"wl2\">Centre of the gas or cooker point<small>from the left corner</small></span><span class=\"wzf\"><input inputmode=\"numeric\" value=\"${W.hob.from}\" data-sv=\"hob:from\"><em>mm</em></span></label></div></div><div class=\"wznote\">Sockets don't move units, so we don't need them yet. Your fitter will position them to the plan.</div>${nav(!1)}`}else if(k===\"appliances\"){const A=W.app,opt=(key,vals)=>`<div class=\"wzopts\">${vals.map(([v,l,s])=>`<button class=\"wzopt ${A[key]===v?\"on\":\"\"}\" data-app=\"${key}:${v}\"><b>${l}</b>${s?`<small>${s}</small>`:\"\"}</button>`).join(\"\")}</div>`;html=`<div class=\"wzh\"><div class=\"eyebrow\">Step 5 of 7</div><h2>Which appliances are going in?</h2><p>We size the housings and leave the right gaps. Appliances themselves aren't included.</p></div>\n    <div class=\"wzq\"><b>Hob</b>${opt(\"hob\",[[\"induction\",\"Induction / electric\",\"\"],[\"gas\",\"Gas\",\"\"],[\"none\",\"No hob (range cooker)\",\"\"]])}</div>\n    <div class=\"wzq\"><b>Oven</b>${opt(\"oven\",[[\"builtunder\",\"Built-under\",\"under the hob\"],[\"tower\",\"Eye-level tower\",\"tall housing\"],[\"range\",\"Range cooker\",\"900mm gap\"]])}</div>\n    <div class=\"wzq\"><b>Fridge freezer</b>${opt(\"fridge\",[[\"integrated\",\"Integrated\",\"tall housing, hidden\"],[\"freestanding\",\"Freestanding\",\"600mm gap\"],[\"none\",\"Elsewhere\",\"\"]])}</div>\n    <div class=\"wzq\"><b>Dishwasher</b>${opt(\"dishwasher\",[[\"600\",\"Yes, 600mm\",\"\"],[\"450\",\"Yes, slimline 450mm\",\"\"],[\"none\",\"No\",\"\"]])}</div>\n    <div class=\"wzq\"><b>Washing machine</b>${opt(\"washer\",[[\"no\",\"Not in the kitchen\",\"\"],[\"yes\",\"Yes, 600mm gap\",\"\"]])}</div>\n    <div class=\"wzq\"><b>Microwave</b>${opt(\"microwave\",[[\"none\",\"Countertop / none\",\"\"],[\"tower\",\"Built in above the oven\",\"tower housing\"]])}</div>${nav(!1)}`}else if(k===\"storage\"){const St=W.storage;html=`<div class=\"wzh\"><div class=\"eyebrow\">Step 6 of 7</div><h2>How do you like to store things?</h2><p>This sets the mix of drawers and cupboards. You can swap any unit afterwards.</p></div>\n    <div class=\"wzq\"><b>Drawers or cupboards?</b><div class=\"wzopts\">${[[\"drawers\",\"Mostly drawers\",\"pans, plates, everything to hand\"],[\"balanced\",\"A balanced mix\",\"most popular\"],[\"doors\",\"Mostly cupboards\",\"lowest cost\"]].map(([v,l,s])=>`<button class=\"wzopt ${St.pref===v?\"on\":\"\"}\" data-st=\"pref:${v}\"><b>${l}</b><small>${s}</small></button>`).join(\"\")}</div></div>\n    <div class=\"wzq\"><b>Wall units</b><div class=\"wzopts\">${[[!0,\"Yes, where they fit\",\"not over windows\"],[!1,\"No wall units\",\"open shelves or nothing\"]].map(([v,l,s])=>`<button class=\"wzopt ${St.wallUnits===v?\"on\":\"\"}\" data-st=\"wallUnits:${v}\"><b>${l}</b><small>${s}</small></button>`).join(\"\")}</div></div>\n    <div class=\"wzq\"><b>Tall larder</b><div class=\"wzopts\">${[[!0,\"Yes if there's room\",\"food & dry goods\"],[!1,\"No\",\"\"]].map(([v,l,s])=>`<button class=\"wzopt ${St.larder===v?\"on\":\"\"}\" data-st=\"larder:${v}\"><b>${l}</b>${s?`<small>${s}</small>`:\"\"}</button>`).join(\"\")}</div></div>${nav(!1)}`}else if(k===\"style\"){const hp=byId(W.handle.pid),hv=hp.variants.find(x=>x.sku===W.handle.sku)||hp.variants[0],st=DATA.styles.find(x=>x.id===W.style);html=`<div class=\"wzh\"><div class=\"eyebrow\">Step 7 of 7</div><h2>Pick your look</h2><p>Door style, handles, worktop, sink and tap.</p></div>\n    <div class=\"wzq\"><b>Door style</b><div class=\"swrow\">${DATA.styles.map(s2=>`<button class=\"swbtn ${s2.id===W.style?\"on\":\"\"}\" data-style=\"${s2.id}\"><span class=\"sw ${s2.finish===\"Gloss\"?\"gloss\":\"\"}\" style=\"background:${s2.hex}\"></span>${s2.name}</button>`).join(\"\")}</div></div>\n    <div class=\"wzq\"><b>Handles</b><span class=\"wzsub\">one per front, counted for you</span><div class=\"wzpick\">${DATA.products.filter(p=>p.family===\"handles\").map(p=>`<button class=\"wzpk ${W.handle.pid===p.id?\"on\":\"\"}\" data-handle=\"${p.id}\"><span class=\"pic\">${unitPic(p,p.variants[0],st,{scale:.1})}</span><b>${p.name}</b><small>from ${GBP(p.from)}</small></button>`).join(\"\")}</div><div class=\"swrow\" style=\"margin-top:8px\">${hp.variants.map(v=>`<button class=\"swbtn ${v.sku===hv.sku?\"on\":\"\"}\" data-hfin=\"${v.sku}\"><span class=\"sw\" style=\"background:${v.hex}\"></span>${v.label} \\xB7 ${GBP(v.price)}</button>`).join(\"\")}</div></div>\n    <div class=\"wzq\"><b>Worktop</b><span class=\"wzsub\">lengths worked out from your walls</span><div class=\"wzpick\">${DATA.products.filter(p=>p.family===\"worktops\").map(p=>`<button class=\"wzpk ${W.worktop===p.id?\"on\":\"\"}\" data-worktop=\"${p.id}\"><span class=\"pic\">${unitPic(p,p.variants[0],st,{scale:.1})}</span><b>${p.name}</b><small>from ${GBP(p.from)} / 3m</small></button>`).join(\"\")}</div></div>\n    <div class=\"wzq\"><b>Sink</b><div class=\"wzopts\">${DATA.products.filter(p=>p.family===\"sinks\"&&p.group===\"sink\").map(p=>`<button class=\"wzopt ${W.sinkP===p.id?\"on\":\"\"}\" data-sink=\"${p.id}\"><b>${p.name}</b><small>${p.blurb} \\xB7 ${GBP(p.from)}</small></button>`).join(\"\")}</div></div>\n    <div class=\"wzq\"><b>Tap</b><div class=\"wzopts\">${DATA.products.filter(p=>p.family===\"sinks\"&&p.group===\"tap\").map(p=>`<button class=\"wzopt ${W.tapP===p.id?\"on\":\"\"}\" data-tap=\"${p.id}\"><b>${p.name}</b><small>${p.blurb} \\xB7 ${GBP(p.from)}</small></button>`).join(\"\")}</div></div>\n    <div class=\"wzq\"><b>Assembly</b><div class=\"asm\">${[[!1,\"Flatpack\",\"Included\"],[!0,\"Ready assembled\",\"+\"+GBP(ASSEMBLY)+\" per cabinet\"]].map(([v,t,p])=>`<button class=\"${W.assembled===v?\"on\":\"\"}\" data-asm=\"${v}\"><b>${t}</b><span class=\"pr\">${p}</span></button>`).join(\"\")}</div></div>${nav(!1)}`}card.innerHTML=html,card.querySelectorAll(\"[data-shape]\").forEach(b=>b.onclick=()=>{W.shape=b.dataset.shape,renderWizard()}),card.querySelectorAll(\"[data-len]\").forEach(i=>i.onchange=()=>{W.walls[+i.dataset.len].len=Math.max(900,parseInt(i.value)||900),renderWizard()});const ce=card.querySelector(\"[data-ceiling]\");ce&&(ce.onchange=()=>{W.ceiling=parseInt(ce.value)||2400,renderWizard()}),card.querySelectorAll(\"[data-addob]\").forEach(b=>b.onclick=()=>{const[i,t]=b.dataset.addob.split(\":\"),w=W.walls[+i],def={window:{w:1200,sill:1e3},door:{w:900,swing:\"in\",hinge:\"left\"},boiler:{w:600},radiator:{w:800}}[t];w.obs.push({type:t,from:Math.max(0,Math.round(w.len/2-def.w/2)),...def}),renderWizard()}),card.querySelectorAll(\"[data-ob]\").forEach(i=>i.onchange=()=>{const[wi,j,key]=i.dataset.ob.split(\":\");W.walls[+wi].obs[+j][key]=parseInt(i.value)||0,renderWizard()}),card.querySelectorAll(\"[data-rmob]\").forEach(b=>b.onclick=()=>{const[wi,j]=b.dataset.rmob.split(\":\");W.walls[+wi].obs.splice(+j,1),renderWizard()}),card.querySelectorAll(\"[data-sv]\").forEach(x=>{const[key,v]=x.dataset.sv.split(\":\");x.tagName===\"BUTTON\"?x.onclick=()=>{W[key].wall=+v,renderWizard()}:x.onchange=()=>{W[key].from=parseInt(x.value)||0,renderWizard()}}),card.querySelectorAll(\"[data-app]\").forEach(b=>b.onclick=()=>{const[key,v]=b.dataset.app.split(\":\");W.app[key]=v,key===\"oven\"&&v===\"range\"&&(W.app.hob=\"none\"),key===\"hob\"&&v!==\"none\"&&W.app.oven===\"range\"&&(W.app.oven=\"builtunder\"),renderWizard()}),card.querySelectorAll(\"[data-st]\").forEach(b=>b.onclick=()=>{const[key,v]=b.dataset.st.split(\":\");W.storage[key]=v===\"true\"?!0:v===\"false\"?!1:v,renderWizard()}),card.querySelectorAll(\"[data-style]\").forEach(b=>b.onclick=()=>{W.style=b.dataset.style,S.style=W.style;try{localStorage.setItem(\"kb-style\",W.style)}catch{}renderWizard()}),card.querySelectorAll(\"[data-handle]\").forEach(b=>b.onclick=()=>{W.handle={pid:b.dataset.handle,sku:null},renderWizard()}),card.querySelectorAll(\"[data-hfin]\").forEach(b=>b.onclick=()=>{W.handle.sku=b.dataset.hfin,renderWizard()}),card.querySelectorAll(\"[data-worktop]\").forEach(b=>b.onclick=()=>{W.worktop=b.dataset.worktop,renderWizard()}),card.querySelectorAll(\"[data-sink]\").forEach(b=>b.onclick=()=>{W.sinkP=b.dataset.sink,renderWizard()}),card.querySelectorAll(\"[data-tap]\").forEach(b=>b.onclick=()=>{W.tapP=b.dataset.tap,renderWizard()}),card.querySelectorAll(\"[data-asm]\").forEach(b=>b.onclick=()=>{W.assembled=b.dataset.asm===\"true\",renderWizard()});const nx=card.querySelector(\"[data-next]\");nx&&(nx.onclick=()=>{if(W.step>=WZ_STEPS.length-1){generateKit(),go(\"builder\");return}W.step++,renderWizard(),window.scrollTo({top:0,behavior:\"smooth\"})});const pv=card.querySelector(\"[data-prev]\");pv&&(pv.onclick=()=>{W.step--,renderWizard()});const sk=card.querySelector(\"[data-skip]\");sk&&(sk.onclick=()=>{W.step++,renderWizard()}),renderPlan(),renderHelp(k)}function renderPlan(){const W=S.wiz,host=document.getElementById(\"wzplan\");if(!host)return;const n=wallsFor(W),walls=W.walls.slice(0,n),A=walls[0].len,B=n>1?walls[1].len:0,C=n>2?walls[2].len:0,depth=W.shape===\"straight\"?Math.max(1800,A*.45):W.shape===\"galley\"?2400:Math.max(B,C,1800),pad=320,Wd=A+pad*2,Hd=depth+pad*2,sc=Math.min(520/Wd,420/Hd),px=v=>v*sc,T=160;let s=`<svg viewBox=\"0 0 ${px(Wd)} ${px(Hd)}\" class=\"plansvg\">`;const wallRect=(x,y,w,h,hot)=>`<rect x=\"${px(x)}\" y=\"${px(y)}\" width=\"${px(w)}\" height=\"${px(h)}\" fill=\"${hot?\"var(--cyan)\":\"#2A3138\"}\" rx=\"2\"/>`,ox=pad,oy=pad,step=WZ_STEPS[W.step][0];s+=wallRect(ox-T,oy-T,A+T*2,T,!1),(W.shape===\"L\"||W.shape===\"U\")&&(s+=wallRect(ox-T,oy-T,T,B+T,!1)),W.shape===\"U\"&&(s+=wallRect(ox+A,oy-T,T,C+T,!1)),W.shape===\"galley\"&&(s+=wallRect(ox-T,oy+depth,A+T*2,T,!1));const geo=[{x0:ox,y0:oy,dx:1,dy:0,nx:0,ny:1,len:A},{x0:(W.shape,ox),y0:W.shape===\"galley\"?oy+depth:oy,dx:W.shape===\"galley\"?1:0,dy:W.shape===\"galley\"?0:1,nx:0,ny:W.shape===\"galley\"?-1:0,len:B},{x0:ox+A,y0:oy,dx:0,dy:1,nx:-1,ny:0,len:C}];W.shape===\"galley\"&&(geo[1].nx=0),geo[1].nx=W.shape===\"galley\"?0:1,geo[1].ny=W.shape===\"galley\"?-1:0,walls.forEach((w,i)=>{const g=geo[i],st=W.shape===\"straight\"||W.shape===\"galley\"||i===0?0:BASE_D,x=g.x0+g.dx*st,y=g.y0+g.dy*st,L=w.len-st,bw=g.dx?L:BASE_D,bh=g.dy?L:BASE_D,bx=g.dx?x:g.nx<0?x-BASE_D:x,by=g.dy?y:g.ny<0?y-BASE_D:y;s+=`<rect x=\"${px(bx)}\" y=\"${px(by)}\" width=\"${px(bw)}\" height=\"${px(bh)}\" fill=\"#E6EDF2\" stroke=\"#C7D1D9\"/>`,w.obs.forEach(o=>{const px0=g.x0+g.dx*o.from,py0=g.y0+g.dy*o.from,ow=g.dx?o.w:T,oh=g.dy?o.w:T,ax=g.dx||g.nx<0?px0:px0-T,ay=g.dy||g.ny<0?py0:py0-T,col={window:\"#7FDDF5\",door:\"#FFB3C7\",boiler:\"#F2C300\",radiator:\"#F08A4B\"}[o.type];if(s+=`<rect x=\"${px(ax)}\" y=\"${px(ay)}\" width=\"${px(ow)}\" height=\"${px(oh)}\" fill=\"${col}\"/>`,o.type===\"door\"){const cx=g.dx?px0+o.w/2:g.nx<0?px0-o.w/2:px0+o.w/2,cy=g.dy?py0+o.w/2:g.ny<0?py0-o.w/2:py0+o.w/2;s+=`<circle cx=\"${px(g.dx?px0+o.w/2:g.nx<0?px0-o.w/2:px0+o.w/2)}\" cy=\"${px(g.dy?py0+o.w/2:g.ny<0?py0-o.w/2:py0+o.w/2)}\" r=\"${px(o.w/2)}\" fill=\"none\" stroke=\"#FFB3C7\" stroke-dasharray=\"4 3\"/>`}});const mx=g.x0+g.dx*w.len/2+g.nx*(BASE_D+300),my=g.y0+g.dy*w.len/2+g.ny*(BASE_D+300);s+=`<text x=\"${px(mx)}\" y=\"${px(my)}\" text-anchor=\"middle\" font-size=\"12\" font-family=\"JetBrains Mono,monospace\" fill=\"#4A5560\">${WNAME(i)} \\xB7 ${w.len}</text>`});const mark=(sv,label,col)=>{const g=geo[sv.wall];if(!g)return\"\";const x=g.x0+g.dx*sv.from+g.nx*280,y=g.y0+g.dy*sv.from+g.ny*280;return`<g><circle cx=\"${px(x)}\" cy=\"${px(y)}\" r=\"13\" fill=\"${col}\"/><text x=\"${px(x)}\" y=\"${px(y)+4}\" text-anchor=\"middle\" font-size=\"11\" font-weight=\"800\" fill=\"#fff\" font-family=\"Urbanist,sans-serif\">${label}</text></g>`};W.step>=3&&(s+=mark(W.sink,\"S\",\"#00BBEA\"),s+=mark(W.hob,\"H\",\"#0A1116\")),s+=\"</svg>\";const legend=`<div class=\"planleg\"><span><i style=\"background:#7FDDF5\"></i>Window</span><span><i style=\"background:#FFB3C7\"></i>Door</span><span><i style=\"background:#F2C300\"></i>Boiler</span><span><i style=\"background:#F08A4B\"></i>Radiator</span>${W.step>=3?'<span><i style=\"background:#00BBEA\"></i>Sink</span><span><i style=\"background:#0A1116\"></i>Hob</span>':\"\"}</div>`;if(step===\"style\"){const st=DATA.styles.find(x=>x.id===W.style);let url=null;try{url=styleSnapshot(st)}catch{}host.innerHTML=`<div class=\"planh\"><b>${st.name}</b><span>your style on a kitchen like yours</span></div>${url?`<img class=\"planimg\" src=\"${url}\" alt=\"\">`:s}<div class=\"planleg\"><span><i style=\"background:${st.hex}\"></i>${st.finish} finish</span></div>`;return}host.innerHTML=`<div class=\"planh\"><b>Your plan</b><span>updates as you answer \\xB7 top-down view</span></div>${s}${legend}`}const HELP={shape:{t:\"How to tell your shape\",b:[\"Straight: all units on one wall.\",\"L-shape: two walls meeting in a corner, units on both.\",\"U-shape: three walls, units on all three.\",\"Galley: two walls facing each other.\"],d:\"shape\"},walls:{t:\"How to measure a wall\",b:[\"Measure at worktop height (about 900mm up), skirting to skirting.\",\"Measure each wall in two places; use the smaller number.\",\"Round down to the nearest 10mm.\",\"Ceiling: measure in the corners, use the lowest.\"],d:\"tape\"},openings:{t:\"Measuring windows and doors\",b:['Stand facing the wall. \"From left\" is from the left-hand corner to the start of the frame.',\"Width is frame to frame.\",\"Sill height is floor to the underside of the sill. Base units need 900mm.\",\"Add boilers and radiators so we leave them clear.\"],d:\"window\"},services:{t:\"Finding your water and gas\",b:[\"Sink: measure to the centre of the waste pipe where it enters the wall or floor.\",\"Hob: measure to the centre of the gas point or cooker outlet.\",\"Moving either is a plumber or Gas Safe job; the plan keeps them where they are.\",\"Dishwasher and washing machine go next to the sink.\"],d:\"pipes\"},appliances:{t:\"Appliance sizes we use\",b:[\"Built-under oven: 600mm housing beneath the hob.\",\"Eye-level tower: 600mm tall housing at the end of a run.\",\"Range cooker: a 900mm gap, no hob needed.\",\"Integrated fridge freezer: 600mm tall housing. Freestanding: 600mm gap.\"],d:\"appl\"},storage:{t:\"Drawers vs cupboards\",b:[\"Drawers cost more but hold pans, plates and food where you can see them.\",\"Cupboards are the cheapest storage per metre.\",\"Wall units are skipped over windows and above tall units.\",\"A larder is added only if there is 500mm or more spare.\"],d:\"store\"},style:{t:\"Choosing a colour\",b:[\"Every door is matt, which hides fingerprints and marks.\",\"Order free samples to see the colour in your light.\"],d:\"style\"}};function renderHelp(k){const h=document.getElementById(\"wzhelp\"),H=HELP[k];if(!h||!H){h&&(h.innerHTML=\"\");return}h.innerHTML=`<div class=\"helph\"><i>?</i><b>${H.t}</b></div><div class=\"helpd\">${helpDiagram(H.d)}</div><ul>${H.b.map(x=>`<li>${x}</li>`).join(\"\")}</ul><button class=\"chip\" id=\"wzhelpbtn\">Still unsure? Send photos to a planner</button>`,h.querySelector(\"#wzhelpbtn\").onclick=()=>{S.help=!0,document.getElementById(\"hp\").classList.add(\"on\")}}function helpDiagram(d){const s='stroke=\"#0A1116\" stroke-width=\"2\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"',c='stroke=\"#00BBEA\" stroke-width=\"2.5\" fill=\"none\" stroke-linecap=\"round\"';return d===\"tape\"?`<svg viewBox=\"0 0 260 110\"><rect x=\"20\" y=\"20\" width=\"220\" height=\"70\" ${s}/><rect x=\"30\" y=\"60\" width=\"200\" height=\"22\" fill=\"#E6EDF2\" stroke=\"#C7D1D9\"/><path d=\"M30 46h200\" ${c}/><path d=\"M30 40v12M230 40v12\" ${c}/><text x=\"130\" y=\"38\" text-anchor=\"middle\" font-size=\"11\" fill=\"#00BBEA\" font-weight=\"700\" font-family=\"Urbanist,sans-serif\">wall to wall at worktop height</text></svg>`:d===\"window\"?`<svg viewBox=\"0 0 260 110\"><rect x=\"20\" y=\"15\" width=\"220\" height=\"80\" ${s}/><rect x=\"110\" y=\"25\" width=\"80\" height=\"40\" fill=\"#7FDDF5\" stroke=\"#0A1116\"/><path d=\"M20 102h90\" ${c}/><text x=\"65\" y=\"98\" text-anchor=\"middle\" font-size=\"10\" fill=\"#00BBEA\" font-weight=\"700\" font-family=\"Urbanist,sans-serif\">from left</text><path d=\"M110 72h80\" ${c}/><text x=\"150\" y=\"84\" text-anchor=\"middle\" font-size=\"10\" fill=\"#00BBEA\" font-weight=\"700\" font-family=\"Urbanist,sans-serif\">width</text><path d=\"M205 65v30\" ${c}/><text x=\"222\" y=\"84\" font-size=\"10\" fill=\"#00BBEA\" font-weight=\"700\" font-family=\"Urbanist,sans-serif\">sill</text></svg>`:d===\"pipes\"?`<svg viewBox=\"0 0 260 110\"><rect x=\"20\" y=\"15\" width=\"220\" height=\"80\" ${s}/><rect x=\"30\" y=\"60\" width=\"200\" height=\"22\" fill=\"#E6EDF2\" stroke=\"#C7D1D9\"/><circle cx=\"90\" cy=\"88\" r=\"7\" fill=\"#00BBEA\"/><text x=\"90\" y=\"92\" text-anchor=\"middle\" font-size=\"9\" fill=\"#fff\" font-weight=\"800\" font-family=\"Urbanist,sans-serif\">S</text><circle cx=\"190\" cy=\"88\" r=\"7\" fill=\"#0A1116\"/><text x=\"190\" y=\"92\" text-anchor=\"middle\" font-size=\"9\" fill=\"#fff\" font-weight=\"800\" font-family=\"Urbanist,sans-serif\">H</text><path d=\"M30 50h60\" ${c}/><text x=\"60\" y=\"46\" text-anchor=\"middle\" font-size=\"10\" fill=\"#00BBEA\" font-weight=\"700\" font-family=\"Urbanist,sans-serif\">to centre</text></svg>`:d===\"shape\"?`<svg viewBox=\"0 0 260 110\"><path d=\"M20 30h60\" ${s}/><path d=\"M100 30v60h60\" ${s}/><path d=\"M180 30v60h60V30\" ${s}/><text x=\"50\" y=\"22\" text-anchor=\"middle\" font-size=\"10\" font-family=\"Urbanist,sans-serif\" fill=\"#4A5560\">Straight</text><text x=\"130\" y=\"22\" text-anchor=\"middle\" font-size=\"10\" font-family=\"Urbanist,sans-serif\" fill=\"#4A5560\">L</text><text x=\"210\" y=\"22\" text-anchor=\"middle\" font-size=\"10\" font-family=\"Urbanist,sans-serif\" fill=\"#4A5560\">U</text></svg>`:d===\"appl\"?`<svg viewBox=\"0 0 260 110\"><rect x=\"30\" y=\"20\" width=\"40\" height=\"80\" ${s}/><rect x=\"36\" y=\"40\" width=\"28\" height=\"22\" fill=\"#23262B\"/><rect x=\"90\" y=\"50\" width=\"60\" height=\"50\" ${s}/><rect x=\"96\" y=\"60\" width=\"48\" height=\"30\" fill=\"#23262B\"/><rect x=\"170\" y=\"20\" width=\"60\" height=\"80\" fill=\"#E6EDF2\" stroke=\"#C7D1D9\" stroke-dasharray=\"4 3\"/><text x=\"200\" y=\"64\" text-anchor=\"middle\" font-size=\"10\" font-family=\"Urbanist,sans-serif\" fill=\"#4A5560\">gap</text></svg>`:d===\"store\"?`<svg viewBox=\"0 0 260 110\"><rect x=\"30\" y=\"30\" width=\"60\" height=\"60\" ${s}/><path d=\"M30 50h60M30 70h60\" ${s}/><rect x=\"110\" y=\"30\" width=\"60\" height=\"60\" ${s}/><path d=\"M140 30v60\" ${s}/><rect x=\"190\" y=\"20\" width=\"40\" height=\"80\" ${s}/><path d=\"M190 60h40\" ${s}/></svg>`:'<svg viewBox=\"0 0 260 110\"><rect x=\"90\" y=\"20\" width=\"80\" height=\"70\" rx=\"3\" fill=\"#BFB5A8\"/><text x=\"130\" y=\"104\" text-anchor=\"middle\" font-size=\"10\" font-family=\"Urbanist,sans-serif\" fill=\"#4A5560\">Matt</text></svg>'}function generateKit(){const W=S.wiz,n=wallsFor(W);S.style=W.style;try{localStorage.setItem(\"kb-style\",W.style)}catch{}const K={shape:W.shape,walls:W.walls.slice(0,n).map((w,i)=>({name:WNAME(i),len:w.len,base:[],tall:[],wall:[],obs:w.obs})),sel:0,row:\"base\",assembled:W.assembled,extras:{worktop:!0,plinth:!0,cornice:!0,handles:!0,ends:!0,fillers:!0,sink:!0,tap:!0},pick:null,view:\"3d\",choices:{handle:W.handle,worktop:W.worktop,sink:W.sinkP,tap:W.tapP},generated:!0};S.kit=K;const it=(pid,w,extra)=>Object.assign(kitItem(pid,w),extra||{}),gap=(k,w)=>({gap:!0,k,w,label:GAPS.find(x=>x[0]===k)[1]+(k===\"dw\"&&w===450?\" (slimline)\":\"\")}),pref=W.storage.pref,fillTypes=pref===\"drawers\"?[\"pan-drawer-base\",\"highline-base-unit\",\"3-drawer-base\",\"highline-base-unit\"]:pref===\"doors\"?[\"highline-base-unit\",\"highline-base-unit\",\"drawerline-base-unit\"]:[\"highline-base-unit\",\"drawerline-base-unit\",\"pan-drawer-base\"];let fi=0;const nextFill=()=>fillTypes[fi++%fillTypes.length],plans=K.walls.map((w,i)=>{const start=kitStartK(K,i,\"base\"),run=w.len-start,blocked=[];return w.obs.forEach(o=>{o.type===\"door\"&&blocked.push({a:o.from-start-100,b:o.from-start+o.w+100,kind:\"door\"}),o.type===\"radiator\"&&blocked.push({a:o.from-start,b:o.from-start+o.w,kind:\"space\"})}),{i,start,run,blocked,fixed:[]}}),free=(P,a,b)=>a>=0&&b<=P.run&&!P.blocked.concat(P.fixed).some(x=>a<x.b&&b>x.a),place=(P,a,w,item,kind)=>{P.fixed.push({a,b:a+w,item,kind})},tryPlace=(P,center,w,item,kind)=>{let a=Math.round(center-w/2);a=Math.max(0,Math.min(P.run-w,a));for(const d of[0,-100,100,-200,200,-300,300,-450,450,-600,600]){const x=a+d;if(free(P,x,x+w))return place(P,x,w,item,kind),x}return null};plans.forEach(P=>{P.i>0&&(K.shape===\"L\"||K.shape===\"U\")&&free(P,0,900)&&place(P,0,900,it(\"highline-corner-base\",900),\"corner\")});const ps=plans[W.sink.wall]||plans[0],sinkW=ps.run>=2400?1e3:600,sinkX=tryPlace(ps,W.sink.from-ps.start,sinkW,it(\"sink-base-unit\",sinkW,{sink:!0}),\"sink\"),ph=plans[W.hob.wall]||plans[0];if(W.app.oven===\"range\")tryPlace(ph,W.hob.from-ph.start,900,gap(\"rc\",900),\"range\");else if(W.app.hob!==\"none\"){const hobW=ph.run>=3e3?800:600;W.app.oven===\"builtunder\"?tryPlace(ph,W.hob.from-ph.start,600,it(\"built-under-oven-housing\",600,{hob:!0}),\"hob\"):tryPlace(ph,W.hob.from-ph.start,hobW,it(\"pan-drawer-base\",hobW,{hob:!0}),\"hob\")}const beside=(P,x,w,item,kind)=>{if(x===null)return!1;const sw=P.fixed.find(f=>f.kind===\"sink\"),s0=sw?sw.a:x,s1=sw?sw.b:x;if(free(P,s1,s1+w))return place(P,s1,w,item,kind),!0;if(free(P,s0-w,s0))return place(P,s0-w,w,item,kind),!0;for(const Q of plans)for(let a=0;a<=Q.run-w;a+=100)if(free(Q,a,a+w))return place(Q,a,w,item,kind),!0;return!1};if(W.app.dishwasher!==\"none\"){const dwW=W.app.dishwasher===\"450\"?450:600;beside(ps,sinkX,dwW,gap(\"dw\",dwW),\"dw\")}if(W.app.washer===\"yes\"&&beside(ps,sinkX,600,gap(\"wm\",600),\"wm\"),W.app.fridge===\"freestanding\"){const Q=[...plans].sort((a,b)=>b.run-a.run)[0];for(let a=Q.run-600;a>=0;a-=100)if(free(Q,a,a+600)){place(Q,a,600,gap(\"fr\",600),\"fr\");break}}const talls=[];W.app.fridge===\"integrated\"&&talls.push(\"fridge-freezer-housing\"),W.app.oven===\"tower\"&&talls.push(W.app.microwave===\"tower\"?\"oven-microwave-housing\":\"single-oven-housing\"),W.storage.larder&&talls.push(\"tall-larder\"),talls.forEach(pid=>{const w=pid===\"tall-larder\"?500:600,order=[...plans].sort((a,b)=>b.run-b.fixed.reduce((s,f)=>s+(f.b-f.a),0)-(a.run-a.fixed.reduce((s,f)=>s+(f.b-f.a),0)));for(const Q of order){const tallW=Q.fixed.filter(f=>f.kind===\"tall\").reduce((s,f)=>s+(f.b-f.a),0),a=Q.run-tallW-w;if(a>=0&&free(Q,a,a+w)){place(Q,a,w,it(pid,w),\"tall\");break}}}),plans.forEach(P=>{const occ=[...P.blocked.map(b=>({a:Math.max(0,b.a),b:Math.min(P.run,b.b),kind:b.kind})),...P.fixed].sort((x,y)=>x.a-y.a);let cur=0;const segs=[];occ.forEach(o=>{o.a>cur&&segs.push({a:cur,b:o.a,blk:o.kind===\"door\"||o.kind===\"space\"}),cur=Math.max(cur,o.b)}),cur<P.run&&segs.push({a:cur,b:P.run,blk:!1}),segs.forEach(sg=>{let x=sg.a,rem=sg.b-sg.a;for(;rem>=300;){const w=rem>=1200||rem>=600?600:rem>=500?500:rem>=400?400:300,pid=nextFill(),p=byId(pid),ww=p.widths.includes(w)?w:p.widths.filter(z=>z<=w).sort((a,b)=>b-a)[0];if(!ww)break;place(P,x,ww,it(pid,ww),\"fill\"),x+=ww,rem-=ww}rem>0&&rem<300&&!sg.blk&&x>sg.a&&place(P,x,rem,{gap:!0,k:\"filler\",w:rem,label:\"Filler \"+rem+\"mm\"},\"filler\")})}),plans.forEach(P=>{const w=K.walls[P.i],items=[...P.fixed].sort((x,y)=>x.a-y.a),doors=P.blocked.filter(b=>b.kind===\"door\"||b.kind===\"space\"),seq=[...items.filter(f=>f.kind!==\"tall\").map(f=>({a:f.a,b:f.b,item:f.item})),...doors.map(d=>({a:Math.max(0,d.a),b:Math.min(P.run,d.b),item:{gap:!0,k:d.kind===\"door\"?\"door\":\"space\",w:Math.min(P.run,d.b)-Math.max(0,d.a),label:d.kind===\"door\"?\"Doorway\":d.kind===\"swing\"?\"Door swing\":\"Radiator\"}}))].sort((x,y)=>x.a-y.a);let cur=0;seq.forEach(s=>{s.a>cur+20&&w.base.push({gap:!0,k:\"space\",w:s.a-cur,label:\"Space\"}),w.base.push(s.item),cur=s.b}),w.tall=items.filter(f=>f.kind===\"tall\").map(f=>f.item)}),K.walls.forEach((w,i)=>{const P=plans[i],startW=kitStartK(K,i,\"wall\"),runW=w.len-startW-P.fixed.filter(f=>f.kind===\"tall\").reduce((s,f)=>s+(f.b-f.a),0),blocked=[];w.obs.forEach(o=>{o.type===\"door\"&&blocked.push({a:o.from-startW-100,b:o.from-startW+o.w+100,kind:\"door\"}),o.type===\"window\"&&blocked.push({a:o.from-startW-50,b:o.from-startW+o.w+50,kind:\"window\"})});const fixedW=[],hob=P.fixed.find(f=>f.kind===\"hob\"||f.kind===\"range\");if(hob){const a=hob.a+P.start-startW,tw=hob.b-hob.a,p=byId(\"top-box\"),ww=p.widths.includes(tw)?tw:p.widths.filter(z=>z<=tw).sort((x,y)=>y-x)[0]||600;a>=0&&a+ww<=runW&&fixedW.push({a,b:a+ww,item:it(\"top-box\",ww)})}const boiler=w.obs.find(o=>o.type===\"boiler\");if(boiler){const a=Math.max(0,Math.min(runW-600,boiler.from-startW));fixedW.push({a,b:a+600,item:it(\"boiler-housing\",600)})}i>0&&(K.shape===\"L\"||K.shape===\"U\")&&!fixedW.some(f=>f.a<600)&&fixedW.push({a:0,b:600,item:it(\"corner-wall-unit\",600)});const occ=[...blocked.map(b=>({a:Math.max(0,b.a),b:Math.min(runW,b.b),kind:b.kind})),...fixedW].sort((x,y)=>x.a-y.a),seq=[];if(W.storage.wallUnits){let cur2=0;const segs=[];occ.forEach(o=>{o.a>cur2&&segs.push({a:cur2,b:o.a}),cur2=Math.max(cur2,o.b)}),cur2<runW&&segs.push({a:cur2,b:runW}),segs.forEach(sg=>{let x=sg.a,rem=sg.b-sg.a;for(;rem>=300;){const ww=rem>=600?600:rem>=500?500:rem>=400?400:300;fixedW.push({a:x,b:x+ww,item:it(\"wall-unit\",ww)}),x+=ww,rem-=ww}})}const all=[...fixedW.sort((x,y)=>x.a-y.a)];let cur=0;all.forEach(f=>{f.a>cur+20&&w.wall.push({gap:!0,k:\"space\",w:f.a-cur,label:\"Space\"}),w.wall.push(f.item),cur=f.b})}),K.walls.forEach(w=>kitFit(w))}const _gap3D=gap3D;function gap3DV14(it){if(it.k===\"door\"||it.k===\"space\"){const g=new THREE.Group,m=new THREE.Mesh(new THREE.BoxGeometry(it.w,6,560),new THREE.MeshBasicMaterial({color:it.k===\"door\"?16757703:14476522,transparent:!0,opacity:.55}));return m.position.set(it.w/2,3,280),g.add(m),g}if(it.k===\"filler\"){const g=new THREE.Group;return g.add(box(it.w,870,20,mat(\"#D9DDE0\",!1),0,0,540)),g}return _gap3D(it)}gap3D=gap3DV14;const _kitchenGroup=kitchenGroup;function kitchenGroupV14(K,st,opts){const G=_kitchenGroup(K,st,opts),{A,depth}=roomDimsFor(K);return K.walls.forEach((w,wi)=>{(w.obs||[]).forEach(o=>{const g=new THREE.Group;o.type===\"window\"?(g.add(box(o.w,2100-(o.sill||900),40,mat(\"#CFEBF4\",!1),0,o.sill||900,-30,!1)),g.add(box(o.w+60,40,50,mat(\"#FFFFFF\",!1),-30,(o.sill||900)-40,-35,!1))):o.type===\"door\"?(g.add(box(o.w,2050,30,mat(\"#F4F4F1\",!1),0,0,-25,!1)),g.add(box(o.w+80,60,40,mat(\"#E3E6E8\",!1),-40,2050,-30,!1)),g.add(box(20,120,30,mat(\"#55595F\",!1),o.w-120,1e3,5,!1))):o.type===\"radiator\"&&g.add(box(o.w,600,60,mat(\"#F4F4F1\",!1),0,150,0)),g.userData.w=o.w,placeOnWallK(K,g,wi,o.from-kitStartK(K,wi,\"base\"),!1),G.add(g)});let x=0;w.base.forEach(itm=>{if(itm.hob){const g=new THREE.Group;g.add(box(itm.w-120,12,520,mat(\"#1C1E22\",!1),60,910,40,!1)),[[.28,.3],[.72,.3],[.28,.7],[.72,.7]].forEach(([a,b])=>g.add(box(140,3,140,mat(\"#3A3D43\",!1),(itm.w-120)*a-70+60,922,520*b-70+40,!1))),g.userData.w=itm.w,placeOnWallK(K,g,wi,x,!1),G.add(g)}x+=itm.w})}),G}kitchenGroup=kitchenGroupV14;const _kitExtras=kitExtras;function kitExtrasV14(){const K=kit(),out=_kitExtras();if(K.generated){const wq=K.walls.reduce((a,w,i)=>a+Math.ceil((w.base.filter(it=>!(it.gap&&(it.k===\"door\"||it.k===\"space\"))).reduce((s2,it)=>s2+it.w,0)+kitStartK(K,i,\"base\"))/3e3),0),e=out.find(x=>x.key===\"worktop\");e&&(e.qty=wq,e.price=e.v.price*wq);const cq=Math.ceil(K.walls.reduce((s2,wl)=>s2+wl.wall.filter(it=>!it.gap).reduce((s3,it)=>s3+it.w,0),0)/2800),ce=out.find(x=>x.key===\"cornice\");ce&&(ce.qty=cq,ce.price=ce.v.price*cq)}const ch=K.choices||{};if(ch.handle){const hp=byId(ch.handle.pid),hv=hp.variants.find(x=>x.sku===ch.handle.sku)||hp.variants[0],e=out.find(x=>x.key===\"handles\");e&&(e.p=hp,e.v=hv,e.price=hv.price*e.qty,e.label=\"Handles\",e.sub=hp.name+\" \\xB7 \"+hv.label)}if(ch.worktop){const wp=byId(ch.worktop),e=out.find(x=>x.key===\"worktop\");e&&(e.p=wp,e.v=wp.variants[0],e.price=wp.variants[0].price*e.qty,e.sub=wp.name+\" \\xB7 3m lengths\")}if(ch.sink){const p=byId(ch.sink);p&&out.push({key:\"sink\",p,v:p.variants[0],qty:1,label:\"Sink\",sub:p.name,price:p.variants[0].price,on:K.extras.sink!==!1})}if(ch.tap){const p=byId(ch.tap);p&&out.push({key:\"tap\",p,v:p.variants[0],qty:1,label:\"Tap\",sub:p.name,price:p.variants[0].price,on:K.extras.tap!==!1})}return out}kitExtras=kitExtrasV14;function readyBanner(st){const K=kit(),c=kitCounts(),ex=kitExtras(),total=c.price+ex.filter(e=>e.on).reduce((a,e)=>a+e.price,0),obs=K.walls.reduce((a,w)=>a+(w.obs||[]).length,0),chk=[`${SHAPES.find(x=>x[0]===(K.shapeId||K.shape))[1]} \\xB7 ${K.walls.map(w=>w.len).join(\" \\xD7 \")}mm`,\"Sink on your waste point\",\"Hob on your gas / cooker point\",obs?`${obs} ${obs>1?\"openings\":\"opening\"} kept clear (windows, doors, boiler)`:\"Nothing in the way\",`${c.units} units sized to the mm`,\"Worktop, plinth, cornice & handles counted\",K.assembled?\"Ready assembled\":\"Flatpack\"],b=el(`<section class=\"ready\"><div><div class=\"eyebrow\">Planned from your measurements \\xB7 ${st.name}</div><h1>Your kitchen is <em>ready</em></h1><p>Everything below fits your room, down to the filler. Scroll down to move or swap any unit in 3D; the price and basket update as you go.</p><div class=\"rchk\">${chk.map(x=>`<span><i>\\u2713</i>${x}</span>`).join(\"\")}</div><div class=\"rlinks\"><button id=\"rb-edit\">Change my answers</button><button id=\"rb-tune\">Fine-tune in 3D \\u2193</button><button id=\"rb-send\">Have a planner double-check it</button></div></div><div class=\"rprice\"><small>Complete kitchen \\xB7 inc VAT</small><div class=\"big\" id=\"rbprice\">${GBP(total)}</div><div class=\"klarna\"><span class=\"kl2\">Klarna.</span> 3 \\xD7 ${GBP(total/3)} interest free</div><div style=\"font-size:12.5px;color:rgba(255,255,255,.75)\">${total>=FREE?\"Free pallet delivery included\":GBP(FREE-total)+\" more for free delivery\"}</div><button class=\"add\" id=\"rb-add\"><span style=\"font-family:var(--body);font-weight:800;font-size:16px\">Add whole kitchen to cart</span><span>\\u2192</span></button><button class=\"ghost2\" id=\"rb-samples\">Order free samples first</button></div></section>`);return b.querySelector(\"#rb-edit\").onclick=()=>go(\"plan\"),b.querySelector(\"#rb-tune\").onclick=()=>document.getElementById(\"kb\").scrollIntoView({behavior:\"smooth\"}),b.querySelector(\"#rb-send\").onclick=()=>{S.help=!0,document.getElementById(\"hp\").classList.add(\"on\")},b.querySelector(\"#rb-add\").onclick=()=>document.getElementById(\"kadd\").click(),b.querySelector(\"#rb-samples\").onclick=()=>openSamples(S.style),b}const PZ_STEPS=[[\"shape\",\"Shape\"],[\"walls\",\"Measurements\"],[\"openings\",\"Windows & doors\"],[\"services\",\"Water & gas\"],[\"appliances\",\"Appliances\"],[\"storage\",\"Storage\"],[\"style\",\"Style & finish\"]];function pzInit(){S.wiz={step:0,shape:\"L\",ceiling:2400,island:{on:!1,len:1800},walls:[{len:3600,obs:[]},{len:2400,obs:[]},{len:3e3,obs:[]},{len:1800,obs:[]}],sink:{wall:0,from:1800},hob:{wall:0,from:800},app:{hob:\"induction\",oven:\"builtunder\",fridge:\"integrated\",dishwasher:\"600\",washer:\"no\",microwave:\"none\",extractor:\"chimney\"},storage:{pref:\"balanced\",wallUnits:!0,larder:!0},style:S.style||\"cashmere-matt\",handle:{pid:\"bar160\",sku:null},worktop:\"oakblock\",sinkP:\"sink-inset-15\",tapP:\"tap-mono\",assembled:!1,touched:{}}}const pzFlip=(W,wi)=>wi===1&&W.shape!==\"straight\",pzRunA=(W,wi,from,w)=>pzFlip(W,wi)?W.walls[wi].len-from-w:from,pzRunC=(W,wi,from)=>pzFlip(W,wi)?W.walls[wi].len-from:from,WSIDE=(W,i)=>WSIDEV17(W,i);function renderPlanStep(){const W=S.wiz,prog=document.getElementById(\"pzprog\"),card=document.getElementById(\"pzcard\");if(!card)return;prog.innerHTML=PZ_STEPS.map(([k2,l],i)=>`<button class=\"pzs ${i===W.step?\"on\":i<W.step?\"done\":\"\"}\" data-i=\"${i}\"><i>${i<W.step?\"\\u2713\":i+1}</i><span>${l}</span></button>`).join(\"\"),prog.querySelectorAll(\".pzs\").forEach(b=>b.onclick=()=>{+b.dataset.i<=W.step&&(W.step=+b.dataset.i,renderPlanStep())});const k=PZ_STEPS[W.step][0],last=W.step===PZ_STEPS.length-1,n=wallsFor(W),nav=`<div class=\"pznav\">${W.step>0?'<button class=\"pzback\" data-prev>\\u2190 Back</button>':\"<span></span>\"}<button class=\"add pzgo\" data-next><span>${last?\"Reveal my kitchen\":\"Continue\"}</span><span>\\u2192</span></button></div>`,opt=(obj,key,vals,attr)=>`<div class=\"pzopts\">${vals.map(([v,l,s,dis])=>`<button class=\"pzopt ${obj[key]===v?\"on\":\"\"} ${dis?\"dis\":\"\"}\" data-${attr}=\"${key}:${v}\" ${dis?\"disabled\":\"\"}><b>${l}</b>${s?`<small>${s}</small>`:\"\"}</button>`).join(\"\")}</div>`,num=(label,sub,val,attr,min)=>`<label class=\"pzin\"><span class=\"pzl2\">${label}<small>${sub}</small></span><span class=\"pzf\"><input inputmode=\"numeric\" value=\"${val}\" ${attr}><em>mm</em></span></label>`;let html=\"\";if(k===\"shape\"){const canIsland=baseShape(W.shape)!==\"galley\";html=`<div class=\"pzh\"><div class=\"eyebrow\">1 \\xB7 Shape</div><h2>What shape is your kitchen?</h2><p>Count the walls that will have units on them. A peninsula is a run that comes off the end of a wall.</p></div><div class=\"pzshapes\">${SHAPES.map(([id,nm,d])=>`<button class=\"pzshape ${W.shape===id?\"on\":\"\"}\" data-shape=\"${id}\">${shapeIcon(id)}<b>${nm}</b><small>${d}</small></button>`).join(\"\")}</div>\n    <div class=\"pzq\"><b>Island?</b>${opt(W.island,\"on\",[[!1,\"No island\",\"\"],[!0,\"Yes, add an island\",\"needs 1m clear each side\",!canIsland]],\"isl\")}${W.island.on?`<div class=\"pills\" style=\"margin-top:8px\">${[1200,1800,2400].map(l=>`<button class=\"pill ${W.island.len===l?\"on\":\"\"}\" data-isl=\"len:${l}\"><b>${l}</b></button>`).join(\"\")}</div>`:\"\"}</div>${nav}`}else if(k===\"walls\")html=`<div class=\"pzh\"><div class=\"eyebrow\">2 \\xB7 Measurements</div><h2>How long is each wall?</h2><p>Wall to wall at worktop height, rounded down to 10mm. Watch the room build as you type.</p></div><div class=\"pzwalls\">${wizIdx(W).map(i=>num(WNAME(i),WSIDE(W,i),W.walls[i].len,`data-len=\"${i}\"`)).join(\"\")}${num(\"Ceiling\",\"floor to ceiling, lowest point\",W.ceiling,\"data-ceiling\")}</div><div class=\"pznote\">${W.ceiling<2300?\"Low ceiling: 1970mm tall units with room for cornice.\":\"Tall units will be 1970mm; there is room for 2150mm if you prefer.\"}</div>${nav}`;else if(k===\"openings\")html=`<div class=\"pzh\"><div class=\"eyebrow\">3 \\xB7 Windows & doors</div><h2>Anything on these walls?</h2><p>Windows, doorways, a boiler or a radiator. Measure from the left corner as you face each wall; they appear in the room as you add them.</p></div>${W.walls.slice(0,realWalls(W.shape)).map((w,i)=>`<div class=\"pzob\"><div class=\"pzobh\"><b>${WNAME(i)}</b><span>${w.len}mm \\xB7 ${WSIDE(W,i)}</span></div><div class=\"pzaddrow\">${[[\"window\",\"Window\"],[\"door\",\"Doorway\"],[\"boiler\",\"Boiler\"],[\"radiator\",\"Radiator\"]].map(([t,l])=>`<button class=\"chip\" data-addob=\"${i}:${t}\"><i class=\"ob ${t}\"></i>+ ${l}</button>`).join(\"\")}</div>${w.obs.map((o,j)=>`<div class=\"pzobr\"><i class=\"ob ${o.type}\"></i><b>${o.type[0].toUpperCase()+o.type.slice(1)}</b><label>from left<input inputmode=\"numeric\" value=\"${o.from}\" data-ob=\"${i}:${j}:from\"></label><label>width<input inputmode=\"numeric\" value=\"${o.w}\" data-ob=\"${i}:${j}:w\"></label>${o.type===\"window\"?`<label>sill<input inputmode=\"numeric\" value=\"${o.sill}\" data-ob=\"${i}:${j}:sill\"></label>`:\"\"}<button class=\"pzrm\" data-rmob=\"${i}:${j}\" title=\"Remove\">\\xD7</button>${o.type===\"door\"?`<div class=\"pzdoor\"><span>Opens</span>${[[\"in\",\"into the kitchen\"],[\"out\",\"away / sliding\"]].map(([v,l])=>`<button class=\"chip ${(o.swing||\"in\")===v?\"on\":\"\"}\" data-obset=\"${i}:${j}:swing:${v}\">${l}</button>`).join(\"\")}${(o.swing||\"in\")===\"in\"?`<span>Hinge</span>${[[\"left\",\"left\"],[\"right\",\"right\"]].map(([v,l])=>`<button class=\"chip ${(o.hinge||\"left\")===v?\"on\":\"\"}\" data-obset=\"${i}:${j}:hinge:${v}\">${l}</button>`).join(\"\")}`:\"\"}</div>`:\"\"}</div>`).join(\"\")}</div>`).join(\"\")}${nav}`;else if(k===\"services\"){const sel=key=>`<div class=\"chips\">${wizIdx(W).map(i=>`<button class=\"chip ${W[key].wall===i?\"on\":\"\"}\" data-sv=\"${key}:${i}\">${WNAME(i)}</button>`).join(\"\")}</div>`;html=`<div class=\"pzh\"><div class=\"eyebrow\">4 \\xB7 Water & gas</div><h2>Where are the water and gas points?</h2><p>The sink sits on the waste pipe, the hob on the gas or cooker point. Everything else is planned around them. Sockets are not needed: they don't move units.</p></div><div class=\"pzsv\"><div class=\"pzsvb\"><div class=\"pzsvh\"><i class=\"ob sink\"></i><b>Sink \\xB7 waste pipe</b></div>${sel(\"sink\")}${num(\"Centre of the waste pipe\",\"from the left corner\",W.sink.from,'data-sv=\"sink:from\"')}</div><div class=\"pzsvb\"><div class=\"pzsvh\"><i class=\"ob hob\"></i><b>Hob \\xB7 gas or cooker point</b></div>${sel(\"hob\")}${num(\"Centre of the gas / cooker point\",\"from the left corner\",W.hob.from,'data-sv=\"hob:from\"')}</div></div>${nav}`}else if(k===\"appliances\"){const A=W.app;html=`<div class=\"pzh\"><div class=\"eyebrow\">5 \\xB7 Appliances</div><h2>What's going in?</h2><p>We size the housings and leave the right gaps. The kitchen fills in as you choose.</p></div>\n    <div class=\"pzq\"><b>Hob</b>${opt(A,\"hob\",[[\"induction\",\"Induction / electric\",\"\"],[\"gas\",\"Gas\",\"\"],[\"none\",\"None (range cooker)\",\"\"]],\"app\")}</div>\n    <div class=\"pzq\"><b>Oven</b>${opt(A,\"oven\",[[\"builtunder\",\"Built-under\",\"beneath the hob\"],[\"tower\",\"Eye-level tower\",\"tall housing\"],[\"range\",\"Range cooker\",\"900mm gap\"]],\"app\")}</div>\n    <div class=\"pzq\"><b>Extractor</b>${opt(A,\"extractor\",[[\"chimney\",\"Chimney hood\",\"over the hob\"],[\"integrated\",\"Hidden in a wall unit\",\"\"],[\"none\",\"None\",\"\"]],\"app\")}</div>\n    <div class=\"pzq\"><b>Fridge freezer</b>${opt(A,\"fridge\",[[\"integrated\",\"Integrated\",\"behind a door\"],[\"freestanding\",\"Freestanding\",\"600mm gap\"],[\"none\",\"Elsewhere\",\"\"]],\"app\")}</div>\n    <div class=\"pzq\"><b>Dishwasher</b>${opt(A,\"dishwasher\",[[\"600\",\"Yes, 600mm\",\"\"],[\"450\",\"Slimline 450mm\",\"\"],[\"none\",\"No\",\"\"]],\"app\")}</div>\n    <div class=\"pzq\"><b>Washing machine</b>${opt(A,\"washer\",[[\"no\",\"Not in the kitchen\",\"\"],[\"yes\",\"Yes, 600mm gap\",\"\"]],\"app\")}</div>\n    <div class=\"pzq\"><b>Microwave</b>${opt(A,\"microwave\",[[\"none\",\"Countertop / none\",\"\"],[\"tower\",\"Built in above the oven\",\"tower housing\"]],\"app\")}</div>${nav}`}else if(k===\"storage\"){const St=W.storage;html=`<div class=\"pzh\"><div class=\"eyebrow\">6 \\xB7 Storage</div><h2>How do you like to store things?</h2><p>Sets the mix of drawers and cupboards. You can swap any unit at the end.</p></div>\n    <div class=\"pzq\"><b>Drawers or cupboards?</b>${opt(St,\"pref\",[[\"drawers\",\"Mostly drawers\",\"everything to hand\"],[\"balanced\",\"A balanced mix\",\"most popular\"],[\"doors\",\"Mostly cupboards\",\"lowest cost\"]],\"st\")}</div>\n    <div class=\"pzq\"><b>Wall units</b>${opt(St,\"wallUnits\",[[!0,\"Yes, where they fit\",\"never over windows\"],[!1,\"No wall units\",\"\"]],\"st\")}</div>\n    <div class=\"pzq\"><b>Tall larder</b>${opt(St,\"larder\",[[!0,\"Yes, if there is room\",\"\"],[!1,\"No\",\"\"]],\"st\")}</div>${nav}`}else if(k===\"style\"){const hp=byId(W.handle.pid),hv=hp.variants.find(x=>x.sku===W.handle.sku)||hp.variants[0],st=DATA.styles.find(x=>x.id===W.style);html=`<div class=\"pzh\"><div class=\"eyebrow\">7 \\xB7 Style & finish</div><h2>Pick your look</h2><p>The kitchen changes as you choose.</p></div>\n    <div class=\"pzq\"><b>Door style</b><div class=\"swrow\">${DATA.styles.map(s2=>`<button class=\"swbtn ${s2.id===W.style?\"on\":\"\"}\" data-style=\"${s2.id}\"><span class=\"sw ${s2.finish===\"Gloss\"?\"gloss\":\"\"}\" style=\"background:${s2.hex}\"></span>${s2.name}</button>`).join(\"\")}</div></div>\n    <div class=\"pzq\"><b>Handles</b><span class=\"pzsub\">one per front, counted for you</span><div class=\"pzpick\">${DATA.products.filter(p=>p.family===\"handles\").map(p=>`<button class=\"pzpk ${W.handle.pid===p.id?\"on\":\"\"}\" data-handle=\"${p.id}\"><span class=\"pic\">${unitPic(p,p.variants[0],st,{scale:.1})}</span><b>${p.name}</b><small>from ${GBP(p.from)}</small></button>`).join(\"\")}</div><div class=\"swrow\" style=\"margin-top:8px\">${hp.variants.map(v=>`<button class=\"swbtn ${v.sku===hv.sku?\"on\":\"\"}\" data-hfin=\"${v.sku}\"><span class=\"sw\" style=\"background:${v.hex}\"></span>${v.label} \\xB7 ${GBP(v.price)}</button>`).join(\"\")}</div></div>\n    <div class=\"pzq\"><b>Worktop</b><span class=\"pzsub\">lengths worked out from your walls</span><div class=\"pzpick\">${DATA.products.filter(p=>p.family===\"worktops\").map(p=>`<button class=\"pzpk ${W.worktop===p.id?\"on\":\"\"}\" data-worktop=\"${p.id}\"><span class=\"pic\">${unitPic(p,p.variants[0],st,{scale:.1})}</span><b>${p.name}</b><small>from ${GBP(p.from)} / 3m</small></button>`).join(\"\")}</div></div>\n    <div class=\"pzq\"><b>Sink</b>${opt(W,\"sinkP\",DATA.products.filter(p=>p.family===\"sinks\"&&p.group===\"sink\").map(p=>[p.id,p.name,p.blurb+\" \\xB7 \"+GBP(p.from)]),\"pick\")}</div>\n    <div class=\"pzq\"><b>Tap</b>${opt(W,\"tapP\",DATA.products.filter(p=>p.family===\"sinks\"&&p.group===\"tap\").map(p=>[p.id,p.name,p.blurb+\" \\xB7 \"+GBP(p.from)]),\"pick\")}</div>\n    <div class=\"pzq\"><b>Assembly</b><div class=\"asm\">${[[!1,\"Flatpack\",\"Included\"],[!0,\"Ready assembled\",\"+\"+GBP(ASSEMBLY)+\" per cabinet\"]].map(([v,t,p])=>`<button class=\"${W.assembled===v?\"on\":\"\"}\" data-asm=\"${v}\"><b>${t}</b><span class=\"pr\">${p}</span></button>`).join(\"\")}</div></div>${nav}`}card.innerHTML=html;const R=()=>renderPlanStep();card.querySelectorAll(\"[data-shape]\").forEach(b=>b.onclick=()=>{W.shape=b.dataset.shape,baseShape(W.shape)===\"galley\"&&(W.island.on=!1),wizIdx(W).includes(W.sink.wall)||(W.sink.wall=0),wizIdx(W).includes(W.hob.wall)||(W.hob.wall=0),R()}),card.querySelectorAll(\"[data-isl]\").forEach(b=>b.onclick=()=>{const[key,v]=b.dataset.isl.split(\":\");W.island[key]=key===\"on\"?v===\"true\":+v,R()}),card.querySelectorAll(\"[data-len]\").forEach(i=>{const f=()=>{W.walls[+i.dataset.len].len=Math.max(900,Math.round((parseInt(i.value)||900)/10)*10)};i.oninput=()=>{f(),pzScene()},i.onchange=()=>{f(),R()}});const ce=card.querySelector(\"[data-ceiling]\");ce&&(ce.onchange=()=>{W.ceiling=parseInt(ce.value)||2400,R()}),card.querySelectorAll(\"[data-addob]\").forEach(b=>b.onclick=()=>{const[i,t]=b.dataset.addob.split(\":\"),w=W.walls[+i],def={window:{w:1200,sill:1e3},door:{w:900},boiler:{w:600},radiator:{w:800}}[t];w.obs.push({type:t,from:Math.max(0,Math.round((w.len/2-def.w/2)/10)*10),...def}),R()}),card.querySelectorAll(\"[data-ob]\").forEach(i=>{const f=()=>{const[wi,j,key]=i.dataset.ob.split(\":\");W.walls[+wi].obs[+j][key]=parseInt(i.value)||0};i.oninput=()=>{f(),pzScene()},i.onchange=()=>{f(),R()}}),card.querySelectorAll(\"[data-rmob]\").forEach(b=>b.onclick=()=>{const[wi,j]=b.dataset.rmob.split(\":\");W.walls[+wi].obs.splice(+j,1),R()}),card.querySelectorAll(\"[data-obset]\").forEach(b=>b.onclick=()=>{const[wi,j,key,v]=b.dataset.obset.split(\":\");W.walls[+wi].obs[+j][key]=v,R()}),card.querySelectorAll(\"[data-sv]\").forEach(x=>{const[key,v]=x.dataset.sv.split(\":\");x.tagName===\"BUTTON\"?x.onclick=()=>{W[key].wall=+v,R()}:(x.oninput=()=>{W[key].from=parseInt(x.value)||0,pzScene()},x.onchange=R)}),card.querySelectorAll(\"[data-app]\").forEach(b=>b.onclick=()=>{const[key,v]=b.dataset.app.split(\":\");W.app[key]=v,key===\"oven\"&&v===\"range\"&&(W.app.hob=\"none\"),key===\"hob\"&&v!==\"none\"&&W.app.oven===\"range\"&&(W.app.oven=\"builtunder\"),key===\"oven\"&&v!==\"range\"&&W.app.hob===\"none\"&&(W.app.hob=\"induction\"),R()}),card.querySelectorAll(\"[data-st]\").forEach(b=>b.onclick=()=>{const[key,v]=b.dataset.st.split(\":\");W.storage[key]=v===\"true\"?!0:v===\"false\"?!1:v,R()}),card.querySelectorAll(\"[data-pick]\").forEach(b=>b.onclick=()=>{const[key,v]=b.dataset.pick.split(\":\");W[key]=v,R()}),card.querySelectorAll(\"[data-style]\").forEach(b=>b.onclick=()=>{W.style=b.dataset.style,S.style=W.style;try{localStorage.setItem(\"kb-style\",W.style)}catch{}R()}),card.querySelectorAll(\"[data-handle]\").forEach(b=>b.onclick=()=>{W.handle={pid:b.dataset.handle,sku:null},R()}),card.querySelectorAll(\"[data-hfin]\").forEach(b=>b.onclick=()=>{W.handle.sku=b.dataset.hfin,R()}),card.querySelectorAll(\"[data-worktop]\").forEach(b=>b.onclick=()=>{W.worktop=b.dataset.worktop,R()}),card.querySelectorAll(\"[data-asm]\").forEach(b=>b.onclick=()=>{W.assembled=b.dataset.asm===\"true\",R()}),card.querySelector(\"[data-next]\").onclick=()=>{if(last){generateKit2(),go(\"builder\");return}W.step++,R(),document.getElementById(\"pzprog\").scrollIntoView({behavior:\"smooth\",block:\"start\"})};const pv=card.querySelector(\"[data-prev]\");pv&&(pv.onclick=()=>{W.step--,R()}),renderPzHelp(k),pzScene(!0)}const PZ_HELP={shape:{t:\"How to tell your shape\",b:[\"Straight: all units on one wall.\",\"L-shape: two walls meeting in a corner.\",\"U-shape: three walls, units on all three.\",\"Galley: two walls facing each other.\",\"Islands need about a metre of clear floor on every side.\"],d:\"shape\"},walls:{t:\"How to measure a wall\",b:[\"Measure at worktop height (about 900mm up), wall to wall.\",\"Measure twice, in two places; use the smaller number.\",\"Round down to the nearest 10mm.\",\"Ceiling: measure in each corner, use the lowest.\"],d:\"tape\"},openings:{t:\"Measuring windows and doors\",b:['Stand facing the wall. \"From left\" is the left-hand corner to the edge of the frame.',\"Width is frame edge to frame edge.\",\"Sill is floor to the underside of the sill. Base units need 900mm.\",\"Add boilers and radiators so we leave them clear.\"],d:\"window\"},services:{t:\"Finding your water and gas\",b:[\"Sink: measure to the centre of the waste pipe where it enters the wall or floor.\",\"Hob: measure to the centre of the gas point or cooker outlet.\",\"Moving either is a plumber or Gas Safe job, so the plan keeps them where they are.\",\"Dishwasher and washing machine are placed next to the sink.\"],d:\"pipes\"},appliances:{t:\"Sizes we plan for\",b:[\"Built-under oven: 600mm housing beneath the hob.\",\"Eye-level tower: 600mm tall housing at the end of a run.\",\"Range cooker: a 900mm gap, no hob needed.\",\"Integrated fridge freezer: 600mm tall housing. Freestanding: 600mm gap.\",\"Chimney hoods need 650 to 750mm above the hob.\"],d:\"appl\"},storage:{t:\"Drawers vs cupboards\",b:[\"Drawers cost more but keep pans, plates and food in view.\",\"Cupboards are the cheapest storage per metre.\",\"Wall units skip windows and the space above tall units.\",\"A larder is added only when 500mm or more is spare.\"],d:\"store\"},style:{t:\"Choosing a colour\",b:[\"Every door is matt, which hides fingerprints and marks.\",\"Order free samples to see the colour in your light.\"],d:\"style\"}};function renderPzHelp(k){const h=document.getElementById(\"pzhelp\"),H=PZ_HELP[k];!h||!H||(h.innerHTML=`<div class=\"helph\"><i>?</i><b>${H.t}</b></div><div class=\"helpd\">${helpDiagram(H.d)}</div><ul>${H.b.map(x=>`<li>${x}</li>`).join(\"\")}</ul><button class=\"chip\" id=\"pzhelpbtn\">Still unsure? Send photos to a planner</button>`,h.querySelector(\"#pzhelpbtn\").onclick=()=>{S.help=!0,document.getElementById(\"hp\").classList.add(\"on\")})}function shellKit(W){const n=wallsFor(W);return{shape:baseShape(W.shape),shapeId:W.shape,pen:!!SHAPE_PEN[W.shape],walls:wizWalls(W).map((w,i)=>({name:SHAPE_PEN[W.shape]&&i===n-1?\"Peninsula\":WNAME(i),len:w.len,base:[],tall:[],wall:[],obs:w.obs.map(o=>({...o,a:pzRunA(W,i,o.from,o.w)}))})),island:W.island.on?{len:W.island.len,base:[]}:null,sel:0,row:\"base\",extras:{},choices:{}}}function pzScene(stepChanged){const host=document.getElementById(\"pz3d\"),t=ensure3D(host);if(!t)return;const W=S.wiz,step=W.step,st=DATA.styles.find(x=>x.id===W.style)||style(),K=step>=4?generateKit2(!0):shellKit(W);for(;t.group.children.length;)t.group.remove(t.group.children[0]);const g=kitchenGroup(K,st,{pins:step===3,shell:step<4});t.group.add(g),t.pickables=[],t.onClick=null,t.onHover=null,t.auto=step<=1;const lab=document.getElementById(\"pzlab\");lab.innerHTML=\"\",t.labels=[];const addLab=(txt,pos,cls=\"\")=>{const e=el(`<div class=\"pzpin ${cls}\">${txt}</div>`);lab.appendChild(e),t.labels.push({el:e,pos})};K.walls.forEach((w,wi)=>{(step<=2||step>=4)&&addLab(`${w.name} \\xB7 ${w.len}mm`,wallPoint(K,wi,w.len/2,2250,0),\"wall\"),step>=2&&step<4&&(w.obs||[]).forEach(o=>addLab(o.type[0].toUpperCase()+o.type.slice(1),wallPoint(K,wi,o.a+o.w/2,o.type===\"window\"?(o.sill||900)+600:o.type===\"door\"?1500:o.type===\"boiler\"?1700:700,0),\"ob \"+o.type))}),step>=3&&step<4&&[\"sink\",\"hob\"].forEach(key=>{const sv=W[key],wi=wiz2kit(W,sv.wall);addLab(key===\"sink\"?\"Sink here\":\"Hob here\",wallPoint(K,wi,pzRunC(W,sv.wall,sv.from),1250,300),\"pin-\"+key)}),step>=4&&(K.walls.forEach((w,wi)=>{let x=kitStartK(K,wi,\"base\");w.base.forEach(it=>{it.sink?addLab(\"Sink\",wallPoint(K,wi,x+it.w/2,1e3,300),\"u\"):it.hob?addLab(\"Hob\",wallPoint(K,wi,x+it.w/2,1e3,300),\"u\"):it.gap&&(it.k===\"dw\"||it.k===\"wm\"||it.k===\"fr\"||it.k===\"rc\")&&addLab(it.label,wallPoint(K,wi,x+it.w/2,it.k===\"fr\"?1900:950,300),\"u\"),x+=it.w});let xt=w.len-used(w.tall);w.tall.forEach(it=>{const p=byId(it.pid);addLab(p.name.replace(\" housing\",\"\"),wallPoint(K,wi,xt+it.w/2,2050,300),\"u\"),xt+=it.w})}),K.island&&addLab(\"Island \\xB7 \"+K.island.len+\"mm\",islandPoint(K,K.island.len/2,1e3,280),\"u\"));const{A,depth}=roomDimsFor(K);t.target.set(A/2,900,depth/2);const kind=step<=2?\"room\":step===3?\"high\":\"3d\",changed=t.pzStep!==step||t.pzShape!==K.shape;if(t.pzStep=step,t.pzShape=K.shape,changed||!t.inited){const inst=!t.inited;t.inited=!0,camTo(t,kind,K,0,inst)}t.dirty=!0;const hint=document.getElementById(\"pzhint\");hint&&(hint.textContent=step<=1?\"Drag to look around \\xB7 scroll to zoom\":step===2?\"Openings appear as you add them\":step===3?\"Pins show where the sink and hob will go\":step===4?\"Housings and gaps go in as you choose\":step===5?\"Drawers and cupboards fill the runs\":\"Finishes update live\");const pv=document.getElementById(\"pzviews\");pv&&(pv.innerHTML=[[\"3d\",\"3D\"],[\"plan\",\"Plan\"],[\"room\",\"Room\"]].map(([k2,l])=>`<button data-pv=\"${k2}\">${l}</button>`).join(\"\"),pv.querySelectorAll(\"button\").forEach(b=>b.onclick=()=>{t.auto=!1,camTo(t,b.dataset.pv,K,0,!1)}))}const _camTo=camTo;function camToV15(t,kind,K,wi,instant){if(kind===\"high\"||kind===\"room\"||kind===\"reveal\"){const{A,depth}=roomDimsFor(K),span=Math.max(A,depth),to=kind===\"high\"?{th:.25,ph:.55,r:span*1.5}:kind===\"reveal\"?{th:K.shape===\"U\"?.18:.58,ph:1.1,r:span*1.5}:{th:K.shape===\"U\"?.2:.72,ph:1,r:span*2.05},toT=new THREE.Vector3(A/2,kind===\"high\"?600:kind===\"reveal\"?650:800,depth/2);instant?(Object.assign(t.cam,to),t.target.copy(toT),t.upd(),t.dirty=!0):t.anim={from:{...t.cam},to,fromT:t.target.clone(),toT,t0:performance.now(),dur:650};return}return _camTo(t,kind,K,wi,instant)}camTo=camToV15;function generateKit2(preview){const W=S.wiz,n=wallsFor(W);S.style=W.style;try{localStorage.setItem(\"kb-style\",W.style)}catch{}const K={shape:baseShape(W.shape),shapeId:W.shape,pen:!!SHAPE_PEN[W.shape],walls:wizWalls(W).map((w,i)=>({name:SHAPE_PEN[W.shape]&&i===n-1?\"Peninsula\":WNAME(i),len:w.len,base:[],tall:[],wall:[],obs:(w.obs||[]).map(o=>({...o,a:pzRunA(W,i,o.from,o.w)})),notes:[]})),island:W.island.on&&baseShape(W.shape)!==\"galley\"?{len:W.island.len,base:[]}:null,sel:0,row:\"base\",assembled:W.assembled,extras:{worktop:!0,plinth:!0,cornice:!0,handles:!0,ends:!0,fillers:!0,sink:!0,tap:!0,island:!0},pick:null,view:\"3d\",choices:{handle:W.handle,worktop:W.worktop,sink:W.sinkP,tap:W.tapP},extractor:W.app.extractor,generated:!0,ceiling:W.ceiling},it=(pid,w,extra)=>Object.assign(kitItem(pid,w),extra||{}),gap=(k,w)=>({gap:!0,k,w,label:GAPS.find(x=>x[0]===k)[1]+(k===\"dw\"&&w===450?\" (slimline)\":\"\")}),pref=W.storage.pref,fillTypes=pref===\"drawers\"?[\"pan-drawer-base\",\"highline-base-unit\",\"3-drawer-base\",\"pan-drawer-base\",\"highline-base-unit\"]:pref===\"doors\"?[\"highline-base-unit\",\"drawerline-base-unit\",\"highline-base-unit\"]:[\"highline-base-unit\",\"pan-drawer-base\",\"drawerline-base-unit\",\"highline-base-unit\"];let fi=0;const nextFill=()=>fillTypes[fi++%fillTypes.length],plans=K.walls.map((w,i)=>{const start=kitStartK(K,i,\"base\"),run=w.len-start,blocked=[];return w.obs.forEach(o=>{o.type===\"door\"&&blocked.push({a:o.a-start-100,b:o.a-start+o.w+100,kind:\"door\",o}),o.type===\"radiator\"&&blocked.push({a:o.a-start,b:o.a-start+o.w,kind:\"space\",o}),o.type===\"swingzone\"&&(blocked.push({a:o.a-start,b:o.a-start+o.w,kind:\"swing\",o}),w.notes.push(`Door swing from Wall ${o.src} kept clear in the corner.`))}),{i,start,run,blocked,fixed:[]}});W._layout||K.walls.forEach((w,i)=>{(w.obs||[]).forEach(o=>{if(o.type!==\"door\"||(o.swing||\"in\")!==\"in\")return;const nearStart=o.a<o.w,nearEnd=o.a+o.w>w.len-o.w,hasB=K.shape===\"L\"||K.shape===\"U\",hasC=K.shape===\"U\",block=(j,atStart)=>{const Q=plans[j];if(!Q)return;const b={a:atStart?0:Q.run-o.w,b:atStart?o.w:Q.run,kind:\"swing\",o};Q.blocked.push(b),K.walls[j].notes.push(`Door swing from ${w.name} kept clear in the corner.`)};i===0&&nearStart&&hasB&&block(1,!0),i===0&&nearEnd&&hasC&&block(2,!0),i===1&&nearStart&&hasB&&block(0,!0),i===2&&nearStart&&hasC&&block(0,!1)})});const free=(P,a,b)=>a>=0&&b<=P.run&&!P.blocked.concat(P.fixed).some(x=>a<x.b&&b>x.a),place=(P,a,w,item,kind)=>{P.fixed.push({a,b:a+w,item,kind})},tryPlace=(P,center,w,item,kind)=>{let a=Math.round((center-w/2)/10)*10;a=Math.max(0,Math.min(P.run-w,a));for(let d=0;d<=P.run;d+=50)for(const x of d?[a-d,a+d]:[a])if(!(x<0||x+w>P.run)&&free(P,x,x+w))return place(P,x,w,item,kind),x;return null},note=(wi,s)=>K.walls[wi].notes.push(s);plans.forEach(P=>{P.i>0&&(K.shape===\"L\"||K.shape===\"U\")&&free(P,0,900)&&(place(P,0,900,it(\"highline-corner-base\",900),\"corner\"),note(P.i,\"Corner base unit turns the corner so no space is lost.\"))});const sw=wiz2kit(W,W.sink.wall),hw=wiz2kit(W,W.hob.wall),ps=plans[sw],sinkW=ps.run>=2400?1e3:600,sinkC=pzRunC(W,W.sink.wall,W.sink.from)-ps.start;let sinkX=tryPlace(ps,sinkC,sinkW,it(\"sink-base-unit\",sinkW,{sink:!0}),\"sink\"),psx=ps;if(sinkX===null){const alt=[...plans].filter(Q=>Q!==ps).sort((a,b)=>b.run-b.fixed.reduce((s,f)=>s+(f.b-f.a),0)-(a.run-a.fixed.reduce((s,f)=>s+(f.b-f.a),0)));for(const Q of alt){const x=tryPlace(Q,Q.run/2,sinkW,it(\"sink-base-unit\",sinkW,{sink:!0}),\"sink\");if(x!==null){sinkX=x,psx=Q,note(Q.i,\"Sink moved here: no room on \"+K.walls[sw].name+\". The waste pipe will need extending.\");break}}}sinkX!==null&&psx===ps?note(sw,`${sinkW}mm sink base centred on your waste pipe (${W.sink.from}mm from the left).`):sinkX===null&&note(sw,\"Could not fit a sink anywhere: the runs are too short.\");const ph=plans[hw],hobC=pzRunC(W,W.hob.wall,W.hob.from)-ph.start;if(W.app.oven===\"range\")tryPlace(ph,hobC,900,gap(\"rc\",900),\"range\")!==null&&note(hw,\"900mm gap for the range cooker on your gas point.\");else if(W.app.hob!==\"none\"){const hobW=ph.run>=3e3?800:600,hobItem=()=>W.app.oven===\"builtunder\"?it(\"built-under-oven-housing\",600,{hob:!0}):it(\"pan-drawer-base\",hobW,{hob:!0}),hobWW=W.app.oven===\"builtunder\"?600:hobW;let ok=tryPlace(ph,hobC,hobWW,hobItem(),\"hob\");if(ok===null){const alt=[...plans].filter(Q=>Q!==ph).sort((a,b)=>b.run-b.fixed.reduce((s,f)=>s+(f.b-f.a),0)-(a.run-a.fixed.reduce((s,f)=>s+(f.b-f.a),0)));for(const Q of alt){const x=tryPlace(Q,Q.run/2,hobWW,hobItem(),\"hob\");if(x!==null){ok=x,note(Q.i,\"Hob moved here: no room on \"+K.walls[hw].name+\". The gas / cooker point will need moving.\");break}}}ok!==null&&ph.fixed.some(f=>f.kind===\"hob\")&&note(hw,W.app.oven===\"builtunder\"?`Hob over a built-under oven housing on your ${W.app.hob===\"gas\"?\"gas\":\"cooker\"} point.`:`${hobW}mm pan drawers under the hob, on your ${W.app.hob===\"gas\"?\"gas\":\"cooker\"} point.`)}const hobF=(plans.find(Q=>Q.fixed.some(f=>f.kind===\"hob\"||f.kind===\"range\"))||ph).fixed.find(f=>f.kind===\"hob\"||f.kind===\"range\");hobF&&([[hobF.a-600,600],[hobF.b,600],[hobF.a-500,500],[hobF.b,500]].forEach(([x,w])=>{const side=x<hobF.a?\"L\":\"R\";ph.fixed.some(f=>f.kind===\"land\"+side)||free(ph,x,x+w)&&place(ph,x,w,it(\"pan-drawer-base\",w),\"land\"+side)}),ph.fixed.some(f=>f.kind===\"landL\"||f.kind===\"landR\")&&note(hw,\"Pan drawers either side of the hob: landing space for hot pans.\"));const wallDist=(i,a,j,b)=>{if(i===j)return Math.abs(a-b);const A0=plans[0].run,toA=(k,v)=>k===0?v:k===1?v+(K.shape===\"galley\"?A0:0):A0-v;return K.shape===\"galley\"?Math.abs(a-b)+2400:i===0?(j===1?a:A0-a)+b:j===0?(i===1?b:A0-b)+a:a+A0+b},beside=(P0,x,w,item,kind,label)=>{if(x===null)return!1;const P=plans.find(Q=>Q.fixed.some(f=>f.kind===\"sink\"))||P0,s=P.fixed.find(f=>f.kind===\"sink\"),sc=s?(s.a+s.b)/2:x;let best=null;for(const Q of plans)for(let a=0;a<=Q.run-w;a+=50){if(!free(Q,a,a+w))continue;const d=wallDist(P.i,sc,Q.i,a+w/2);(!best||d<best.d)&&(best={Q,a,d})}return best?(place(best.Q,best.a,w,item,kind),note(best.Q.i,best.d<=w?label+\" next to the sink, where the plumbing is.\":label+\" as close to the sink as the room allows.\"),!0):!1};if(W.app.dishwasher!==\"none\"){const dwW=W.app.dishwasher===\"450\"?450:600;beside(ps,sinkX,dwW,gap(\"dw\",dwW),\"dw\",\"Dishwasher gap\")}if(W.app.washer===\"yes\"&&beside(ps,sinkX,600,gap(\"wm\",600),\"wm\",\"Washing machine gap\"),W.app.fridge===\"freestanding\"){const Q=[...plans].sort((a,b)=>b.run-a.run)[0];for(let a=Q.run-600;a>=0;a-=100)if(free(Q,a,a+600)){place(Q,a,600,gap(\"fr\",600),\"fr\"),note(Q.i,\"600mm gap for the freestanding fridge freezer at the end of the run.\");break}}const talls=[];if(W.app.fridge===\"integrated\"&&talls.push([\"fridge-freezer-housing\",\"Fridge freezer housing\"]),W.app.oven===\"tower\"&&talls.push([W.app.microwave===\"tower\"?\"oven-microwave-housing\":\"single-oven-housing\",W.app.microwave===\"tower\"?\"Oven and microwave tower\":\"Eye-level oven tower\"]),W.storage.larder&&talls.push([\"tall-larder\",\"Tall larder\"]),talls.forEach(([pid,label])=>{const w=pid===\"tall-larder\"?500:600,spare=P=>P.run-P.fixed.reduce((s,f)=>s+(f.b-f.a),0),order=[...plans].filter(P=>P.i!==3&&!(K.shape===\"U\"&&P.i===0)&&!(K.pen&&(K.shape===\"L\"&&P.i===1||K.shape===\"U\"&&P.i===2))).sort((a,b)=>spare(b)-spare(a));order.length||order.push(plans[0]);for(const Q of order){const tallW=Q.fixed.filter(f=>f.kind===\"tall\").reduce((s,f)=>s+(f.b-f.a),0),a=Q.run-tallW-w;if(a>=0&&free(Q,a,a+w)){place(Q,a,w,it(pid,w),\"tall\"),note(Q.i,label+\" at the end of the run, so the worktop stays unbroken.\");break}}}),plans.forEach(P=>{const occ=[...P.blocked.map(b=>({a:Math.max(0,b.a),b:Math.min(P.run,b.b),kind:b.kind})),...P.fixed].sort((x,y)=>x.a-y.a);let cur=0;const segs=[];occ.forEach(o=>{o.a>cur&&segs.push({a:cur,b:o.a,blk:o.kind===\"door\"||o.kind===\"space\"||o.kind===\"swing\"}),cur=Math.max(cur,o.b)}),cur<P.run&&segs.push({a:cur,b:P.run,blk:!1});let fills=0;segs.forEach(sg=>{let x=sg.a,rem=sg.b-sg.a;for(;rem>=300;){let pid=null,ww=null;for(let tries=0;tries<fillTypes.length&&!ww;tries++){const cand=nextFill(),p=byId(cand),ok=p.widths.filter(z=>z<=Math.min(1e3,rem)&&z>=300).filter(z=>{const r=rem-z;return r===0||r>=300||r<150}).sort((a,b)=>b-a),any=p.widths.filter(z=>z<=Math.min(1e3,rem)&&z>=300).sort((a,b)=>b-a),w=ok[0]||any[0];w&&(pid=cand,ww=w)}if(!ww)break;place(P,x,ww,it(pid,ww),\"fill\"),fills++,x+=ww,rem-=ww}rem>0&&rem<300&&!sg.blk&&x>sg.a&&(place(P,x,rem,{gap:!0,k:\"filler\",w:rem,label:\"Filler \"+rem+\"mm\"},\"filler\"),note(P.i,`${rem}mm filler closes the run to the wall.`))}),fills&&note(P.i,`${fills} storage unit${fills>1?\"s fill\":\" fills\"} the rest: ${pref===\"drawers\"?\"mostly drawers\":pref===\"doors\"?\"mostly cupboards\":\"a mix of drawers and cupboards\"}.`),P.blocked.forEach(b=>note(P.i,b.kind===\"door\"?(b.o.swing||\"in\")===\"in\"?\"Doorway kept clear, 100mm each side for the frame; the door swings into the room, so nothing stands in its arc.\":\"Doorway kept clear with 100mm either side.\":b.kind===\"swing\"?\"\":\"Radiator left uncovered.\"))}),plans.forEach(P=>{const w=K.walls[P.i],items=[...P.fixed].sort((x,y)=>x.a-y.a),doors=P.blocked,seq=[...items.filter(f=>f.kind!==\"tall\").map(f=>({a:f.a,b:f.b,item:f.item})),...doors.map(d=>({a:Math.max(0,d.a),b:Math.min(P.run,d.b),item:{gap:!0,k:d.kind===\"door\"?\"door\":\"space\",w:Math.min(P.run,d.b)-Math.max(0,d.a),label:d.kind===\"door\"?\"Doorway\":d.kind===\"swing\"?\"Door swing\":\"Radiator\"}}))].sort((x,y)=>x.a-y.a);let cur=0,shift=0;seq.forEach((s2,idx)=>{const g2=s2.a-cur,prev=idx?seq[idx-1].item:null,nextDoor=s2.item.gap&&s2.item.k===\"door\",prevDoor=prev&&prev.gap&&prev.k===\"door\";g2>20&&(g2<250&&prev&&!prevDoor&&!nextDoor?shift+=g2:w.base.push({gap:!0,k:\"space\",w:g2,label:nextDoor||prevDoor?\"Clearance\":\"Space\"})),w.base.push(s2.item),cur=s2.b}),shift>0&&(shift<300?w.base.push({gap:!0,k:\"filler\",w:shift,label:\"Filler \"+shift+\"mm\"}):w.base.push({gap:!0,k:\"space\",w:shift,label:\"Space\"})),w.tall=items.filter(f=>f.kind===\"tall\").map(f=>f.item)}),K.walls.forEach((w,i)=>{if(isPen(K,i)){plans[i].fixed.some(f=>f.kind===\"hob\"||f.kind===\"range\")&&note(i,\"Hob on the peninsula: an island hood or downdraught extractor is needed (not included).\"),note(i,\"Back panel and a 340mm breakfast-bar overhang on the room side.\");return}const P=plans[i],startW=kitStartK(K,i,\"wall\"),runW=w.len-startW-P.fixed.filter(f=>f.kind===\"tall\").reduce((s,f)=>s+(f.b-f.a),0),blocked=[];w.obs.forEach(o=>{o.type===\"door\"&&blocked.push({a:o.a-startW-100,b:o.a-startW+o.w+100,kind:\"door\"}),o.type===\"window\"&&blocked.push({a:o.a-startW-50,b:o.a-startW+o.w+50,kind:\"window\"}),o.type===\"swingzone\"&&blocked.push({a:o.a-startW,b:o.a-startW+o.w,kind:\"door\"})}),P.blocked.filter(b=>b.kind===\"swing\").forEach(b=>blocked.push({a:b.a+P.start-startW,b:b.b+P.start-startW,kind:\"door\"}));const fixedW=[],hob=P.fixed.find(f=>f.kind===\"hob\"||f.kind===\"range\");if(hob){const a=hob.a+P.start-startW,tw=hob.b-hob.a;if(K.extractor===\"chimney\")a>=0&&a+tw<=runW&&fixedW.push({a,b:a+tw,item:{gap:!0,k:\"hood\",w:tw,label:\"Chimney hood\",hood:!0}}),note(i,\"Chimney hood over the hob; wall units stop either side of it.\");else if(K.extractor===\"integrated\"){const p=byId(\"top-box\"),ww=p.widths.includes(tw)?tw:p.widths.filter(z=>z<=tw).sort((x,y)=>y-x)[0]||600;a>=0&&a+ww<=runW&&(fixedW.push({a,b:a+ww,item:it(\"top-box\",ww,{hood:!0})}),note(i,\"Top box over the hob for the integrated extractor.\"))}else{const p=byId(\"top-box\"),ww=p.widths.includes(tw)?tw:p.widths.filter(z=>z<=tw).sort((x,y)=>y-x)[0]||600;a>=0&&a+ww<=runW&&fixedW.push({a,b:a+ww,item:it(\"top-box\",ww)})}}const boiler=w.obs.find(o=>o.type===\"boiler\");if(boiler){const a=Math.max(0,Math.min(runW-600,boiler.a-startW));fixedW.push({a,b:a+600,item:it(\"boiler-housing\",600)}),note(i,\"Boiler housing hides the boiler and matches the wall units.\")}i>0&&(K.shape===\"L\"||K.shape===\"U\")&&W.storage.wallUnits&&!fixedW.some(f=>f.a<600)&&!blocked.some(o=>0<o.b&&600>o.a)&&fixedW.push({a:0,b:600,item:it(\"corner-wall-unit\",600)});const occ=[...blocked.map(b=>({a:Math.max(0,b.a),b:Math.min(runW,b.b),kind:b.kind})),...fixedW].sort((x,y)=>x.a-y.a);if(W.storage.wallUnits){const wp=byId(\"wall-unit\"),freeW=(a,b)=>a>=0&&b<=runW&&!occ.some(o=>a<o.b&&b>o.a)&&!fixedW.some(o=>a<o.b&&b>o.a);[...P.fixed].filter(f=>f.kind!==\"tall\").sort((x,y)=>x.a-y.a).forEach(f=>{const a=f.a+P.start-startW,w2=f.b-f.a;w2<300||w2>1e3||!wp.widths.includes(w2)||freeW(a,a+w2)&&fixedW.push({a,b:a+w2,item:it(\"wall-unit\",w2)})});const occ2=[...occ,...fixedW].sort((x,y)=>x.a-y.a);let c2=0;const segs=[];occ2.forEach(o=>{o.a>c2+20&&segs.push({a:c2,b:o.a}),c2=Math.max(c2,o.b)}),c2<runW-20&&segs.push({a:c2,b:runW}),segs.forEach(sg=>{let x=sg.a,rem=sg.b-sg.a;for(;rem>=300;){const ww=wp.widths.filter(z=>z<=Math.min(1e3,rem)&&z>=300).sort((a,b)=>b-a)[0];if(!ww)break;fixedW.push({a:x,b:x+ww,item:it(\"wall-unit\",ww)}),x+=ww,rem-=ww}}),note(i,\"Wall units line up with the base units below them.\"),blocked.some(b=>b.kind===\"window\")&&note(i,\"No wall units over the window.\")}const all=[...fixedW.sort((x,y)=>x.a-y.a)];let cur=0;const cause=(a,b)=>{const o=blocked.find(x=>a<x.b&&b>x.a);return o?o.kind===\"window\"?\"Window\":\"Doorway\":\"Space\"},sp2=(a,b)=>{const wdt=b-a,c=cause(a,b);return c===\"Space\"&&wdt<150?{gap:!0,k:\"filler\",w:wdt,label:\"Filler \"+wdt+\"mm\"}:{gap:!0,k:\"space\",w:wdt,label:c}};all.forEach(f=>{f.a>cur+20&&w.wall.push(sp2(cur,f.a)),w.wall.push(f.item),cur=f.b}),runW-cur>20&&w.wall.push(sp2(cur,runW))}),K.island){const{A}=roomDimsFor(K),hasB=K.shape===\"L\"||K.shape===\"U\",hasC=K.shape===\"U\",avail=A-(hasB?BASE_D+1e3:1e3)-(hasC?BASE_D+1e3:1e3),fit=Math.min(K.island.len,Math.floor(avail/100)*100),zOk=islandZ(K)>=BASE_D+1e3;fit<1200||!zOk?(K.walls[0].notes.push(fit<1200?`No room for an island: ${Math.max(0,avail)}mm between the runs, and it needs 1000mm clear each side.`:\"No room for an island between the runs and the peninsula.\"),K.island=null):fit<K.island.len&&(K.island.len=fit,K.walls[0].notes.push(`Island shortened to ${fit}mm to keep 1000mm clear each side.`))}if(K.island){let rem=K.island.len;const seqI=[\"pan-drawer-base\",\"highline-base-unit\",\"pan-drawer-base\",\"highline-base-unit\"];let j=0;for(;rem>=300;){const w=rem>=600?600:rem>=500?500:rem>=400?400:300,pid=seqI[j++%seqI.length],p=byId(pid),ww=p.widths.includes(w)?w:p.widths.filter(z=>z<=w).sort((a,b)=>b-a)[0];if(!ww)break;K.island.base.push(it(pid,ww)),rem-=ww}K.island.notes=[\"Island of \"+K.island.len+\"mm with pan drawers facing the room and a back panel in your door colour.\",\"1000mm of clear floor kept on every side.\"]}return K.walls.forEach(w=>{[\"base\",\"wall\"].forEach(r=>{const out=[];w[r].forEach(it2=>{const last=out[out.length-1];last&&last.gap&&it2.gap&&last.k===it2.k&&(it2.k===\"filler\"||it2.k===\"space\")?(last.w+=it2.w,last.label=it2.k===\"filler\"?\"Filler \"+last.w+\"mm\":last.label):out.push(it2)}),w[r]=out})}),S.kit=K,K.walls.forEach(w=>kitFit(w)),K}const BM={},bm=hex=>(BM[hex]||(BM[hex]=new THREE.MeshBasicMaterial({color:new THREE.Color(hex)})),BM[hex]);function kitchenGroupV15(K,st,opts={}){const G=_kitchenGroup(K,st,opts),{A,depth}=roomDimsFor(K),glossy=st.finish===\"Gloss\",doorM=mat(st.hex,glossy);if(K.walls.forEach((w,wi)=>{const s=kitStartK(K,wi,\"base\");(w.obs||[]).forEach(o=>{const a=o.a!==void 0?o.a:o.from,g=new THREE.Group;if(o.type===\"window\"){const sill=o.sill||900,h=Math.max(600,Math.min(2100,K.ceiling||2400)-sill-250);g.add(box(o.w+100,h+100,50,bm(\"#9FB0BC\"),-50,sill-50,-20,!1));const pane=new THREE.Mesh(new THREE.BoxGeometry(o.w,h,8),bm(\"#BFE6F4\"));pane.position.set(o.w/2,sill+h/2,34),g.add(pane),g.add(box(24,h,14,bm(\"#F4F7F9\"),o.w/2-12,sill,36,!1)),g.add(box(o.w,24,14,bm(\"#F4F7F9\"),0,sill+h/2-12,36,!1)),g.add(box(o.w+140,34,110,bm(\"#F4F7F9\"),-70,sill-34,-20,!1))}else if(o.type===\"door\")if(g.add(box(o.w+90,2100,50,bm(\"#8A9BA7\"),-45,0,-20,!1)),g.add(box(o.w,2050,30,bm(\"#E9ECEF\"),0,0,10,!1)),g.add(box(o.w-200,900,6,bm(\"#D5DBE0\"),100,1050,40,!1)),g.add(box(o.w-200,700,6,bm(\"#D5DBE0\"),100,200,40,!1)),g.add(box(16,130,30,bm(\"#5C656E\"),o.w-130,1e3,40,!1)),(o.swing||\"in\")===\"in\"){const hr=(o.hinge||\"left\")===\"right\",hx=hr?o.w:0,leaf=box(40,2e3,o.w-20,bm(\"#E9ECEF\"),hr?hx-40:hx,0,20,!0);g.add(leaf);const arc=new THREE.Mesh(new THREE.CircleGeometry(o.w,32,hr?Math.PI/2:0,Math.PI/2),new THREE.MeshBasicMaterial({color:16757703,transparent:!0,opacity:.35,side:THREE.DoubleSide}));arc.rotation.x=-Math.PI/2,arc.rotation.z=hr?Math.PI:0,arc.position.set(hx,3,0),g.add(arc);const ring=new THREE.Line(new THREE.BufferGeometry().setFromPoints(Array.from({length:33},(_,k)=>{const t=hr?Math.PI-k/32*Math.PI/2:k/32*Math.PI/2;return new THREE.Vector3(hx+Math.cos(t)*o.w,5,Math.sin(t)*o.w)})),new THREE.LineBasicMaterial({color:15305379}));g.add(ring)}else{const m=new THREE.Mesh(new THREE.BoxGeometry(o.w,4,300),new THREE.MeshBasicMaterial({color:16757703,transparent:!0,opacity:.35}));m.position.set(o.w/2,2,150),g.add(m)}else if(o.type===\"boiler\")g.add(box(462,732,336,bm(\"#9FB0BC\"),(o.w-462)/2,1344,-16,!1)),g.add(box(450,720,330,bm(\"#EDEFF1\"),(o.w-450)/2,1350,-10,!0)),g.add(box(300,40,8,bm(\"#1C1E22\"),(o.w-300)/2,1950,322,!1));else if(o.type===\"radiator\"){g.add(box(o.w,620,70,bm(\"#E4E7EA\"),0,150,10,!0));for(let i=0;i<Math.floor(o.w/60);i++)g.add(box(28,560,10,bm(\"#C9D0D6\"),16+i*60,180,80,!1))}g.userData.w=o.w,placeOnWallK(K,g,wi,a-s,!1),G.add(g)});let x=0;w.base.forEach(it=>{if(it.hob){const g=new THREE.Group;g.add(box(it.w-120,12,520,mat(\"#1C1E22\",!1),60,910,40,!1)),[[.28,.3],[.72,.3],[.28,.7],[.72,.7]].forEach(([a,b])=>g.add(box(150,3,150,mat(\"#3A3D43\",!1),(it.w-120)*a-75+60,922,520*b-75+40,!1))),g.userData.w=it.w,placeOnWallK(K,g,wi,x,!1),G.add(g)}x+=it.w});let xw=0;w.wall.forEach(it=>{if(it.gap&&it.k===\"hood\"){const g=new THREE.Group,steel=mat(\"#C9CDD2\",!0);g.add(box(it.w-40,40,500,steel,20,1600,0,!0)),g.add(box(it.w-40,120,500,mat(\"#DADDE1\",!0),20,1640,0,!1)),g.add(box(280,(K.ceiling||2400)-1760,280,steel,it.w/2-140,1760,20,!1)),g.userData.w=it.w,placeOnWallK(K,g,wi,xw,!0),G.add(g)}xw+=it.w})}),opts.shell){const fl=box(A,6,depth,mat(\"#B4C0C9\",!1),0,0,0,!1);G.add(fl);const pts=[];for(let x=0;x<=A;x+=500)pts.push(x,8,0,x,8,depth);for(let z=0;z<=depth;z+=500)pts.push(0,8,z,A,8,z);const geo=new THREE.BufferGeometry;geo.setAttribute(\"position\",new THREE.Float32BufferAttribute(pts,3)),G.add(new THREE.LineSegments(geo,new THREE.LineBasicMaterial({color:9346214})));const edgeM=new THREE.LineBasicMaterial({color:8030097}),wallBoxes=[[A+200,ROOM_H,100,-100,0,-100]];(K.shape===\"L\"||K.shape===\"U\")&&wallBoxes.push([100,ROOM_H,depth+100,-100,0,-100]),K.shape===\"U\"&&wallBoxes.push([100,ROOM_H,depth+100,A,0,-100]),K.shape===\"galley\"&&wallBoxes.push([A+200,ROOM_H,100,-100,0,depth]),wallBoxes.forEach(([w,h,d,x,y,z])=>{const e=new THREE.LineSegments(new THREE.EdgesGeometry(new THREE.BoxGeometry(w,h,d)),edgeM);e.position.set(x+w/2,y+h/2,z+d/2),G.add(e);const sk=box(w,110,d+16,mat(\"#B7C2CA\",!1),x,0,z-8,!1);G.add(sk)}),K.walls.forEach((w,wi)=>{const g=new THREE.Group;g.add(box(w.len,4,4,mat(\"#0A1116\",!1),0,1400,120,!1)),g.add(box(4,120,4,mat(\"#0A1116\",!1),0,1340,120,!1)),g.add(box(4,120,4,mat(\"#0A1116\",!1),w.len-4,1340,120,!1)),g.userData.w=w.len,placeOnWallK(K,g,wi,-kitStartK(K,wi,\"base\"),!1),G.add(g)})}if(opts.pins&&S.wiz){const W=S.wiz;[\"sink\",\"hob\"].forEach(key=>{const sv=W[key],wi=wiz2kit(W,sv.wall),g=new THREE.Group,col=key===\"sink\"?48106:659734,m=new THREE.Mesh(new THREE.CylinderGeometry(70,70,1180,24),new THREE.MeshBasicMaterial({color:col,transparent:!0,opacity:.35}));m.position.set(0,590,300),g.add(m);const ring=new THREE.Mesh(new THREE.RingGeometry(260,320,48),new THREE.MeshBasicMaterial({color:col,transparent:!0,opacity:.6,side:THREE.DoubleSide}));ring.rotation.x=-Math.PI/2,ring.position.set(0,6,300),g.add(ring);const w2=key===\"sink\"?1e3:800,ghost=new THREE.Mesh(new THREE.BoxGeometry(w2,870,560),new THREE.MeshBasicMaterial({color:col,transparent:!0,opacity:.1}));ghost.position.set(0,435,280),g.add(ghost),g.userData.w=0,placeOnWallK(K,g,wi,pzRunC(W,sv.wall,sv.from)-kitStartK(K,wi,\"base\"),!1),G.add(g)})}if(K.island){const len=K.island.len,x0=(A-len)/2,z0=islandZ(K),grp=new THREE.Group;let x=0;const pick=G.userData.pickables;K.island.base.forEach((it,i)=>{const o=unit3D(byId(it.pid),it.v,st,{flip:it.flip});o.position.set(x,0,0),o.userData.pick={row:\"island\",i,wi:-1},o.userData.fam=\"base\",grp.add(o),pick.push(o),(o.userData.handles||[]).forEach(h=>G.userData.famBoxes.handles.push(h)),x+=it.w}),x>0&&(grp.add(wtBox(x,760,worktopMat(K),0,870,-160)),grp.add(box(x,870,18,doorM,0,0,-18,!0)),grp.add(box(x,150,20,doorM,0,0,50,!1)),grp.add(box(18,870,578,doorM,-18,0,-18,!0)),grp.add(box(18,870,578,doorM,x,0,-18,!0))),grp.position.set(x0,0,z0),G.add(grp)}return G}kitchenGroup=kitchenGroupV15;function kitCounts(){const K=kit();let cabs=0,fronts=0,units=0,price=0;const rows=K.walls.flatMap(w=>[w.base,w.tall,w.wall]);return K.island&&rows.push(K.island.base),rows.forEach(r=>r.forEach(it=>{if(it.gap)return;const p=byId(it.pid);units++,isCab(p)&&(cabs++,fronts+=handleCount(p,it.v)),price+=unitPrice(p,it.v,K.assembled)})),{cabs,fronts,units,price}}const _kitExtrasV14=kitExtras;function kitExtrasV15(){const K=kit(),out=_kitExtrasV14();if(K.island&&K.island.base.length){const len=K.island.base.reduce((a,i)=>a+i.w,0),wt=out.find(x=>x.key===\"worktop\");wt&&(wt.qty+=1,wt.price=wt.v.price*wt.qty);const pl=out.find(x=>x.key===\"plinth\");pl&&(pl.qty+=1,pl.price=pl.v.price*pl.qty);const ends=out.find(x=>x.key===\"ends\");ends&&(ends.qty+=2,ends.price=ends.v.price*ends.qty);const bp=byId(\"acc-island-peninsular-backing-panel\");bp&&out.push({key:\"island\",p:bp,v:bp.variants[0],qty:1,label:\"Island back panel\",sub:\"Colour matched, \"+len+\"mm run\",price:bp.variants[0].price,on:K.extras.island!==!1})}return out}kitExtras=kitExtrasV15;function rvRefresh(first){const K=kit(),st=style(),c=kitCounts(),ex=kitExtras(),exOn=ex.filter(e=>e.on).reduce((a,e)=>a+e.price,0),total=c.price+exOn,obs=K.walls.reduce((a,w)=>a+(w.obs||[]).length,0),chips=[`${SHAPES.find(x=>x[0]===(K.shapeId||K.shape))[1]} \\xB7 ${K.walls.map(w=>w.len).join(\" \\xD7 \")}mm`,\"Sink on your waste point\",\"Hob on your gas / cooker point\",obs?`${obs} opening${obs>1?\"s\":\"\"} kept clear`:\"Nothing in the way\",`${c.units} units, sized to the mm`,\"Worktop, plinth, cornice & handles counted\",K.island?\"Island included\":null,K.assembled?\"Ready assembled\":\"Flatpack\"].filter(Boolean),head=document.getElementById(\"rvhead\");head&&(head.innerHTML=`<div class=\"rvh1\"><div class=\"eyebrow\">Planned from your measurements \\xB7 ${st.name}</div><h1>Your kitchen is <em>ready</em></h1><p>Built from your answers: every unit below fits your room. Tap anything in 3D to swap it; the basket updates as you go.</p><div class=\"rchk\">${chips.map(x=>`<span><i>\\u2713</i>${x}</span>`).join(\"\")}</div><div class=\"rlinks\"><button data-rv=\"edit\">Change my answers</button><button data-rv=\"send\">Have a planner double-check it</button><button data-rv=\"samples\">Order free samples</button></div></div><div class=\"rvprice\"><small>Complete kitchen \\xB7 inc VAT</small><div class=\"big\">${GBP(total)}</div><div class=\"klarna\"><span class=\"kl2\">Klarna.</span> 3 \\xD7 ${GBP(total/3)}</div><div class=\"rvfree\">${total>=FREE?\"<b>Free pallet delivery</b> included\":GBP(FREE-total)+\" more for free delivery\"}</div><button class=\"add\" data-rv=\"add\"><span>Add whole kitchen to cart</span><span>\\u2192</span></button><div class=\"rvsmall\">${c.units} units \\xB7 ${ex.filter(e=>e.on).length} extras \\xB7 ${K.assembled?\"ready assembled\":\"flatpack\"}</div></div>`),document.querySelectorAll(\"[data-rv]\").forEach(b=>b.onclick=()=>{const k=b.dataset.rv;k===\"edit\"?go(\"plan\"):k===\"send\"?(S.help=!0,document.getElementById(\"hp\").classList.add(\"on\")):k===\"samples\"?openSamples(S.style):k===\"add\"?rvAddAll():k===\"tune\"&&document.getElementById(\"rvwalls\").scrollIntoView({behavior:\"smooth\"})}),rvWalls(),rvBasket(),rvScene(first)}const rvRowName={base:\"Base units\",wall:\"Wall units\",tall:\"Tall & appliances\",island:\"Island\"};function rvTile(it,wi,row,i,st){if(it.gap){const icon=it.k===\"door\"?\"Doorway\":it.k===\"space\"?it.label||\"Space\":it.k===\"filler\"?\"Filler\":it.k===\"hood\"?\"Chimney hood\":it.label;return`<button class=\"rvtile gap ${it.k}\" data-sw=\"${wi}:${row}:${i}\"><span class=\"pic\"><i>${it.k===\"dw\"||it.k===\"wm\"||it.k===\"fr\"||it.k===\"rc\"?\"\\u2302\":it.k===\"door\"?\"\\u21E5\":\"\\xB7\"}</i></span><b>${icon}</b><small>${it.w}mm${it.k===\"dw\"||it.k===\"wm\"||it.k===\"fr\"||it.k===\"rc\"?\" gap \\xB7 appliance not included\":\"\"}</small></button>`}const p=byId(it.pid),url=unitSnap(p,it.v,st,200,150);return`<button class=\"rvtile\" data-sw=\"${wi}:${row}:${i}\"><span class=\"pic\">${url?`<img src=\"${url}\" alt=\"\">`:unitPic(p,it.v,st,{scale:.08})}</span><b>${p.name}</b><small>${it.w}mm \\xB7 ${GBP(unitPrice(p,it.v,kit().assembled))}</small>${it.sink?\"<em>Sink</em>\":it.hob?\"<em>Hob</em>\":\"\"}</button>`}function rvWalls(){const K=kit(),st=style(),host=document.getElementById(\"rvwalls\");if(!host)return;const wallCard=(w,wi)=>`<div class=\"rvwall\"><div class=\"rvwh\"><div><b>${w.name}</b><span>${w.len}mm${wi>=0?\" \\xB7 \"+WSIDE(S.wiz||{shape:K.shape},wi):\"\"}</span></div><button class=\"rvface\" data-face=\"${wi}\">Look at this wall</button></div>${(w.notes||[]).length?`<ul class=\"rvnotes\">${w.notes.map(x=>`<li>${x}</li>`).join(\"\")}</ul>`:\"\"}${[\"base\",\"wall\",\"tall\"].filter(r=>w[r]&&w[r].length).map(r=>`<div class=\"rvrow\"><small>${rvRowName[wi<0?\"island\":r]}</small><div class=\"rvtiles\">${w[r].map((it,i)=>rvTile(it,wi,wi<0?\"island\":r,i,st)).join(\"\")}</div></div>`).join(\"\")}</div>`;host.innerHTML='<div class=\"rvwt\"><div class=\"eyebrow\">Wall by wall</div><h2>What goes where, and why</h2><p>Tap a unit to swap it for another that fits, change its width, or take it out.</p></div>'+K.walls.map(wallCard).join(\"\")+(K.island?wallCard({name:\"Island\",len:K.island.len,base:K.island.base,notes:K.island.notes},-1):\"\"),host.querySelectorAll(\"[data-sw]\").forEach(b=>b.onclick=()=>{const[wi,row,i]=b.dataset.sw.split(\":\");openSwap(+wi,row,+i)}),host.querySelectorAll(\"[data-face]\").forEach(b=>b.onclick=()=>{const wi=+b.dataset.face;document.getElementById(\"rv3d\").scrollIntoView({behavior:\"smooth\",block:\"center\"});const t=T3;if(t){if(wi<0){camTo(t,\"3d\",K,0,!1);return}K.sel=wi,camTo(t,\"front\",K,wi,!1)}})}function rvBasket(){const K=kit(),st=style(),host=document.getElementById(\"rvbasket\");if(!host)return;const c=kitCounts(),ex=kitExtras(),exOn=ex.filter(e=>e.on).reduce((a,e)=>a+e.price,0),total=c.price+exOn,lines={},rows=K.walls.flatMap(w=>[w.base,w.tall,w.wall]);K.island&&rows.push(K.island.base),rows.forEach(r=>r.forEach(it=>{if(it.gap)return;const key=it.pid+\":\"+it.w,p=byId(it.pid);lines[key]||(lines[key]={p,v:it.v,w:it.w,qty:0}),lines[key].qty++})),host.innerHTML=`<div class=\"rvbt\"><div class=\"eyebrow\">Your basket</div><h2>Everything, ready to check out</h2><p>Units, worktop, plinth, cornice, handles, panels, sink and tap. Untick anything you already have.</p></div><div class=\"rvbg\"><div class=\"rvbl\"><div class=\"rvbh\"><b>${c.units} units</b><span>${c.cabs} cabinets \\xB7 ${c.fronts} fronts \\xB7 doors, hinges and legs included</span></div>${Object.values(lines).map(l=>`<div class=\"rvline\"><span class=\"q\">${l.qty}\\xD7</span><span class=\"n\">${l.p.name}<small>${l.w}mm${l.v.sku?\" \\xB7 \"+l.v.sku:\"\"}</small></span><em>${GBP(unitPrice(l.p,l.v,K.assembled)*l.qty)}</em></div>`).join(\"\")}<div class=\"rvbh\" style=\"margin-top:14px\"><b>Worked out for you</b><span>counted from your walls</span></div>${ex.map(e=>`<label class=\"rvline chk\"><input type=\"checkbox\" data-x=\"${e.key}\" ${e.on?\"checked\":\"\"}><span class=\"n\">${e.label} \\xD7 ${e.qty}<small>${e.sub}</small></span><em>${GBP(e.price)}</em></label>`).join(\"\")}</div>\n    <div class=\"rvbr\"><div class=\"asm\">${[[!1,\"Flatpack\",\"Included\"],[!0,\"Ready assembled\",\"+\"+GBP(ASSEMBLY)+\" \\xD7 \"+c.cabs]].map(([v,t,p])=>`<button class=\"${K.assembled===v?\"on\":\"\"}\" data-asm=\"${v}\"><b>${t}</b><span class=\"pr\">${p}</span></button>`).join(\"\")}</div><div class=\"rvtot\"><div><span>Units</span><em>${GBP(c.price)}</em></div><div><span>Extras</span><em>${GBP(exOn)}</em></div><div class=\"t\"><span>Total inc VAT</span><em>${GBP(total)}</em></div></div><div class=\"klarna\"><span class=\"kl2\">Klarna.</span> 3 \\xD7 ${GBP(total/3)} interest free</div><div class=\"rvfree\">${total>=FREE?\"<b>Free pallet delivery</b> included\":GBP(FREE-total)+\" more for free delivery\"}</div><button class=\"add\" data-rv=\"add\"><span>Add whole kitchen to cart</span><span>${GBP(total)}</span></button><button class=\"rvghost\" data-rv=\"samples\">Order free samples first</button><button class=\"rvghost\" data-rv=\"send\">Send me this plan as a PDF</button></div></div>`,host.querySelectorAll(\"[data-asm]\").forEach(b=>b.onclick=()=>{K.assembled=b.dataset.asm===\"true\",rvRefresh()}),host.querySelectorAll(\"[data-x]\").forEach(i=>i.onchange=()=>{K.extras[i.dataset.x]=i.checked,rvRefresh()}),host.querySelectorAll(\"[data-rv]\").forEach(b=>b.onclick=()=>{const k=b.dataset.rv;k===\"add\"?rvAddAll():k===\"samples\"?openSamples(S.style):k===\"send\"&&(S.help=!0,document.getElementById(\"hp\").classList.add(\"on\"))})}function rvAddAll(){const K=kit();let n=0;const rows=K.walls.flatMap(w=>[w.base,w.tall,w.wall]);K.island&&rows.push(K.island.base),rows.forEach(r=>r.forEach(it=>{it.gap||(addItem(byId(it.pid),it.v,1,K.assembled,!0),n++)})),kitExtras().filter(e=>e.on).forEach(e=>addItem(e.p,e.v,e.qty,!1,!0)),renderBasket(),openSheet(null,`${n} units + extras added`)}function rvScene(first){const host=document.getElementById(\"rv3d\"),t=ensure3D(host);if(!t)return;const K=kit(),st=style();for(;t.group.children.length;)t.group.remove(t.group.children[0]);const g=kitchenGroup(K,st,{});t.group.add(g),t.pickables=g.userData.pickables,t.auto=!1,t.hl=null;const lab=document.getElementById(\"rvlab\");lab.innerHTML=\"\",t.labels=[],lab.style.display=S.rvLabels?\"\":\"none\";const addLab=(txt,pos,cls=\"\")=>{const e=el(`<div class=\"pzpin ${cls}\">${txt}</div>`);lab.appendChild(e),t.labels.push({el:e,pos})};K.walls.forEach((w,wi)=>{addLab(`${w.name}`,wallPoint(K,wi,w.len/2,2300,0),\"wall\");let x=kitStartK(K,wi,\"base\");w.base.forEach(it=>{it.sink?addLab(\"Sink\",wallPoint(K,wi,x+it.w/2,1e3,300),\"u\"):it.hob?addLab(\"Hob\",wallPoint(K,wi,x+it.w/2,1e3,300),\"u\"):it.gap&&[\"dw\",\"wm\",\"fr\",\"rc\"].includes(it.k)?addLab(it.label,wallPoint(K,wi,x+it.w/2,it.k===\"fr\"?1900:950,300),\"u\"):it.gap&&it.k===\"door\"&&addLab(\"Doorway\",wallPoint(K,wi,x+it.w/2,1500,0),\"ob door\"),x+=it.w});let xt=w.len-used(w.tall);w.tall.forEach(it=>{addLab(byId(it.pid).name.replace(\" housing\",\"\"),wallPoint(K,wi,xt+it.w/2,2050,300),\"u\"),xt+=it.w}),(w.obs||[]).forEach(o=>{o.type===\"window\"&&addLab(\"Window\",wallPoint(K,wi,(o.a!==void 0?o.a:o.from)+o.w/2,(o.sill||900)+500,0),\"ob window\")})}),K.island&&addLab(\"Island\",islandPoint(K,K.island.len/2,1e3,280),\"u\");const{A,depth}=roomDimsFor(K);t.target.set(A/2,900,depth/2),(first||!t.inited)&&(t.inited=!0,camTo(t,\"reveal\",K,0,!0)),t.dirty=!0;const ray=e=>{const r=t.renderer.domElement.getBoundingClientRect(),m=new THREE.Vector2((e.clientX-r.left)/r.width*2-1,-((e.clientY-r.top)/r.height)*2+1),rc=new THREE.Raycaster;rc.setFromCamera(m,t.camera);const hits=rc.intersectObjects(t.pickables,!0);if(!hits.length)return null;let o=hits[0].object;for(;o&&!(o.userData&&o.userData.pick);)o=o.parent;return o};t.onHover=e=>{const o=e?ray(e):null;t.hl&&(t.group.remove(t.hl),t.hl=null),o&&(t.hl=glow(o,30,.18),t.group.add(t.hl)),t.renderer.domElement.style.cursor=o?\"pointer\":\"grab\",t.dirty=!0},t.onClick=e=>{const o=ray(e);if(!o)return;const pk=o.userData.pick;openSwap(pk.wi,pk.row,pk.i)};const pv=document.getElementById(\"rvviews\");pv&&(pv.innerHTML=[[\"reveal\",\"3D\"],[\"plan\",\"Plan\"],...K.walls.map((w,i)=>[\"w\"+i,w.name])].map(([k2,l])=>`<button data-pv=\"${k2}\">${l}</button>`).join(\"\"),pv.querySelectorAll(\"button\").forEach(b=>b.onclick=()=>{pv.querySelectorAll(\"button\").forEach(x=>x.classList.toggle(\"on\",x===b));const k2=b.dataset.pv;k2[0]===\"w\"&&k2.length===2?(K.sel=+k2[1],camTo(t,\"front\",K,+k2[1],!1)):camTo(t,k2,K,0,!1)}));const lb=document.getElementById(\"rvlabels\");lb&&(lb.onclick=()=>{S.rvLabels=!S.rvLabels,lb.classList.toggle(\"on\",S.rvLabels),lab.style.display=S.rvLabels?\"\":\"none\"});const sb=document.getElementById(\"rvstyle\");sb&&(sb.onclick=()=>openStyleSwitch())}function openStyleSwitch(){openModal(`<div class=\"mh\"><b>Change the door style</b><span>The kitchen updates instantly.</span></div><div class=\"swrow\" style=\"padding:4px 20px 20px\">${DATA.styles.map(s2=>`<button class=\"swbtn ${s2.id===S.style?\"on\":\"\"}\" data-style=\"${s2.id}\"><span class=\"sw ${s2.finish===\"Gloss\"?\"gloss\":\"\"}\" style=\"background:${s2.hex}\"></span>${s2.name}</button>`).join(\"\")}</div>`,\"narrow\").querySelectorAll(\"[data-style]\").forEach(b=>b.onclick=()=>{S.style=b.dataset.style,S.wiz&&(S.wiz.style=S.style);try{localStorage.setItem(\"kb-style\",S.style)}catch{}closeModal(),render()})}function rvItemRef(wi,row,i){const K=kit();if(row===\"island\")return{arr:K.island.base,wall:null,free:K.island.len-used(K.island.base)};const w=K.walls[wi];return{arr:w[row],wall:w,free:kitFree(w,row)}}function swapAlternatives(it,row){const p=it.gap?null:byId(it.pid),fam2=row===\"island\"?\"base\":row===\"tall\"?null:row;let list=[];if(row===\"base\"||row===\"island\"){const grp=p?p.group:\"doors\";grp===\"sink\"?list=DATA.products.filter(x=>x.family===\"base\"&&x.group===\"sink\"):grp===\"corner\"?list=DATA.products.filter(x=>x.family===\"base\"&&x.group===\"corner\"):list=DATA.products.filter(x=>x.family===\"base\"&&[\"doors\",\"drawers\",\"slim\"].includes(x.group)||x.family===\"appliance\"&&x.group===\"builtunder\")}else if(row===\"wall\"){const grp=p?p.group:\"standard\";list=DATA.products.filter(x=>x.family===\"wall\"&&(grp===\"corner\"?x.group===\"corner\":x.group!==\"corner\"))}else list=DATA.products.filter(x=>x.family===\"tall\"||x.family===\"appliance\"&&x.group!==\"builtunder\");return p&&p.family===\"appliance\"&&p.group===\"builtunder\"&&(list=DATA.products.filter(x=>x.family===\"appliance\"&&x.group===\"builtunder\"||x.family===\"base\"&&[\"doors\",\"drawers\"].includes(x.group))),list}function openSwap(wi,row,i){const K=kit(),ref=rvItemRef(wi,row,i),it=ref.arr[i];if(!it)return;const st=style(),free=ref.free+it.w,wname=row===\"island\"?\"Island\":K.walls[wi].name,p=it.gap?null:byId(it.pid);let cur={pid:it.gap?null:it.pid,w:it.w,gapk:it.gap?it.k:null};const alts=swapAlternatives(it,row).filter(x=>x.widths.some(z=>z<=free)).slice(0,12),m=openModal(`<div class=\"swm\"><div class=\"swmh\"><div><div class=\"eyebrow\">${wname} \\xB7 ${rvRowName[row]}</div><b id=\"swt\"></b><span id=\"sws\"></span></div><button class=\"mx\" id=\"swx\">\\xD7</button></div><div class=\"swbody\"><div class=\"swl\"><div class=\"swgrid\" id=\"swgrid\"></div>${row===\"base\"||row===\"island\"?`<div class=\"swgaps\"><small>Or leave a gap for an appliance</small>${GAPS.filter(g=>[\"dw\",\"wm\",\"fr\",\"rc\"].includes(g[0])&&g[2]<=free).map(g=>`<button class=\"chip ${cur.gapk===g[0]?\"on\":\"\"}\" data-gap=\"${g[0]}\">${g[1]} \\xB7 ${g[2]}mm</button>`).join(\"\")}</div>`:\"\"}</div><div class=\"swr\"><div class=\"swprev\" id=\"swprev\"></div><div class=\"swwidths\" id=\"swwidths\"></div><div class=\"swfit\" id=\"swfit\"></div><div class=\"swact\"><button class=\"add\" id=\"swapply\"><span>Use this</span><span id=\"swprice\"></span></button><button class=\"rvghost danger\" id=\"swrm\">Remove from the plan</button></div></div></div></div>`,\"wide\"),grid=m.querySelector(\"#swgrid\");grid.innerHTML=alts.map(x=>{const fitting=x.widths.filter(z=>z<=free).sort((a,b)=>Math.abs(a-it.w)-Math.abs(b-it.w)),v=defaultVariant(x,fitting[0]||x.widths[0]),url=unitSnap(x,v,st,200,150);return`<button class=\"swalt ${cur.pid===x.id?\"on\":\"\"}\" data-alt=\"${x.id}\"><span class=\"pic\">${url?`<img src=\"${url}\" alt=\"\">`:unitPic(x,v,st,{scale:.08})}</span><b>${x.name}</b><small>from ${GBP(x.from)}</small></button>`}).join(\"\");const paint=()=>{const ap=cur.pid?byId(cur.pid):null;m.querySelector(\"#swt\").textContent=ap?`${cur.w}mm ${ap.name}`:cur.gapk?GAPS.find(g=>g[0]===cur.gapk)[1]+\" gap\":it.label,m.querySelector(\"#sws\").textContent=ap?ap.blurb:\"No cabinet here; plinth and worktop run over it.\",grid.querySelectorAll(\".swalt\").forEach(b=>b.classList.toggle(\"on\",b.dataset.alt===cur.pid)),m.querySelectorAll(\"[data-gap]\").forEach(b=>b.classList.toggle(\"on\",b.dataset.gap===cur.gapk));const widths=ap?ap.widths:cur.gapk?[GAPS.find(g=>g[0]===cur.gapk)[2]]:[it.w];m.querySelector(\"#swwidths\").innerHTML=`<small>Width</small><div class=\"pills\">${widths.map(w=>`<button class=\"pill ${w===cur.w?\"on\":\"\"} ${w>free?\"nofit\":\"\"}\" data-w=\"${w}\"><b>${w}</b></button>`).join(\"\")}</div>`,m.querySelectorAll(\"[data-w]\").forEach(b=>b.onclick=()=>{const w=+b.dataset.w;if(w>free){toast(\"Only \"+free+\"mm available here\");return}cur.w=w,paint()});const v=ap?defaultVariant(ap,cur.w):null,url=ap?unitSnap(ap,v,st,480,360):null;m.querySelector(\"#swprev\").innerHTML=url?`<img src=\"${url}\" alt=\"\">`:ap?unitPic(ap,v,st,{scale:.14}):'<div class=\"swgapbox\">Appliance gap</div>';const left=free-cur.w;m.querySelector(\"#swfit\").innerHTML=`<i>${left>=0?\"\\u2713\":\"!\"}</i>${left>=0?`Fits. ${left}mm ${left?\"to spare on this run\":\"exactly\"}.`:`Too wide by ${-left}mm`}`,m.querySelector(\"#swfit\").className=\"swfit \"+(left>=0?\"ok\":\"no\"),m.querySelector(\"#swprice\").textContent=ap?GBP(unitPrice(ap,v,K.assembled)):\"\\xA30.00\"};grid.querySelectorAll(\"[data-alt]\").forEach(b=>b.onclick=()=>{const ap=byId(b.dataset.alt);cur.pid=ap.id,cur.gapk=null,cur.w=ap.widths.includes(cur.w)&&cur.w<=free?cur.w:ap.widths.filter(z=>z<=free).sort((a,b2)=>Math.abs(a-it.w)-Math.abs(b2-it.w))[0],paint()}),m.querySelectorAll(\"[data-gap]\").forEach(b=>b.onclick=()=>{cur.gapk=b.dataset.gap,cur.pid=null,cur.w=GAPS.find(g=>g[0]===cur.gapk)[2],paint()}),m.querySelector(\"#swx\").onclick=closeModal,m.querySelector(\"#swapply\").onclick=()=>{if(cur.w>free){toast(\"Too wide for this run\");return}let ni;cur.pid?(ni=kitItem(cur.pid,cur.w),it.sink&&byId(cur.pid).group===\"sink\"&&(ni.sink=!0),it.hob&&(cur.pid===\"built-under-oven-housing\"||byId(cur.pid).family===\"base\")&&(ni.hob=it.hob)):ni={gap:!0,k:cur.gapk,w:cur.w,label:GAPS.find(g=>g[0]===cur.gapk)[1]},kitPush();const diff=it.w-ni.w;ref.arr[i]=ni,diff>0&&row!==\"island\"&&ref.arr.splice(i+1,0,{gap:!0,k:diff<300?\"filler\":\"space\",w:diff,label:diff<300?\"Filler \"+diff+\"mm\":\"Space\"}),closeModal(),rvRefresh()},m.querySelector(\"#swrm\").onclick=()=>{kitPush(),row===\"island\"?ref.arr.splice(i,1):ref.arr[i]={gap:!0,k:\"space\",w:it.w,label:\"Space\"},closeModal(),rvRefresh()},paint()}const HIST={undo:[],redo:[]};function kitSnap(){const K=kit();return JSON.stringify({walls:K.walls.map(w=>({base:w.base,tall:w.tall,wall:w.wall})),island:K.island?{len:K.island.len,base:K.island.base}:null})}function kitPush(){HIST.undo.push(kitSnap()),HIST.undo.length>60&&HIST.undo.shift(),HIST.redo=[]}function kitRestore(s){const K=kit(),o=JSON.parse(s);o.walls.forEach((w,i)=>{K.walls[i]&&Object.assign(K.walls[i],w)}),o.island&&K.island&&(K.island.base=o.island.base),K.pick=null}function bdUndo(){HIST.undo.length&&(HIST.redo.push(kitSnap()),kitRestore(HIST.undo.pop()),bdRefresh())}function bdRedo(){HIST.redo.length&&(HIST.undo.push(kitSnap()),kitRestore(HIST.redo.pop()),bdRefresh())}function bdMutate(fn){kitPush(),fn(),bdRefresh()}function vBuilder(){const V=document.getElementById(\"view\"),st=style();S.kit||kitInit(\"L\",!0);const K=kit();K.choices||(K.choices={}),K.extras.sink||(K.extras.sink=!0),HIST.undo=[],HIST.redo=[],V.appendChild(el('<div class=\"crumbs\"></div>')),V.appendChild(el(`<section class=\"bd\">\n    <div class=\"bdhead\" id=\"bdhead\"></div>\n    <div class=\"bdstage\" id=\"bd3d\">\n      <div class=\"plabels\" id=\"bdlab\"></div>\n      <div class=\"bdbar\" id=\"bdbar\"></div>\n      <div class=\"bdcat\" id=\"bdcat\"></div>\n      <div class=\"bdsel\" id=\"bdsel\"></div>\n      <div class=\"bdprice\" id=\"bdprice\"></div>\n      <div class=\"bdhint\" id=\"bdhint\"></div>\n      <div class=\"bdpad\" id=\"bdpad\"></div>\n      <div class=\"bdpop\" id=\"bdpop\"></div>\n    </div>\n    <div class=\"bdlist\" id=\"bdlist\"></div>\n  </section>`)),S.bd={mode:\"3d\",labels:!0,cat:\"base\",catOpen:!1,pop:null},bdRefresh(!0)}function bdRefresh(first){bdHead(),bdBar(),bdCat(),bdSel(),bdPrice(),bdList(),bdScene(first)}function bdHead(){const K=kit(),st=style(),h=document.getElementById(\"bdhead\");if(!h)return;const c=kitCounts();if(K.generated&&!K._noted){K._noted=!0;const n=(K.walls[0].notes||[]).find(x=>/island/i.test(x));n&&setTimeout(()=>toast(n),600)}K.generated?h.innerHTML=`<div><div class=\"eyebrow\">Planned from your measurements \\xB7 ${st.name}</div><h1>Your kitchen is <em>ready</em></h1><p>${SHAPES.find(x=>x[0]===(K.shapeId||K.shape))[1]} \\xB7 ${K.walls.map(w=>w.len).join(\" \\xD7 \")}mm \\xB7 ${c.units} units \\xB7 sink on your waste point, hob on your gas point, openings kept clear.</p></div><div class=\"bdlinks\"><button data-bd=\"answers\">Change my answers</button><button data-bd=\"planner\">Have a planner check it</button></div>`:K.presetName?h.innerHTML=`<div><div class=\"eyebrow\">Pre-set kitchen \\xB7 ${st.name}</div><h1>${K.presetName}, <em>made yours</em></h1><p>Move, swap or add units. Prices here are unit prices; the pre-set saving applies when you add the unchanged bundle from the pre-set page.</p></div><div class=\"bdlinks\"><button data-bd=\"preset\">Back to the pre-set</button><button data-bd=\"planner\">Have a planner check it</button></div>`:h.innerHTML=`<div><div class=\"eyebrow\">Kitchen builder \\xB7 ${st.name}</div><h1>Build your <em>kitchen</em></h1><p>Drag units into the room, or answer seven questions and we plan it for you.</p></div><div class=\"bdlinks\"><button class=\"hbtn planbtn\" data-bd=\"plan\">Plan it for me</button><button data-bd=\"planner\">Send us my plan instead</button></div>`,h.querySelectorAll(\"[data-bd]\").forEach(b=>b.onclick=()=>{const k=b.dataset.bd;k===\"preset\"?go(\"preset\"):k===\"answers\"?go(\"plan\"):k===\"plan\"?go(\"plan\",{restart:!0}):(S.help=!0,document.getElementById(\"hp\").classList.add(\"on\"))})}function bdBar(){const B=S.bd,K=kit(),bar=document.getElementById(\"bdbar\");bar&&(bar.innerHTML=`<div class=\"bdseg\">${[[\"3d\",\"3D\"],[\"plan\",\"Plan\"],[\"walk\",\"Walk\"]].map(([k,l])=>`<button class=\"${B.mode===k?\"on\":\"\"}\" data-mode=\"${k}\">${l}</button>`).join(\"\")}</div>\n    <button class=\"bdt ${B.labels?\"on\":\"\"}\" data-t=\"labels\">Labels</button><button class=\"bdt ${S.open3d?\"on\":\"\"}\" data-t=\"open\">Open doors</button>\n    <div class=\"bdseg sm\"><button data-t=\"undo\" ${HIST.undo.length?\"\":\"disabled\"} title=\"Undo\">\\u21B6</button><button data-t=\"redo\" ${HIST.redo.length?\"\":\"disabled\"} title=\"Redo\">\\u21B7</button></div>\n    <button class=\"bdt\" data-t=\"room\">Room \\u25BE</button><button class=\"bdt\" data-t=\"style\"><span class=\"sw ${style().finish===\"Gloss\"?\"gloss\":\"\"}\" style=\"background:${style().hex}\"></span>${style().name} \\u25BE</button><button class=\"bdt\" data-t=\"units\">+ Add units</button>`,bar.querySelectorAll(\"[data-mode]\").forEach(b=>b.onclick=()=>{B.mode=b.dataset.mode,setMode(T3,B.mode,K),B.mode===\"3d\"&&camTo(T3,\"reveal\",K,0,!1),bdBar(),bdScene()}),bar.querySelectorAll(\"[data-t]\").forEach(b=>b.onclick=()=>{const k=b.dataset.t;k===\"labels\"?(B.labels=!B.labels,bdBar(),bdScene()):k===\"open\"?(S.open3d=!S.open3d,bdBar(),bdScene()):k===\"undo\"?bdUndo():k===\"redo\"?bdRedo():k===\"room\"?bdPop(\"room\"):k===\"style\"?bdPop(\"style\"):k===\"units\"&&(B.catOpen=!B.catOpen,bdCat())}))}function bdPop(kind){const B=S.bd,K=kit(),pop=document.getElementById(\"bdpop\");if(B.pop===kind){B.pop=null,pop.classList.remove(\"on\"),pop.innerHTML=\"\";return}if(B.pop=kind,pop.classList.add(\"on\"),kind===\"room\"&&K.room){pop.innerHTML=`<div class=\"bdph\"><b>Room</b><button class=\"mx sm\" data-close>\\xD7</button></div><p class=\"bdmuted\" style=\"margin:0\">${K.room.w} \\xD7 ${K.room.d}mm \\xB7 units on ${K.layout.kit.map(l=>\"wall \"+l).join(\", \")}${K.ghost.length?\" \\xB7 \"+K.ghost.map(g=>\"wall \"+g.letter).join(\", \")+\" left clear\":\"\"}.</p><p class=\"bdmuted\"><button data-answers>Change the room, doors or walls</button></p>`,pop.querySelector(\"[data-answers]\").onclick=()=>go(\"plan\");const cl0=pop.querySelector(\"[data-close]\");cl0&&(cl0.onclick=()=>bdPop(kind));return}if(kind===\"room\"){pop.innerHTML=`<div class=\"bdph\"><b>Room</b><button class=\"mx sm\" data-close>\\xD7</button></div><div class=\"shapes mini\">${SHAPES.map(([id,n,d])=>`<button class=\"shp ${(K.shapeId||K.shape)===id?\"on\":\"\"}\" data-s=\"${id}\">${shapeIcon(id)}<b>${n}</b></button>`).join(\"\")}</div><div class=\"walls\">${K.walls.map((w,i)=>`<label class=\"wl\"><span>${w.name}</span><input inputmode=\"numeric\" value=\"${w.len}\" data-len=\"${i}\"><em>mm</em></label>`).join(\"\")}</div>${K.generated?'<p class=\"bdmuted\">Windows, doors and services come from your answers. <button data-answers>Change them</button></p>':'<p class=\"bdmuted\">Units that no longer fit are removed from the end of a run.</p>'}`,pop.querySelectorAll(\".shp\").forEach(b=>b.onclick=()=>bdMutate(()=>{const keep=K.walls,gen=K.generated,ch=K.choices,isl=K.island;kitInit(b.dataset.s,!1);const K2=kit();K2.walls.forEach((w,i)=>{keep[i]&&Object.assign(w,{len:keep[i].len,base:keep[i].base,tall:keep[i].tall,wall:keep[i].wall,obs:keep[i].obs||[]})}),K2.walls.forEach(w=>kitFit(w)),K2.assembled=K.assembled,K2.extras=K.extras,K2.choices=ch,K2.generated=gen,K2.island=b.dataset.s===\"galley\"?null:isl,bdPop(\"room\"),bdPop(\"room\")})),pop.querySelectorAll(\"[data-len]\").forEach(i=>i.onchange=()=>bdMutate(()=>{const w=K.walls[+i.dataset.len];w.len=Math.max(900,parseInt(i.value)||900),kitFit(w)}));const an=pop.querySelector(\"[data-answers]\");an&&(an.onclick=()=>go(\"plan\"))}else kind===\"style\"&&(pop.innerHTML=`<div class=\"bdph\"><b>Door style</b><button class=\"mx sm\" data-close>\\xD7</button></div><div class=\"swrow\">${DATA.styles.map(s2=>`<button class=\"swbtn ${s2.id===S.style?\"on\":\"\"}\" data-style=\"${s2.id}\"><span class=\"sw ${s2.finish===\"Gloss\"?\"gloss\":\"\"}\" style=\"background:${s2.hex}\"></span>${s2.name}</button>`).join(\"\")}</div><div class=\"bdph\" style=\"margin-top:12px\"><b>Worktop</b></div><div class=\"swrow\">${DATA.products.filter(p=>p.family===\"worktops\").map(p=>`<button class=\"swbtn ${(K.choices.worktop||\"oakblock\")===p.id?\"on\":\"\"}\" data-wt=\"${p.id}\"><span class=\"sw\" style=\"background:${p.hex||(WORKTOPS[p.id]||{}).color||\"#ccc\"}\"></span>${p.name}</button>`).join(\"\")}</div>`,pop.querySelectorAll(\"[data-style]\").forEach(b=>b.onclick=()=>{S.style=b.dataset.style,S.wiz&&(S.wiz.style=S.style);try{localStorage.setItem(\"kb-style\",S.style)}catch{}B.pop=null,render()}),pop.querySelectorAll(\"[data-wt]\").forEach(b=>b.onclick=()=>{K.choices.worktop=b.dataset.wt,bdPop(\"style\"),bdPop(\"style\"),bdRefresh()}));const cl=pop.querySelector(\"[data-close]\");cl&&(cl.onclick=()=>bdPop(kind))}function bdCat(){const B=S.bd,K=kit(),st=style(),host=document.getElementById(\"bdcat\");if(!host)return;if(host.classList.toggle(\"on\",B.catOpen),!B.catOpen){host.innerHTML=\"\";return}const W=K.walls[K.sel]||K.walls[0],tabs=[[\"base\",\"Base\"],[\"wall\",\"Wall\"],[\"tall\",\"Tall\"],[\"appliance\",\"Appliances\"],[\"gaps\",\"Gaps\"]],free=B.cat===\"gaps\"||B.cat===\"base\"?kitFree(W,\"base\"):B.cat===\"wall\"?kitFree(W,\"wall\"):kitFree(W,\"tall\");let list=\"\";if(B.cat===\"gaps\")list=GAPS.filter(g=>[\"dw\",\"wm\",\"fr\",\"rc\",\"space\"].includes(g[0])).map(([k,l,w])=>`<button class=\"bdci gap\" data-gap=\"${k}\" draggable=\"false\"><span class=\"pic\"><i>\\u2302</i></span><b>${l}</b><small>${w}mm gap</small></button>`).join(\"\");else{const fams=B.cat===\"appliance\"?[\"appliance\"]:[B.cat];list=DATA.products.filter(p=>fams.includes(p.family)).map(p=>{const dv=defaultVariant(p),url=unitSnap(p,dv,st,200,150);return`<button class=\"bdci ${p.widths.some(w=>w<=free)?\"\":\"dim\"}\" data-add=\"${p.id}\"><span class=\"pic\">${url?`<img src=\"${url}\" alt=\"\">`:unitPic(p,dv,st,{scale:.07})}</span><b>${p.name}</b><small>from ${GBP(p.from)} \\xB7 ${p.widths[0]}\\u2013${p.widths[p.widths.length-1]}mm</small></button>`}).join(\"\")}host.innerHTML=`<div class=\"bdch\"><b>Add to <span>${W.name}</span></b><button class=\"mx sm\" data-close>\\xD7</button></div><div class=\"bdtabs\">${tabs.map(([k,l])=>`<button class=\"${B.cat===k?\"on\":\"\"}\" data-cat=\"${k}\">${l}</button>`).join(\"\")}</div><div class=\"bdfree\">${free}mm free on ${W.name} \\xB7 ${K.walls.map((w,i)=>`<button class=\"${i===K.sel?\"on\":\"\"}\" data-wall=\"${i}\">${w.name}</button>`).join(\"\")}</div><div class=\"bdcl\">${list}</div><p class=\"bdmuted\">Tap to add at the end of the run, or drag into the room.</p>`,host.querySelector(\"[data-close]\").onclick=()=>{B.catOpen=!1,bdCat()},host.querySelectorAll(\"[data-cat]\").forEach(b=>b.onclick=()=>{B.cat=b.dataset.cat,bdCat()}),host.querySelectorAll(\"[data-wall]\").forEach(b=>b.onclick=()=>{K.sel=+b.dataset.wall,bdCat(),bdScene()}),host.querySelectorAll(\"[data-add]\").forEach(b=>{b.onclick=()=>bdAdd(b.dataset.add,null,K.sel,null),bdDragFrom(b,{pid:b.dataset.add})}),host.querySelectorAll(\"[data-gap]\").forEach(b=>{b.onclick=()=>bdAdd(null,b.dataset.gap,K.sel,null),bdDragFrom(b,{gap:b.dataset.gap})})}function rowFor(pid,gapk){if(gapk)return\"base\";const p=byId(pid);return p.family===\"base\"||p.family===\"appliance\"&&/built-under|mid-height/.test(p.id)?\"base\":p.family===\"wall\"?\"wall\":\"tall\"}function bdAdd(pid,gapk,wi,index){const K=kit(),W=K.walls[wi];if(!W)return;const row=rowFor(pid,gapk),free=kitFree(W,row);let item;if(gapk)item=kitGap(gapk),gapk===\"space\"&&(item={gap:!0,k:\"space\",w:300,label:\"Space\"});else{const w=byId(pid).widths.filter(z=>z<=free).sort((a,b)=>Math.abs(a-600)-Math.abs(b-600))[0];if(!w){toast(`Only ${free}mm left on ${W.name}. Pick a narrower unit or another wall.`);return}item=kitItem(pid,w)}if(item.w>free){toast(`Only ${free}mm left on ${W.name}${free>=150?\". Try a narrower width\":\"\"}`);return}bdMutate(()=>{index==null||index>W[row].length?W[row].push(item):W[row].splice(index,0,item),K.sel=wi,K.row=row,K.pick={row,i:index??W[row].length-1}})}function bdDragFrom(btn,what){btn.onpointerdown=e=>{const start={x:e.clientX,y:e.clientY};let ghost=null;const mv=ev=>{if(!ghost){if(Math.abs(ev.clientX-start.x)+Math.abs(ev.clientY-start.y)<8)return;ghost=el(`<div class=\"bdghost\">${btn.querySelector(\"b\").textContent}</div>`),document.body.appendChild(ghost),btn.classList.add(\"dragging\")}ghost.style.transform=`translate(${ev.clientX+12}px,${ev.clientY+12}px)`;const hit=bdHitAt(ev);document.getElementById(\"bd3d\").classList.toggle(\"drop\",!!hit)},up=ev=>{if(window.removeEventListener(\"pointermove\",mv),window.removeEventListener(\"pointerup\",up),btn.classList.remove(\"dragging\"),document.getElementById(\"bd3d\").classList.remove(\"drop\"),!ghost)return;ghost.remove();const hit=bdHitAt(ev);if(!hit)return;const row=rowFor(what.pid,what.gap);let idx=null;if(hit.pick&&hit.pick.row===row&&hit.pick.wi===hit.wi)idx=hit.pick.i+(hit.after?1:0);else if(hit.d!==void 0){const W=kit().walls[hit.wi];let x=0;idx=W[row].length;for(let i=0;i<W[row].length;i++){const it=W[row][i];if(hit.d<x+it.w/2){idx=i;break}x+=it.w}}bdAdd(what.pid,what.gap,hit.wi,idx)};window.addEventListener(\"pointermove\",mv),window.addEventListener(\"pointerup\",up)}}function bdHitAt(e){const t=T3;if(!t)return null;const r=t.renderer.domElement.getBoundingClientRect();if(e.clientX<r.left||e.clientX>r.right||e.clientY<r.top||e.clientY>r.bottom)return null;const m=new THREE.Vector2((e.clientX-r.left)/r.width*2-1,-((e.clientY-r.top)/r.height)*2+1),rc=new THREE.Raycaster;rc.setFromCamera(m,t.camera);const hits=rc.intersectObjects([...t.pickables||[],...t.dropTargets||[]],!0);if(!hits.length)return null;const h=hits[0];let o=h.object;for(;o&&!(o.userData&&(o.userData.pick||o.userData.dropWall!==void 0));)o=o.parent;if(!o)return null;const K=kit();if(o.userData.pick){const pk=o.userData.pick;if(pk.wi<0)return null;const wi2=pk.wi,d=runCoord(K,wi2,h.point),W=K.walls[wi2];let x=0;for(let i=0;i<pk.i;i++)x+=W[pk.row][i].w;const it=W[pk.row][pk.i];return{wi:wi2,d,pick:pk,after:d>x+it.w/2}}const wi=o.userData.dropWall;return{wi,d:runCoord(K,wi,h.point)}}function bdSel(){const K=kit(),host=document.getElementById(\"bdsel\");if(!host)return;if(!K.pick){host.classList.remove(\"on\"),host.innerHTML=\"\";return}const W=K.pick.row===\"island\"?null:K.walls[K.sel],arr=K.pick.row===\"island\"?K.island.base:W[K.pick.row],it=arr[K.pick.i];if(!it){K.pick=null,host.classList.remove(\"on\");return}const p=it.gap?null:byId(it.pid),free=(K.pick.row===\"island\"?K.island.len-used(K.island.base):kitFree(W,K.pick.row))+it.w,url=p?unitSnap(p,it.v,style(),200,150):null;host.classList.add(\"on\"),host.innerHTML=`<div class=\"bdsp\">${url?`<img src=\"${url}\" alt=\"\">`:\"<i>\\u2302</i>\"}</div><div class=\"bdst\"><b>${it.gap?it.label:p.name}</b><span>${W?W.name:\"Island\"} \\xB7 ${it.w}mm${p?\" \\xB7 \"+GBP(unitPrice(p,it.v,K.assembled)):\"\"}</span>${p?`<div class=\"pills\">${p.widths.map(w=>`<button class=\"pill ${w===it.w?\"on\":\"\"} ${w>free?\"nofit\":\"\"}\" data-w=\"${w}\"><b>${w}</b></button>`).join(\"\")}</div>`:\"\"}</div><div class=\"bdsa\"><button data-a=\"left\" title=\"Move left\">\\u2190</button><button data-a=\"right\" title=\"Move right\">\\u2192</button>${p&&p.family!==\"appliance\"?'<button data-a=\"flip\" title=\"Swap hinge side\">\\u21C4</button>':\"\"}<button data-a=\"swap\">Swap</button><button data-a=\"rm\" class=\"danger\">Remove</button><button data-a=\"done\" class=\"mx sm\">\\xD7</button></div>`,host.querySelectorAll(\"[data-w]\").forEach(b=>b.onclick=()=>{const w=+b.dataset.w;if(w>free){toast(\"Not enough room for \"+w+\"mm\");return}bdMutate(()=>{const ni=kitItem(it.pid,w);it.sink&&(ni.sink=!0),it.hob&&(ni.hob=!0),it.flip&&(ni.flip=!0),arr[K.pick.i]=ni})}),host.querySelectorAll(\"[data-a]\").forEach(b=>b.onclick=()=>{const a=b.dataset.a;if(a===\"left\"||a===\"right\"){const j=K.pick.i+(a===\"left\"?-1:1);if(j<0||j>=arr.length)return;bdMutate(()=>{[arr[K.pick.i],arr[j]]=[arr[j],arr[K.pick.i]],K.pick.i=j})}else a===\"flip\"?bdMutate(()=>{it.flip=!it.flip}):a===\"swap\"?openSwap(K.pick.row===\"island\"?-1:K.sel,K.pick.row,K.pick.i):a===\"rm\"?bdMutate(()=>{arr.splice(K.pick.i,1),K.pick=null}):(K.pick=null,bdSel(),bdScene())})}function bdPrice(){const K=kit(),host=document.getElementById(\"bdprice\");if(!host)return;const c=kitCounts(),ex=kitExtras(),total=c.price+ex.filter(e=>e.on).reduce((a,e)=>a+e.price,0);host.innerHTML=`<div class=\"bdpt\"><small>Complete kitchen \\xB7 inc VAT</small><b>${GBP(total)}</b><span><em class=\"kl2\">Klarna.</em> 3 \\xD7 ${GBP(total/3)} \\xB7 ${total>=FREE?\"free delivery\":GBP(FREE-total)+\" to free delivery\"}</span></div><button class=\"add\" data-add><span>Add whole kitchen to cart</span><span>\\u2192</span></button>`,host.querySelector(\"[data-add]\").onclick=rvAddAll}function bdList(){const K=kit(),host=document.getElementById(\"bdlist\");if(!host)return;const c=kitCounts(),ex=kitExtras(),exOn=ex.filter(e=>e.on).reduce((a,e)=>a+e.price,0),total=c.price+exOn,open=S.bd.listOpen,lines={},rows=K.walls.flatMap(w=>[w.base,w.tall,w.wall]);K.island&&rows.push(K.island.base),rows.forEach(r=>r.forEach(it=>{if(it.gap)return;const key=it.pid+\":\"+it.w;lines[key]||(lines[key]={p:byId(it.pid),v:it.v,w:it.w,qty:0}),lines[key].qty++})),host.innerHTML=`<button class=\"bdlh\" data-toggle><span><b>${c.units} units \\xB7 ${ex.filter(e=>e.on).length} extras</b><small>${c.cabs} cabinets \\xB7 ${c.fronts} fronts \\xB7 doors, hinges and legs included \\xB7 ${K.assembled?\"ready assembled\":\"flatpack\"}</small></span><em>${GBP(total)}</em><i>${open?\"Hide list\":\"View list\"} ${open?\"\\u25B4\":\"\\u25BE\"}</i></button>\n  <div class=\"bdlb ${open?\"on\":\"\"}\"><div class=\"rvbg\"><div class=\"rvbl\">${Object.values(lines).map(l=>`<div class=\"rvline\"><span class=\"q\">${l.qty}\\xD7</span><span class=\"n\">${l.p.name}<small>${l.w}mm${l.v.sku?\" \\xB7 \"+l.v.sku:\"\"}</small></span><em>${GBP(unitPrice(l.p,l.v,K.assembled)*l.qty)}</em></div>`).join(\"\")}<div class=\"rvbh\" style=\"margin-top:14px\"><b>Worked out for you</b><span>counted from your walls \\xB7 untick anything you have</span></div>${ex.map(e=>`<label class=\"rvline chk\"><input type=\"checkbox\" data-x=\"${e.key}\" ${e.on?\"checked\":\"\"}><span class=\"n\">${e.label} \\xD7 ${e.qty}<small>${e.sub}</small></span><em>${GBP(e.price)}</em></label>`).join(\"\")}</div>\n    <div class=\"rvbr\"><div class=\"asm\">${[[!1,\"Flatpack\",\"Included\"],[!0,\"Ready assembled\",\"+\"+GBP(ASSEMBLY)+\" \\xD7 \"+c.cabs]].map(([v,t,p])=>`<button class=\"${K.assembled===v?\"on\":\"\"}\" data-asm=\"${v}\"><b>${t}</b><span class=\"pr\">${p}</span></button>`).join(\"\")}</div><div class=\"rvtot\"><div><span>Units</span><em>${GBP(c.price)}</em></div><div><span>Extras</span><em>${GBP(exOn)}</em></div><div class=\"t\"><span>Total inc VAT</span><em>${GBP(total)}</em></div></div><button class=\"add\" data-add><span>Add whole kitchen to cart</span><span>${GBP(total)}</span></button><button class=\"rvghost\" data-samples>Order free samples first</button><button class=\"rvghost\" data-pdf>Download the plan</button></div></div></div>`,host.querySelector(\"[data-toggle]\").onclick=()=>{S.bd.listOpen=!S.bd.listOpen,bdList()},host.querySelectorAll(\"[data-asm]\").forEach(b=>b.onclick=()=>{K.assembled=b.dataset.asm===\"true\",bdRefresh()}),host.querySelectorAll(\"[data-x]\").forEach(i=>i.onchange=()=>{K.extras[i.dataset.x]=i.checked,bdRefresh()}),host.querySelector(\"[data-add]\").onclick=rvAddAll,host.querySelector(\"[data-samples]\").onclick=()=>openSamples(S.style),host.querySelector(\"[data-pdf]\").onclick=bdDownloadPlan}function bdDownloadPlan(){const t=T3,K=kit();if(!t)return;const prev=S.bd.mode;setMode(t,\"plan\",K),bdScene(),t.renderer.render(t.scene,t.camera);const url=t.renderer.domElement.toDataURL(\"image/png\"),a=document.createElement(\"a\");a.href=url,a.download=\"kitchenbuildr-plan.png\",a.click(),setMode(t,prev,K),prev===\"3d\"&&camTo(t,\"reveal\",K,0,!0),bdScene(),toast(\"Plan saved as an image. The PDF with dimensions and the parts list comes with the order confirmation.\")}function bdScene(first){const host=document.getElementById(\"bd3d\"),t=ensure3D(host);if(!t)return;const K=kit(),st=style(),B=S.bd;for(;t.group.children.length;)t.group.remove(t.group.children[0]);const g=kitchenGroup(K,st,{markers:!1,drop:!0});if(t.group.add(g),t.pickables=g.userData.pickables,t.dropTargets=g.userData.dropTargets||[],t.auto=!1,t.hl=null,K.pick){const o=t.pickables.find(o2=>o2.userData.pick&&o2.userData.pick.row===K.pick.row&&o2.userData.pick.i===K.pick.i&&(K.pick.row===\"island\"?o2.userData.pick.wi===-1:o2.userData.pick.wi===K.sel));o&&(t.sel=glow(o,24,.2),t.group.add(t.sel))}const lab=document.getElementById(\"bdlab\");lab.innerHTML=\"\",t.labels=[],lab.style.display=B.labels||B.mode===\"plan\"?\"\":\"none\";const addLab=(txt,pos,cls=\"\")=>{const e=el(`<div class=\"pzpin ${cls}\">${txt}</div>`);lab.appendChild(e),t.labels.push({el:e,pos})};B.mode===\"plan\"?(bdDims(t,K,addLab),g.traverse(o=>{if(o.userData&&o.userData.pick&&o.userData.pick.row===\"wall\"){o.visible=!1;const w=o.userData.w||600,pl=new THREE.Mesh(new THREE.BoxGeometry(w,14,WALL_D),new THREE.MeshBasicMaterial({color:8379893,transparent:!0,opacity:.55}));pl.position.set(w/2,1430,WALL_D/2);const h=new THREE.Group;h.position.copy(o.position),h.rotation.copy(o.rotation),h.position.y=0,h.add(pl),h.userData.pick=o.userData.pick,h.userData.w=w,t.group.add(h),t.pickables.push(h)}o.userData&&o.userData.fam===\"trims\"&&o.position.y>1e3&&(o.visible=!1)})):B.labels&&(K.walls.forEach((w,wi)=>{let x=kitStartK(K,wi,\"base\");w.base.forEach(it=>{it.sink?addLab(\"Sink\",wallPoint(K,wi,x+it.w/2,1e3,300),\"u\"):it.hob?addLab(\"Hob\",wallPoint(K,wi,x+it.w/2,1e3,300),\"u\"):it.gap&&[\"dw\",\"wm\",\"fr\",\"rc\"].includes(it.k)?addLab(it.label,wallPoint(K,wi,x+it.w/2,it.k===\"fr\"?1900:950,300),\"u\"):it.gap&&it.k===\"door\"&&addLab(\"Doorway\",wallPoint(K,wi,x+it.w/2,1500,0),\"ob door\"),x+=it.w});let xt=w.len-used(w.tall);w.tall.forEach(it=>{addLab(byId(it.pid).name.replace(\" housing\",\"\"),wallPoint(K,wi,xt+it.w/2,2050,300),\"u\"),xt+=it.w}),(w.obs||[]).forEach(o=>{o.type===\"window\"&&addLab(\"Window\",wallPoint(K,wi,(o.a!==void 0?o.a:o.from)+o.w/2,(o.sill||900)+500,0),\"ob window\")})}),K.island&&addLab(\"Island\",islandPoint(K,K.island.len/2,1e3,280),\"u\"));const{A,depth}=roomDimsFor(K);(first||!t.inited)&&(t.inited=!0,t.target.set(A/2,700,depth/2),setMode(t,B.mode,K),B.mode===\"3d\"&&camTo(t,\"reveal\",K,0,!0)),t.dirty=!0;const hint=document.getElementById(\"bdhint\");hint.textContent=B.mode===\"walk\"?\"Drag to look around \\xB7 arrow keys or WASD to walk\":B.mode===\"plan\"?\"Scroll to zoom \\xB7 drag to pan \\xB7 tap a unit to edit\":\"Tap a unit to edit it \\xB7 drag it along the wall to move it \\xB7 scroll to zoom\";const pad=document.getElementById(\"bdpad\");pad.innerHTML=B.mode===\"walk\"?'<button data-p=\"f\">\\u25B2</button><div><button data-p=\"l\">\\u25C0</button><button data-p=\"b\">\\u25BC</button><button data-p=\"r\">\\u25B6</button></div>':\"\",pad.querySelectorAll(\"[data-p]\").forEach(b=>{const set=on=>{if(!T3.walk)return;const m={f:[1,0],b:[-1,0],l:[0,-1],r:[0,1]}[b.dataset.p];T3.walk.pad=on?{f:m[0],s:m[1]}:null};b.onpointerdown=()=>set(!0),b.onpointerup=b.onpointerleave=()=>set(!1)});const ray=e=>{const r=t.renderer.domElement.getBoundingClientRect(),m=new THREE.Vector2((e.clientX-r.left)/r.width*2-1,-((e.clientY-r.top)/r.height)*2+1),rc=new THREE.Raycaster;rc.setFromCamera(m,t.camera);const hits=rc.intersectObjects(t.pickables,!0);if(!hits.length)return null;let o=hits[0].object;for(;o&&!(o.userData&&o.userData.pick);)o=o.parent;return o?{o,point:hits[0].point}:null};t.onHover=e=>{if(B.mode===\"walk\")return;const h=e?ray(e):null;t.hl&&(t.group.remove(t.hl),t.hl=null),h&&!(t.sel&&h.o===t.selObj)&&(t.hl=glow(h.o,24,.12),t.group.add(t.hl)),t.renderer.domElement.style.cursor=h?\"grab\":B.mode===\"walk\"?\"move\":\"default\",t.dirty=!0},t.onDown=e=>{if(B.mode===\"walk\"){t.walkDrag={x:e.clientX,y:e.clientY};return}const h=ray(e);if(!h)return;const pk=h.o.userData.pick;pk.wi<0||h.o.userData.locked||(t.drag={o:h.o,pk,start:runCoord(K,pk.wi,h.point),moved:!1,snap:kitSnap()},t.controls.enabled=!1)},t.onDrag=e=>{if(B.mode===\"walk\"&&t.walkDrag){const dx=e.clientX-t.walkDrag.x,dy=e.clientY-t.walkDrag.y;t.walkDrag={x:e.clientX,y:e.clientY},t.walk.yaw-=dx*.004,t.walk.pitch=Math.max(-.6,Math.min(.6,t.walk.pitch-dy*.003));return}if(!t.drag)return;const r=t.renderer.domElement.getBoundingClientRect(),m=new THREE.Vector2((e.clientX-r.left)/r.width*2-1,-((e.clientY-r.top)/r.height)*2+1),rc=new THREE.Raycaster;rc.setFromCamera(m,t.camera);const plane=wallPlane(K,t.drag.pk.wi),pt=new THREE.Vector3;if(!rc.ray.intersectPlane(plane,pt))return;const d=runCoord(K,t.drag.pk.wi,pt);if(!t.drag.moved){if(Math.abs(d-t.drag.start)<40)return;t.drag.moved=!0,t.controls.enabled=!1,t.renderer.domElement.style.cursor=\"grabbing\"}const W=K.walls[t.drag.pk.wi],arr=W[t.drag.pk.row],i=t.drag.pk.i;let x=0;for(let k=0;k<i;k++)x+=arr[k].w;const it=arr[i],center=d,prev=arr[i-1],next=arr[i+1];let swapped=!1;if(prev&&center<x-prev.w/2?([arr[i-1],arr[i]]=[arr[i],arr[i-1]],t.drag.pk={...t.drag.pk,i:i-1},K.pick={row:t.drag.pk.row,i:i-1},swapped=!0):next&&center>x+it.w+next.w/2&&([arr[i+1],arr[i]]=[arr[i],arr[i+1]],t.drag.pk={...t.drag.pk,i:i+1},K.pick={row:t.drag.pk.row,i:i+1},swapped=!0),swapped){bdScene(),t.drag.o=t.pickables.find(o=>o.userData.pick&&o.userData.pick.wi===t.drag.pk.wi&&o.userData.pick.row===t.drag.pk.row&&o.userData.pick.i===t.drag.pk.i),bdSel();return}const along=wallDir(K,t.drag.pk.wi),off=center-(x+it.w/2),lim=Math.max(-it.w*.6,Math.min(it.w*.6,off)),base=t.drag.o.userData.basePos||(t.drag.o.userData.basePos=t.drag.o.position.clone());t.drag.o.position.copy(base).addScaledVector(along,lim),t.sel&&(t.group.remove(t.sel),t.sel=glow(t.drag.o,24,.2),t.group.add(t.sel)),t.dirty=!0},t.onUp=(e,d)=>{if(B.mode===\"walk\"){t.walkDrag=null;return}if(t.controls.enabled=B.mode!==\"walk\",!t.drag)return;const was=t.drag;if(t.drag=null,was.moved){if(kitSnap()!==was.snap){HIST.undo.push(was.snap),HIST.redo=[];const it=K.walls[was.pk.wi][was.pk.row][was.pk.i];it&&it.sink&&K.generated&&toast(\"Sink moved off your waste point: the plumbing will need extending\"),it&&it.hob&&K.generated&&toast(\"Hob moved off your gas / cooker point: a Gas Safe engineer will need to move the supply\")}K.sel=was.pk.wi,K.pick={row:was.pk.row,i:was.pk.i},bdRefresh()}},t.onClick=e=>{if(B.mode===\"walk\")return;const h=ray(e);if(!h){K.pick&&(K.pick=null,bdSel(),bdScene());return}const pk=h.o.userData.pick;K.sel=pk.wi<0?K.sel:pk.wi,K.pick={row:pk.row,i:pk.i},K.row=pk.row,bdSel(),bdCat(),bdScene()},t.selObj=K.pick?t.pickables.find(o=>o.userData.pick&&o.userData.pick.row===K.pick.row&&o.userData.pick.i===K.pick.i):null}function bdDims(t,K,addLab){const{A,depth}=roomDimsFor(K),g=new THREE.Group,m=new THREE.LineBasicMaterial({color:659734}),pts=[],tick=(p,dir)=>{pts.push(p.x-dir.x*80,p.y,p.z-dir.z*80,p.x+dir.x*80,p.y,p.z+dir.z*80)};K.walls.forEach((w,wi)=>{const s=kitStartK(K,wi,\"base\"),off=-420,a=wallPoint(K,wi,0,60,off),b=wallPoint(K,wi,w.len,60,off);pts.push(a.x,a.y,a.z,b.x,b.y,b.z);const n=new THREE.Vector3(wallDir(K,wi).z,0,wallDir(K,wi).x);tick(a,n),tick(b,n),addLab(`${w.name} \\xB7 ${w.len}mm`,wallPoint(K,wi,w.len/2,60,off-200),\"dim\");let x=s;const off2=BASE_D+260;w.base.forEach(it=>{const p0=wallPoint(K,wi,x,60,off2),p1=wallPoint(K,wi,x+it.w,60,off2);pts.push(p0.x,60,p0.z,p1.x,60,p1.z),tick(p0,n),tick(p1,n),it.gap&&it.k===\"filler\"||addLab(it.w+\"\",wallPoint(K,wi,x+it.w/2,60,off2+120),\"dim sm\"),x+=it.w});let xt=w.len-s-used(w.tall);w.tall.forEach(it=>{const p0=wallPoint(K,wi,xt,60,off2),p1=wallPoint(K,wi,xt+it.w,60,off2);pts.push(p0.x,60,p0.z,p1.x,60,p1.z),tick(p0,n),tick(p1,n),addLab(it.w+\"\",wallPoint(K,wi,xt+it.w/2,60,off2+120),\"dim sm\"),xt+=it.w})}),K.island&&addLab(\"Island \\xB7 \"+K.island.len+\"mm \\xB7 1000mm clear\",islandPoint(K,K.island.len/2,60,900),\"dim\");const geo=new THREE.BufferGeometry;geo.setAttribute(\"position\",new THREE.Float32BufferAttribute(pts,3)),g.add(new THREE.LineSegments(geo,m)),t.group.add(g)}const _kitchenGroupV15=kitchenGroup;function kitchenGroupV16(K,st,opts={}){const G=_kitchenGroupV15(K,st,opts),{A,depth}=roomDimsFor(K),skirt=mat(\"#F6F7F8\",!1);if(G.add(box(A+200,110,22,skirt,-100,0,-2,!1)),(K.shape===\"L\"||K.shape===\"U\")&&G.add(box(22,110,depth+100,skirt,-2,0,-100,!1)),K.shape===\"U\"&&G.add(box(22,110,depth+100,skirt,A-20,0,-100,!1)),K.shape===\"galley\"&&G.add(box(A+200,110,22,skirt,-100,0,depth-20,!1)),K.walls.forEach((w,wi)=>{(w.obs||[]).forEach(o=>{if(o.type!==\"window\")return;const a=o.a!==void 0?o.a:o.from,sill=o.sill||900,h=Math.max(600,Math.min(2100,K.ceiling||2400)-sill-250),L=new THREE.RectAreaLight(15398143,6,o.w,h);L.position.set(o.w/2,sill+h/2,60),L.lookAt(o.w/2,sill+h/2,2e3);const g=new THREE.Group;g.add(L),g.userData.w=o.w,placeOnWallK(K,g,wi,a-kitStartK(K,wi,\"base\"),!1),G.add(g)})}),opts.drop){const dt=[];K.walls.forEach((w,wi)=>{const s=kitStartK(K,wi,\"base\"),m=new THREE.Mesh(new THREE.BoxGeometry(w.len-s,2400,700),new THREE.MeshBasicMaterial({visible:!1})),g=new THREE.Group;m.position.set((w.len-s)/2,1200,350),g.add(m),g.userData.w=w.len-s,g.userData.dropWall=wi,placeOnWallK(K,g,wi,0,!1),G.add(g),dt.push(g)}),G.userData.dropTargets=dt}return G}kitchenGroup=kitchenGroupV16;function vReveal(){return vBuilder()}function rvRefreshV16(){bdRefresh()}rvRefresh=rvRefreshV16;var SHAPE_BASE={straight:\"straight\",galley:\"galley\",L:\"L\",U:\"U\",Lp:\"L\",G:\"U\"},SHAPE_PEN={Lp:!0,G:!0},WALLNAMES=[\"Wall A\",\"Wall B\",\"Wall C\",\"Peninsula\"];function baseShape(id){return SHAPE_BASE[id]||id}function wallCount(id){return({straight:1,L:2,U:3,galley:2}[baseShape(id)]||1)+(SHAPE_PEN[id]?1:0)}function realWalls(id){return{straight:1,L:2,U:3,galley:2}[baseShape(id)]||1}function wallsForV17(w){return wallCount(w.shape)}function WNAMEV17(i){return WALLNAMES[i]}function WSIDEV17(W,i){return(W2,i2)=>i2===3?\"the breakfast bar run, measured from the wall it joins\":i2===0?\"the wall you face first\":baseShape(W2.shape)===\"galley\"?\"the facing wall\":i2===1?\"on your left\":\"on your right\"}function penIdx(K){return K.pen?K.walls.length-1:-1}function isPen(K,wi){return!!K.pen&&wi===K.walls.length-1}function wizIdx(W){const r=realWalls(W.shape),a=[];for(let i=0;i<r;i++)a.push(i);return SHAPE_PEN[W.shape]&&a.push(3),a}function wiz2kit(W,i){const r=realWalls(W.shape);return i===3?SHAPE_PEN[W.shape]?r:0:Math.min(i,r-1)}function wizWalls(W){return wizIdx(W).map(i=>W.walls[i])}function penAnchor(K){const{A}=roomDimsFor(K);return K.shape===\"U\"?{z:K.walls[2].len,x0:A,dir:-1}:{z:K.walls[1].len,x0:0,dir:1}}function placeOnWallK(K,obj,wi,xStart,isWallRow){const{A,depth}=roomDimsFor(K),s=kitStartK(K,wi,isWallRow?\"wall\":\"base\"),w=obj.userData.w||0;if(isPen(K,wi)){const P=penAnchor(K);obj.rotation.y=Math.PI,obj.position.set(P.dir>0?s+xStart+w:A-s-xStart,0,P.z);return}wi===0?(obj.rotation.y=0,obj.position.set(xStart,0,0)):K.shape===\"galley\"?(obj.rotation.y=Math.PI,obj.position.set(xStart+w,0,depth)):wi===1?(obj.rotation.y=Math.PI/2,obj.position.set(0,0,s+xStart+w)):(obj.rotation.y=-Math.PI/2,obj.position.set(A,0,s+xStart))}function wallPoint(K,wi,d,y,off){const{A,depth}=roomDimsFor(K);if(isPen(K,wi)){const P=penAnchor(K);return new THREE.Vector3(P.x0+P.dir*d,y,P.z-off)}return wi===0?new THREE.Vector3(d,y,off):K.shape===\"galley\"?new THREE.Vector3(d,y,depth-off):wi===1?new THREE.Vector3(off,y,d):new THREE.Vector3(A-off,y,d)}function runCoord(K,wi,p){const s=kitStartK(K,wi,\"base\");if(isPen(K,wi)){const P=penAnchor(K);return(p.x-P.x0)*P.dir-s}return wi===0||K.shape===\"galley\"?p.x-s:p.z-s}function wallDir(K,wi){return isPen(K,wi)?new THREE.Vector3(penAnchor(K).dir,0,0):wi===0||K.shape===\"galley\"?new THREE.Vector3(1,0,0):new THREE.Vector3(0,0,1)}function wallPlane(K,wi){const{A,depth}=roomDimsFor(K);return isPen(K,wi)?new THREE.Plane(new THREE.Vector3(0,0,1),-(penAnchor(K).z-400)):wi===0?new THREE.Plane(new THREE.Vector3(0,0,1),-400):K.shape===\"galley\"?new THREE.Plane(new THREE.Vector3(0,0,-1),depth-400):wi===1?new THREE.Plane(new THREE.Vector3(1,0,0),-400):new THREE.Plane(new THREE.Vector3(-1,0,0),A-400)}function islandZ(K){const{depth}=roomDimsFor(K);let z=depth-1900;if(K.pen){const P=penAnchor(K);z=Math.min(z,P.z-BASE_D-1e3-600)}return z}function islandPoint(K,d,y,off){const{A}=roomDimsFor(K);return new THREE.Vector3((A-K.island.len)/2+d,y,islandZ(K)+off)}const _camToV15=camTo;function camToV17(t,kind,K,wi,instant){if(kind===\"front\"&&isPen(K,wi)){const{A}=roomDimsFor(K),P=penAnchor(K),span=Math.max(A,P.z),to={th:Math.PI,ph:1.42,r:Math.min(span*1.3,P.z*.9)},toT=new THREE.Vector3(A/2,1e3,P.z);instant?(Object.assign(t.cam,to),t.target.copy(toT),t.upd(),t.dirty=!0):t.anim={from:{...t.cam},to,fromT:t.target.clone(),toT,t0:performance.now(),dur:650};return}return _camToV15(t,kind,K,wi,instant)}camTo=camToV17;function shapeIcon(id){const s='stroke=\"currentColor\" stroke-width=\"3\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"';return`<svg viewBox=\"0 0 48 44\" width=\"40\" height=\"36\">${{straight:'<path d=\"M4 8h40\" '+s+\"/>\",L:'<path d=\"M4 4v36h40\" '+s+\"/>\",U:'<path d=\"M4 4v36h40V4\" '+s+\"/>\",galley:'<path d=\"M4 6h40M4 38h40\" '+s+\"/>\",Lp:'<path d=\"M4 4v36h22\" '+s+'/><path d=\"M44 4v12\" '+s+' opacity=\".35\"/>',G:'<path d=\"M4 4v36h12M44 4v36H30\" '+s+\"/>\"}[id]||\"\"}</svg>`}function kitInit(shape,template){const base=baseShape(shape),pen=!!SHAPE_PEN[shape],n=wallCount(shape),r=realWalls(shape);S.kit={shape:base,shapeId:shape,pen,walls:Array.from({length:n},(_,i)=>({name:pen&&i===n-1?\"Peninsula\":WALLNAMES[i],len:pen&&i===n-1?1800:[3600,2400,3e3][i],base:[],tall:[],wall:[],obs:[]})),sel:0,row:\"base\",assembled:!1,extras:{worktop:!0,plinth:!0,cornice:!0,handles:!0,ends:!0,fillers:!0,sink:!0,tap:!0},pick:null,view:\"3d\",choices:{}},template&&S.kit.walls.forEach((w,i)=>{i===0&&(w.base=[kitItem(\"highline-base-unit\",600),kitItem(\"pan-drawer-base\",800),kitItem(\"sink-base-unit\",1e3),kitGap(\"dw\")],w.wall=[kitItem(\"wall-unit\",600),kitItem(\"top-box\",800),kitItem(\"wall-unit\",1e3),kitItem(\"wall-unit\",600)]),i===1&&(w.tall=[kitItem(\"single-oven-housing\",600),kitItem(\"fridge-freezer-housing\",600)],w.base=[kitItem(\"highline-corner-base\",900)],w.wall=[kitItem(\"corner-wall-unit\",600)]),i===2&&(w.base=[kitItem(\"highline-base-unit\",600),kitItem(\"3-drawer-base\",500),kitItem(\"highline-base-unit\",600)],w.wall=[kitItem(\"wall-unit\",600),kitItem(\"wall-unit\",500),kitItem(\"wall-unit\",600)]),pen&&i===n-1&&(w.base=[kitItem(\"highline-corner-base\",900),kitItem(\"pan-drawer-base\",600)]),kitFit(w)})}const _kitchenGroupV16=kitchenGroup;function kitchenGroupV17(K,st,opts={}){const G=_kitchenGroupV16(K,st,opts);if(K.pen){const w=K.walls[penIdx(K)],L=used(w.base);if(L>0){const g=new THREE.Group,doorM=mat(st.hex,st.finish===\"Gloss\");g.add(box(L,870,18,doorM,0,0,-18,!0)),g.add(wtBox(L+40,340,worktopMat(K),-20,870,-340)),g.add(box(18,870,BASE_D,doorM,L,0,0,!0)),g.userData.w=L,placeOnWallK(K,g,penIdx(K),0,!1),G.add(g),G.userData.famBoxes&&G.userData.famBoxes.trims.push(g)}}return G}kitchenGroup=kitchenGroupV17;const _kitExtrasV15=kitExtras;function kitExtrasV17(){const K=kit(),out=_kitExtrasV15();if(K.pen&&K.walls[penIdx(K)].base.length){const len=used(K.walls[penIdx(K)].base),ends=out.find(x=>x.key===\"ends\");ends&&(ends.qty+=1,ends.price=ends.v.price*ends.qty);const bp=byId(\"acc-island-peninsular-backing-panel\");bp&&!out.find(x=>x.key===\"pen\")&&out.push({key:\"pen\",p:bp,v:bp.variants[0],qty:1,label:\"Peninsula back panel\",sub:\"Colour matched, \"+len+\"mm run\",price:bp.variants[0].price,on:K.extras.pen!==!1})}return out}kitExtras=kitExtrasV17;var CYCLE=[\"A\",\"C\",\"D\",\"B\"];const prevW=l=>CYCLE[(CYCLE.indexOf(l)+3)%4],nextW=l=>CYCLE[(CYCLE.indexOf(l)+1)%4],oppW=l=>CYCLE[(CYCLE.indexOf(l)+2)%4],RZ_STEPS=[[\"room\",\"Room\"],[\"openings\",\"Doors & windows\"],[\"walls\",\"Which walls\"],[\"services\",\"Water & gas\"],[\"appliances\",\"Appliances\"],[\"storage\",\"Storage\"],[\"style\",\"Style & finish\"]];function rzInit(){S.wiz={v:19,step:0,room:{w:3600,d:3e3},ceiling:2400,pw:{A:{obs:[]},B:{obs:[]},C:{obs:[]},D:{obs:[{type:\"door\",from:1200,w:900,swing:\"in\",hinge:\"left\"}]}},use:{A:!0,B:!0,C:!1,D:!1},island:{on:!1,len:1800},pen:{on:!1,len:1800},sink:{wall:\"A\",from:1800},hob:{wall:\"A\",from:800},app:{hob:\"induction\",oven:\"builtunder\",fridge:\"integrated\",dishwasher:\"600\",washer:\"no\",microwave:\"none\",extractor:\"chimney\"},storage:{pref:\"balanced\",wallUnits:!0,larder:!0},style:S.style||\"cashmere-matt\",handle:{pid:\"bar160\",sku:null},worktop:\"oakblock\",sinkP:\"sink-inset-15\",tapP:\"tap-mono\",assembled:!1}}const plen=(W,l)=>l===\"A\"||l===\"D\"?W.room.w:W.room.d,PSIDE={A:\"in front of you\",B:\"on your left\",C:\"on your right\",D:\"behind you\"};function rzLayout(W){const on=CYCLE.filter(l=>W.use[l]);let M=\"A\",shape=\"straight\",left=null,right=null,opp=null,unused=[];if(on.length===0)M=\"A\";else if(on.length===1)M=on[0];else if(on.length===2){const[p,q2]=on;oppW(p)===q2?(shape=\"galley\",M=p===\"A\"||q2===\"A\"?\"A\":p===\"B\"||q2===\"B\"?\"B\":p,opp=oppW(M)):(shape=\"L\",M=prevW(p)===q2?p:q2,left=prevW(M))}else if(on.length===3){const miss=CYCLE.find(l=>!W.use[l]);M=oppW(miss),shape=\"U\",left=prevW(M),right=nextW(M)}else M=\"A\",shape=\"U\",left=\"B\",right=\"C\",unused=[\"D\"];const kit2=[M];shape===\"L\"&&kit2.push(left),shape===\"U\"&&kit2.push(left,right),shape===\"galley\"&&kit2.push(opp);const penOk=shape===\"L\"||shape===\"U\",shapeId=W.pen.on&&penOk?shape===\"L\"?\"Lp\":\"G\":shape,ghost=CYCLE.filter(l=>!kit2.includes(l)).map(l=>({letter:l,side:l===prevW(M)?\"left\":l===nextW(M)?\"right\":\"back\"}));return{M,shape,shapeId,kit:kit2,ghost,unused,penOk,left,right,opp}}const SHAPE_NAMES={straight:\"a straight run\",L:\"an L-shape\",U:\"a U-shape\",galley:\"a galley\",Lp:\"an L-shape with a peninsula\",G:\"a G-shape\"};function rzToW(W){const L=rzLayout(W),kitWalls=L.kit.map(l=>({len:plen(W,l),obs:W.pw[l].obs.map(o=>({...o})),letter:l}));kitWalls[0].letter=L.M;const addZone=(letter,atEnd,w)=>{const ki=L.kit.indexOf(letter);if(ki<0)return;const len=plen(W,letter),kw=kitWalls[ki],a=atEnd?len-w:0;kw.obs.push({type:\"swingzone\",from:ki===1?len-a-w:a,w,src:letter})},endFor=(ki,corner)=>L.shape===\"galley\"?ki===0?corner===\"right\"?\"end\":\"start\":corner===\"right\"?\"start\":\"end\":ki===0?corner===\"right\"?\"end\":\"start\":ki===1?corner===\"right\"?\"start\":\"end\":corner===\"right\"?\"end\":\"start\";CYCLE.forEach(l=>{W.pw[l].obs.forEach(o=>{if(o.type!==\"door\"||(o.swing||\"in\")!==\"in\")return;const len=plen(W,l),distL=o.from,distR=len-o.from-o.w;if(distL<o.w){const n=prevW(l),ki=L.kit.indexOf(n);if(ki>=0&&!(L.shape===\"galley\"&&ki>0&&!1)){const e=endFor(ki,\"right\");addZone(n,e===\"end\",o.w)}}if(distR<o.w){const n=nextW(l),ki=L.kit.indexOf(n);if(ki>=0){const e=endFor(ki,\"left\");addZone(n,e===\"end\",o.w)}}})}),W.pen.on&&L.penOk&&kitWalls.push({len:W.pen.len,obs:[],letter:\"P\"});const kidx=l=>Math.max(0,L.kit.indexOf(l)),svWall=sv=>sv.wall===\"P\"?3:kidx(sv.wall),slots=[0,1,2,3].map(()=>({len:1800,obs:[]}));return L.kit.forEach((l,i)=>slots[i]=kitWalls[i]),W.pen.on&&L.penOk&&(slots[3]=kitWalls[kitWalls.length-1]),Object.assign({},W,{shape:L.shapeId,walls:slots,sink:{wall:svWall(W.sink),from:W.sink.from},hob:{wall:svWall(W.hob),from:W.hob.from},island:{on:W.island.on&&L.shape!==\"galley\",len:W.island.len},_layout:L})}function rzDecorate(K,W){const L=rzLayout(W);return K.room={w:W.room.w,d:W.room.d},K.layout=L,K.walls.forEach((w,i)=>{i<L.kit.length?w.name=\"Wall \"+L.kit[i]:w.name=\"Peninsula\"}),K.ghost=L.ghost.map(g=>({...g,len:plen(W,g.letter),obs:W.pw[g.letter].obs})),K.ceiling=W.ceiling,L.unused.length&&K.walls[0].notes&&K.walls[0].notes.push(\"Wall D left clear: three unit walls is the most a room should carry.\"),K}function generateKit3(preview){const W=S.wiz,W2=rzToW(W),saved=S.wiz;S.wiz=W2;let K;try{K=generateKit2(preview)}finally{S.wiz=saved}return rzDecorate(K,W),S.kit=K,K}function shellKit3(W){const W2=rzToW(W),K=shellKit(W2);return rzDecorate(K,W),K}function vPlan(){const V=document.getElementById(\"view\");(!S.wiz||S.wiz.v!==19)&&rzInit();const W=S.wiz;V.appendChild(el('<div class=\"crumbs\"></div>')),V.appendChild(el('<div class=\"pz\"><div class=\"pzl\"><div class=\"pzprog\" id=\"pzprog\"></div><div class=\"pzcard\" id=\"pzcard\"></div><div class=\"pzhelp\" id=\"pzhelp\"></div></div><div class=\"pzr\"><div class=\"pz3d\" id=\"pz3d\"><div class=\"plabels\" id=\"pzlab\"></div><div class=\"pzlive\"><i></i>Live \\xB7 your room, your answers</div><div class=\"pzviews\" id=\"pzviews\"></div><div class=\"pzhint\" id=\"pzhint\"></div></div></div></div>')),renderRoomStep()}function renderRoomStep(){const W=S.wiz,prog=document.getElementById(\"pzprog\"),card=document.getElementById(\"pzcard\");if(!card)return;const L=rzLayout(W);prog.innerHTML=RZ_STEPS.map(([k2,l],i)=>`<button class=\"pzs ${i===W.step?\"on\":i<W.step?\"done\":\"\"}\" data-i=\"${i}\"><i>${i<W.step?\"\\u2713\":i+1}</i><span>${l}</span></button>`).join(\"\"),prog.querySelectorAll(\".pzs\").forEach(b=>b.onclick=()=>{+b.dataset.i<=W.step&&(W.step=+b.dataset.i,renderRoomStep())});const k=RZ_STEPS[W.step][0],last=W.step===RZ_STEPS.length-1,nav=`<div class=\"pznav\">${W.step>0?'<button class=\"pzback\" data-prev>\\u2190 Back</button>':\"<span></span>\"}<button class=\"add pzgo\" data-next><span>${last?\"Reveal my kitchen\":\"Continue\"}</span><span>\\u2192</span></button></div>`,opt=(obj,key,vals,attr)=>`<div class=\"pzopts\">${vals.map(([v,l,s,dis])=>`<button class=\"pzopt ${obj[key]===v?\"on\":\"\"} ${dis?\"dis\":\"\"}\" data-${attr}=\"${key}:${v}\" ${dis?\"disabled\":\"\"}><b>${l}</b>${s?`<small>${s}</small>`:\"\"}</button>`).join(\"\")}</div>`,num=(label,sub,val,attr)=>`<label class=\"pzin\"><span class=\"pzl2\">${label}<small>${sub}</small></span><span class=\"pzf\"><input inputmode=\"numeric\" value=\"${val}\" ${attr}><em>mm</em></span></label>`;let html=\"\";if(k===\"room\")html=`<div class=\"pzh\"><div class=\"eyebrow\">1 \\xB7 Room</div><h2>How big is the room?</h2><p>Stand in the doorway. The wall in front of you is <b>A</b>, your left is <b>B</b>, your right is <b>C</b>, behind you is <b>D</b>. Measure wall to wall at worktop height.</p></div><div class=\"pzwalls\">${num(\"Width \\xB7 walls A and D\",\"left to right as you face A\",W.room.w,'data-room=\"w\"')}${num(\"Depth \\xB7 walls B and C\",\"front to back\",W.room.d,'data-room=\"d\"')}${num(\"Ceiling\",\"floor to ceiling, lowest point\",W.ceiling,\"data-ceiling\")}</div><div class=\"pznote\">Not a rectangle? Measure the largest rectangle the kitchen will sit in and tell us about the awkward bit in the next step.</div>${nav}`;else if(k===\"openings\")html=`<div class=\"pzh\"><div class=\"eyebrow\">2 \\xB7 Doors & windows</div><h2>What's on each wall?</h2><p>Doorways, windows, a boiler or a radiator. Measure from the left corner as you face that wall. They appear in the room as you add them.</p></div>${CYCLE.slice().sort().map(l=>{const w=W.pw[l],len=plen(W,l);return`<div class=\"pzob\"><div class=\"pzobh\"><b>Wall ${l}</b><span>${len}mm \\xB7 ${PSIDE[l]}</span></div><div class=\"pzaddrow\">${[[\"window\",\"Window\"],[\"door\",\"Doorway\"],[\"boiler\",\"Boiler\"],[\"radiator\",\"Radiator\"]].map(([t,lb])=>`<button class=\"chip\" data-addob=\"${l}:${t}\"><i class=\"ob ${t}\"></i>+ ${lb}</button>`).join(\"\")}</div>${w.obs.map((o,j)=>`<div class=\"pzobr\"><i class=\"ob ${o.type}\"></i><b>${o.type[0].toUpperCase()+o.type.slice(1)}</b><label>from left<input inputmode=\"numeric\" value=\"${o.from}\" data-ob=\"${l}:${j}:from\"></label><label>width<input inputmode=\"numeric\" value=\"${o.w}\" data-ob=\"${l}:${j}:w\"></label>${o.type===\"window\"?`<label>sill<input inputmode=\"numeric\" value=\"${o.sill}\" data-ob=\"${l}:${j}:sill\"></label>`:\"\"}<button class=\"pzrm\" data-rmob=\"${l}:${j}\" title=\"Remove\">\\xD7</button>${o.type===\"door\"?`<div class=\"pzdoor\"><span>Opens</span>${[[\"in\",\"into the kitchen\"],[\"out\",\"away / sliding\"]].map(([v,lb])=>`<button class=\"chip ${(o.swing||\"in\")===v?\"on\":\"\"}\" data-obset=\"${l}:${j}:swing:${v}\">${lb}</button>`).join(\"\")}${(o.swing||\"in\")===\"in\"?`<span>Hinge</span>${[[\"left\",\"left\"],[\"right\",\"right\"]].map(([v,lb])=>`<button class=\"chip ${(o.hinge||\"left\")===v?\"on\":\"\"}\" data-obset=\"${l}:${j}:hinge:${v}\">${lb}</button>`).join(\"\")}`:\"\"}</div>`:\"\"}</div>`).join(\"\")}</div>`}).join(\"\")}${nav}`;else if(k===\"walls\"){const on=CYCLE.filter(l=>W.use[l]).length,sugg=l=>{const w=W.pw[l],doors=w.obs.filter(o=>o.type===\"door\").reduce((a,o)=>a+o.w+200,0);return plen(W,l)-doors<1200?\"mostly doorway\":w.obs.some(o=>o.type===\"radiator\")?\"has a radiator\":\"\"};html=`<div class=\"pzh\"><div class=\"eyebrow\">3 \\xB7 Which walls</div><h2>Which walls should have units?</h2><p>Tap a wall to include it or leave it clear. We'll work out the shape.</p></div><div class=\"pzuse\">${[\"A\",\"B\",\"C\",\"D\"].map(l=>`<button class=\"pzwall ${W.use[l]?\"on\":\"\"}\" data-use=\"${l}\"><b>Wall ${l}</b><span>${plen(W,l)}mm \\xB7 ${PSIDE[l]}</span><small>${W.use[l]?\"Units on this wall\":\"Left clear\"}${sugg(l)?\" \\xB7 \"+sugg(l):\"\"}</small></button>`).join(\"\")}</div>\n    <div class=\"pznote\">${on?`That makes ${SHAPE_NAMES[L.shapeId]||L.shape}${L.unused.length?\"; wall D will be left clear\":\"\"}.`:\"Pick at least one wall.\"}</div>\n    <div class=\"pzq\"><b>Peninsula</b><span class=\"pzsub\">a run coming off the open end of ${L.shape===\"U\"?\"wall \"+L.right:L.shape===\"L\"?\"wall \"+L.left:\"a side wall\"}</span>${opt(W.pen,\"on\",[[!1,\"No peninsula\",\"\"],[!0,\"Yes\",\"breakfast bar on the room side\",!L.penOk]],\"pen\")}${W.pen.on&&L.penOk?`<div class=\"pills\" style=\"margin-top:8px\">${[1200,1500,1800,2400].map(x=>`<button class=\"pill ${W.pen.len===x?\"on\":\"\"}\" data-pen=\"len:${x}\"><b>${x}</b></button>`).join(\"\")}</div>`:\"\"}</div>\n    <div class=\"pzq\"><b>Island</b>${opt(W.island,\"on\",[[!1,\"No island\",\"\"],[!0,\"Yes, add an island\",\"needs 1m clear each side\",L.shape===\"galley\"]],\"isl\")}${W.island.on?`<div class=\"pills\" style=\"margin-top:8px\">${[1200,1800,2400].map(x=>`<button class=\"pill ${W.island.len===x?\"on\":\"\"}\" data-isl=\"len:${x}\"><b>${x}</b></button>`).join(\"\")}</div>`:\"\"}</div>${nav}`}else if(k===\"services\"){const walls=[...L.kit,...W.pen.on&&L.penOk?[\"P\"]:[]],sel=key=>`<div class=\"chips\">${walls.map(l=>`<button class=\"chip ${W[key].wall===l?\"on\":\"\"}\" data-sv=\"${key}:${l}\">${l===\"P\"?\"Peninsula\":\"Wall \"+l}</button>`).join(\"\")}</div>`;html=`<div class=\"pzh\"><div class=\"eyebrow\">4 \\xB7 Water & gas</div><h2>Where are the water and gas points?</h2><p>The sink sits on the waste pipe, the hob on the gas or cooker point. Everything else is planned around them. Sockets aren't needed: they don't move units.</p></div><div class=\"pzsv\"><div class=\"pzsvb\"><div class=\"pzsvh\"><i class=\"ob sink\"></i><b>Sink \\xB7 waste pipe</b></div>${sel(\"sink\")}${num(\"Centre of the waste pipe\",\"from the left corner, facing that wall\",W.sink.from,'data-sv=\"sink:from\"')}</div><div class=\"pzsvb\"><div class=\"pzsvh\"><i class=\"ob hob\"></i><b>Hob \\xB7 gas or cooker point</b></div>${sel(\"hob\")}${num(\"Centre of the gas / cooker point\",\"from the left corner, facing that wall\",W.hob.from,'data-sv=\"hob:from\"')}</div></div>${nav}`}else if(k===\"appliances\"){const A=W.app;html=`<div class=\"pzh\"><div class=\"eyebrow\">5 \\xB7 Appliances</div><h2>What's going in?</h2><p>We size the housings and leave the right gaps. The kitchen fills in as you choose.</p></div>\n    <div class=\"pzq\"><b>Hob</b>${opt(A,\"hob\",[[\"induction\",\"Induction / electric\",\"\"],[\"gas\",\"Gas\",\"\"],[\"none\",\"None (range cooker)\",\"\"]],\"app\")}</div>\n    <div class=\"pzq\"><b>Oven</b>${opt(A,\"oven\",[[\"builtunder\",\"Built-under\",\"beneath the hob\"],[\"tower\",\"Eye-level tower\",\"tall housing\"],[\"range\",\"Range cooker\",\"900mm gap\"]],\"app\")}</div>\n    <div class=\"pzq\"><b>Extractor</b>${opt(A,\"extractor\",[[\"chimney\",\"Chimney hood\",\"over the hob\"],[\"integrated\",\"Hidden in a wall unit\",\"\"],[\"none\",\"None\",\"\"]],\"app\")}</div>\n    <div class=\"pzq\"><b>Fridge freezer</b>${opt(A,\"fridge\",[[\"integrated\",\"Integrated\",\"behind a door\"],[\"freestanding\",\"Freestanding\",\"600mm gap\"],[\"none\",\"Elsewhere\",\"\"]],\"app\")}</div>\n    <div class=\"pzq\"><b>Dishwasher</b>${opt(A,\"dishwasher\",[[\"600\",\"Yes, 600mm\",\"\"],[\"450\",\"Slimline 450mm\",\"\"],[\"none\",\"No\",\"\"]],\"app\")}</div>\n    <div class=\"pzq\"><b>Washing machine</b>${opt(A,\"washer\",[[\"no\",\"Not in the kitchen\",\"\"],[\"yes\",\"Yes, 600mm gap\",\"\"]],\"app\")}</div>\n    <div class=\"pzq\"><b>Microwave</b>${opt(A,\"microwave\",[[\"none\",\"Countertop / none\",\"\"],[\"tower\",\"Built in above the oven\",\"tower housing\"]],\"app\")}</div>${nav}`}else if(k===\"storage\"){const St=W.storage;html=`<div class=\"pzh\"><div class=\"eyebrow\">6 \\xB7 Storage</div><h2>How do you like to store things?</h2><p>Sets the mix of drawers and cupboards. You can swap any unit at the end.</p></div>\n    <div class=\"pzq\"><b>Drawers or cupboards?</b>${opt(St,\"pref\",[[\"drawers\",\"Mostly drawers\",\"everything to hand\"],[\"balanced\",\"A balanced mix\",\"most popular\"],[\"doors\",\"Mostly cupboards\",\"lowest cost\"]],\"st\")}</div>\n    <div class=\"pzq\"><b>Wall units</b>${opt(St,\"wallUnits\",[[!0,\"Yes, where they fit\",\"never over windows\"],[!1,\"No wall units\",\"\"]],\"st\")}</div>\n    <div class=\"pzq\"><b>Tall larder</b>${opt(St,\"larder\",[[!0,\"Yes, if there is room\",\"\"],[!1,\"No\",\"\"]],\"st\")}</div>${nav}`}else if(k===\"style\"){const hp=byId(W.handle.pid),hv=hp.variants.find(x=>x.sku===W.handle.sku)||hp.variants[0],st=DATA.styles.find(x=>x.id===W.style);html=`<div class=\"pzh\"><div class=\"eyebrow\">7 \\xB7 Style & finish</div><h2>Pick your look</h2><p>The kitchen changes as you choose.</p></div>\n    <div class=\"pzq\"><b>Door style</b><div class=\"swrow\">${DATA.styles.map(s2=>`<button class=\"swbtn ${s2.id===W.style?\"on\":\"\"}\" data-style=\"${s2.id}\"><span class=\"sw ${s2.finish===\"Gloss\"?\"gloss\":\"\"}\" style=\"background:${s2.hex}\"></span>${s2.name}</button>`).join(\"\")}</div></div>\n    <div class=\"pzq\"><b>Handles</b><span class=\"pzsub\">one per front, counted for you</span><div class=\"pzpick\">${DATA.products.filter(p=>p.family===\"handles\").map(p=>`<button class=\"pzpk ${W.handle.pid===p.id?\"on\":\"\"}\" data-handle=\"${p.id}\"><span class=\"pic\">${unitPic(p,p.variants[0],st,{scale:.1})}</span><b>${p.name}</b><small>from ${GBP(p.from)}</small></button>`).join(\"\")}</div><div class=\"swrow\" style=\"margin-top:8px\">${hp.variants.map(v=>`<button class=\"swbtn ${v.sku===hv.sku?\"on\":\"\"}\" data-hfin=\"${v.sku}\"><span class=\"sw\" style=\"background:${v.hex}\"></span>${v.label} \\xB7 ${GBP(v.price)}</button>`).join(\"\")}</div></div>\n    <div class=\"pzq\"><b>Worktop</b><span class=\"pzsub\">lengths worked out from your walls</span><div class=\"pzpick\">${DATA.products.filter(p=>p.family===\"worktops\").map(p=>`<button class=\"pzpk ${W.worktop===p.id?\"on\":\"\"}\" data-worktop=\"${p.id}\"><span class=\"pic\">${unitPic(p,p.variants[0],st,{scale:.1})}</span><b>${p.name}</b><small>from ${GBP(p.from)} / 3m</small></button>`).join(\"\")}</div></div>\n    <div class=\"pzq\"><b>Sink</b>${opt(W,\"sinkP\",DATA.products.filter(p=>p.family===\"sinks\"&&p.group===\"sink\").map(p=>[p.id,p.name,p.blurb+\" \\xB7 \"+GBP(p.from)]),\"pick\")}</div>\n    <div class=\"pzq\"><b>Tap</b>${opt(W,\"tapP\",DATA.products.filter(p=>p.family===\"sinks\"&&p.group===\"tap\").map(p=>[p.id,p.name,p.blurb+\" \\xB7 \"+GBP(p.from)]),\"pick\")}</div>\n    <div class=\"pzq\"><b>Assembly</b><div class=\"asm\">${[[!1,\"Flatpack\",\"Included\"],[!0,\"Ready assembled\",\"+\"+GBP(ASSEMBLY)+\" per cabinet\"]].map(([v,t,p])=>`<button class=\"${W.assembled===v?\"on\":\"\"}\" data-asm=\"${v}\"><b>${t}</b><span class=\"pr\">${p}</span></button>`).join(\"\")}</div></div>${nav}`}card.innerHTML=html;const R=()=>renderRoomStep();card.querySelectorAll(\"[data-room]\").forEach(i=>{const f=()=>{W.room[i.dataset.room]=Math.max(1200,Math.round((parseInt(i.value)||1200)/10)*10)};i.oninput=()=>{f(),rzScene()},i.onchange=()=>{f(),R()}});const ce=card.querySelector(\"[data-ceiling]\");ce&&(ce.onchange=()=>{W.ceiling=parseInt(ce.value)||2400,R()}),card.querySelectorAll(\"[data-addob]\").forEach(b=>b.onclick=()=>{const[l,t]=b.dataset.addob.split(\":\"),w=W.pw[l],len=plen(W,l),def={window:{w:1200,sill:1e3},door:{w:900,swing:\"in\",hinge:\"left\"},boiler:{w:600},radiator:{w:800}}[t];w.obs.push({type:t,from:Math.max(0,Math.round((len/2-def.w/2)/10)*10),...def}),R()}),card.querySelectorAll(\"[data-ob]\").forEach(i=>{const f=()=>{const[l,j,key]=i.dataset.ob.split(\":\");W.pw[l].obs[+j][key]=parseInt(i.value)||0};i.oninput=()=>{f(),rzScene()},i.onchange=()=>{f(),R()}}),card.querySelectorAll(\"[data-rmob]\").forEach(b=>b.onclick=()=>{const[l,j]=b.dataset.rmob.split(\":\");W.pw[l].obs.splice(+j,1),R()}),card.querySelectorAll(\"[data-obset]\").forEach(b=>b.onclick=()=>{const[l,j,key,v]=b.dataset.obset.split(\":\");W.pw[l].obs[+j][key]=v,R()}),card.querySelectorAll(\"[data-use]\").forEach(b=>b.onclick=()=>{const l=b.dataset.use;W.use[l]=!W.use[l];const L2=rzLayout(W);!L2.kit.includes(W.sink.wall)&&W.sink.wall!==\"P\"&&(W.sink.wall=L2.M),!L2.kit.includes(W.hob.wall)&&W.hob.wall!==\"P\"&&(W.hob.wall=L2.M),R()}),card.querySelectorAll(\"[data-pen]\").forEach(b=>b.onclick=()=>{const[key,v]=b.dataset.pen.split(\":\");W.pen[key]=key===\"on\"?v===\"true\":+v,R()}),card.querySelectorAll(\"[data-isl]\").forEach(b=>b.onclick=()=>{const[key,v]=b.dataset.isl.split(\":\");W.island[key]=key===\"on\"?v===\"true\":+v,R()}),card.querySelectorAll(\"[data-sv]\").forEach(x=>{const[key,v]=x.dataset.sv.split(\":\");x.tagName===\"BUTTON\"?x.onclick=()=>{W[key].wall=v,R()}:(x.oninput=()=>{W[key].from=parseInt(x.value)||0,rzScene()},x.onchange=R)}),card.querySelectorAll(\"[data-app]\").forEach(b=>b.onclick=()=>{const[key,v]=b.dataset.app.split(\":\");W.app[key]=v,key===\"oven\"&&v===\"range\"&&(W.app.hob=\"none\"),key===\"hob\"&&v!==\"none\"&&W.app.oven===\"range\"&&(W.app.oven=\"builtunder\"),key===\"oven\"&&v!==\"range\"&&W.app.hob===\"none\"&&(W.app.hob=\"induction\"),R()}),card.querySelectorAll(\"[data-st]\").forEach(b=>b.onclick=()=>{const[key,v]=b.dataset.st.split(\":\");W.storage[key]=v===\"true\"?!0:v===\"false\"?!1:v,R()}),card.querySelectorAll(\"[data-pick]\").forEach(b=>b.onclick=()=>{const[key,v]=b.dataset.pick.split(\":\");W[key]=v,R()}),card.querySelectorAll(\"[data-style]\").forEach(b=>b.onclick=()=>{W.style=b.dataset.style,S.style=W.style;try{localStorage.setItem(\"kb-style\",W.style)}catch{}R()}),card.querySelectorAll(\"[data-handle]\").forEach(b=>b.onclick=()=>{W.handle={pid:b.dataset.handle,sku:null},R()}),card.querySelectorAll(\"[data-hfin]\").forEach(b=>b.onclick=()=>{W.handle.sku=b.dataset.hfin,R()}),card.querySelectorAll(\"[data-worktop]\").forEach(b=>b.onclick=()=>{W.worktop=b.dataset.worktop,R()}),card.querySelectorAll(\"[data-asm]\").forEach(b=>b.onclick=()=>{W.assembled=b.dataset.asm===\"true\",R()}),card.querySelector(\"[data-next]\").onclick=()=>{if(last){generateKit3(),go(\"builder\");return}if(k===\"walls\"&&!CYCLE.some(l=>W.use[l])){toast(\"Pick at least one wall\");return}W.step++,R(),document.getElementById(\"pzprog\").scrollIntoView({behavior:\"smooth\",block:\"start\"})};const pv=card.querySelector(\"[data-prev]\");pv&&(pv.onclick=()=>{W.step--,R()}),renderRzHelp(k),rzScene(!0)}const RZ_HELP={room:{t:\"How to measure the room\",b:[\"Stand in the main doorway: A is ahead, B left, C right, D behind you.\",\"Measure at worktop height (about 900mm up), wall to wall, skirting ignored.\",\"Measure twice, in two places; use the smaller number.\",\"Ceiling: measure in each corner, use the lowest.\"],d:\"roomabcd\"},openings:{t:\"Measuring windows and doors\",b:['Face the wall. \"From left\" is the left-hand corner to the edge of the frame.',\"Width is frame edge to frame edge.\",\"Sill is floor to the underside of the sill. Base units need 900mm.\",\"Say which way a door opens: a door that swings in needs its arc kept clear.\"],d:\"window\"},walls:{t:\"Choosing walls\",b:[\"Most kitchens use two or three walls. Leave a wall clear for dining, the door, or a radiator.\",\"A wall that is mostly doorway rarely earns its units.\",\"Peninsulas need the open end of a run; islands need 1000mm clear all round.\",\"Three unit walls is plenty; the fourth is best left clear.\"],d:\"shape\"},services:{t:\"Finding your water and gas\",b:[\"Sink: measure to the centre of the waste pipe where it enters the wall or floor.\",\"Hob: measure to the centre of the gas point or cooker outlet.\",\"Moving either is a plumber or Gas Safe job, so the plan keeps them where they are.\",\"Dishwasher and washing machine are placed next to the sink.\"],d:\"pipes\"},appliances:{t:\"Sizes we plan for\",b:[\"Built-under oven: 600mm housing beneath the hob.\",\"Eye-level tower: 600mm tall housing at the end of a run.\",\"Range cooker: a 900mm gap, no hob needed.\",\"Integrated fridge freezer: 600mm tall housing. Freestanding: 600mm gap.\",\"Chimney hoods need 650 to 750mm above the hob.\"],d:\"appl\"},storage:{t:\"Drawers vs cupboards\",b:[\"Drawers cost more but keep pans, plates and food in view.\",\"Cupboards are the cheapest storage per metre.\",\"Wall units skip windows and the space above tall units.\",\"A larder is added only when 500mm or more is spare.\"],d:\"store\"},style:{t:\"Choosing a colour\",b:[\"Every door is matt, which hides fingerprints and marks.\",\"Order free samples to see the colour in your light.\"],d:\"style\"}};function renderRzHelp(k){const h=document.getElementById(\"pzhelp\"),H=RZ_HELP[k];!h||!H||(h.innerHTML=`<div class=\"helph\"><i>?</i><b>${H.t}</b></div><div class=\"helpd\">${H.d===\"roomabcd\"?roomDiagram():helpDiagram(H.d)}</div><ul>${H.b.map(x=>`<li>${x}</li>`).join(\"\")}</ul><button class=\"chip\" id=\"pzhelpbtn\">Still unsure? Send photos to a planner</button>`,h.querySelector(\"#pzhelpbtn\").onclick=()=>{S.help=!0,document.getElementById(\"hp\").classList.add(\"on\")})}function roomDiagram(){const f='font-family=\"Urbanist,sans-serif\" font-weight=\"800\" font-size=\"13\"';return`<svg viewBox=\"0 0 260 110\"><rect x=\"60\" y=\"14\" width=\"140\" height=\"82\" fill=\"#EEF3F6\" stroke=\"#0A1116\" stroke-width=\"2.5\"/><text x=\"130\" y=\"11\" text-anchor=\"middle\" ${f} fill=\"#0A1116\">A</text><text x=\"48\" y=\"60\" text-anchor=\"middle\" ${f} fill=\"#0A1116\">B</text><text x=\"212\" y=\"60\" text-anchor=\"middle\" ${f} fill=\"#0A1116\">C</text><text x=\"130\" y=\"108\" text-anchor=\"middle\" ${f} fill=\"#0A1116\">D</text><rect x=\"118\" y=\"92\" width=\"24\" height=\"6\" fill=\"#FFB3C7\"/><circle cx=\"130\" cy=\"72\" r=\"6\" fill=\"#00BBEA\"/><path d=\"M130 66v-18M124 54l6-6 6 6\" stroke=\"#00BBEA\" stroke-width=\"2.5\" fill=\"none\" stroke-linecap=\"round\"/><text x=\"150\" y=\"80\" ${f} font-size=\"9\" fill=\"#4A5560\" font-weight=\"600\">you, in the doorway</text></svg>`}function rzScene(stepChanged){const host=document.getElementById(\"pz3d\"),t=ensure3D(host);if(!t)return;const W=S.wiz,step=W.step,st=DATA.styles.find(x=>x.id===W.style)||style(),K=step>=4?generateKit3(!0):shellKit3(W);for(step<2&&K.walls.forEach(w=>{w.base=[],w.tall=[],w.wall=[]});t.group.children.length;)t.group.remove(t.group.children[0]);const pins=step===3?[\"sink\",\"hob\"].map(key=>{const sv=W[key],ki=sv.wall===\"P\"?penIdx(K):rzLayout(W).kit.indexOf(sv.wall);return ki<0?null:{ki,key,d:pzRunC({shape:K.shape,walls:K.walls},ki,sv.from)-kitStartK(K,ki,\"base\")}}).filter(Boolean):null,g=kitchenGroup(K,st,{pins19:pins,shell:step<4,ghostAll:step<2});t.group.add(g),t.pickables=[],t.onClick=null,t.onHover=null,t.auto=step<=1;const lab=document.getElementById(\"pzlab\");lab.innerHTML=\"\",t.labels=[];const addLab=(txt,pos,cls=\"\")=>{const e=el(`<div class=\"pzpin ${cls}\">${txt}</div>`);lab.appendChild(e),t.labels.push({el:e,pos})},{A,depth}=roomDimsFor(K),L=K.layout,lw=letter=>{const ki=L.kit.indexOf(letter);if(ki>=0)return wallPoint(K,ki,K.walls[ki].len/2,2250,0);const gh=K.ghost.find(x=>x.letter===letter);return ghostPoint(K,gh,gh.len/2,2250,0)};(step<=2||step>=4)&&CYCLE.forEach(l=>addLab(`Wall ${l} \\xB7 ${plen(W,l)}mm${step>=2&&!W.use[l]?\" \\xB7 clear\":\"\"}`,lw(l),\"wall\")),step>=1&&step<4&&CYCLE.forEach(l=>{W.pw[l].obs.forEach(o=>{const ki=L.kit.indexOf(l),a=ki>=0?pzRunA({shape:K.shape,walls:K.walls},ki,o.from,o.w):null,pos=ki>=0?wallPoint(K,ki,a+o.w/2,o.type===\"window\"?(o.sill||900)+600:o.type===\"door\"?1500:o.type===\"boiler\"?1700:700,0):ghostPoint(K,K.ghost.find(x=>x.letter===l),ghostA(K,K.ghost.find(x=>x.letter===l),o),o.type===\"window\"?(o.sill||900)+600:o.type===\"door\"?1500:o.type===\"boiler\"?1700:700,0);addLab(o.type[0].toUpperCase()+o.type.slice(1),pos,\"ob \"+o.type)})}),step===3&&[\"sink\",\"hob\"].forEach(key=>{const sv=W[key],ki=sv.wall===\"P\"?penIdx(K):Math.max(0,L.kit.indexOf(sv.wall));ki<0||addLab(key===\"sink\"?\"Sink here\":\"Hob here\",wallPoint(K,ki,pzRunC({shape:K.shape,walls:K.walls},ki,sv.from),1250,300),\"pin-\"+key)}),step>=4&&(K.walls.forEach((w,wi)=>{let x=kitStartK(K,wi,\"base\");w.base.forEach(it=>{it.sink?addLab(\"Sink\",wallPoint(K,wi,x+it.w/2,1e3,300),\"u\"):it.hob?addLab(\"Hob\",wallPoint(K,wi,x+it.w/2,1e3,300),\"u\"):it.gap&&[\"dw\",\"wm\",\"fr\",\"rc\"].includes(it.k)&&addLab(it.label,wallPoint(K,wi,x+it.w/2,it.k===\"fr\"?1900:950,300),\"u\"),x+=it.w});let xt=w.len-used(w.tall);w.tall.forEach(it=>{addLab(byId(it.pid).name.replace(\" housing\",\"\"),wallPoint(K,wi,xt+it.w/2,2050,300),\"u\"),xt+=it.w})}),K.island&&addLab(\"Island \\xB7 \"+K.island.len+\"mm\",islandPoint(K,K.island.len/2,1e3,280),\"u\")),t.target.set(A/2,900,depth/2);const kind=step<=2?\"room\":step===3?\"high\":\"3d\",changed=t.pzStep!==step||t.pzShape!==K.shapeId;if(t.pzStep=step,t.pzShape=K.shapeId,changed||!t.inited){const inst=!t.inited;t.inited=!0,camTo(t,kind,K,0,inst)}t.dirty=!0;const hint=document.getElementById(\"pzhint\");hint&&(hint.textContent=step===0?\"Drag to look around \\xB7 the room grows as you type\":step===1?\"Openings appear as you add them\":step===2?\"Lit walls get units; grey walls stay clear\":step===3?\"Pins show where the sink and hob will go\":step===4?\"Housings and gaps go in as you choose\":step===5?\"Drawers and cupboards fill the runs\":\"Finishes update live\");const pv=document.getElementById(\"pzviews\");pv&&(pv.innerHTML=[[\"3d\",\"3D\"],[\"plan\",\"Plan\"],[\"room\",\"Room\"]].map(([k2,l])=>`<button data-pv=\"${k2}\">${l}</button>`).join(\"\"),pv.querySelectorAll(\"button\").forEach(b=>b.onclick=()=>{t.auto=!1,camTo(t,b.dataset.pv,K,0,!1)}))}function ghostA(K,gh,o){return gh.side===\"right\"?o.from:gh.len-o.from-o.w}function ghostPoint(K,gh,d,y,off){const{A,depth}=roomDimsFor(K);return gh.side===\"left\"?new THREE.Vector3(off,y,d):gh.side===\"right\"?new THREE.Vector3(A-off,y,d):new THREE.Vector3(d,y,depth-off)}function placeGhost(K,obj,gh,xStart){const{A,depth}=roomDimsFor(K),w=obj.userData.w||0;gh.side===\"left\"?(obj.rotation.y=Math.PI/2,obj.position.set(0,0,xStart+w)):gh.side===\"right\"?(obj.rotation.y=-Math.PI/2,obj.position.set(A,0,xStart)):(obj.rotation.y=Math.PI,obj.position.set(xStart+w,0,depth))}function roomDimsFor(K){if(K.room){const L=K.layout,M=L?L.M:\"A\",A2=M===\"A\"||M===\"D\"?K.room.w:K.room.d;let depth2=M===\"A\"||M===\"D\"?K.room.d:K.room.w;return K.island&&(depth2=Math.max(depth2,3700)),{A:A2,depth:depth2}}const A=K.walls[0].len;let depth=K.shape===\"straight\"?3e3:K.shape===\"galley\"?2400:Math.max(2400,...K.walls.slice(1).map(w=>w.len));return K.island&&(depth=Math.max(depth,3700)),{A,depth}}const _kitchenGroupV17=kitchenGroup,GHOSTM=new THREE.MeshStandardMaterial({color:new THREE.Color(\"#D3DCE3\"),transparent:!0,opacity:.07,roughness:.95,depthWrite:!1}),STUBM=new THREE.MeshStandardMaterial({color:new THREE.Color(\"#D3DCE3\"),roughness:.95});function kitchenGroupV19(K,st,opts={}){const G=_kitchenGroupV17(K,st,opts);if(!K.ghost)return G;const{A,depth}=roomDimsFor(K);return K.ghost.forEach(gh=>{const len=gh.len,wall=gh.side===\"back\"?box(A+200,ROOM_H,100,GHOSTM,-100,0,depth,!1):box(100,ROOM_H,depth+100,GHOSTM,gh.side===\"left\"?-100:A,0,-100,!1);wall.castShadow=!1,wall.receiveShadow=!1,G.add(wall);const stub=gh.side===\"back\"?box(A+200,320,100,STUBM,-100,0,depth,!1):box(100,320,depth+100,STUBM,gh.side===\"left\"?-100:A,0,-100,!1);G.add(stub);const sk=gh.side===\"back\"?box(A+200,110,22,mat(\"#F6F7F8\",!1),-100,0,depth-20,!1):box(22,110,depth+100,mat(\"#F6F7F8\",!1),gh.side===\"left\"?-2:A-20,0,-100,!1);G.add(sk),(gh.obs||[]).forEach(o=>{const a=ghostA(K,gh,o),g=new THREE.Group,gm=hex=>new THREE.MeshBasicMaterial({color:new THREE.Color(hex),transparent:!0,opacity:.14,depthWrite:!1});if(o.type===\"window\"){const sill=o.sill||900,h=Math.max(600,Math.min(2100,K.ceiling||2400)-sill-250);g.add(box(o.w+100,h+100,50,gm(\"#9FB0BC\"),-50,sill-50,-20,!1)),g.add(box(o.w,h,8,gm(\"#7FD3EE\"),0,sill,34,!1))}else if(o.type===\"door\"){if(g.add(box(o.w+90,2100,50,gm(\"#8A9BA7\"),-45,0,-20,!1)),g.add(box(o.w,2050,30,gm(\"#C9D2D9\"),0,0,10,!1)),(o.swing||\"in\")===\"in\"){const hr=(o.hinge||\"left\")===\"right\",hx=hr?o.w:0,arc=new THREE.Mesh(new THREE.CircleGeometry(o.w,32,hr?Math.PI/2:0,Math.PI/2),new THREE.MeshBasicMaterial({color:16757703,transparent:!0,opacity:.35,side:THREE.DoubleSide}));arc.rotation.x=-Math.PI/2,arc.rotation.z=hr?Math.PI:0,arc.position.set(hx,3,0),g.add(arc)}}else o.type===\"boiler\"?g.add(box(450,720,330,gm(\"#9FB0BC\"),(o.w-450)/2,1350,-10,!1)):o.type===\"radiator\"&&g.add(box(o.w,620,70,gm(\"#9FB0BC\"),0,150,10,!1));g.userData.w=o.w,placeGhost(K,g,gh,a),G.add(g)})}),opts.ghostAll&&G.traverse(o=>{o.isMesh&&o.material===wallMat()&&(o.material=GHOSTM)}),opts.pins19&&opts.pins19.forEach(p=>{const g=new THREE.Group,col=p.key===\"sink\"?48106:659734,m=new THREE.Mesh(new THREE.CylinderGeometry(70,70,1180,24),new THREE.MeshBasicMaterial({color:col,transparent:!0,opacity:.35}));m.position.set(0,590,300),g.add(m);const ring=new THREE.Mesh(new THREE.RingGeometry(260,320,48),new THREE.MeshBasicMaterial({color:col,transparent:!0,opacity:.6,side:THREE.DoubleSide}));ring.rotation.x=-Math.PI/2,ring.position.set(0,6,300),g.add(ring);const w2=p.key===\"sink\"?1e3:800,ghost=new THREE.Mesh(new THREE.BoxGeometry(w2,870,560),new THREE.MeshBasicMaterial({color:col,transparent:!0,opacity:.1}));ghost.position.set(0,435,280),g.add(ghost),g.userData.w=0,placeOnWallK(K,g,p.ki,p.d,!1),G.add(g)}),G}kitchenGroup=kitchenGroupV19;function vStyle(){const V=document.getElementById(\"view\"),sp2=showcasePrice(),fin=\"All\",minUnit=Math.min(...DATA.products.filter(isCab).map(p=>p.from));V.appendChild(el('<div class=\"crumbs\"></div>')),V.appendChild(el(`<div class=\"ttl\"><div><div class=\"eyebrow\">${S.mode===\"kitchen\"?\"Step 1 \\xB7 Full kitchen\":\"Step 1 of 3 \\xB7 Cabinets\"}</div><h1>Pick your <em>kitchen style</em></h1><p>Slab edged doors in four matt colours, on one white carcass.</p></div><div class=\"sfilt\" style=\"display:none\"><span>Finish</span>${[\"All\",\"Gloss\",\"Matt\"].map(f=>`<button class=\"chip ${fin===f?\"on\":\"\"}\" data-f=\"${f}\">${f}</button>`).join(\"\")}</div></div>`)),V.querySelectorAll(\"[data-f]\").forEach(b=>b.onclick=()=>{S.styleFilter=b.dataset.f,render()});const grid=el('<div class=\"rgrid\"></div>');V.appendChild(grid);const list=DATA.styles.filter(st=>fin===\"All\"||st.finish===fin);S.saved=S.saved||{};const choose=st=>{S.style=st.id;try{localStorage.setItem(\"kb-style\",st.id)}catch{}go(S.mode===\"kitchen\"?\"plan\":\"place\",S.mode===\"kitchen\"?{restart:!0}:void 0)};if(list.forEach((st,idx)=>{const url=styleSnapshot(st),sibs=DATA.styles.filter(x=>x.finish===st.finish),other=DATA.styles.find(x=>x.colour===st.colour&&x.finish!==st.finish),badge=st.id===\"cashmere-matt\"?'<span class=\"rbadge hot\">Most popular</span>':st.id===\"white-matt\"?'<span class=\"rbadge\">Best value</span>':st.id===\"graphite-matt\"?'<span class=\"rbadge\">New</span>':\"\",c=el(`<article class=\"rcard ${S.style===st.id?\"sel\":\"\"}\" data-id=\"${st.id}\">\n      <div class=\"rimg\">${url?`<img src=\"${url}\" alt=\"${st.name} kitchen\">`:`<div class=\"rimgfb\" style=\"background:${st.hex}\"></div>`}${badge}<button class=\"rheart ${S.saved[st.id]?\"on\":\"\"}\" title=\"Save\">${S.saved[st.id]?\"\\u2665\":\"\\u2661\"}</button><span class=\"rtm\">Flatpack or ready assembled</span></div>\n      <div class=\"rbody\">\n        <div class=\"rtop\"><div><h3>${st.name}</h3><span class=\"rsub\">${st.colour} \\xB7 ${st.finish} slab \\xB7 white carcass</span></div><div class=\"rsw\">${sibs.map(x=>`<button class=\"sw ${x.finish===\"Gloss\"?\"gloss\":\"\"} ${x.id===st.id?\"on\":\"\"}\" style=\"background:${x.hex}\" title=\"${x.name}\" data-sw=\"${x.id}\"></button>`).join(\"\")}${other?`<button class=\"rmore\" data-sw=\"${other.id}\">+${st.finish===\"Gloss\"?\"matt\":\"gloss\"}</button>`:\"\"}</div></div>\n        <div class=\"rpr\"><em>\\xA3\\xA3\\xA3</em><span>From <b>${GBP(priceIn(st,()=>showcasePrice().p))}</b> for the L-shape shown</span><small>\\xB7 units from ${GBP(minUnit+(st.finish===\"Gloss\"?39:0))}</small></div>\n        <ul class=\"rbul\">${[...STYLE_BULLETS[st.finish].slice(0,2),\"Doors, hinges & legs included\"].map(x=>`<li>${x}</li>`).join(\"\")}</ul>\n        <button class=\"rview\">${S.mode===\"kitchen\"?\"Plan a kitchen in \"+st.name:\"View \"+st.name+\" range\"}</button>\n        <div class=\"rlinks2\"><button data-sample>Order a free ${st.name} sample</button><span>\\xB7</span><button data-see>See it in 3D</button></div>\n      </div></article>`);if(c.querySelector(\".rview\").onclick=()=>choose(st),c.querySelector(\"[data-sample]\").onclick=()=>openSamples(st.id),c.querySelector(\"[data-see]\").onclick=()=>openStylePreview(st),c.querySelector(\".rheart\").onclick=e=>{e.stopPropagation(),S.saved[st.id]=!S.saved[st.id],e.currentTarget.classList.toggle(\"on\",S.saved[st.id]),e.currentTarget.textContent=S.saved[st.id]?\"\\u2665\":\"\\u2661\",toast(S.saved[st.id]?st.name+\" saved to your shortlist\":\"Removed from your shortlist\")},c.querySelectorAll(\"[data-sw]\").forEach(b=>b.onclick=()=>{const tgt=grid.querySelector(`.rcard[data-id=\"${b.dataset.sw}\"]`);tgt?(tgt.scrollIntoView({behavior:\"smooth\",block:\"center\"}),tgt.classList.add(\"flash\"),setTimeout(()=>tgt.classList.remove(\"flash\"),1200)):(S.styleFilter=\"All\",S._flash=b.dataset.sw,render())}),c.querySelector(\".rimg\").onclick=()=>openStylePreview(st),grid.appendChild(c),idx===3){const promo=el(`<div class=\"rpromo\"><div><div class=\"eyebrow\" style=\"color:#FFB3C7\">Free samples</div><b>Can't choose between two?</b><span>Order up to four door samples, delivered in 2 to 3 days. Refunded against your first order.</span></div><button id=\"rpromo\">Order free samples</button></div>`);promo.querySelector(\"#rpromo\").onclick=()=>openSamples(),grid.appendChild(promo)}}),S._flash){const tgt=grid.querySelector(`.rcard[data-id=\"${S._flash}\"]`);S._flash=null,tgt&&setTimeout(()=>{tgt.scrollIntoView({behavior:\"smooth\",block:\"center\"}),tgt.classList.add(\"flash\"),setTimeout(()=>tgt.classList.remove(\"flash\"),1200)},150)}const parts=el('<div class=\"parts\"><div class=\"t\"><b>Just need parts, not cabinets?</b><span>Worktops and handles fit any style. Plinths, panels and doors are matched to a colour.</span></div><div class=\"chips\"></div></div>');[[\"worktops\",\"lam\",\"Worktops\"],[\"handles\",\"bar\",\"Handles\"],[\"trims\",\"plinth\",\"Plinth & cornice\"],[\"trims\",\"panels\",\"Panels\"]].forEach(([f,g,l])=>{const ch=el(`<button class=\"chip\">${l}</button>`);ch.onclick=()=>{go(\"parts\"),setTimeout(()=>{const tt2=document.getElementById(\"pg-\"+f+\"-\"+g);tt2&&tt2.scrollIntoView({behavior:\"smooth\"})},80)},parts.querySelector(\".chips\").appendChild(ch)}),V.appendChild(parts)}function openStylePreview(st){const m=openModal(`<div class=\"spm\"><div class=\"swmh\"><div><div class=\"eyebrow\">${st.finish} slab \\xB7 white carcass</div><b>${st.name}</b><span>Drag to look around \\xB7 scroll to zoom</span></div><button class=\"mx\" data-x>\\xD7</button></div><div class=\"spm3d\" id=\"spm3d\"><div class=\"phint\">Drag to look around</div></div><div class=\"spmact\"><div class=\"swrow\">${DATA.styles.map(x=>`<button class=\"swbtn ${x.id===st.id?\"on\":\"\"}\" data-st=\"${x.id}\"><span class=\"sw ${x.finish===\"Gloss\"?\"gloss\":\"\"}\" style=\"background:${x.hex}\"></span>${x.name}</button>`).join(\"\")}</div><div class=\"spmbtns\"><button class=\"rvghost\" data-sample>Free sample</button><button class=\"add\" data-go><span>${S.mode===\"kitchen\"?\"Plan a kitchen in \"+st.name:\"Choose \"+st.name}</span><span>\\u2192</span></button></div></div></div>`,\"wide\"),host=m.querySelector(\"#spm3d\"),t=ensure3D(host),K=showcaseKit();if(t){for(;t.group.children.length;)t.group.remove(t.group.children[0]);t.group.add(kitchenGroup(K,st,{})),t.pickables=[],t.labels=[],t.onClick=null,t.onHover=null,t.inited=!0,camTo(t,\"hero\",K,0,!0),t.auto=!0,t.dirty=!0}m.querySelector(\"[data-x]\").onclick=closeModal,m.querySelectorAll(\"[data-st]\").forEach(b=>b.onclick=()=>{closeModal(),openStylePreview(DATA.styles.find(x=>x.id===b.dataset.st))}),m.querySelector(\"[data-sample]\").onclick=()=>{closeModal(),openSamples(st.id)},m.querySelector(\"[data-go]\").onclick=()=>{closeModal(),S.style=st.id;try{localStorage.setItem(\"kb-style\",st.id)}catch{}go(S.mode===\"kitchen\"?\"plan\":\"place\",S.mode===\"kitchen\"?{restart:!0}:void 0)}}document.getElementById(\"shcart\").onclick=()=>{closeSheet(),document.getElementById(\"bk\").classList.add(\"open\")};const cjEsc=s=>String(s??\"\").replace(/[&<>\"']/g,c=>({\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#39;\"})[c]),suffixOf=stOrId=>{const st=typeof stOrId==\"string\"?DATA.styles.find(s=>s.id===stOrId):stOrId;return st?st.suffix:\"\"},styleBySuffix=suf=>DATA.styles.find(s=>s.suffix===suf),fullSkuOf=(p,v,st)=>needsStyle(p)?v.sku+\"-\"+suffixOf(st||style()):v.sku,SKU_INDEX={};DATA.products.forEach(p=>p.variants.forEach(v=>{SKU_INDEX[v.sku]={p,v}}));function parseFullSku(sku){if(!sku)return null;for(const st of DATA.styles){const suf=\"-\"+st.suffix;if(sku.endsWith(suf)){const hit2=SKU_INDEX[sku.slice(0,-suf.length)];if(hit2)return{p:hit2.p,v:hit2.v,st}}}const hit=SKU_INDEX[sku];return hit?{p:hit.p,v:hit.v,st:null}:null}const jfetch=(u,o)=>fetch(u,Object.assign({headers:{Accept:\"application/json\"}},o||{})).then(r=>r.ok?r.json():r.json().catch(()=>({})).then(j=>{throw new Error(j.description||j.message||\"HTTP \"+r.status)})),LIVE={byPid:{},bySku:{},pending:{}};async function fetchCollectionJson(handle){const items=[];for(let page=1;page<=12;page++){const r=await fetch(`/collections/${handle}?section_id=cj-products-json&page=${page}`,{headers:{Accept:\"text/html\"}});if(!r.ok)break;const m=(await r.text()).match(/<script[^>]*type=\"application\\/json\"[^>]*>([\\s\\S]*?)<\\/script>/);if(!m)break;let j;try{j=JSON.parse(m[1])}catch{break}if(items.push(...j.items||[]),!j.pages||page>=j.pages)break}return items}function liveForPid(pid){if(LIVE.byPid[pid])return Promise.resolve(LIVE.byPid[pid]);if(LIVE.pending[pid])return LIVE.pending[pid];const pr=fetchCollectionJson(\"kb-unit-\"+pid).then(items=>{const map={};return items.forEach(it=>{it.sku&&(map[it.sku]=it,LIVE.bySku[it.sku]=it)}),LIVE.byPid[pid]=map,delete LIVE.pending[pid],map}).catch(()=>(delete LIVE.pending[pid],{}));return LIVE.pending[pid]=pr,pr}async function liveBySku(sku){if(LIVE.bySku[sku])return LIVE.bySku[sku];const hit=parseFullSku(sku);if(hit&&!hit.p.shop){const map=await liveForPid(hit.p.id);if(map[sku])return map[sku]}try{const j=await jfetch(`/search/suggest.json?q=${encodeURIComponent(sku)}&resources[type]=product&resources[limit]=6&resources[options][fields]=variants.sku`),ps=j.resources&&j.resources.results&&j.resources.results.products||[];for(const ph of ps){const pj=await jfetch(`/products/${ph.handle}.js`),v=(pj.variants||[]).find(x=>x.sku===sku);if(v){const it={id:pj.id,handle:pj.handle,title:pj.title,sku,variantId:v.id,price:v.price/100,available:v.available,image:pj.featured_image,images:(pj.images||[]).slice(0,12)};return LIVE.bySku[sku]=it,it}}}catch{}return null}async function resolveVariantId(p,v,st){if(v.variantId)return v.variantId;const sku=fullSkuOf(p,v,st),it=await liveBySku(sku);if(it&&it.available===!1)throw new Error(`${(isCab(p)?v.w+\"mm \":\"\")+p.name} is out of stock${needsStyle(p)?\" in \"+(st||style()).name:\"\"}`);return it?it.variantId:null}const CART={cart:null,busy:!1,timer:null,queued:!1,hydrating:!1},svcKey=sku=>\"ASM|\"+sku;function desiredLines(){const d={};return S.basket.forEach(b=>{const p=byId(b.pid);if(!p)return;const sku=fullSkuOf(p,b.v,b.style),k=sku+(b.assembled?\"|A\":\"\");if(d[k]=d[k]||{p,v:b.v,st:b.style,sku,assembled:!!b.assembled,qty:0},d[k].qty+=b.qty,b.assembled&&CJ.assembly&&isCab(p)){const sk=svcKey(sku);d[sk]=d[sk]||{svc:!0,forSku:sku,label:(b.style?b.style.name+\" \":\"\")+b.name,qty:0},d[sk].qty+=b.qty}}),d}function cartLineKey(li){const pr=li.properties||{};return pr._kb_assembly?svcKey(pr._kb_for||\"\"):(li.sku||\"VID\"+li.variant_id)+(pr.Assembly===\"Ready assembled\"?\"|A\":\"\")}async function cartGet(){return CART.cart=await jfetch(\"/cart.js\"),CART.cart}async function syncCart(){if(CART.timer=null,CART.busy){CART.queued=!0;return}CART.busy=!0,setBusy(!0);try{const cart=CART.cart||await cartGet(),have={};cart.items.forEach(li=>{have[cartLineKey(li)]=li});const want=desiredLines(),adds=[],changes=[];for(const[k,w]of Object.entries(want)){const li=have[k];if(li){li.quantity!==w.qty&&changes.push({id:li.key,quantity:w.qty});continue}try{if(w.svc){if(!CJ.assembly||!CJ.assembly.variantId)continue;adds.push({id:CJ.assembly.variantId,quantity:w.qty,properties:{For:w.label,_kb_assembly:\"1\",_kb_for:w.forSku}})}else{const vid=await resolveVariantId(w.p,w.v,w.st);if(!vid)throw new Error(`${(isCab(w.p)?w.v.w+\"mm \":\"\")+w.p.name} isn't available${needsStyle(w.p)?\" in \"+(w.st||style()).name:\"\"} yet`);const props={};needsStyle(w.p)&&(props[\"Door style\"]=(w.st||style()).name),isCab(w.p)&&CJ.assembly&&(props.Assembly=w.assembled?\"Ready assembled\":\"Flatpack\"),adds.push({id:vid,quantity:w.qty,properties:props})}}catch(e){toast(e.message)}}for(const[k,li]of Object.entries(have))!want[k]&&(li.sku&&parseFullSku(li.sku)||li.properties&&li.properties._kb_assembly)&&changes.push({id:li.key,quantity:0});if(adds.length)try{await jfetch(\"/cart/add.js\",{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Accept:\"application/json\"},body:JSON.stringify({items:adds})})}catch(e){toast(e.message||\"Could not add to cart\")}for(const c of changes)try{await jfetch(\"/cart/change.js\",{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Accept:\"application/json\"},body:JSON.stringify(c)})}catch{}await cartGet(),hydrateBasket()}catch(e){console.warn(\"CJ cart sync\",e)}CART.busy=!1,setBusy(!1),CART.queued&&(CART.queued=!1,syncCart())}function scheduleSync(){clearTimeout(CART.timer),CART.timer=setTimeout(syncCart,120)}function setBusy(on){const co=document.querySelector(\"#bk .co\");co&&(co.disabled=on,co.textContent=on?\"Updating cart\\u2026\":\"Checkout securely\"),ROOT.classList.toggle(\"cart-busy\",on)}function hydrateBasket(){const cart=CART.cart;if(!cart)return;const svc={};cart.items.forEach(li=>{const pr=li.properties||{};pr._kb_assembly&&(svc[pr._kb_for]=(svc[pr._kb_for]||0)+li.quantity)});const items=[];cart.items.forEach(li=>{const pr=li.properties||{};if(pr._kb_assembly)return;let hit=parseFullSku(li.sku);if(!hit){const sp2=DATA.products.find(p2=>p2.shop&&p2.variants.some(v2=>v2.variantId===li.variant_id));sp2&&(hit={p:sp2,v:sp2.variants.find(v2=>v2.variantId===li.variant_id),st:null})}if(!hit){let ext=byId(\"ext-\"+li.variant_id);ext||(ext={id:\"ext-\"+li.variant_id,family:\"fees\",group:\"fees\",name:li.product_title+(li.variant_title&&li.variant_title!==\"Default Title\"?\" \\xB7 \"+li.variant_title:\"\"),blurb:\"\",glyph:[\"T\"],variants:[{sku:li.sku||\"\",label:\"\",price:li.final_price/100}],from:li.final_price/100,ext:!0},DATA.products.push(ext)),hit={p:ext,v:ext.variants[0],st:null}}const{p,v,st}=hit;li.final_price!=null&&!v.variantId&&priceIn(st,()=>{v.price=li.final_price/100});const assembled=pr.Assembly===\"Ready assembled\"&&!!CJ.assembly,key=v.sku+(needsStyle(p)&&st?st.id:\"\")+(assembled?\"A\":\"\");items.push({key,pid:p.id,sku:li.sku||v.sku,name:(isCab(p)?v.w+\"mm \":\"\")+p.name+(v.label?\" \\xB7 \"+v.label:v.size?\" \"+v.size:\"\"),style:needsStyle(p)?st:null,qty:li.quantity,v,assembled,lineKey:li.key})}),S.basket=items,CART.hydrating=!0;try{_renderBasket()}finally{CART.hydrating=!1}const n=cart.item_count;CJ.realDoc.querySelectorAll(\"[data-cart-count],.cart-count-bubble span[aria-hidden],.cart-count,.header__cart-count,#CartCount,.cart-link__bubble-num\").forEach(e=>{e.textContent=n});try{CJ.realDoc.dispatchEvent(new CustomEvent(\"cart:refresh\",{bubbles:!0})),CJ.realDoc.dispatchEvent(new CustomEvent(\"cart:updated\",{bubbles:!0,detail:{cart}}))}catch{}S.current===\"product\"&&document.querySelector(\".buy\")&&updateProduct()}const _renderBasket=renderBasket;renderBasket=function(){_renderBasket(),CART.hydrating||scheduleSync()};const _basketTotal=basketTotal;basketTotal=function(){return CART.cart&&!CART.busy&&!CART.timer&&CART.cart.items.filter(li=>li.sku&&parseFullSku(li.sku)||li.properties&&li.properties._kb_assembly||DATA.products.some(p=>p.shop&&p.variants.some(v=>v.variantId===li.variant_id))).reduce((a,li)=>a+(li.properties&&li.properties._kb_assembly?0:li.quantity),0)===S.basket.reduce((a,b)=>a+b.qty,0)?CART.cart.total_price/100:_basketTotal()},document.querySelector(\"#bk .co\").onclick=async()=>{(CART.busy||CART.timer)&&(clearTimeout(CART.timer),CART.timer=null,await syncCart()),location.href=CJ.cfg.checkoutUrl||\"/checkout\"};let liveReq=0;const _updateProduct=updateProduct;updateProduct=function(){_updateProduct();const buy=document.querySelector(\".buy\");if(!buy||!S.product)return;const jc0=document.querySelector(\"#view .journey\");jc0&&jc0.replaceWith(journeyEl());const p=byId(S.product),v=S.variant,st=style();if(!p||p.ext)return;const sku=fullSkuOf(p,v,st),req=++liveReq;let stock=buy.querySelector(\".pchips .stock\");stock&&(stock.classList.remove(\"oos\"),stock.textContent=\"Checking stock\\u2026\"),LIVE.bySku[sku]||CJ.galLoading&&CJ.galLoading(!0),liveBySku(sku).then(it=>{if(req!==liveReq)return;CJ.galLoading&&CJ.galLoading(!1);const add=document.getElementById(\"add\"),sb=document.getElementById(\"sb-add\");if(CJ.live=it,!it){stock&&(stock.classList.add(\"oos\"),stock.textContent=p.shop?\"Not available\":\"Not available in \"+st.name),add&&(add.disabled=!0),sb&&(sb.disabled=!0);return}const oos=it.available===!1;stock&&(stock.classList.toggle(\"oos\",oos),stock.textContent=oos?\"Out of stock\":\"In stock\"),add&&(add.disabled=oos),sb&&(sb.disabled=oos),it.price!=null&&Math.abs(it.price-v.price)>.005&&(v.price=it.price,p.from=Math.min(...p.variants.map(x=>x.price)),_updateProduct()),CJ.cfg.mode===\"product\"&&it.handle&&location.pathname!==\"/products/\"+it.handle&&history.replaceState(null,\"\",`/products/${it.handle}${location.search}`),CJ.photos=it.images&&it.images.length?it.images:it.image?[it.image]:[],!CJ.photos.length&&CJ.siblingPhoto&&(CJ.photos=CJ.siblingPhoto(p,st)),addPhotoThumbs(p,v,st)})};function addPhotoThumbs(p,v,st){const th=document.getElementById(\"gthumbs\");if(!th)return;th.querySelectorAll(\"[data-photo]\").forEach(b=>b.remove());const photos=CJ.photos||[];if(!photos.length){S.view===\"photo\"&&(S.view=\"3d\",renderGallery(p,v,st));return}photos.slice(0,12).forEach((src,i)=>{const b=el(`<button type=\"button\" data-v=\"photo${i||\"\"}\" data-photo=\"${i}\"><img src=\"${cjEsc(src)}\" alt=\"\" onerror=\"this.parentNode.remove()\"></button>`);b.onclick=()=>{S.view=\"photo\"+(i||\"\"),S.viewUser=!0,renderGallery(p,v,st)},th.insertBefore(b,th.children[i]||null)}),!S.viewUser&&(S.view===\"3d\"||S.view===\"front\")&&(S.view=\"photo\"),renderGallery(p,v,st)}const _renderGallery=renderGallery;renderGallery=function(p,v,st){if(/^photo/.test(S.view||\"\")){const i=+(S.view.slice(5)||0),photos=CJ.photos||[];if(!photos[i])return S.view=\"3d\",_renderGallery(p,v,st);const g3=document.getElementById(\"g3d\"),gs=document.getElementById(\"gsvg\"),tag=document.getElementById(\"gtag\");document.querySelectorAll(\"#gthumbs button\").forEach(b=>b.classList.toggle(\"on\",b.dataset.v===S.view)),g3&&g3.classList.add(\"hidden\"),gs&&(gs.classList.remove(\"hidden\"),gs.innerHTML=`<img class=\"photo\" src=\"${cjEsc(photos[i])}\" alt=\"${cjEsc(p.name)}\" onerror=\"window.CJ&&CJ.photoFail(this)\">`),tag&&(tag.textContent=needsStyle(p)?st.name:\"\");const H=isCab(p)?unitH(p,v):0,dims=document.getElementById(\"dims\");dims&&(dims.innerHTML=isCab(p)?`<span>W <b>${v.w}</b></span><span>H <b>${H}</b></span><span>D <b>${v.d||(p.family===\"wall\"?300:560)}</b></span><span>mm</span>`:`<b>${cjEsc(v.label||v.size||\"\")}</b>`),T3&&(T3.auto=!1);return}return _renderGallery(p,v,st)},CJ.photoFail=function(img){const i=+((S.view||\"\").slice(5)||0);(CJ.photos||[]).splice(i,1),S.view=\"3d\";const p=byId(S.product);p&&addPhotoThumbs(p,S.variant,style())};const _vProduct=vProduct;vProduct=function(){S.viewUser=!1,_vProduct();const jc=document.querySelector(\"#view .journey\");jc&&jc.replaceWith(journeyEl());const sk=document.getElementById(\"psku\");if(sk){const p=byId(S.product);sk.textContent=\"SKU \"+fullSkuOf(p,S.variant,style())}};const _openSamples=openSamples;openSamples=function(pre){if(!CJ.hasSamples){if(CJ.cfg.samplesUrl){location.href=CJ.cfg.samplesUrl;return}toast(\"Free samples are coming soon\");return}return _openSamples(pre)},CJ.assembly||ROOT.classList.add(\"no-assembly\");const MODE=CJ.cfg.mode||\"journey\",PAGE=CJ.cfg.pageUrl||\"/pages/kitchen-builder\";function hashFor(){const v=S.current;return v===\"units\"?\"#units/\"+(S.family||\"\"):v===\"product\"&&S.product?\"#product/\"+S.product+\"/\"+(S.variant?S.variant.sku:\"\"):v===\"home\"?\"#\":\"#\"+v}function parseHash(){const h=(location.hash||\"\").replace(/^#/,\"\");if(!h)return{view:\"home\"};const[a,b,c]=h.split(\"/\");if(a===\"units\"&&b&&fam(b))return{view:\"units\",family:b};if(a===\"product\"&&b&&byId(b)){const p=byId(b);return{view:\"product\",id:b,variant:p.variants.find(v=>v.sku===c)||null}}return a===\"samples\"?{view:S.current&&S.current!==\"product\"?S.current:\"home\",samples:!0}:[\"style\",\"place\",\"parts\",\"home\",\"plan\",\"builder\"].includes(a)?{view:a,restart:a===\"plan\"}:{view:\"home\"}}const _go=go;let silentNav=!1;go=function(view,payload){if(MODE===\"product\"&&view!==\"product\"&&!silentNav){const h=view===\"units\"?\"#units/\"+(payload&&payload.family||S.family||\"base\"):view===\"home\"?\"\":\"#\"+view;location.href=PAGE+h;return}if(_go(view,payload),MODE===\"journey\"&&!silentNav){const h=hashFor();if(h!==location.hash)try{history.pushState(null,\"\",h)}catch{}}ROOT.scrollIntoView({block:\"start\",behavior:\"instant\"})},window.addEventListener(\"popstate\",()=>{if(MODE!==\"journey\")return;const r=parseHash();silentNav=!0;try{r.samples?openSamples():go(r.view,r)}finally{silentNav=!1}}),CJ.boot=function(){if(MODE===\"product\"){const hit=parseFullSku(CJ.cfg.product&&CJ.cfg.product.sku);if(!hit){console.warn(\"CJ: product SKU not in catalogue\",CJ.cfg.product&&CJ.cfg.product.sku),ROOT.classList.add(\"cj-unmatched\");return}if(hit.st){S.style=hit.st.id;try{localStorage.setItem(\"kb-style\",hit.st.id)}catch{}}CJ.cfg.product.image&&(LIVE.bySku[CJ.cfg.product.sku]={id:CJ.cfg.product.id,handle:CJ.cfg.product.handle,sku:CJ.cfg.product.sku,variantId:CJ.cfg.product.variantId,price:CJ.cfg.product.price,available:CJ.cfg.product.available,image:CJ.cfg.product.image,images:CJ.cfg.product.images||[]}),silentNav=!0;try{go(\"product\",{id:hit.p.id,variant:hit.v})}finally{silentNav=!1}}else{const r=parseHash();silentNav=!0;try{go(r.view,r),r.samples&&setTimeout(openSamples,300)}finally{silentNav=!1}}cartGet().then(hydrateBasket).catch(()=>{})},CJ.state=S,CJ.go=go,CJ.sync=syncCart,CJ.pending=()=>CART.busy||!!CART.timer,(function(){const cfg=CJ.cfg,_rrs=renderRoomStep;renderRoomStep=function(){const W=S.wiz;return W&&typeof W.step==\"number\"&&(W.step>=RZ_STEPS.length&&(W.step=RZ_STEPS.length-1),W.step<0&&(W.step=0)),_rrs()};const bk=document.getElementById(\"bk\");async function openThemeCart(){try{if(CJ.pending&&CJ.pending())try{await syncCart()}catch{}const drawer=CJ.realDoc.querySelector(\"cart-drawer\"),notif=CJ.realDoc.querySelector(\"cart-notification\"),sections=[drawer?\"cart-drawer\":null,\"cart-icon-bubble\",notif?\"cart-notification-product\":null,notif?\"cart-notification-button\":null].filter(Boolean),r=await fetch(`${location.pathname}?sections=${sections.join(\",\")}`,{headers:{Accept:\"application/json\"}}),html=r.ok?await r.json():{};if(html[\"cart-icon-bubble\"]){const host=CJ.realDoc.getElementById(\"cart-icon-bubble\");if(host){const d=new DOMParser().parseFromString(html[\"cart-icon-bubble\"],\"text/html\"),inner=d.querySelector(\".shopify-section\");host.innerHTML=inner?inner.innerHTML:d.body.innerHTML}}if(drawer&&html[\"cart-drawer\"]){const fresh=new DOMParser().parseFromString(html[\"cart-drawer\"],\"text/html\").querySelector(\"cart-drawer\");return fresh&&(drawer.innerHTML=fresh.innerHTML,drawer.classList.remove(\"is-empty\")),typeof drawer.open==\"function\"?drawer.open():drawer.classList.add(\"active\"),!0}}catch{}return!1}CJ.openThemeCart=openThemeCart,bk&&new MutationObserver(()=>{bk.classList.contains(\"open\")&&(bk.classList.remove(\"open\"),openThemeCart().then(ok=>{ok||(location.href=\"/cart\")}))}).observe(bk,{attributes:!0,attributeFilter:[\"class\"]});const bkbtn=document.getElementById(\"bkbtn\");bkbtn&&(bkbtn.style.display=\"none\");const _hydrate=hydrateBasket;hydrateBasket=function(){_hydrate(),fetch(`${location.pathname}?sections=cart-icon-bubble`,{headers:{Accept:\"application/json\"}}).then(r=>r.ok?r.json():null).then(j=>{if(!j||!j[\"cart-icon-bubble\"])return;const host=CJ.realDoc.getElementById(\"cart-icon-bubble\");if(!host)return;const d=new DOMParser().parseFromString(j[\"cart-icon-bubble\"],\"text/html\"),inner=d.querySelector(\".shopify-section\");host.innerHTML=inner?inner.innerHTML:d.body.innerHTML}).catch(()=>{})};const sh=document.getElementById(\"shcart\");sh&&(sh.onclick=async()=>{closeSheet(),CJ.pending()&&await syncCart(),await openThemeCart()||(location.href=\"/cart\")});const IMG={},PH=\"data:image/svg+xml;utf8,\"+encodeURIComponent('<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 400 300\"><rect width=\"400\" height=\"300\" fill=\"#F3F6F8\"/><rect x=\"150\" y=\"70\" width=\"100\" height=\"150\" rx=\"4\" fill=\"#E4ECF0\"/><text x=\"200\" y=\"258\" text-anchor=\"middle\" font-family=\"Urbanist,Arial,sans-serif\" font-size=\"14\" font-weight=\"700\" fill=\"#8593A0\">Photo coming soon</text></svg>'),phImg=p=>`<img src=\"${PH}\" alt=\"${cjEsc(p.name)}\" class=\"cj-photo ph\">`;CJ.placeholderImage=PH;function imgKnown(p,v,st){if(p.family===\"samples\"||p.family===\"fees\")return;const vi=v&&v.image||p.image;if(vi)return vi;if(p.shop)return\"\";const sku=fullSkuOf(p,v,st);if(sku in IMG)return IMG[sku];const live=LIVE.bySku[sku];return live?(IMG[sku]=live.image||\"\",IMG[sku]):null}const _unitPic=unitPic;unitPic=function(p,v,st,opts){const k=imgKnown(p,v,st);return k===void 0?_unitPic(p,v,st,opts):k?`<img src=\"${cjEsc(k)}\" alt=\"${cjEsc(p.name)}\" class=\"cj-photo\" loading=\"lazy\">`:k===\"\"?phImg(p):`<span class=\"cj-img\" data-pid=\"${cjEsc(p.id)}\" data-sku=\"${cjEsc(fullSkuOf(p,v,st))}\" data-w=\"${v&&v.w||\"\"}\" data-h=\"${v&&v.h||\"\"}\" data-doors=\"${v&&v.doors||\"\"}\" data-d=\"${v&&v.d||\"\"}\" data-st=\"${cjEsc((st||style()).id)}\"></span>`};let fillImg=async function(span){const p=byId(span.dataset.pid);if(!p)return;const sku=span.dataset.sku;let it=LIVE.bySku[sku];it||(await liveForPid(p.id),it=LIVE.bySku[sku]),IMG[sku]=it&&it.image||\"\",span.isConnected&&(IMG[sku]?span.outerHTML=`<img src=\"${cjEsc(IMG[sku])}\" alt=\"${cjEsc(p.name)}\" class=\"cj-photo\" loading=\"lazy\">`:span.outerHTML=phImg(p))};new MutationObserver(ms=>{ms.forEach(m=>m.addedNodes.forEach(n=>{n.nodeType===1&&(n.matches&&n.matches(\".cj-img\")&&fillImg(n),n.querySelectorAll&&n.querySelectorAll(\".cj-img\").forEach(fillImg))}))}).observe(ROOT,{childList:!0,subtree:!0});const _go2=go;go=function(view,payload){if(!S.style&&(view===\"units\"||view===\"place\"||view===\"product\")&&(S.style=\"white-matt\"),view===\"product\"&&MODE===\"journey\"&&cfg.productLinks===!0&&payload&&payload.id&&!silentNav){const p=byId(payload.id);if(p&&!p.ext&&p.family!==\"samples\"&&p.family!==\"fees\"){const v=payload.variant||defaultVariant(p);if(p.handle){location.href=\"/products/\"+p.handle;return}const st=payload.style&&DATA.styles.find(s=>s.id===payload.style)||style();toast(\"Opening \"+(isCab(p)?v.w+\"mm \":\"\")+p.name+\"\\u2026\"),liveBySku(fullSkuOf(p,v,st)).then(it=>{it&&it.handle?location.href=\"/products/\"+it.handle:_go2(view,payload)});return}}return _go2(view,payload)};const _apt=addPhotoThumbs;addPhotoThumbs=function(p,v,st){!(CJ.photos||[]).length&&p.family!==\"samples\"&&p.family!==\"fees\"&&(CJ.photos=[PH]),_apt(p,v,st);const th=document.getElementById(\"gthumbs\");if(!th)return;const has=(CJ.photos||[]).length>0;th.querySelectorAll(\"button:not([data-photo])\").forEach(b=>{b.style.display=has?\"none\":\"\"});const g3=document.getElementById(\"g3d\");has&&g3&&g3.classList.add(\"hidden\")};const _vPlace=vPlace;vPlace=function(){_vPlace();const st=style();document.querySelectorAll(\".famrow .fam\").forEach(async b=>{const fid=b.dataset.fam,[pid,w]=FAM_REP[fid]||[],p=pid?byId(pid):DATA.products.find(x=>x.family===fid);if(!p)return;const v=w?defaultVariant(p,w):p.variants[0];let url=v&&v.image||p.image;if(!url&&!p.shop){await liveForPid(p.id);const it=LIVE.bySku[fullSkuOf(p,v,st)];url=it&&it.image}const fic=b.querySelector(\".fic\");fic&&(fic.innerHTML=`<img src=\"${cjEsc(url||PH)}\" alt=\"\" class=\"cj-photo\">`,fic.classList.add(\"photo\"))})};const FAMPROD={};async function fetchJsonPages(url){const items=[];for(let page=1;page<=8;page++){const r=await fetch(url+\"&page=\"+page,{headers:{Accept:\"text/html\"}});if(!r.ok)break;const m=(await r.text()).match(/<script[^>]*data-cj-products[^>]*>([\\s\\S]*?)<\\/script>/);if(!m)break;let j;try{j=JSON.parse(m[1])}catch{break}if(items.push(...j.items||[]),!j.pages||page>=j.pages)break}return items}async function familyProducts(fid,st){const key=fid+\"|\"+st.id;if(FAMPROD[key])return FAMPROD[key];let items=[];try{items=await fetchJsonPages(`/search?section_id=cj-products-json&type=product&q=${encodeURIComponent(`tag:\"kb-family:${fid}\" tag:\"kb-style:${st.id}\"`)}`)}catch{}if(items=items.filter(it=>it.sku&&parseFullSku(it.sku)&&(!it.style||it.style===st.id)),!items.length){const types=DATA.products.filter(p=>p.family===fid&&!p.shop);(await Promise.all(types.map(p=>liveForPid(p.id)))).forEach(map=>Object.values(map).forEach(it=>{const hit=parseFullSku(it.sku);hit&&hit.st&&hit.st.id===st.id&&items.push(it)}))}return items.forEach(it=>{LIVE.bySku[it.sku]=LIVE.bySku[it.sku]||it,IMG[it.sku]=it.image||\"\"}),FAMPROD[key]=items,items}function storeCard(it,p,v,st,fam0){const url=\"/products/\"+it.handle,width=it.width||v&&v.w||\"\",hwd=it.hwd||(isCab(p)?`${unitH(p,v)}mm H \\xD7 ${v.w}mm W \\xD7 ${v.d||(p.family===\"wall\"?300:560)}mm`:v&&(v.size||v.label)||\"\"),finish=[it.finish||st&&st.finish,it.doorStyle||\"Slab\"].filter(Boolean).join(\" \\xB7 \"),colour=it.colour||st&&st.colour,hex=st?st.hex:\"#ccc\",c=el(`<article class=\"pcard\" data-sku=\"${cjEsc(it.sku)}\"><a class=\"pimg\" href=\"${url}\">${it.image?`<img src=\"${cjEsc(it.image)}\" alt=\"${cjEsc(it.title)}\" loading=\"lazy\">`:phImg(p)}</a><div class=\"pbody\"><div class=\"pcat\">${cjEsc(fam0.name)}</div><a class=\"ptitle\" href=\"${url}\">${cjEsc(it.title)}</a><div class=\"pmeta\">${hwd?`<div><i>\\u25AD</i>${cjEsc(hwd)}</div>`:\"\"}${finish?`<div><i>\\u25EB</i>${cjEsc(finish)}</div>`:\"\"}${colour?`<div><span class=\"pdot\" style=\"background:${hex}\"></span>${cjEsc(colour)}</div>`:\"\"}</div><div class=\"pfoot\"><div><div class=\"pprice\">${GBP(it.price)}</div><div class=\"pstock ${it.available?\"\":\"out\"}\">${it.available?\"In stock\":\"Out of stock\"}</div></div><button type=\"button\" class=\"padd\" ${it.available?\"\":\"disabled\"}><svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M3 6h18l-2 12H5z\"/><path d=\"M8 6V4a4 4 0 0 1 8 0v2\"/></svg>Add</button></div></div></article>`);return c.querySelector(\".padd\").onclick=async e=>{e.preventDefault();const b=e.currentTarget;b.disabled=!0,b.textContent=\"Adding\\u2026\";try{addItem(p,v,1,!1,!0),await syncCart(),openSheet(p)}catch(err){toast(err.message||\"Could not add\")}b.disabled=!1,b.innerHTML='<svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M3 6h18l-2 12H5z\"/><path d=\"M8 6V4a4 4 0 0 1 8 0v2\"/></svg>Add'},c}function rangeCard(p,fam0){const v=p.variants[0],url=p.handle?\"/products/\"+p.handle:\"#\",img=v&&v.image||p.image,c=el(`<article class=\"pcard\" data-pid=\"${cjEsc(p.id)}\"><a class=\"pimg\" href=\"${url}\">${img?`<img src=\"${cjEsc(img)}\" alt=\"${cjEsc(p.name)}\" loading=\"lazy\">`:phImg(p)}</a><div class=\"pbody\"><div class=\"pcat\">${cjEsc(fam0.name)}</div><a class=\"ptitle\" href=\"${url}\">${cjEsc(p.name)}</a><div class=\"pmeta\">${p.blurb?`<div>${cjEsc(p.blurb)}</div>`:\"\"}${p.variants.length>1?`<div><i>\\u25EB</i>${p.variants.length} options: ${cjEsc(p.variants.map(x=>x.label).filter(Boolean).join(\", \"))}</div>`:\"\"}</div><div class=\"pfoot\"><div><div class=\"pprice\">${p.variants.length>1?\"<small>from</small> \":\"\"}${GBP(p.from)}</div><div class=\"pstock\">${p.variants.every(x=>x.available===!1)?\"Out of stock\":\"In stock\"}</div></div><button type=\"button\" class=\"padd\">${p.variants.length>1?\"Options\":\"Add\"}</button></div></div></article>`);return c.querySelector(\".padd\").onclick=e=>{e.preventDefault(),openQuick(p)},c}const FAMP_INFLIGHT={},_vUnits0=vUnits;vUnits=function(){const f=fam(S.family)||fam(\"base\");S.family=f.id;const st=style();(!f.groups||!f.groups.length)&&(f.groups=[{id:\"all\",name:f.name,blurb:\"\"}],DATA.products.forEach(p=>{p.family===f.id&&!p.group&&(p.group=\"all\")}));const noStyle=f.id===\"handles\"||f.id===\"worktops\"||f.id===\"sinks\";!noStyle&&!FAMPROD[f.id+\"|\"+st.id]&&(FAMP_INFLIGHT[f.id+\"|\"+st.id]=familyProducts(f.id,st).finally(()=>{delete FAMP_INFLIGHT[f.id+\"|\"+st.id]})),_vUnits0();const ttl=document.getElementById(\"view\").querySelector(\".ttl\");if(ttl&&!noStyle&&S.mode===\"kitchen\"&&!ttl.querySelector(\"[data-chst]\")){const act=ttl.querySelector(\".bact\")||ttl.appendChild(el('<div class=\"bact\"></div>')),b=el('<button type=\"button\" class=\"hbtn ghost\" data-chst>Change colour</button>');b.onclick=openPop,act.prepend(b)}};function typePhoto(p,sku,st){if(IMG[sku])return IMG[sku];const hit=Object.values(LIVE.bySku).find(it=>{if(!it.image)return!1;const h=parseFullSku(it.sku);return h&&h.p.id===p.id&&h.st&&h.st.id===st.id});return hit?hit.image:\"\"}CJ.siblingPhoto=function(p,st){const same=[],any=[];Object.values(LIVE.bySku).forEach(it=>{if(!it.image)return;const h=parseFullSku(it.sku);!h||h.p.id!==p.id||(h.st&&h.st.id===st.id?same:any).push(it)});const pick=same[0]||any[0];return pick?pick.images&&pick.images.length?pick.images:[pick.image]:[]};const _fillImg0=fillImg;fillImg=async function(span){const p=byId(span.dataset.pid);if(!p)return;const st=DATA.styles.find(x=>x.id===span.dataset.st)||style(),key=p.family+\"|\"+st.id;if(FAMP_INFLIGHT[key])try{await FAMP_INFLIGHT[key]}catch{}const sku=span.dataset.sku;let url=typePhoto(p,sku,st);!url&&!FAMPROD[key]&&(await liveForPid(p.id),url=typePhoto(p,sku,st)),span.isConnected&&(span.outerHTML=url?`<img src=\"${cjEsc(url)}\" alt=\"${cjEsc(p.name)}\" class=\"cj-photo\" loading=\"lazy\">`:phImg(p))},window.CJ_BUILD=\"2026-10-28-v3.10\";try{ROOT.dataset.build=window.CJ_BUILD}catch{}const SVG=(d,s=18)=>`<svg width=\"${s}\" height=\"${s}\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">${d}</svg>`,ICON={arrow:SVG('<path d=\"M5 12h14M13 6l6 6-6 6\"/>',14),tick:SVG('<circle cx=\"12\" cy=\"12\" r=\"9\"/><path d=\"M8.5 12.2l2.3 2.3 4.7-4.8\"/>'),clock:SVG('<circle cx=\"12\" cy=\"12\" r=\"9\"/><path d=\"M12 7.5V12l3 1.8\"/>'),truck:SVG('<path d=\"M3 7h11v9H3zM14 10h4l3 3v3h-7z\"/><circle cx=\"7\" cy=\"17.5\" r=\"1.8\"/><circle cx=\"17\" cy=\"17.5\" r=\"1.8\"/>'),calendar:SVG('<rect x=\"3.5\" y=\"5\" width=\"17\" height=\"15\" rx=\"2.5\"/><path d=\"M3.5 10h17M8 3v4M16 3v4M9.5 15l1.8 1.8 3.4-3.6\"/>'),refresh:SVG('<path d=\"M20 12a8 8 0 1 1-2.6-5.9\"/><path d=\"M20 4v5h-5\"/>'),card:SVG('<rect x=\"3\" y=\"6\" width=\"18\" height=\"13\" rx=\"2.5\"/><path d=\"M3 10.5h18M7 15h4\"/>'),ruler:SVG('<path d=\"M3 15.5 15.5 3 21 8.5 8.5 21z\"/><path d=\"M8 13l1.5 1.5M11 10l1.5 1.5M14 7l1.5 1.5\"/>',16),question:SVG('<path d=\"M4 6.5A2.5 2.5 0 0 1 6.5 4h11A2.5 2.5 0 0 1 20 6.5v8a2.5 2.5 0 0 1-2.5 2.5H9l-4 3.5V17\"/><path d=\"M10 9.5a2 2 0 1 1 2.8 1.8c-.6.3-.8.7-.8 1.2M12 15h.01\"/>',20),maximize:SVG('<path d=\"M4 9V4h5M15 4h5v5M20 15v5h-5M9 20H4v-5\"/>'),brush:SVG('<path d=\"M14.5 3.5l6 6-9 9H5.5v-6z\"/><path d=\"M12 6l6 6\"/>',16),star:SVG('<path d=\"M12 3.5l2.6 5.6 6.1.7-4.5 4.2 1.2 6-5.4-3-5.4 3 1.2-6L3.3 9.8l6.1-.7z\"/>',16),minus:SVG('<path d=\"M5 12h14\"/>',18),plus:SVG('<path d=\"M12 5v14M5 12h14\"/>',18)},decorateCard=c=>{const q2=byId(c.dataset.pid);if(!q2)return;c.closest(\".xsell\")&&needsStyle(q2)&&!c.querySelector(\".tagl\")&&c.insertAdjacentHTML(\"afterbegin\",'<span class=\"tagl mf\">Matches your finish</span>'),c.closest(\".look\")&&q2.family===\"handles\"&&c===c.parentNode.firstElementChild&&!c.querySelector(\".tagl\")&&c.insertAdjacentHTML(\"afterbegin\",'<span class=\"tagl\">Bestseller</span>');const cb=c.querySelector(\".cfgb\");cb&&(cb.innerHTML=\"Quick add \"+ICON.arrow)},preloadImgs=(urls,ms)=>Promise.race([Promise.all((urls||[]).filter(Boolean).map(u=>new Promise(r=>{const i=new Image;i.onload=i.onerror=r,i.src=u,i.decode&&i.decode().then(r,r)}))),new Promise(r=>setTimeout(r,ms||700))]);let styleTok=0;const swatchSrc=(st,w)=>{if(!st)return\"\";const u=st.swatch?String(st.swatch):\"/cdn/shop/files/kb-src-sample-\"+st.id+\".png?width=400\";return/[?&]width=\\d+/.test(u)?u.replace(/([?&])width=\\d+/,\"$1width=\"+(w||240)):u+(u.includes(\"?\")?\"&\":\"?\")+\"width=\"+(w||240)},swImg=(st,w)=>`<img class=\"swi\" src=\"${swatchSrc(st,w)}\" alt=\"\" loading=\"lazy\" decoding=\"async\" onerror=\"this.remove()\">`;CJ.swatchSrc=swatchSrc;const setStyle=id=>{const st2=DATA.styles.find(x=>x.id===id);if(!st2)return;const p=S.product&&byId(S.product);document.querySelectorAll(\".pp2.v2 .colbtn\").forEach(b=>b.classList.toggle(\"on\",b.dataset.colour===st2.colour)),document.querySelectorAll(\".pp2.v2 .seg2 button\").forEach(b=>b.classList.toggle(\"on\",b.dataset.fin===st2.finish));const tok=++styleTok;let urls=[];try{urls=p&&CJ.siblingPhoto?CJ.siblingPhoto(p,st2).slice(0,4):[]}catch{}const pp=document.querySelector(\".pp2.v2\");pp&&pp.classList.add(\"swapping\"),preloadImgs(urls,650).then(()=>{tok===styleTok&&(applyStyle(id),requestAnimationFrame(()=>{const pp2=document.querySelector(\".pp2.v2\");pp2&&pp2.classList.remove(\"swapping\")}))})},applyStyle=id=>{const prev=style();S.style=id;try{localStorage.setItem(\"kb-style\",id)}catch{}const pp=document.querySelector(\".pp2.v2\");if(S.current!==\"product\"||!pp){render();return}const st=style(),y=window.scrollY,eb=pp.querySelector(\".buy .eyebrow\");eb&&(eb.innerHTML=eb.innerHTML.split(cjEsc(prev.name)).join(cjEsc(st.name))),pp.querySelectorAll(\".olist li\").forEach(li=>{li.innerHTML=li.innerHTML.replace(prev.finish.toLowerCase()+\" slab in \"+prev.colour,st.finish.toLowerCase()+\" slab in \"+st.colour)});const j=document.querySelector(\"#view .journey\");if(j){const nj=journeyEl();j.replaceWith(nj),addSwitch()}document.querySelectorAll(\"#view .xsell .card\").forEach(c=>{const q2=byId(c.dataset.pid);if(!q2||!needsStyle(q2))return;const n=cardFor(q2,st,{quick:!0});c.replaceWith(n),decorateCard(n)});const sc=pp.querySelector(\".scard button\");sc&&(sc.onclick=()=>openSamples(st.id)),S.viewUser=!1,updateProduct(),requestAnimationFrame(()=>{Math.abs(window.scrollY-y)>2&&window.scrollTo(0,y)})};CJ.setStyle=setStyle;const _goV3=go;go=function(view,payload){if(view===\"style\"&&S.mode!==\"kitchen\"&&(view=\"place\",S.style||(S.style=(DATA.styles.find(x=>x.id===\"white-matt\")||DATA.styles[0]).id),MODE===\"journey\"&&/^#style/.test(location.hash)))try{history.replaceState(null,\"\",\"#place\")}catch{}return _goV3(view,payload)};const _jeV3=journeyEl;journeyEl=function(){let J;if(S.current===\"place\"&&S.mode!==\"kitchen\"){const f0=S.family,p0=S.product;S.family=null,S.product=null;try{J=_jeV3()}finally{S.family=f0,S.product=p0}}else J=_jeV3();const f=S.family&&fam(S.family),parts=f&&[\"handles\",\"worktops\",\"trims\",\"sinks\"].includes(f.id);if(S.mode===\"kitchen\"||parts||![\"place\",\"units\",\"product\"].includes(S.current))return J;const chip=[...J.querySelectorAll(\".jp\")].find(b=>b.querySelector(\".sw\")||/Kitchen style/.test(b.textContent));if(chip){const sep=chip.nextElementSibling;sep&&sep.classList.contains(\"jsep\")&&sep.remove(),chip.remove()}if(f&&S.current!==\"place\"){const first=J.querySelector(\".jp\"),sep0=first&&first.nextElementSibling,w=el('<button type=\"button\" class=\"jp done\"><i><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M4 12.5l5 5L20 7\"/></svg></i><span>Where it goes</span></button>');w.onclick=()=>go(\"place\"),sep0&&sep0.classList.contains(\"jsep\")&&(sep0.after(w),w.after(el('<span class=\"jsep\">\\u203A</span>')))}if(S.current===\"units\"){const st=style(),c=el(`<button type=\"button\" class=\"swst jcol\"><span class=\"sw ${st.finish===\"Gloss\"?\"gloss\":\"\"}\" style=\"background:${st.hex}\"></span>${cjEsc(st.name)}<u>Change colour</u></button>`);c.onclick=openPop,J.appendChild(c)}return J};function colourBar(onChange){const st=style(),cols=[];DATA.styles.forEach(s=>{let c=cols.find(x=>x.colour===s.colour);c||(c={colour:s.colour,hex:s.hex,styles:[]},cols.push(c)),c.styles.push(s)});const fins=[...new Set(DATA.styles.map(s=>s.finish))],B=el(`<div class=\"cbar\"><div class=\"cbl\"><b>Door colour</b><span class=\"cbn\">${cjEsc(st.name)}</span></div><div class=\"cbs\">${cols.map(c=>`<button type=\"button\" class=\"cbc ${c.colour===st.colour?\"on\":\"\"}\" data-colour=\"${cjEsc(c.colour)}\" aria-label=\"${cjEsc(c.colour)}\"><i style=\"background:${c.hex}\">${swImg(c.styles.find(x=>x.finish===st.finish)||c.styles[0],120)}</i><span>${cjEsc(c.colour.replace(\" Grey\",\"\"))}</span></button>`).join(\"\")}</div><div class=\"cbf\">${fins.map(f=>`<button type=\"button\" data-fin=\"${cjEsc(f)}\" class=\"${f===st.finish?\"on\":\"\"}\">${cjEsc(f)}</button>`).join(\"\")}</div></div>`),pick=(colour,finish)=>{const t=DATA.styles.find(s=>s.colour===colour&&s.finish===finish)||DATA.styles.find(s=>s.colour===colour)||style();S.style=t.id;try{localStorage.setItem(\"kb-style\",t.id)}catch{}B.querySelectorAll(\".cbc\").forEach(x=>x.classList.toggle(\"on\",x.dataset.colour===t.colour)),B.querySelectorAll(\"[data-fin]\").forEach(x=>x.classList.toggle(\"on\",x.dataset.fin===t.finish)),B.querySelector(\".cbn\").textContent=t.name;const j=document.querySelector(\"#view .journey\");j&&j.replaceWith(journeyEl()),onChange&&onChange(t)};return B.querySelectorAll(\".cbc\").forEach(b=>b.onclick=()=>pick(b.dataset.colour,style().finish)),B.querySelectorAll(\"[data-fin]\").forEach(b=>b.onclick=()=>pick(style().colour,b.dataset.fin)),B}CJ.colourBar=colourBar;const PLACE_PINS={tall:[10.5,26,\"Tall units\"],appliance:[21,35.5,\"Appliance housings\"],wall:[45,17,\"Wall units\"],sinks:[49,33,\"Sinks & taps\"],base:[44.5,57,\"Base units\"],worktops:[79,44.5,\"Worktops\"],handles:[83.4,22.5,\"Handles\"],trims:[88,76,\"Plinth, cornice & panels\",\"r\"]},PIN_SHORT={tall:\"Tall\",appliance:\"Appliance\",wall:\"Wall\",sinks:\"Sink\",base:\"Base\",worktops:\"Worktop\",handles:\"Handles\",trims:\"Plinth\"},placeSrc=(st,w)=>st&&st.place||\"/cdn/shop/files/kb-place-\"+st.id+\".png?width=\"+(w||1800);CJ.placePhotos=CJ.placePhotos!==!1;const _e3V3=ensure3D;ensure3D=function(host){return host&&host.id===\"place3d\"&&CJ.placePhotos?null:_e3V3(host)};const _vPlaceV3=vPlace;vPlace=function(){_vPlaceV3();const V=document.getElementById(\"view\"),ttl=V.querySelector(\".ttl\");if(ttl&&S.mode!==\"kitchen\"&&!V.querySelector(\".cbar\")){const bar=colourBar(t=>{CJ.placePhotos&&V.querySelector(\".pphoto>img\")?placeSwap(t):CJ.softRender()});ttl.after(bar);const pb=ttl.querySelector(\"#pstyle\");pb&&pb.closest(\".bact\")?.remove()}if(!CJ.placePhotos)return;const stage=V.querySelector(\"#place3d\");if(!stage)return;const st=style();stage.className=\"pphoto\",stage.innerHTML=\"\";const img=el(`<img alt=\"${cjEsc(st.name)} kitchen: tap a part of the kitchen to shop it\" src=\"${placeSrc(st,1800)}\" srcset=\"${placeSrc(st,900)} 900w, ${placeSrc(st,1400)} 1400w, ${placeSrc(st,2e3)} 2000w\" sizes=\"(max-width: 1200px) 100vw, 1160px\" fetchpriority=\"high\">`);img.onerror=()=>{CJ.placePhotos=!1,render()},stage.appendChild(img);const famOk=id=>DATA.families.some(f=>f.id===id);Object.entries(PLACE_PINS).forEach(([fid,[x,y,label,al]])=>{if(!famOk(fid))return;const n=famCount(fid),unit=fid===\"handles\"||fid===\"worktops\"?\"options\":\"types\",pin=el(`<button type=\"button\" class=\"ppin ${al||\"\"}\" data-fam=\"${fid}\" aria-label=\"${cjEsc(label)}: ${n} ${unit}\" style=\"left:${x}%;top:${y}%\"><span class=\"pb\"><b>${cjEsc(label)}</b><small>${n} ${unit}</small></span><span class=\"ps\">${PIN_SHORT[fid]||cjEsc(label)}</span><i class=\"pd\"></i></button>`);pin.onclick=()=>go(\"units\",{family:fid}),pin.onmouseenter=()=>hot(fid),pin.onmouseleave=()=>hot(null),stage.appendChild(pin)}),stage.appendChild(el('<div class=\"phint\">Tap any part of the kitchen</div>'));function hot(fid){V.querySelectorAll(\".fam,.ppin\").forEach(x=>x.classList.toggle(\"hot\",!!fid&&x.dataset.fam===fid))}V.querySelectorAll(\".famrow .fam\").forEach(b=>{b.onmouseenter=()=>hot(b.dataset.fam),b.onmouseleave=()=>hot(null)}),setTimeout(()=>DATA.styles.forEach(s=>{if(s.id!==st.id){const i=new Image;i.src=placeSrc(s,window.innerWidth<700?900:1400)}}),1200)};const _vUnitsV3=vUnits;vUnits=function(){if(_vUnitsV3(),S.mode===\"kitchen\")return;const f=S.family&&fam(S.family);if(!f||[\"handles\",\"worktops\",\"sinks\",\"trims\"].includes(f.id))return;const V=document.getElementById(\"view\"),ttl=V.querySelector(\".ttl\");if(!ttl||V.querySelector(\".cline\"))return;const st=style(),c=el(`<button type=\"button\" class=\"cline\"><span class=\"sw ${st.finish===\"Gloss\"?\"gloss\":\"\"}\" style=\"background:${st.hex}\"></span><span>Door colour <b>${cjEsc(st.name)}</b></span><u>Change</u></button>`);c.onclick=openPop,ttl.after(c)};function placeSwap(t){const V=document.getElementById(\"view\");if(!V)return;S.style=t.id;try{localStorage.setItem(\"kb-style\",t.id)}catch{}const old=V.querySelector(\".pphoto>img\");if(old){const n=old.cloneNode(!1);n.removeAttribute(\"fetchpriority\"),n.alt=t.name+\" kitchen: tap a part of the kitchen to shop it\",n.srcset=`${placeSrc(t,900)} 900w, ${placeSrc(t,1400)} 1400w, ${placeSrc(t,2e3)} 2000w`,n.src=placeSrc(t,1800),n.classList.add(\"nx\"),n.onerror=()=>n.remove();const done=()=>{n.classList.add(\"in\"),setTimeout(()=>{V.querySelectorAll(\".pphoto>img\").forEach(x=>{x!==n&&x.remove()}),n.classList.remove(\"nx\",\"in\")},380)};old.after(n),(n.decode?n.decode():Promise.resolve()).then(done,done)}const bar=V.querySelector(\".cbar\");if(bar){bar.querySelectorAll(\".cbc\").forEach(x=>x.classList.toggle(\"on\",x.dataset.colour===t.colour)),bar.querySelectorAll(\"[data-fin]\").forEach(x=>x.classList.toggle(\"on\",x.dataset.fin===t.finish));const cn=bar.querySelector(\".cbn\");cn&&(cn.textContent=t.name),bar.querySelectorAll(\".cbc\").forEach(x=>{const cs=DATA.styles.find(y=>y.colour===x.dataset.colour&&y.finish===t.finish),im=x.querySelector(\".swi\");im&&cs&&(im.src=swatchSrc(cs,120))})}const j=V.querySelector(\".journey\");j&&j.replaceWith(journeyEl()),V.querySelectorAll(\".famrow .fam\").forEach(async b=>{try{const fid=b.dataset.fam,[pid,w]=FAM_REP[fid]||[],p=pid?byId(pid):DATA.products.find(x=>x.family===fid);if(!p||!needsStyle(p))return;const v=w?defaultVariant(p,w):p.variants[0];let url=null;if(!p.shop){await liveForPid(p.id);const it=LIVE.bySku[fullSkuOf(p,v,t)];url=it&&it.image}const im=b.querySelector(\".fic img\");im&&url&&style().id===t.id&&(im.src=url)}catch{}})}CJ.placeSwap=placeSwap;const _ssV2=styleSnapshot;styleSnapshot=function(st,w,h){return st&&st.image||_ssV2(st,w,h)};const _phV2=parseHash;parseHash=function(){const r=_phV2();return[\"style\",\"place\",\"units\",\"product\",\"parts\"].includes(r.view)?S.mode=\"components\":(r.view===\"builder\"||r.view===\"plan\")&&(S.mode=\"kitchen\"),r},[\"modal\",\"pop\",\"sheet\"].forEach(id=>{const n=document.getElementById(id);n&&new MutationObserver(()=>{const any=[\"modal\",\"pop\",\"sheet\"].some(k=>{const e=document.getElementById(k);return e&&e.classList.contains(\"open\")});CJ.realDoc.documentElement.classList.toggle(\"cj-lock\",any)}).observe(n,{attributes:!0,attributeFilter:[\"class\"]})});function addSwitch(){const j=document.querySelector(\"#view .journey\"),p=S.product&&byId(S.product);if(!j||!p||!needsStyle(p)||j.querySelector(\".swst\")||!document.querySelector(\".pp2.v2\"))return;const b=el(`<button type=\"button\" class=\"swst\">${ICON.brush}Switch door style</button>`);b.onclick=openPop,j.appendChild(b)}const _openPopV2=openPop;openPop=function(){_openPopV2(),!(S.current!==\"product\"||!document.querySelector(\".pp2.v2\"))&&document.querySelectorAll(\"#popgrid button\").forEach((b,i)=>{const s2=DATA.styles[i];s2&&(b.onclick=()=>{document.getElementById(\"pop\").classList.remove(\"open\"),setStyle(s2.id)})})},CJ.switchUnit=function(pid){const q2=byId(pid);if(!q2)return;if(MODE!==\"product\"){go(\"product\",{id:pid});return}const cur=S.variant||{},v=cur.w&&q2.variants.find(x=>x.w===cur.w)?defaultVariant(q2,cur.w):defaultVariant(q2),st=style();toast(\"Opening \"+q2.name+\"\\u2026\"),liveBySku(fullSkuOf(q2,v,st)).then(it=>{location.href=it&&it.handle?\"/products/\"+it.handle:PAGE+\"#product/\"+pid}).catch(()=>{location.href=PAGE+\"#product/\"+pid})};const _openSamplesV2=openSamples;openSamples=function(pre){const hp=document.getElementById(\"hp\");hp&&hp.classList.remove(\"on\"),S.help=!1,_openSamplesV2(pre||S.style||void 0);const m=document.querySelector(\"#modal .mpan\");m&&document.querySelector(\"#modal .smp\")&&m.classList.add(\"smpx\")};function fitFooter(){try{const stg=ROOT.querySelector(\".stage\");stg&&(stg.style.paddingBottom=\"0px\");const want=window.innerWidth<750?32:48,card=CJ.realDoc.querySelector(\".kb-footer__expert-wrap, .kb-footer__expert-card\"),view=ROOT.querySelector(\"#view\");if(!card||!card.offsetHeight||!view){ROOT.style.paddingBottom=want+\"px\";return}const cur=parseFloat(getComputedStyle(ROOT).paddingBottom)||0,gap=card.getBoundingClientRect().top-view.getBoundingClientRect().bottom;ROOT.style.paddingBottom=Math.max(16,Math.round(cur+(want-gap)))+\"px\"}catch{}}CJ.fitFooter=fitFooter;let ffT;try{let lastH=0;new ResizeObserver(()=>{const v=ROOT.querySelector(\"#view\"),h=v?v.offsetHeight:0;Math.abs(h-lastH)<4||(lastH=h,clearTimeout(ffT),ffT=setTimeout(fitFooter,120))}).observe(ROOT.querySelector(\"#view\")||ROOT)}catch{}window.addEventListener(\"resize\",()=>{clearTimeout(ffT),ffT=setTimeout(fitFooter,150)}),window.addEventListener(\"load\",fitFooter);const _renderV2=render;render=function(){_renderV2(),addSwitch(),requestAnimationFrame(fitFooter),setTimeout(fitFooter,600)};const _vProductV2=vProduct;vProduct=function(){_vProductV2();const V=document.getElementById(\"view\"),pp=V.querySelector(\".pp2\");if(!pp)return;const p=byId(S.product),st=style(),cab=isCab(p),buy=pp.querySelector(\".buy\"),gal=pp.querySelector(\".gal\"),styled=needsStyle(p);pp.classList.add(\"v2\"),V.classList.add(\"pdp-v2\");const gm=gal.querySelector(\".gmain\");gm.insertAdjacentHTML(\"beforeend\",`<div class=\"gact\"><button type=\"button\" data-ga=\"zoom\" aria-label=\"Enlarge photo\">${ICON.maximize}</button></div>`),gm.querySelector(\"[data-ga=zoom]\").onclick=()=>{const img=gm.querySelector(\"img\");img&&img.src&&img.src!==PH&&openModal(`<img src=\"${cjEsc(img.src)}\" alt=\"\" style=\"display:block;max-width:100%;max-height:82vh;margin:auto;background:#fff\">`,\"zoom\")};const r1=buy.querySelector(\".ship .row1\");r1&&r1.insertAdjacentHTML(\"afterbegin\",ICON.clock);const rev=buy.querySelector(\".rev\");rev&&rev.remove();const pc=buy.querySelector(\".pricecard\"),chips=pc&&pc.querySelector(\".pchips\"),klOld=chips&&chips.querySelector(\".klarna\");klOld&&(klOld.style.display=\"none\"),pc&&cfg.klarna!==!1&&pc.insertBefore(el('<div class=\"klmsg\"><div class=\"r\"><span class=\"kl\">Klarna.</span><span class=\"t\">Pay in 3 interest-free payments of <b id=\"pkl2\"></b></span><a href=\"https://www.klarna.com/uk/\" target=\"_blank\" rel=\"noopener\">Learn more</a></div><small>18+, UK residents only. Subject to status. T&amp;Cs and late fees apply.</small></div>'),chips);const left=el('<div class=\"lstack\"></div>');gal.appendChild(left);const adv=buy.querySelector(\"#advisor\");adv&&left.appendChild(adv);const tabs=buy.querySelector(\".tabs\");if(tabs){const rb=tabs.querySelector('[data-tab=\"3\"]');rb&&rb.remove();const tp=tabs.querySelectorAll(\".tabp\");tp[3]&&tp[3].remove(),left.appendChild(tabs),tabs.querySelectorAll(\"[data-tab]\").forEach(b=>b.onclick=()=>{tabs.querySelectorAll(\"[data-tab]\").forEach(x=>x.classList.toggle(\"on\",x===b)),tabs.querySelectorAll(\".tabp\").forEach((x,i)=>x.classList.toggle(\"on\",i===+b.dataset.tab))})}const plan=el(`<div class=\"plancard\"><div class=\"eb\">Free planning service</div><h3>You're not doing this alone</h3><p>Real kitchen planners, Mon to Fri, 9 to 5. Send your wall lengths and where the sink and cooker go. We send back a priced layout, free.</p><div class=\"bt\"><button type=\"button\" class=\"pbtn\">Send my measurements ${ICON.arrow}</button>${cfg.quoteUrl?`<a class=\"gbtn\" href=\"${cjEsc(cfg.quoteUrl)}\">Request a callback ${ICON.arrow}</a>`:\"\"}</div></div>`);plan.querySelector(\".pbtn\").onclick=()=>{const hb=document.getElementById(\"helpbtn\");if(hb&&hb.closest(\".help\")){hb.click();const ta=document.querySelector(\"#hp textarea\");ta&&setTimeout(()=>ta.focus(),300)}else cfg.quoteUrl&&(location.href=cfg.quoteUrl)},left.appendChild(plan);const cut=CJ_CUTOFF%12||12,ampm=CJ_CUTOFF>=12?\"pm\":\"am\",drows=[[ICON.truck,\"Free UK delivery over \\xA3\"+FREE,\"Tracked pallet, mainland UK. Choose quarter, half or full pallet at checkout.\"],[ICON.calendar,CJ_DISPATCH<=1?\"Dispatch next working day\":\"Dispatch within \"+CJ_DISPATCH+\" working days\",\"Order before \"+cut+ampm+\" on a working day and it leaves us \"+(CJ_DISPATCH<=1?\"the next day.\":\"within \"+CJ_DISPATCH+\" working days.\")],[ICON.refresh,\"Easy returns\",\"Unopened flatpack units can come back. Encrypted, secure checkout.\"]];if(left.appendChild(el(`<div class=\"dcard\"><h3>Delivered on a pallet, tracked to your door</h3>${drows.map(([i,t,s])=>`<div class=\"dr\"><i>${i}</i><div><b>${t}</b><span>${s}</span></div></div>`).join(\"\")}</div>`)),styled&&(CJ.hasSamples||cfg.samplesUrl)){const cols=DATA.styles.filter((s,i,a)=>a.findIndex(x=>x.colour===s.colour)===i).slice(0,4),sc=el(`<div class=\"scard\"><div class=\"dots\">${cols.map(s=>`<i style=\"background:${s.hex}\"></i>`).join(\"\")}</div><div class=\"tx\"><b>Torn between two colours?</b><span>Free door samples, delivered in 2\\u20133 days.</span></div><button type=\"button\" class=\"gbtn dark\">Order samples ${ICON.arrow}</button></div>`);sc.querySelector(\"button\").onclick=()=>openSamples(st.id),left.appendChild(sc)}const cfgEl=buy.querySelector(\"#cfg\");if(cfgEl.classList.add(\"bcard\"),cfgEl.insertAdjacentHTML(\"afterbegin\",'<div class=\"bhead\"><h3>Build your unit</h3><span></span></div>'),cab){const sect1=cfgEl.querySelectorAll(\".sect\")[0],sub=sect1.querySelector(\".subrows\");let anchor=sect1;[\"rdoors\",\"rdepth\",\"rheight\"].forEach(id=>{const row=sub&&sub.querySelector(\"#\"+id);if(!row)return;const lab=row.querySelector(\".lab b\").textContent;row.querySelector(\".lab\").remove();const s=el(`<div class=\"sect sect-${id}\"><div class=\"sh\"><span class=\"sn\"></span><b>${cjEsc(lab)}</b><span class=\"sub val\" data-val=\"${id}\"></span></div></div>`);s.appendChild(row),anchor.after(s),anchor=s}),sub&&sub.remove();const gapIn=sect1.querySelector(\"#gapin\");if(gapIn){const w=el('<label class=\"gapw\"></label>');gapIn.replaceWith(w),w.innerHTML=ICON.ruler,w.appendChild(gapIn)}const swr=cfgEl.querySelector(\"#swrow\");if(swr){const fin=swr.closest(\".sect\");fin.classList.add(\"sect-fin\"),fin.querySelector(\".sh b\").textContent=\"Colour & finish\";const fl=fin.querySelector(\"#finlab\");fl&&fl.classList.add(\"val\");const colours=[];DATA.styles.forEach(s=>{let c=colours.find(x=>x.colour===s.colour);c||(c={colour:s.colour,hex:s.hex,styles:[]},colours.push(c)),c.styles.push(s)});const cg=el('<div class=\"colgrid v3\"></div>');colours.forEach(c=>{const cs=c.styles.find(x=>x.finish===style().finish)||c.styles[0],b=el(`<button type=\"button\" class=\"colbtn\" data-colour=\"${cjEsc(c.colour)}\" aria-label=\"${cjEsc(c.colour)}\"><span class=\"ci\" style=\"background:${c.hex}\">${swImg(cs,240)}</span><b>${cjEsc(c.colour)}</b><i class=\"tk\">${ICON.tick}</i></button>`);b.onclick=()=>{const cur=style(),t=c.styles.find(s=>s.finish===cur.finish)||c.styles[0];t.id!==cur.id&&setStyle(t.id)},cg.appendChild(b)});const finishes=[...new Set(DATA.styles.map(s=>s.finish))],fr=el('<div class=\"finrow\"><span>Finish</span><div class=\"seg2\"></div></div>');finishes.forEach(f=>{const b=el(`<button type=\"button\" data-fin=\"${cjEsc(f)}\">${cjEsc(f)}</button>`);b.onclick=()=>{const cur=style(),t=DATA.styles.find(s=>s.colour===cur.colour&&s.finish===f)||DATA.styles.find(s=>s.finish===f);t&&t.id!==cur.id&&setStyle(t.id)},fr.querySelector(\".seg2\").appendChild(b)}),swr.style.display=\"none\",swr.before(cg),swr.before(fr);const srow=fin.querySelector(\".srow\");if(srow){srow.classList.add(\"smpbar\"),srow.insertAdjacentHTML(\"afterbegin\",'<span class=\"same\">Free, delivered in 2\\u20133 days</span>');const sb=srow.querySelector(\"#smp2\");if(sb){const dots=colours.slice(0,4).map(c=>`<i style=\"background:${c.hex}\">${swImg(c.styles[0],80)}</i>`).join(\"\");sb.innerHTML=`<span class=\"dots\">${dots}</span>Order free samples`,!CJ.hasSamples&&!cfg.samplesUrl&&sb.remove()}const al=srow.querySelector(\"#allst\");al&&(al.textContent=\"Compare all \"+DATA.styles.length)}}const asm=cfgEl.querySelector(\"#asm\");if(asm){const as=asm.closest(\".sect\");as.classList.add(\"sect-asm\");const ss=as.querySelector(\".sh .sub\");ss&&(ss.classList.add(\"val\"),ss.textContent=\"\"),as.appendChild(el('<p class=\"note2\">Doors, hinges and legs are included either way.</p>'))}}const comp=buy.querySelector(\"#complete\");if(comp){comp.classList.add(\"ccard\");const cs=comp.querySelector(\".sh .sub\");cs&&(cs.textContent=\"Tick to add them to the same order. One delivery, one checkout.\")}const cta=buy.querySelector(\".ctawrap\");if(cta){cta.classList.add(\"buycard\"),cta.insertAdjacentHTML(\"afterbegin\",'<div class=\"yu\"><span>Your unit</span><b id=\"yusum\"></b></div>');const qm=cta.querySelector(\"#qm\"),qp=cta.querySelector(\"#qp\");qm&&(qm.innerHTML=ICON.minus),qp&&(qp.innerHTML=ICON.plus);const kb=buy.querySelector(\".kbox\");kb&&(kb.style.display=\"none\");const dlv=buy.querySelector(\"#dlv\");if(dlv){const t=dlv.querySelector(\".t\");t&&t.insertAdjacentHTML(\"afterbegin\",ICON.truck),cta.appendChild(dlv)}}buy.querySelectorAll(\".trust div\").forEach(d=>d.insertAdjacentHTML(\"afterbegin\",ICON.tick));const seeAll=(host,label,fid)=>{const h=host.querySelector(\"h2\");if(!h)return;const a=el(`<a href=\"#\" class=\"seeall\">${label} ${ICON.arrow}</a>`);a.onclick=e=>{e.preventDefault(),go(\"units\",{family:fid})};const hd=el('<div class=\"xhead\"></div>');h.before(hd),hd.appendChild(h);const pEl=host.querySelector(\"p\");pEl&&hd.appendChild(pEl);const w=el('<div class=\"xtop\"></div>');hd.before(w),w.appendChild(hd),w.appendChild(a)},xs=V.querySelector(\".xsell\");xs&&seeAll(xs,\"See all\",\"trims\");const lk=V.querySelector(\".look\");lk&&seeAll(lk,\"See all\",\"handles\"),V.querySelectorAll(\".xsell .card, .look .card\").forEach(decorateCard),updateProduct();const addB=buy.querySelector(\"#add\"),sbar=document.getElementById(\"sbar\");addB&&sbar&&(S.io&&S.io.disconnect(),S.io=new IntersectionObserver(es=>{const show=!es[0].isIntersecting;sbar.classList.toggle(\"show\",show),document.body.classList.toggle(\"sb\",show)},{threshold:0}),S.io.observe(addB),sbar.classList.add(\"v2\"))};const _upV2=updateProduct;updateProduct=function(){_upV2();const pp=document.querySelector(\".pp2.v2\");if(!pp)return;const p=byId(S.product),v=S.variant,st=style(),cab=isCab(p),buy=pp.querySelector(\".buy\");if(!p||!v||!buy)return;const q2=s=>buy.querySelector(s),pk=q2(\"#pkl2\");if(pk&&(pk.textContent=GBP(unitPrice(p,v,S.assembled)*S.qty/3)),cab){const wl=q2(\"#wlab\");wl&&(wl.textContent=v.w+\"mm\",wl.classList.add(\"val\"));const DOORS={Single:\"Single door\",Double:\"Double doors\"},dl=x=>DOORS[x]||x,DEPTH=x=>x===\"460mm deep\"?\"460mm shallow\":x===\"300mm deep\"?\"300mm slim\":x;buy.querySelectorAll(\"#sdoors button\").forEach(b=>{const t=b.firstChild;t&&t.nodeType===3&&(t.textContent=dl(t.textContent.trim()))});const sd=q2(\"#sdepth\");sd&&(sd.querySelectorAll(\"button\").forEach(b=>{const t=b.firstChild;t&&t.nodeType===3&&(t.textContent=DEPTH(t.textContent.trim()))}),[...sd.children].sort((a,b)=>(parseInt(b.textContent)||0)-(parseInt(a.textContent)||0)).forEach(b=>sd.appendChild(b))),buy.querySelectorAll(\"#asm button .pr\").forEach(x=>{x.textContent=x.textContent.replace(/ each$/,\"\")});const dv=q2(\"[data-val=rdoors]\");dv&&(dv.textContent=dl(v.doors||\"\"));const dd=q2(\"[data-val=rdepth]\");dd&&(dd.textContent=v.d?DEPTH(v.d+\"mm deep\"):p.family===\"wall\"?\"Standard\":\"560mm standard\");const dh=q2(\"[data-val=rheight]\");dh&&(dh.textContent=v.h?v.h+\"mm high\":p.family===\"wall\"?\"720mm\":\"Standard\"),[\"rdoors\",\"rdepth\",\"rheight\"].forEach(id=>{const row=q2(\"#\"+id),s=q2(\".sect-\"+id);row&&s&&s.classList.toggle(\"hidden\",row.classList.contains(\"hidden\"))});const fl=q2(\"#finlab\");fl&&(fl.textContent=st.name),buy.querySelectorAll(\".colbtn\").forEach(b=>{b.classList.toggle(\"on\",b.dataset.colour===st.colour);const cs=DATA.styles.find(x=>x.colour===b.dataset.colour&&x.finish===st.finish),im=b.querySelector(\".swi\"),want=cs&&swatchSrc(cs,240);im&&want&&im.getAttribute(\"src\")!==want&&im.setAttribute(\"src\",want)}),buy.querySelectorAll(\".seg2 button\").forEach(b=>b.classList.toggle(\"on\",b.dataset.fin===st.finish));const asm=q2(\"#asm\");if(asm){const ss=asm.closest(\".sect\").querySelector(\".sh .sub\");ss&&(ss.textContent=S.assembled?\"Ready assembled\":\"Flatpack\"),asm.querySelectorAll(\"button\").forEach((b,i)=>{if(b.querySelector(\".rad\"))return;b.insertAdjacentHTML(\"afterbegin\",'<i class=\"rad\"></i>');const t=b.querySelector(\"b\");t&&t.insertAdjacentHTML(\"afterend\",`<small>${i===0?\"Easy self-assembly, H\\xE4fele Rafix\":\"Built and checked by us\"}</small>`)})}}let n=0;buy.querySelectorAll(\"#cfg .sect\").forEach(s=>{if(s.classList.contains(\"hidden\"))return;n++;const sn=s.querySelector(\".sn\");sn&&(sn.textContent=n)});const bh=q2(\".bhead span\");bh&&(bh.textContent=n+\" quick choice\"+(n===1?\"\":\"s\")+\" \\xB7 price updates live\");const yu=q2(\"#yusum\");if(yu){const bits=cab?[v.w+\"mm\",{Single:\"Single door\",Double:\"Double doors\"}[v.doors]||v.doors,(v.d||(p.family===\"wall\"?300:560))+\"mm deep\",st.name,S.assembled?\"Ready assembled\":\"Flatpack\"]:[p.name,v.label||v.size,needsStyle(p)?st.name:null];yu.textContent=bits.filter(Boolean).join(\" \\xB7 \")}const ov=document.querySelector(\".pp2.v2 .tabs .tabp\");if(ov&&cab){let kd=ov.querySelector(\".kdims\");kd||(kd=el('<div class=\"kdims\"></div>'),ov.appendChild(kd));const H=unitH(p,v);kd.innerHTML=`<div><span>Width</span><b>${v.w}mm</b></div><div><span>Height</span><b>${H}mm${p.family===\"base\"?\" + legs\":\"\"}</b></div><div><span>Depth</span><b>${v.d||(p.family===\"wall\"?300:560)}mm</b></div><div><span>Carcass</span><b>18mm</b></div>`}const advSub=document.querySelector(\".pp2.v2 #advisor .adv2 .q span\");advSub&&(advSub.textContent=\"Tell us what's going in this spot and we'll check it in 10 seconds.\");const k3=q2(\"#k3\");if(k3){const val=k3.textContent.replace(/^3 \u00D7 /,\"\");buy.querySelectorAll(\".k3v\").forEach(x=>x.textContent=val)}const add=q2(\"#add\");add&&!add.querySelector(\"svg\")&&add.insertAdjacentHTML(\"beforeend\",ICON.arrow);const sbn=document.getElementById(\"sb-nm\");sbn&&yu&&(sbn.innerHTML=`${cjEsc(q2(\"#pn\").textContent)}<small>${cjEsc(yu.textContent)}${S.qty>1?\" \\xB7 qty \"+S.qty:\"\"}</small>`),addSwitch();const sba=document.getElementById(\"sb-add\");sba&&!sba.querySelector(\"svg\")&&(sba.textContent=\"Add to cart\",sba.insertAdjacentHTML(\"beforeend\",ICON.arrow))};const isPhone=()=>window.innerWidth<750;let helpOpen=!1;const CHK31='<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M4 12.5l5 5L20 7\"/></svg>';function pzPolish(){const V=document.getElementById(\"view\");if(!V||S.current!==\"plan\")return;const pz=V.querySelector(\".pz\"),prog=document.getElementById(\"pzprog\");if(pz&&prog&&prog.parentElement!==V&&pz.before(prog),prog){prog.querySelectorAll(\".pzs\").forEach(b=>{const t=((b.querySelector(\"span\")||{}).textContent||\"\").trim();b.title=t,b.setAttribute(\"aria-label\",\"Step \"+((b.querySelector(\"i\")||{}).textContent||\"\")+\": \"+t),b.classList.contains(\"on\")?b.setAttribute(\"aria-current\",\"step\"):b.removeAttribute(\"aria-current\")});const on=prog.querySelector(\".pzs.on\");on&&prog.scrollWidth>prog.clientWidth+2&&(prog.scrollLeft=Math.max(0,on.offsetLeft-(prog.clientWidth-on.offsetWidth)/2))}const help=document.getElementById(\"pzhelp\");if(help){help.classList.toggle(\"cl\",isPhone()&&!helpOpen);const h=help.querySelector(\".helph\");if(h&&!h.dataset.tg){h.dataset.tg=\"1\",h.setAttribute(\"role\",\"button\"),h.tabIndex=0;const tg=()=>{isPhone()&&(helpOpen=help.classList.contains(\"cl\"),help.classList.toggle(\"cl\",!helpOpen))};h.onclick=tg,h.onkeydown=e=>{(e.key===\"Enter\"||e.key===\" \")&&(e.preventDefault(),tg())}}}const nav=document.querySelector(\"#pzcard .pznav\"),hb=CJ.realDoc.querySelector(\".help #helpbtn\");if(nav&&hb&&!nav.querySelector(\".pzask\")){const q2=el('<button type=\"button\" class=\"pzask\" aria-label=\"Need a hand? Talk to a kitchen planner\">?</button>');q2.onclick=()=>hb.click();const go2=nav.querySelector(\".pzgo\");go2?go2.before(q2):nav.appendChild(q2)}const card=document.getElementById(\"pzcard\");if(card&&S.wiz&&S.wiz.step===0&&!card.querySelector(\".pzfree\")){const h=card.querySelector(\".pzh\");h&&h.appendChild(el('<div class=\"pzfree\"><span>7 quick steps</span><span>No sign-up</span><span>Change anything later</span></div>'))}}const _vPlanV31=vPlan;vPlan=function(){const r=_vPlanV31.apply(this,arguments);return pzPolish(),[\"pzprog\",\"pzhelp\",\"pzcard\"].forEach(id=>{const n=document.getElementById(id);n&&!n._cjmo&&(n._cjmo=new MutationObserver(()=>requestAnimationFrame(pzPolish)),n._cjmo.observe(n,{childList:!0}))}),r};function bdPlace(){const st=document.getElementById(\"bd3d\"),pr=document.getElementById(\"bdprice\");if(!(!st||!pr)&&(isPhone()?pr.parentElement===st&&st.after(pr):pr.parentElement!==st&&st.appendChild(pr),!document.querySelector(\"#view .bdtrust\"))){const items=[\"Free UK delivery over \\xA3\"+CJ_FREE,CJ_DISPATCH<=1?\"Dispatched next working day\":\"Dispatched within \"+CJ_DISPATCH*24+\" hours\",\"UK manufactured, 18mm carcasses\",\"Price match & beat\"],t=el(`<div class=\"bdtrust\">${items.map(x=>`<span>${CHK31}${cjEsc(x)}</span>`).join(\"\")}</div>`),list=document.getElementById(\"bdlist\");list?list.before(t):(st.parentElement||st).appendChild(t)}}const _vBuilderV31=vBuilder;vBuilder=function(){const r=_vBuilderV31.apply(this,arguments);return bdPlace(),r};let bpT;window.addEventListener(\"resize\",()=>{clearTimeout(bpT),bpT=setTimeout(()=>{S.current===\"builder\"&&bdPlace(),S.current===\"plan\"&&pzPolish()},150)});const _renderV31=render;render=function(){_renderV31(),ROOT.classList.toggle(\"on-plan\",S.current===\"plan\"),ROOT.classList.toggle(\"on-bd\",S.current===\"builder\")};const _camToV31=camTo;camTo=function(t,kind,K,wi,instant){const r=_camToV31.apply(this,arguments);try{if([\"reveal\",\"room\",\"high\"].includes(kind)&&t&&t.host){const w=t.host.clientWidth,h=t.host.clientHeight,asp=h?w/h:1.6;if(asp<1.3){const f=Math.min(1.7,1.3/asp);t.anim&&t.anim.to?t.anim.to.r*=f:t.cam&&(t.cam.r*=f,t.upd&&t.upd(),t.dirty=!0)}}}catch{}return r};function prettySpecs(){const sp2=document.getElementById(\"specs\");if(!sp2)return;const tb=sp2.querySelector(\"table\");if(!tb)return;const p=S.product&&byId(S.product),st=style(),rows=[...tb.querySelectorAll(\"tr\")].map(tr=>[...tr.children].map(td=>td.textContent.trim())).filter(r=>r.length>=2),dims=[],rest=[];if(rows.forEach(([l,v])=>{/^Width/.test(l)?dims[0]=[\"Width\",v]:/^Height/.test(l)?dims[1]=[\"Height\",v]:/^Depth/.test(l)?dims[2]=[\"Depth\",v]:/^Doors$/.test(l)&&/as pictured/i.test(v)||rest.push([l,v])}),p&&needsStyle(p)&&!rest.some(r=>/^(Finish|Door style)$/.test(r[0]))&&rest.unshift([\"Door style\",st.name+\" slab\"]),p&&isCab(p)){const floor=[\"base\",\"tall\",\"appliance\"].includes(p.family);rest.push([\"Included\",floor?\"Doors, hinges and legs\":\"Doors and hinges\"]),CJ.hingedDoors&&CJ.hingedDoors(p)&&rest.push([\"Door hanging\",\"Pre-drilled both sides, hang left or right\"])}const skuT=((document.getElementById(\"psku\")||{}).textContent||\"\").replace(/^SKU\\s*/i,\"\").trim();skuT&&rest.push([\"SKU\",skuT]);const dimHTML=dims.filter(Boolean).length===3?`<div class=\"sdims\">${dims.map(([l,v])=>{const m=String(v).split(\"+\");return`<div><small>${l}</small><b>${cjEsc(m[0].trim())}</b>${m[1]?`<em>+ ${cjEsc(m[1].trim())}</em>`:\"\"}</div>`}).join(\"\")}</div>`:\"\";sp2.innerHTML=dimHTML+`<dl class=\"slist\">${rest.map(([l,v])=>`<div><dt>${cjEsc(l)}</dt><dd>${cjEsc(v)}</dd></div>`).join(\"\")}</dl>`,sp2.classList.add(\"spec2\")}const _upV32=updateProduct;updateProduct=function(){const r=_upV32.apply(this,arguments);try{prettySpecs()}catch{}return r};const _renderV32=render;render=function(){const V=document.getElementById(\"view\");return V&&V.classList.toggle(\"noanim\",!!CJ._soft),_renderV32.apply(this,arguments)},CJ.softRender=function(){const y=window.scrollY;CJ._soft=!0;try{render()}finally{CJ._soft=!1}requestAnimationFrame(()=>{Math.abs(window.scrollY-y)>2&&window.scrollTo(0,y)})};const _openPopV32=openPop;openPop=function(){_openPopV32();const g=document.getElementById(\"popgrid\");g&&(g.classList.add(\"v3\"),g.querySelectorAll(\"button\").forEach((b,i)=>{const s2=DATA.styles[i];if(!s2)return;const sw=b.querySelector(\".sw\");sw&&!sw.querySelector(\".swi\")&&(sw.style.background=s2.hex,sw.innerHTML=swImg(s2,320)),s2.tag&&!b.querySelector(\".ptag\")&&b.insertAdjacentHTML(\"afterbegin\",`<span class=\"ptag\">${cjEsc(s2.tag)}</span>`),(S.current!==\"product\"||!document.querySelector(\".pp2.v2\"))&&(b.onclick=()=>{S.style=s2.id;try{localStorage.setItem(\"kb-style\",s2.id)}catch{}if(document.getElementById(\"pop\").classList.remove(\"open\"),!S.current||S.current===\"style\"){go(\"place\");return}if(S.current===\"place\"&&CJ.placeSwap){CJ.placeSwap(s2);return}CJ.softRender()})}))};const HOME_ART={components:\"/cdn/shop/files/kb-home-components.png\",presets:\"/cdn/shop/files/kb-preset-harewood-graphite-matt.png\",parts:\"/cdn/shop/files/kb-home-parts.png\"},_e3V32=ensure3D;ensure3D=function(host){return host&&host.id===\"home3d\"&&CJ.placePhotos?null:_e3V32(host)};let heroTimer=null;const _vHomeV32=vHome;vHome=function(){_vHomeV32();const V=document.getElementById(\"view\");if(!V)return;clearInterval(heroTimer);const modes=[...V.querySelectorAll(\".modes .mode\")],keys=[\"components\",\"kitchen\",\"presets\",\"parts\"];modes.forEach((m,i)=>{const k=keys[i],art=m.querySelector(\".art\");art&&HOME_ART[k]&&(art.innerHTML=`<img src=\"${HOME_ART[k]}?width=900\" srcset=\"${HOME_ART[k]}?width=600 600w, ${HOME_ART[k]}?width=900 900w, ${HOME_ART[k]}?width=1300 1300w\" sizes=\"(max-width:900px) 100vw, 400px\" alt=\"\" loading=\"lazy\" decoding=\"async\" onerror=\"this.remove()\">`,art.classList.add(\"photo\"))});const host=V.querySelector(\"#home3d\");if(!host||!CJ.placePhotos)return;const order=[...DATA.styles],startId=S.style&&DATA.styles.some(x=>x.id===S.style)?S.style:\"cashmere-matt\";for(;order[0]&&order[0].id!==startId&&order.length;)order.push(order.shift());host.classList.add(\"hphoto\"),host.innerHTML=\"\";const slides=order.map((st,i)=>{const im=CJ.realDoc.createElement(\"img\");return im.alt=st.name+\" kitchen\",im.dataset.src=placeSrc(st,window.innerWidth<700?900:1400),i===0&&(im.setAttribute(\"fetchpriority\",\"high\"),im.classList.add(\"on\")),im.onerror=()=>{im.remove()},host.appendChild(im),im}),tag=el('<button type=\"button\" class=\"herotag hcap\"><span class=\"sw\"></span><b></b><u>Shop this colour</u></button>');host.appendChild(tag);const dots=el('<div class=\"hdots\" role=\"tablist\" aria-label=\"Door colours\"></div>');order.forEach((st,i)=>{const d=el(`<button type=\"button\" role=\"tab\" aria-label=\"${cjEsc(st.name)}\" style=\"background:${st.hex}\"></button>`);d.onclick=()=>{show(i),restart()},dots.appendChild(d)}),host.appendChild(dots);let cur=0;function show(i){const im=slides[i];if(!im)return;im.dataset.src&&(im.src=im.dataset.src,delete im.dataset.src),slides.forEach((s,j)=>s.classList.toggle(\"on\",j===i)),[...dots.children].forEach((d,j)=>d.classList.toggle(\"on\",j===i)),cur=i;const st=order[i];tag.querySelector(\".sw\").style.background=st.hex,tag.querySelector(\"b\").textContent=st.name;const nx=slides[(i+1)%slides.length];nx&&nx.dataset.src&&(nx.src=nx.dataset.src,delete nx.dataset.src)}tag.onclick=()=>{S.style=order[cur].id;try{localStorage.setItem(\"kb-style\",S.style)}catch{}S.mode=\"components\",go(\"place\")};const reduce=window.matchMedia&&window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;function restart(){clearInterval(heroTimer),!reduce&&(heroTimer=setInterval(()=>{if(!document.body.contains(host)){clearInterval(heroTimer);return}!window.matchMedia(\"(hover: none)\").matches&&host.matches(\":hover\")||show((cur+1)%slides.length)},4200))}let hx=null,hy=null;host.addEventListener(\"touchstart\",e=>{const t=e.touches[0];hx=t.clientX,hy=t.clientY},{passive:!0}),host.addEventListener(\"touchend\",e=>{if(hx===null)return;const t=e.changedTouches[0],dx=t.clientX-hx,dy=t.clientY-hy;hx=null,Math.abs(dx)>40&&Math.abs(dx)>Math.abs(dy)*1.3&&(show((cur+(dx<0?1:-1)+slides.length)%slides.length),restart())},{passive:!0}),show(0),restart()};const DF='font-family=\"Urbanist,Inter,system-ui,sans-serif\"',dimH=(x1,x2,y,label,ly)=>`<path d=\"M${x1} ${y}H${x2}\" stroke=\"#00BBEA\" stroke-width=\"2\"/><path d=\"M${x1} ${y-6}v12M${x2} ${y-6}v12\" stroke=\"#00BBEA\" stroke-width=\"2\" stroke-linecap=\"round\"/><text x=\"${(x1+x2)/2}\" y=\"${ly}\" text-anchor=\"middle\" font-size=\"12\" font-weight=\"800\" fill=\"#0089B0\" ${DF}>${label}</text>`,dimV=(x,y1,y2,label,lx)=>`<path d=\"M${x} ${y1}V${y2}\" stroke=\"#00BBEA\" stroke-width=\"2\"/><path d=\"M${x-6} ${y1}h12M${x-6} ${y2}h12\" stroke=\"#00BBEA\" stroke-width=\"2\" stroke-linecap=\"round\"/><text x=\"${lx}\" y=\"${(y1+y2)/2+4}\" font-size=\"12\" font-weight=\"800\" fill=\"#0089B0\" ${DF}>${label}</text>`,_hdV32=helpDiagram;helpDiagram=function(d){if(d===\"window\")return`<svg viewBox=\"0 0 300 176\" role=\"img\" aria-label=\"Measuring a window: from left, width and sill height\"><rect x=\"24\" y=\"34\" width=\"240\" height=\"104\" fill=\"#F7FAFC\" stroke=\"#0A1116\" stroke-width=\"2\"/><path d=\"M24 138H264\" stroke=\"#0A1116\" stroke-width=\"3\"/><rect x=\"132\" y=\"48\" width=\"84\" height=\"46\" fill=\"#BFEFFC\" stroke=\"#0A1116\" stroke-width=\"2\"/><path d=\"M174 48v46M132 71h84\" stroke=\"#0A1116\" stroke-width=\"1.2\" opacity=\".45\"/><path d=\"M132 98V150M132 30V44M216 30V44\" stroke=\"#00BBEA\" stroke-width=\"1\" stroke-dasharray=\"3 3\"/>${dimH(132,216,24,\"width\",16)}${dimV(230,94,138,\"sill\",240)}<path d=\"M216 94h22\" stroke=\"#00BBEA\" stroke-width=\"1\" stroke-dasharray=\"3 3\"/>${dimH(24,132,154,\"from left\",172)}</svg>`;if(d===\"pipes\")return`<svg viewBox=\"0 0 300 170\" role=\"img\" aria-label=\"Measuring to the centre of the waste pipe and gas point\"><rect x=\"24\" y=\"20\" width=\"252\" height=\"110\" fill=\"#F7FAFC\" stroke=\"#0A1116\" stroke-width=\"2\"/><path d=\"M24 130H276\" stroke=\"#0A1116\" stroke-width=\"3\"/><rect x=\"34\" y=\"84\" width=\"232\" height=\"16\" rx=\"2\" fill=\"#E2E9EE\" stroke=\"#C7D1D9\"/><circle cx=\"104\" cy=\"114\" r=\"9\" fill=\"#00BBEA\"/><text x=\"104\" y=\"118\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"800\" fill=\"#fff\" ${DF}>S</text><circle cx=\"214\" cy=\"114\" r=\"9\" fill=\"#0A1116\"/><text x=\"214\" y=\"118\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"800\" fill=\"#fff\" ${DF}>H</text><path d=\"M104 104V146M214 104V146\" stroke=\"#00BBEA\" stroke-width=\"1\" stroke-dasharray=\"3 3\"/>${dimH(24,104,146,\"to sink centre\",164)}<path d=\"M24 60H214\" stroke=\"#0A1116\" stroke-width=\"1.5\" opacity=\".0\"/>${dimH(24,214,58,\"to hob centre\",50)}<path d=\"M214 64V104\" stroke=\"#0A1116\" stroke-width=\"1\" stroke-dasharray=\"3 3\" opacity=\".5\"/></svg>`;if(d===\"style\"){const g=DATA.styles.find(s=>s.id===\"cashmere-matt\")||DATA.styles[0];return`<div class=\"hdsw\">${[[DATA.styles.find(s=>s.id===\"cashmere-matt\")||DATA.styles[1],\"Matt \\xB7 hides marks\"]].map(([s2,l])=>`<figure><span style=\"background:${s2.hex}\">${swImg(s2,320)}</span><figcaption>${l}</figcaption></figure>`).join(\"\")}</div>`}return _hdV32(d)},roomDiagram=function(){const L=`font-size=\"14\" font-weight=\"900\" fill=\"#0A1116\" ${DF}`;return`<svg viewBox=\"0 0 300 190\" role=\"img\" aria-label=\"Room plan: wall A ahead, B left, C right, D behind you\"><rect x=\"70\" y=\"30\" width=\"160\" height=\"120\" fill=\"#F7FAFC\" stroke=\"#0A1116\" stroke-width=\"3\"/><rect x=\"132\" y=\"146\" width=\"36\" height=\"8\" fill=\"#FFB3C7\"/><text x=\"150\" y=\"22\" text-anchor=\"middle\" ${L}>A</text><text x=\"56\" y=\"95\" text-anchor=\"middle\" ${L}>B</text><text x=\"244\" y=\"95\" text-anchor=\"middle\" ${L}>C</text><text x=\"150\" y=\"176\" text-anchor=\"middle\" ${L}>D</text>${dimH(78,222,46,\"width (A and D)\",64)}<path d=\"M150 136V100\" stroke=\"#0A1116\" stroke-width=\"2.5\" stroke-linecap=\"round\"/><path d=\"M143 108l7-8 7 8\" stroke=\"#0A1116\" stroke-width=\"2.5\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><circle cx=\"150\" cy=\"138\" r=\"7\" fill=\"#00BBEA\"/><text x=\"138\" y=\"142\" text-anchor=\"end\" font-size=\"11\" font-weight=\"700\" fill=\"#4A5560\" ${DF}>you</text><path d=\"M220 58V142\" stroke=\"#00BBEA\" stroke-width=\"2\"/><path d=\"M214 58h12M214 142h12\" stroke=\"#00BBEA\" stroke-width=\"2\" stroke-linecap=\"round\"/><text x=\"212\" y=\"96\" text-anchor=\"end\" font-size=\"12\" font-weight=\"800\" fill=\"#0089B0\" ${DF}>depth</text><text x=\"212\" y=\"110\" text-anchor=\"end\" font-size=\"10\" font-weight=\"700\" fill=\"#0089B0\" ${DF}>(B and C)</text></svg>`};const HLOOK={bar160:[\"bar\",160],bar320:[\"bar\",320],tbar:[\"bar\",128],knob:[\"knob\",30],cup:[\"cup\",96]},HFIN=[[\"stainless\",\"#C9CDD2\",1,.3],[\"black\",\"#24262A\",.35,.5],[\"brass\",\"#B08D57\",1,.32]],HMAT={};function handleMat(i){const f=HFIN[i]||HFIN[0];return HMAT[i]||(HMAT[i]=new THREE.MeshPhysicalMaterial({color:new THREE.Color(f[1]),metalness:f[2],roughness:f[3],clearcoat:i===1?.3:0,envMapIntensity:1.2})),HMAT[i]}function curHandle(){if(![\"plan\",\"builder\",\"preset\"].includes(S.current))return null;const h=S.current===\"preset\"&&S.preset&&(S.preset.handle||{pid:\"bar160\",sku:null})||S.current===\"plan\"&&S.wiz&&S.wiz.handle||S.kit&&S.kit.choices&&S.kit.choices.handle||S.wiz&&S.wiz.handle;if(!h||!h.pid)return null;const p=byId(h.pid);if(!p)return null;const vi=Math.max(0,p.variants.findIndex(v2=>v2.sku===h.sku)),v=p.variants[vi]||p.variants[0],lab=String(v&&(v.label||v.title)||\"\").toLowerCase(),fi=/black/.test(lab)?1:/brass/.test(lab)?2:/stainless|steel|chrome/.test(lab)?0:Math.min(2,vi),look=HLOOK[p.id]||[/knob/.test(p.id)?\"knob\":/cup/.test(p.id)?\"cup\":\"bar\",p.len||160];return{kind:look[0],len:look[1],fi}}const _u3V32=unit3D;unit3D=function(p,v,st,opts){const g=_u3V32.apply(this,arguments);try{const H=curHandle(),hs=g&&g.userData&&g.userData.handles;if(H&&hs&&hs.length){const m=handleMat(H.fi);hs.forEach(h=>{const gp=h.geometry&&h.geometry.parameters;if(!gp)return;const vert=gp.height>gp.width,cx=h.position.x,cy=h.position.y,cz=h.position.z,og=h.geometry;if(h.material=m,h.rotation.set(0,0,0),H.kind===\"knob\")h.geometry=new THREE.CylinderGeometry(15,15,22,24),h.rotation.x=Math.PI/2,h.position.set(cx,vert?cy+gp.height/2-24:cy,cz+2);else if(H.kind===\"cup\")h.geometry=new THREE.CylinderGeometry(15,15,Math.min(96,vert?gp.height:gp.width),20,1,!1,0,Math.PI),vert?(h.rotation.y=Math.PI/2,h.position.set(cx,cy+gp.height/2-60,cz)):(h.rotation.z=Math.PI/2,h.rotation.y=-Math.PI/2,h.position.set(cx,cy,cz));else{const span=vert?gp.height:gp.width,L=Math.max(80,Math.min(H.len,vert?Math.max(span,H.len):span*2.2));h.geometry=new THREE.CylinderGeometry(6,6,L,14),vert?h.position.set(cx,cy+gp.height/2-L/2,cz):(h.rotation.z=Math.PI/2,h.position.set(cx,cy,cz))}og&&og!==h.geometry&&og.dispose&&og.dispose()})}}catch{}return g};const _bdListV32=bdList;bdList=function(){_bdListV32();try{const K=kit(),host=document.getElementById(\"bdlist\"),bl=host&&host.querySelector(\".rvbl\");if(!bl)return;const groups=[[\"base\",\"Base units\"],[\"tall\",\"Tall units\"],[\"appliance\",\"Appliance housings\"],[\"wall\",\"Wall units\"],[\"island\",\"Island\"]],lines={},addRow=(it,g)=>{if(it.gap)return;const p=byId(it.pid);if(!p)return;const gk=g||(p.family===\"appliance\"?\"appliance\":p.family===\"tall\"?\"tall\":p.family===\"wall\"?\"wall\":\"base\"),key=gk+\"|\"+it.pid+\":\"+it.w;lines[key]||(lines[key]={g:gk,p,v:it.v,w:it.w,qty:0}),lines[key].qty++};K.walls.forEach(w=>{[w.base,w.tall,w.wall].forEach(r=>r.forEach(it=>addRow(it)))}),K.island&&K.island.base.forEach(it=>addRow(it,\"island\"));const st=style();let html=\"\";groups.forEach(([gk,label])=>{const ls=Object.values(lines).filter(l=>l.g===gk);if(!ls.length)return;const n=ls.reduce((a,l)=>a+l.qty,0),sub=ls.reduce((a,l)=>a+unitPrice(l.p,l.v,K.assembled)*l.qty,0);html+=`<div class=\"rvgh\"><b>${label}</b><span>${n} ${n===1?\"unit\":\"units\"} \\xB7 ${GBP(sub)}</span></div>`+ls.map(l=>`<div class=\"rvline\"><span class=\"q\">${l.qty}\\xD7</span><span class=\"n\">${cjEsc(l.p.name)}<small>${l.w}mm${needsStyle(l.p)?\" \\xB7 \"+cjEsc(st.name):\"\"}${l.v.sku?\" \\xB7 \"+cjEsc(l.v.sku):\"\"}</small></span><em>${GBP(unitPrice(l.p,l.v,K.assembled)*l.qty)}</em></div>`).join(\"\")}),[...bl.children].forEach(ch=>{ch.classList.contains(\"rvline\")&&!ch.classList.contains(\"chk\")&&ch.remove()}),bl.insertAdjacentHTML(\"afterbegin\",html);const eh=bl.querySelector(\".rvbh\");eh&&eh.classList.add(\"rvgh\",\"ex\");const br=host.querySelector(\".rvbr\");if(br&&!br.querySelector(\".rvtrust\")){const add=br.querySelector(\"[data-add]\"),t=el(`<div class=\"rvtrust\"><span>${CHK31}Free UK delivery over \\xA3${CJ_FREE}</span><span>${CHK31}${CJ_DISPATCH<=1?\"Dispatched next working day\":\"Dispatched within \"+CJ_DISPATCH*24+\" hours\"}</span><span>${CHK31}Price match &amp; beat</span></div>`);add?add.after(t):br.appendChild(t)}host.querySelectorAll(\".asm button .pr\").forEach(x=>{x.textContent=x.textContent.replace(/^\\+/,\"+ \")})}catch{}};async function flushCart(maxMs){const t0=Date.now();for(CART.timer&&(clearTimeout(CART.timer),CART.timer=null,CART.busy?CART.queued=!0:await syncCart());(CART.busy||CART.timer||CART.queued)&&Date.now()-t0<(maxMs||3e4);)await new Promise(r=>setTimeout(r,120))}CJ.flushCart=flushCart;const _setBusyV32=setBusy;setBusy=function(on){_setBusyV32(on);const sc=document.getElementById(\"shcart\");sc&&(sc.dataset.lbl||(sc.dataset.lbl=sc.textContent),sc.textContent=on?\"Adding to cart\\u2026\":sc.dataset.lbl,sc.classList.toggle(\"busy\",on))};const shc=document.getElementById(\"shcart\");shc&&(shc.onclick=async()=>{shc.classList.add(\"busy\"),shc.textContent=\"Adding to cart\\u2026\",await flushCart(),closeSheet(),await CJ.openThemeCart()||(location.href=\"/cart\")}),CJ.realDoc.addEventListener(\"click\",async e=>{const a=e.target.closest&&e.target.closest(\"a[href]\");if(!a)return;const h=a.getAttribute(\"href\")||\"\";/^\\/(cart|checkout)(\\/|\\?|$)/.test(h)&&(CART.busy||CART.timer||CART.queued)&&(e.preventDefault(),e.stopPropagation(),a.classList.add(\"cj-wait\"),await flushCart(),location.href=h)},!0);const _osV32=openSamples;openSamples=function(){const r=_osV32.apply(this,arguments),deco=()=>document.querySelectorAll(\".stile2\").forEach(b=>{const st=DATA.styles.find(s=>s.id===b.dataset.s),d=b.querySelector(\".door\");st&&d&&!d.querySelector(\".swi\")&&(d.classList.add(\"ph\"),d.innerHTML=`<img class=\"swi\" src=\"${swatchSrc(st,480)}\" alt=\"${cjEsc(st.name)} door sample\" loading=\"lazy\" decoding=\"async\">`)});return deco(),setTimeout(deco,0),r};try{typeof WORKTOPS==\"object\"&&(!WORKTOPS.marble&&WORKTOPS.whitemarble&&(WORKTOPS.marble=WORKTOPS.whitemarble),!WORKTOPS.granite&&WORKTOPS.blackgranite&&(WORKTOPS.granite=WORKTOPS.blackgranite))}catch{}const SKM={};function skm(k,hex,metal,rough,cc){return SKM[k]||(SKM[k]=new THREE.MeshPhysicalMaterial({color:new THREE.Color(hex),metalness:metal,roughness:rough,clearcoat:cc||0,clearcoatRoughness:.08,envMapIntensity:1.1})),SKM[k]}function curSinkTap(){if(![\"plan\",\"builder\"].includes(S.current))return null;const W=S.wiz,K=S.kit,c=K&&K.choices||{},sink=S.current===\"plan\"&&W&&W.sinkP||c.sink||W&&W.sinkP||\"sink-inset-15\",tap=S.current===\"plan\"&&W&&W.tapP||c.tap||W&&W.tapP||\"tap-mono\";return{sink:String(sink).replace(/^kb-/,\"\"),tap:String(tap).replace(/^kb-/,\"\")}}function sinkModel(kind,Wu,top){const g=new THREE.Group,steel=skm(\"st\",\"#CDD1D6\",1,.3),dark=skm(\"sd\",\"#70757C\",1,.42);if(/belfast/.test(kind)){const cer=skm(\"ce\",\"#F8F8F6\",0,.18,1),inner=skm(\"ci\",\"#D3D7DB\",0,.3,.4),sw2=Math.min(596,Wu-24),x02=(Wu-sw2)/2;return g.add(box(sw2,240,470,cer,x02,top-238,112)),g.add(box(sw2-56,6,404,inner,x02+28,top-2,140)),g}const two=/15|1\\.5|one-and-a-half/.test(kind),sw=Math.min(two?980:790,Wu-36),x0=(Wu-sw)/2;g.add(box(sw,4,486,steel,x0,top,86));const bw=Math.round(sw*(two?.4:.46));g.add(box(bw,2,390,dark,x0+22,top+3,128));let dx=x0+22+bw+24;if(two){const hw=Math.round(sw*.18);g.add(box(hw,2,300,dark,dx,top+3,172)),dx+=hw+24}const dw=x0+sw-22-dx;if(dw>60)for(let i=0;i<7;i++)g.add(box(dw,2,7,dark,dx,top+4.5,150+i*50));return g}function tapModel(kind,Wu,top){const g=new THREE.Group,chrome=skm(\"ch\",\"#E6E9ED\",1,.1),brushed=skm(\"bs\",\"#B9BEC4\",1,.34),m=/pull/.test(kind)?brushed:chrome,x=Wu/2,z=52,H=/pull/.test(kind)?380:/boil/.test(kind)?310:260,R=/pull/.test(kind)?120:95,body=new THREE.Mesh(new THREE.CylinderGeometry(17,22,H,24),m);body.position.set(x,top+H/2,z),g.add(body);const arc=new THREE.Mesh(new THREE.TorusGeometry(R,11,14,28,Math.PI),m);arc.rotation.y=Math.PI/2,arc.position.set(x,top+H,z+R),g.add(arc);const sp2=new THREE.Mesh(new THREE.CylinderGeometry(/pull/.test(kind)?16:11,/pull/.test(kind)?16:11,/pull/.test(kind)?90:55,18),m);sp2.position.set(x,top+H-(/pull/.test(kind)?45:27),z+2*R),g.add(sp2);const lv=new THREE.Mesh(new THREE.BoxGeometry(70,10,14),m);if(lv.position.set(x+42,top+H*.62,z),g.add(lv),/boil/.test(kind)){const red=skm(\"rd\",\"#C8372D\",0,.35,.5),l2=new THREE.Mesh(new THREE.BoxGeometry(58,10,14),red);l2.position.set(x-40,top+H*.62,z),g.add(l2)}return g}const _u3V33=unit3D;unit3D=function(p,v,st,opts){const g=_u3V33.apply(this,arguments);try{const ch=curSinkTap();if(ch&&g&&p&&(p.glyph||[]).includes(\"S\")){const Wu=v.w;let top=null;const kill=[];g.children.forEach(c=>{const gp=c.isMesh&&c.geometry&&c.geometry.type===\"BoxGeometry\"&&c.geometry.parameters;if(!gp)return;const near=(a,b)=>Math.abs(a-b)<1.5;near(gp.width,Wu*.6)&&near(gp.height,10)&&near(gp.depth,400)?(top=c.position.y-7,kill.push(c)):(near(gp.width,Wu*.5)&&near(gp.height,60)&&near(gp.depth,320)||near(gp.width,14)&&near(gp.height,220)&&near(gp.depth,14))&&kill.push(c)}),top!==null&&(kill.forEach(c=>{g.remove(c),c.geometry&&c.geometry.dispose&&c.geometry.dispose()}),g.add(sinkModel(ch.sink,Wu,top)),g.add(tapModel(ch.tap,Wu,top+(/belfast/.test(ch.sink)?0:4))))}}catch{}return g};const qShort=q2=>String(q2.name||\"\").replace(/ effect$/i,\"\").replace(/ handle/i,\"\").replace(/^Round knob.*/i,\"Knob\").replace(/^White marble/i,\"Marble\").replace(/^Black granite/i,\"Granite\").replace(/ kitchen tap$/i,\"\").replace(/^Stainless steel /i,\"\"),_oqV33=openQuick;openQuick=function(p,o){o=o||{},_oqV33(p,o);try{const M=document.querySelector(\"#modal .qs\");if(!M)return;const pan=M.closest(\".mpan\");pan&&pan.classList.add(\"qkv3\");const f=p.family,sib=[\"handles\",\"worktops\",\"sinks\"].includes(f)?DATA.products.filter(q2=>q2.family===f&&(f!==\"sinks\"||q2.group===p.group)):[];if(sib.length>1&&!M.querySelector(\".qsw\")){const label=f===\"handles\"?\"Handle\":f===\"worktops\"?\"Decor\":p.group===\"tap\"?\"Tap\":\"Sink\",row=el(`<div class=\"row qsw\"><div class=\"lab\"><b>${label}</b><span>${sib.length} to choose from</span></div><div class=\"qsib\">${sib.map(q2=>`<button type=\"button\" class=\"${q2.id===p.id?\"on\":\"\"}\" data-q=\"${cjEsc(q2.id)}\" aria-label=\"${cjEsc(q2.name)}\"><span class=\"pic\">${unitPic(q2,q2.variants[0],style(),{scale:.08})}</span><small>${cjEsc(qShort(q2))}</small></button>`).join(\"\")}</div></div>`),first=M.querySelector(\".qbuy .row\");first?first.before(row):M.querySelector(\".qbuy\").appendChild(row),row.querySelectorAll(\"[data-q]\").forEach(b=>b.onclick=()=>{const q2=byId(b.dataset.q);if(!q2||q2.id===p.id)return;const lab=((M.querySelector(\"#qp .pill.on b\")||{}).textContent||\"\").trim(),qty=parseInt((M.querySelector(\"#qv\")||{}).textContent)||o.qty||1,nv=q2.variants.find(x=>(x.label||x.size)===lab)||q2.variants[0];openQuick(q2,Object.assign({},o,{variant:nv,qty}))})}const add=M.querySelector(\"#qadd\");add&&add.classList.add(\"qadd3\")}catch{}};const _vProductV33=vProduct;vProduct=function(){const r=_vProductV33.apply(this,arguments);try{const lk=document.querySelector(\"#view .look\"),lc=lk&&lk.querySelector(\"#lcards\");if(lc&&!lk.dataset.v33){lk.dataset.v33=\"1\";const st=style();lc.innerHTML=\"\",lc.classList.add(\"lkall\"),[[\"handles\",\"Handles\",\"One per door or drawer front\"],[\"worktops\",\"Worktops\",\"38mm laminate, 3m or 4.1m\"]].forEach(([f,t,sub])=>{const ps=DATA.products.filter(q2=>q2.family===f);if(!ps.length)return;const sec=el(`<div class=\"lkrow\"><div class=\"lkh\"><b>${t}</b><span>${ps.length} options \\xB7 ${sub}</span></div><div class=\"cards lks\"></div></div>`);ps.forEach(q2=>{const c=cardFor(q2,st,{quick:!0});sec.querySelector(\".lks\").appendChild(c),decorateCard(c)}),lc.appendChild(sec)})}}catch{}return r};const _renderV33=render;render=function(){const r=_renderV33.apply(this,arguments);try{window.innerWidth<700&&requestAnimationFrame(()=>{document.querySelectorAll(\"#view .journey\").forEach(j=>{j.scrollLeft=j.scrollWidth})})}catch{}return r};const _omV34=openModal;openModal=function(){const m=document.getElementById(\"modal\");return m&&m.classList.remove(\"qsheet\"),_omV34.apply(this,arguments)};const _oqV34=openQuick;openQuick=function(){const r=_oqV34.apply(this,arguments),m=document.getElementById(\"modal\");return m&&m.classList.add(\"qsheet\"),r};function closeThemeMenus(){const D=CJ.realDoc;try{const det=D.querySelector(\"#Details-menu-drawer-container\"),hd=D.querySelector(\"header-drawer\");if(det&&det.hasAttribute(\"open\")){const sum=det.querySelector(\"summary\");if(hd&&typeof hd.closeMenuDrawer==\"function\")try{hd.closeMenuDrawer(new Event(\"click\"),sum||D.body)}catch{}if(det.hasAttribute(\"open\")){det.removeAttribute(\"open\"),det.classList.remove(\"menu-opening\"),det.querySelectorAll(\"details[open]\").forEach(d=>{d.removeAttribute(\"open\"),d.classList.remove(\"menu-opening\")}),det.querySelectorAll(\".submenu-open\").forEach(x=>x.classList.remove(\"submenu-open\"));const h=D.querySelector(\"header\");h&&h.classList.remove(\"menu-open\"),[\"tablet\",\"mobile\",\"desktop\"].forEach(bp=>D.body.classList.remove(\"overflow-hidden-\"+bp)),sum&&sum.setAttribute(\"aria-expanded\",\"false\")}}D.querySelectorAll(\"header details[open]\").forEach(d=>{d!==det&&!(det&&det.contains(d))&&d.removeAttribute(\"open\")})}catch{}}CJ.closeThemeMenus=closeThemeMenus,MODE===\"journey\"&&(CJ.realDoc.addEventListener(\"click\",e=>{const a=e.target.closest&&e.target.closest(\"a[href]\");if(!a||a.target===\"_blank\"||a.closest(\".cj-root\"))return;let u;try{u=new URL(a.href,location.href)}catch{return}u.origin!==location.origin||u.pathname!==location.pathname||!u.hash||u.hash===\"#\"||(u.hash===location.hash&&(e.preventDefault(),window.dispatchEvent(new PopStateEvent(\"popstate\"))),closeThemeMenus(),setTimeout(closeThemeMenus,60))},!0),window.addEventListener(\"hashchange\",()=>setTimeout(closeThemeMenus,0)));const PLANNER=CJ.cfg.plannerUrl===void 0||CJ.cfg.plannerUrl===null?\"https://planner.kitchenbuildr.co.uk/\":String(CJ.cfg.plannerUrl);CJ.plannerUrl=PLANNER;const _goV36=go;go=function(view,payload){if(PLANNER&&(view===\"plan\"||view===\"builder\"&&!(S.kit&&S.kit.presetName))){silentNav?location.replace(PLANNER):location.assign(PLANNER);return}return _goV36(view,payload)},CJ.go=go;const _hfV36=hashFor;hashFor=function(){if(S.current===\"presets\")return\"#presets\";if(S.current===\"preset\"&&S.preset){const D=DESIGNS.find(d=>d.id===S.preset.design)||DESIGNS[0],sz=PRESET_SIZES[S.preset.size]||PRESET_SIZES[1];return\"#preset/\"+D.name.toLowerCase()+\"/\"+sz.n+(S.preset.style?\"/\"+S.preset.style:\"\")}return _hfV36()};const _phV36=parseHash;parseHash=function(){const h=(location.hash||\"\").replace(/^#/,\"\"),[a,b,c,d]=h.split(\"/\");if(a===\"presets\")return{view:\"presets\"};if(a===\"preset\"){const D=DESIGNS.find(x=>x.name.toLowerCase()===String(b||\"\").toLowerCase()||x.id===b)||DESIGNS[0],si=PRESET_SIZES.findIndex(s=>String(s.n)===String(c)),r={view:\"preset\",design:D.id,size:si>=0?si:1};return d&&DATA.styles.some(s=>s.id===d)&&(r.style=d),r}return _phV36()};const _rV36=render;render=function(){if(_rV36.apply(this,arguments),MODE===\"journey\"&&CJ._soft&&(S.current===\"preset\"||S.current===\"presets\")){const h=hashFor();if(h!==location.hash)try{history.replaceState(null,\"\",h)}catch{}}if(MODE===\"product\"&&S.current===\"preset\"&&S.preset)try{const P=S.preset,D=DESIGNS.find(d=>d.id===P.design),v=D&&presetLive(D,P.size,P.style,P.assembled);if(v){const u=new URL(location.href);u.searchParams.get(\"variant\")!==String(v.variantId)&&(u.searchParams.set(\"variant\",v.variantId),history.replaceState(null,\"\",u.pathname+u.search+u.hash))}}catch{}};const _vHomeV36=vHome;vHome=function(){if(_vHomeV36(),!PLANNER)return;const V=document.getElementById(\"view\"),m=V&&V.querySelectorAll(\".modes .mode\")[1];if(m){const g=m.querySelector(\".go\");g&&g.firstChild&&g.firstChild.nodeType===3&&(g.firstChild.textContent=\"Open the planner \")}};const _bootV36=CJ.boot;CJ.boot=function(){_bootV36();try{loadPresets()}catch{}};function presetFromProduct(pc){const m=String(pc.sku||\"\").match(/^KB-PS-([A-Z]+)-(\\d+)-(.+)-(FP|AS)$/i);let D=null;const r={size:1,assembled:!1};if(m){D=DESIGNS.find(d=>d.name.toUpperCase()===m[1].toUpperCase()||d.id.toUpperCase()===m[1].toUpperCase());const si=PRESET_SIZES.findIndex(x=>String(x.n)===m[2]);si>=0&&(r.size=si);const sid=m[3].toLowerCase();DATA.styles.some(x=>x.id===sid)&&(r.style=sid),r.assembled=m[4].toUpperCase()===\"AS\"}if(!D){const h=String(pc.handle||\"\");D=DESIGNS.find(d=>psHandle(d)===h)||DESIGNS.find(d=>h===\"kb-preset-\"+d.name.toLowerCase())}return D?(r.design=D.id,r):null}function fallbackBuy(pc){ROOT.classList.remove(\"cj-unmatched\"),ROOT.classList.add(\"cj-plain\");const V=document.getElementById(\"view\");if(!V)return;V.innerHTML=\"\";const img=pc.image?`<img src=\"${cjEsc(psImg(pc.image,1e3))}\" alt=\"${cjEsc(pc.title||\"\")}\">`:\"\",box2=el(`<section class=\"cjplain\"><div class=\"cjpi\">${img}</div><div class=\"cjpb\"><h1>${cjEsc(pc.title||\"\")}</h1><div class=\"cjpp\">${pc.price!=null?GBP(+pc.price):\"\"}</div><button type=\"button\" class=\"add\" id=\"cjpadd\" ${pc.available===!1?\"disabled\":\"\"}><span>${pc.available===!1?\"Out of stock\":\"Add to cart\"}</span></button></div></section>`);V.appendChild(box2);const b=box2.querySelector(\"#cjpadd\");b.onclick=async()=>{b.disabled=!0;try{await jfetch(\"/cart/add.js\",{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Accept:\"application/json\"},body:JSON.stringify({items:[{id:pc.variantId,quantity:1}]})}),location.href=\"/cart\"}catch(e){toast(e.message||\"Could not add to cart\"),b.disabled=!1}}}const _bootV38=CJ.boot;CJ.boot=function(){const pc=CJ.cfg.product||{};if(MODE===\"product\"){const ps=presetFromProduct(pc);if(ps){ROOT.classList.add(\"cj-preset-pdp\"),S.preset=Object.assign({addons:{}},ps),silentNav=!0;try{go(\"preset\",ps)}finally{silentNav=!1}cartGet().then(hydrateBasket).catch(()=>{});try{loadPresets()}catch{}return}if(!parseFullSku(pc.sku)){_bootV38();try{fallbackBuy(pc)}catch(e){console.warn(\"CJ fallback\",e)}return}}return _bootV38()},CJ.loadPresets=loadPresets,CJ.presets=PS;const hingedDoors=p=>!!(p&&isCab(p)&&(p.glyph||[]).some(r=>r===\"D\"||r===\"S\"||r===\"X\"));CJ.hingedDoors=hingedDoors;const HANG_ICON='<svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"5\" y=\"3\" width=\"14\" height=\"18\" rx=\"1.5\"/><circle cx=\"8\" cy=\"8\" r=\"1\"/><circle cx=\"8\" cy=\"16\" r=\"1\"/><circle cx=\"16\" cy=\"8\" r=\"1\"/><circle cx=\"16\" cy=\"16\" r=\"1\"/></svg>';function hangNotes(){const pp=document.querySelector(\".pp2.v2\");if(!pp)return;const p=S.product&&byId(S.product),on=hingedDoors(p),chips=pp.querySelector(\".pchips\");let c=chips&&chips.querySelector(\".cj-hang\");if(on&&chips&&!c){c=el(`<span class=\"cj-hang\" title=\"Hinge holes are pre-drilled on both sides of the door\">${HANG_ICON}Pre-drilled to hang left or right</span>`);const st=chips.querySelector(\".stock\");st?st.before(c):chips.appendChild(c)}if(!on&&c&&c.remove(),pp.querySelectorAll(\".cj-hangnote\").forEach(n=>n.remove()),!on)return;const ds=pp.querySelector(\".sect-rdoors\"),txt=\"Every door is pre-drilled on both sides, so you choose which way it opens when you fit it.\";if(ds&&!ds.classList.contains(\"hidden\"))ds.appendChild(el(`<p class=\"note2 cj-hangnote\">${HANG_ICON}<span>${txt}</span></p>`));else{const as=pp.querySelector(\".sect-asm\");as&&as.appendChild(el(`<p class=\"note2 cj-hangnote\">${HANG_ICON}<span>${txt}</span></p>`))}}const _upV39=updateProduct;updateProduct=function(){const r=_upV39.apply(this,arguments);try{hangNotes()}catch{}return r}})(),(()=>{const _goNoHome=go;go=function(view,payload){return _goNoHome(view===\"home\"?\"place\":view,payload)},CJ.go=go;let kbLt;CJ.galLoading=on=>{const g=document.querySelector(\"#view .pp2 .gal\");if(!g)return;clearTimeout(kbLt);const done=()=>{clearTimeout(kbLt),g.classList.remove(\"kb-loading\")};if(on){const gm=g.querySelector(\".gmain\");gm&&!gm.querySelector(\".kb-loader\")&&gm.insertAdjacentHTML(\"beforeend\",'<div class=\"kb-loader\" role=\"status\" aria-label=\"Loading photos\"><span></span></div>'),g.classList.add(\"kb-loading\"),kbLt=setTimeout(done,8e3);return}requestAnimationFrame(()=>{const im=g.querySelector(\".gsvg img\");im&&!im.complete?(im.addEventListener(\"load\",done,{once:!0}),im.addEventListener(\"error\",done,{once:!0}),kbLt=setTimeout(done,6e3)):done()})};const kbUpd=(w,th)=>{w.classList.toggle(\"over\",th.scrollWidth>th.clientWidth+4),w.classList.toggle(\"at-start\",th.scrollLeft<=4),w.classList.toggle(\"at-end\",th.scrollLeft+th.clientWidth>=th.scrollWidth-4)},kbArrows=()=>{const th=document.getElementById(\"gthumbs\");if(!th||!th.parentElement)return;let w=th.parentElement;if(!w.classList.contains(\"kb-thumbwrap\")){w=document.createElement(\"div\"),w.className=\"kb-thumbwrap\",th.before(w),w.appendChild(th),w.insertAdjacentHTML(\"beforeend\",'<button type=\"button\" class=\"kb-tharr prev\" aria-label=\"Previous photos\">\\u2039</button><button type=\"button\" class=\"kb-tharr next\" aria-label=\"More photos\">\\u203A</button>');const[pv,nx]=w.querySelectorAll(\".kb-tharr\"),step=d=>th.scrollBy({left:d*Math.max(150,th.clientWidth*.8),behavior:\"smooth\"});pv.onclick=()=>step(-1),nx.onclick=()=>step(1),th.addEventListener(\"scroll\",()=>kbUpd(w,th),{passive:!0}),window.addEventListener(\"resize\",()=>kbUpd(w,th))}kbUpd(w,th),setTimeout(()=>kbUpd(w,th),400)},_aptKB=addPhotoThumbs;addPhotoThumbs=function(){const r=_aptKB.apply(this,arguments);try{kbArrows()}catch{}return r}})(),CJ.boot()})();\n//# sourceMappingURL=/s/files/1/0856/9140/0442/files/kb-theme-upload-cj-app-3nov.js.map?v=1793743184\n"],
  "mappings": "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",
  "names": []
}
