vendor: 5,856 bytes, lines 1-9
1var Lb=Object.defineProperty;var dh=e=>{throw TypeError(e)};var Mb=(e,t,o)=>t in e?Lb(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o;var Zt=(e,t,o)=>Mb(e,typeof t!="symbol"?t+"":t,o),wl=(e,t,o)=>t.has(e)||dh("Cannot "+o);var B=(e,t,o)=>(wl(e,t,"read from private field"),o?o.call(e):t.get(e)),oe=(e,t,o)=>t.has(e)?dh("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,o),G=(e,t,o,a)=>(wl(e,t,"write to private field"),a?a.call(e,o):t.set(e,o),o),Re=(e,t,o)=>(wl(e,t,"access private method"),o);var is=(e,t,o,a)=>({set _(n){G(e,t,n,o)},get _(){return B(e,t,a)}});function Db(e,t){for(var o=0;o<t.length;o++){const a=t[o];if(typeof a!="string"&&!Array.isArray(a)){for(const n in a)if(n!=="default"&&!(n in e)){const s=Object.getOwnPropertyDescriptor(a,n);s&&Object.defineProperty(e,n,s.get?s:{enumerable:!0,get:()=>a[n]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const n of document.querySelectorAll('link[rel="modulepreload"]'))a(n);new MutationObserver(n=>{for(const s of n)if(s.type==="childList")for(const i of s.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&a(i)}).observe(document,{childList:!0,subtree:!0});function o(n){const s={};return n.integrity&&(s.integrity=n.integrity),n.referrerPolicy&&(s.referrerPolicy=n.referrerPolicy),n.crossOrigin==="use-credentials"?s.credentials="include":n.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function a(n){if(n.ep)return;n.ep=!0;const s=o(n);fetch(n.href,s)}})();function zn(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Cp={exports:{}},Ri={},Tp={exports:{}},J={};/** 2 * @license React 3 * react.production.min.js 4 * 5 * Copyright (c) Facebook, Inc. and its affiliates. 6 * 7 * This source code is licensed under the MIT license found in the 8 * LICENSE file in the root directory of this source tree. 9 */var Gn=Symbol.for("react.element"),Ib=Symbol.for("react.portal"),Hb=Symbol.for("react.fragment"),Ob=Symbol.for("react.strict_mode"),_b=Symbol.for("react.profiler"),Ub=Symbol.for("react.provider"),$b=Symbol.for("react.context"),zb=Symbol.for("react.forward_ref"),Gb=Symbol.for("react.suspense"),Vb=Symbol.for("react.memo"),Yb=Symbol.for("react.lazy"),ch=Symbol.iterator;function Qb(e){return e===null||typeof e!="object"?null:(e=ch&&e[ch]||e["@@iterator"],typeof e=="function"?e:null)}var Bp={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Wp=Object.assign,Np={};function Pa(e,t,o){this.props=e,this.context=t,this.refs=Np,this.updater=o||Bp}Pa.prototype.isReactComponent={};Pa.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Pa.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function Ap(){}Ap.prototype=Pa.prototype;function kc(e,t,o){this.props=e,this.context=t,this.refs=Np,this.updater=o||Bp}var Sc=kc.prototype=new Ap;Sc.constructor=kc;Wp(Sc,Pa.prototype);Sc.isPureReactComponent=!0;var uh=Array.isArray,Ep=Object.prototype.hasOwnProperty,jc={current:null},Fp={key:!0,ref:!0,__self:!0,__source:!0};function qp(e,t,o){var a,n={},s=null,i=null;if(t!=null)for(a in t.ref!==void 0&&(i=t.ref),t.key!==void 0&&(s=""+t.key),t)Ep.call(t,a)&&!Fp.hasOwnProperty(a)&&(n[a]=t[a]);var l=arguments.length-2;if(l===1)n.children=o;else if(1<l){for(var d=Array(l),c=0;c<l;c++)d[c]=arguments[c+2];n.children=d}if(e&&e.defaultProps)for(a in l=e.defaultProps,l)n[a]===void 0&&(n[a]=l[a]);return{$$typeof:Gn,type:e,key:s,ref:i,props:n,_owner:jc.current}}function Kb(e,t){return{$$typeof:Gn,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}function Cc(e){return typeof e=="object"&&e!==null&&e.$$typeof===Gn}function Xb(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(o){return t[o]})}var hh=/\/+/g;function bl(e,t){return typeof e=="object"&&e!==null&&e.key!=null?Xb(""+e.key):t.toString(36)}function Fs(e,t,o,a,n){var s=typeof e;(s==="undefined"||s==="boolean")&&(e=null);var i=!1;if(e===null)i=!0;else switch(s){case"string":case"number":i=!0;break;case"object":switch(e.$$typeof){case Gn:case Ib:i=!0}}if(i)return i=e,n=n(i),e=a===""?"."+bl(i,0):a,uh(n)?(o="",e!=null&&(o=e.replace(hh,"$&/")+"/"),Fs(n,t,o,"",function(c){return c})):n!=null&&(Cc(n)&&(n=Kb(n,o+(!n.key||i&&i.key===n.key?"":(""+n.key).replace(hh,"$&/")+"/")+e)),t.push(n)),1;if(i=0,a=a===""?".":a+":",uh(e))for(var l=0;l<e.length;l++){s=e[l];var d=a+bl(s,l);i+=Fs(s,t,o,d,n)}else if(d=Qb(e),typeof d=="function")for(e=d.call(e),l=0;!(s=e.next()).done;)s=s.value,d=a+bl(s,l++),i+=Fs(s,t,o,d,n);else if(s==="object")throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return i}function ls(e,t,o){if(e==null)return e;var a=[],n=0;return Fs(e,a,"","",function(s){return t.call(o,s,n++)}),a}function Jb(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(o){(e._status===0||e._status===-1)&&(e._status=1,e._result=o)},function(o){(e._status===0||e._status===-1)&&(e._status=2,e._result=o)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var ze={current:null},qs={transition:null},Zb={ReactCurrentDispatcher:ze,ReactCurrentBatchConfig:qs,ReactCurrentOwner:jc};function Pp(){throw Error("act(...) is not supported in production builds of React.")}
vendor: 5,216 bytes, lines 9-25
9J.Children={map:ls,forEach:function(e,t,o){ls(e,function(){t.apply(this,arguments)},o)},count:function(e){var t=0;return ls(e,function(){t++}),t},toArray:function(e){return ls(e,function(t){return t})||[]},only:function(e){if(!Cc(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};J.Component=Pa;J.Fragment=Hb;J.Profiler=_b;J.PureComponent=kc;J.StrictMode=Ob;J.Suspense=Gb;J.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=Zb;J.act=Pp;J.cloneElement=function(e,t,o){if(e==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var a=Wp({},e.props),n=e.key,s=e.ref,i=e._owner;if(t!=null){if(t.ref!==void 0&&(s=t.ref,i=jc.current),t.key!==void 0&&(n=""+t.key),e.type&&e.type.defaultProps)var l=e.type.defaultProps;for(d in t)Ep.call(t,d)&&!Fp.hasOwnProperty(d)&&(a[d]=t[d]===void 0&&l!==void 0?l[d]:t[d])}var d=arguments.length-2;if(d===1)a.children=o;else if(1<d){l=Array(d);for(var c=0;c<d;c++)l[c]=arguments[c+2];a.children=l}return{$$typeof:Gn,type:e.type,key:n,ref:s,props:a,_owner:i}};J.createContext=function(e){return e={$$typeof:$b,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},e.Provider={$$typeof:Ub,_context:e},e.Consumer=e};J.createElement=qp;J.createFactory=function(e){var t=qp.bind(null,e);return t.type=e,t};J.createRef=function(){return{current:null}};J.forwardRef=function(e){return{$$typeof:zb,render:e}};J.isValidElement=Cc;J.lazy=function(e){return{$$typeof:Yb,_payload:{_status:-1,_result:e},_init:Jb}};J.memo=function(e,t){return{$$typeof:Vb,type:e,compare:t===void 0?null:t}};J.startTransition=function(e){var t=qs.transition;qs.transition={};try{e()}finally{qs.transition=t}};J.unstable_act=Pp;J.useCallback=function(e,t){return ze.current.useCallback(e,t)};J.useContext=function(e){return ze.current.useContext(e)};J.useDebugValue=function(){};J.useDeferredValue=function(e){return ze.current.useDeferredValue(e)};J.useEffect=function(e,t){return ze.current.useEffect(e,t)};J.useId=function(){return ze.current.useId()};J.useImperativeHandle=function(e,t,o){return ze.current.useImperativeHandle(e,t,o)};J.useInsertionEffect=function(e,t){return ze.current.useInsertionEffect(e,t)};J.useLayoutEffect=function(e,t){return ze.current.useLayoutEffect(e,t)};J.useMemo=function(e,t){return ze.current.useMemo(e,t)};J.useReducer=function(e,t,o){return ze.current.useReducer(e,t,o)};J.useRef=function(e){return ze.current.useRef(e)};J.useState=function(e){return ze.current.useState(e)};J.useSyncExternalStore=function(e,t,o){return ze.current.useSyncExternalStore(e,t,o)};J.useTransition=function(){return ze.current.useTransition()};J.version="18.3.1";Tp.exports=J;var b=Tp.exports;const N=zn(b),Rp=Db({__proto__:null,default:N},[b]);/** 10 * @license React 11 * react-jsx-runtime.production.min.js 12 * 13 * Copyright (c) Facebook, Inc. and its affiliates. 14 * 15 * This source code is licensed under the MIT license found in the 16 * LICENSE file in the root directory of this source tree. 17 */var ev=b,tv=Symbol.for("react.element"),ov=Symbol.for("react.fragment"),rv=Object.prototype.hasOwnProperty,av=ev.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,nv={key:!0,ref:!0,__self:!0,__source:!0};function Lp(e,t,o){var a,n={},s=null,i=null;o!==void 0&&(s=""+o),t.key!==void 0&&(s=""+t.key),t.ref!==void 0&&(i=t.ref);for(a in t)rv.call(t,a)&&!nv.hasOwnProperty(a)&&(n[a]=t[a]);if(e&&e.defaultProps)for(a in t=e.defaultProps,t)n[a]===void 0&&(n[a]=t[a]);return{$$typeof:tv,type:e,key:s,ref:i,props:n,_owner:av.current}}Ri.Fragment=ov;Ri.jsx=Lp;Ri.jsxs=Lp;Cp.exports=Ri;var r=Cp.exports,Mp={exports:{}},ut={},Dp={exports:{}},Ip={};/** 18 * @license React 19 * scheduler.production.min.js 20 * 21 * Copyright (c) Facebook, Inc. and its affiliates. 22 * 23 * This source code is licensed under the MIT license found in the 24 * LICENSE file in the root directory of this source tree. 25 */(function(e){function t(W,A){var M=W.length;W.push(A);e:for(;0<M;){var Y=M-1>>>1,O=W[Y];if(0<n(O,A))W[Y]=A,W[M]=O,M=Y;else break e}}function o(W){return W.length===0?null:W[0]}function a(W){if(W.length===0)return null;var A=W[0],M=W.pop();if(M!==A){W[0]=M;e:for(var Y=0,O=W.length,X=O>>>1;Y<X;){var ee=2*(Y+1)-1,ve=W[ee],Pe=ee+1,re=W[Pe];if(0>n(ve,M))Pe<O&&0>n(re,ve)?(W[Y]=re,W[Pe]=M,Y=Pe):(W[Y]=ve,W[ee]=M,Y=ee);else if(Pe<O&&0>n(re,M))W[Y]=re,W[Pe]=M,Y=Pe;else break e}}return A}function n(W,A){var M=W.sortIndex-A.sortIndex;return M!==0?M:W.id-A.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;e.unstable_now=function(){return s.now()}}else{var i=Date,l=i.now();e.unstable_now=function(){return i.now()-l}}var d=[],c=[],u=1,m=null,p=3,h=!1,v=!1,y=!1,x=typeof setTimeout=="function"?setTimeout:null,g=typeof clearTimeout=="function"?clearTimeout:null,f=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function w(W){for(var A=o(c);A!==null;){if(A.callback===null)a(c);else if(A.startTime<=W)a(c),A.sortIndex=A.expirationTime,t(d,A);else break;A=o(c)}}
vendor: 9,392 bytes, lines 25-34
25function k(W){if(y=!1,w(W),!v)if(o(d)!==null)v=!0,$(j);else{var A=o(c);A!==null&&V(k,A.startTime-W)}}function j(W,A){v=!1,y&&(y=!1,g(E),E=-1),h=!0;var M=p;try{for(w(A),m=o(d);m!==null&&(!(m.expirationTime>A)||W&&!_());){var Y=m.callback;if(typeof Y=="function"){m.callback=null,p=m.priorityLevel;var O=Y(m.expirationTime<=A);A=e.unstable_now(),typeof O=="function"?m.callback=O:m===o(d)&&a(d),w(A)}else a(d);m=o(d)}if(m!==null)var X=!0;else{var ee=o(c);ee!==null&&V(k,ee.startTime-A),X=!1}return X}finally{m=null,p=M,h=!1}}var C=!1,T=null,E=-1,R=5,P=-1;function _(){return!(e.unstable_now()-P<R)}function I(){if(T!==null){var W=e.unstable_now();P=W;var A=!0;try{A=T(!0,W)}finally{A?K():(C=!1,T=null)}}else C=!1}var K;if(typeof f=="function")K=function(){f(I)};else if(typeof MessageChannel<"u"){var L=new MessageChannel,Z=L.port2;L.port1.onmessage=I,K=function(){Z.postMessage(null)}}else K=function(){x(I,0)};function $(W){T=W,C||(C=!0,K())}function V(W,A){E=x(function(){W(e.unstable_now())},A)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(W){W.callback=null},e.unstable_continueExecution=function(){v||h||(v=!0,$(j))},e.unstable_forceFrameRate=function(W){0>W||125<W?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):R=0<W?Math.floor(1e3/W):5},e.unstable_getCurrentPriorityLevel=function(){return p},e.unstable_getFirstCallbackNode=function(){return o(d)},e.unstable_next=function(W){switch(p){case 1:case 2:case 3:var A=3;break;default:A=p}var M=p;p=A;try{return W()}finally{p=M}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(W,A){switch(W){case 1:case 2:case 3:case 4:case 5:break;default:W=3}var M=p;p=W;try{return A()}finally{p=M}},e.unstable_scheduleCallback=function(W,A,M){var Y=e.unstable_now();switch(typeof M=="object"&&M!==null?(M=M.delay,M=typeof M=="number"&&0<M?Y+M:Y):M=Y,W){case 1:var O=-1;break;case 2:O=250;break;case 5:O=1073741823;break;case 4:O=1e4;break;default:O=5e3}return O=M+O,W={id:u++,callback:A,priorityLevel:W,startTime:M,expirationTime:O,sortIndex:-1},M>Y?(W.sortIndex=M,t(c,W),o(d)===null&&W===o(c)&&(y?(g(E),E=-1):y=!0,V(k,M-Y))):(W.sortIndex=O,t(d,W),v||h||(v=!0,$(j))),W},e.unstable_shouldYield=_,e.unstable_wrapCallback=function(W){var A=p;return function(){var M=p;p=A;try{return W.apply(this,arguments)}finally{p=M}}}})(Ip);Dp.exports=Ip;var sv=Dp.exports;/** 26 * @license React 27 * react-dom.production.min.js 28 * 29 * Copyright (c) Facebook, Inc. and its affiliates. 30 * 31 * This source code is licensed under the MIT license found in the 32 * LICENSE file in the root directory of this source tree. 33 */var iv=b,dt=sv;function F(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,o=1;o<arguments.length;o++)t+="&args[]="+encodeURIComponent(arguments[o]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var Hp=new Set,bn={};function qr(e,t){ja(e,t),ja(e+"Capture",t)}function ja(e,t){for(bn[e]=t,e=0;e<t.length;e++)Hp.add(t[e])}var lo=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),sd=Object.prototype.hasOwnProperty,lv=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,mh={},ph={};function dv(e){return sd.call(ph,e)?!0:sd.call(mh,e)?!1:lv.test(e)?ph[e]=!0:(mh[e]=!0,!1)}function cv(e,t,o,a){if(o!==null&&o.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return a?!1:o!==null?!o.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function uv(e,t,o,a){if(t===null||typeof t>"u"||cv(e,t,o,a))return!0;if(a)return!1;if(o!==null)switch(o.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function Ge(e,t,o,a,n,s,i){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=a,this.attributeNamespace=n,this.mustUseProperty=o,this.propertyName=e,this.type=t,this.sanitizeURL=s,this.removeEmptyString=i}var qe={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){qe[e]=new Ge(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];qe[t]=new Ge(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){qe[e]=new Ge(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){qe[e]=new Ge(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){qe[e]=new Ge(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){qe[e]=new Ge(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){qe[e]=new Ge(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){qe[e]=new Ge(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){qe[e]=new Ge(e,5,!1,e.toLowerCase(),null,!1,!1)});var Tc=/[\-:]([a-z])/g;function Bc(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(Tc,Bc);qe[t]=new Ge(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Tc,Bc);qe[t]=new Ge(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Tc,Bc);qe[t]=new Ge(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){qe[e]=new Ge(e,1,!1,e.toLowerCase(),null,!1,!1)});qe.xlinkHref=new Ge("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){qe[e]=new Ge(e,1,!1,e.toLowerCase(),null,!0,!0)});function Wc(e,t,o,a){var n=qe.hasOwnProperty(t)?qe[t]:null;(n!==null?n.type!==0:a||!(2<t.length)||t[0]!=="o"&&t[0]!=="O"||t[1]!=="n"&&t[1]!=="N")&&(uv(t,o,n,a)&&(o=null),a||n===null?dv(t)&&(o===null?e.removeAttribute(t):e.setAttribute(t,""+o)):n.mustUseProperty?e[n.propertyName]=o===null?n.type===3?!1:"":o:(t=n.attributeName,a=n.attributeNamespace,o===null?e.removeAttribute(t):(n=n.type,o=n===3||n===4&&o===!0?"":""+o,a?e.setAttributeNS(a,t,o):e.setAttribute(t,o))))}var go=iv.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,ds=Symbol.for("react.element"),Vr=Symbol.for("react.portal"),Yr=Symbol.for("react.fragment"),Nc=Symbol.for("react.strict_mode"),id=Symbol.for("react.profiler"),Op=Symbol.for("react.provider"),_p=Symbol.for("react.context"),Ac=Symbol.for("react.forward_ref"),ld=Symbol.for("react.suspense"),dd=Symbol.for("react.suspense_list"),Ec=Symbol.for("react.memo"),Bo=Symbol.for("react.lazy"),Up=Symbol.for("react.offscreen"),fh=Symbol.iterator;function Ga(e){return e===null||typeof e!="object"?null:(e=fh&&e[fh]||e["@@iterator"],typeof e=="function"?e:null)}var ge=Object.assign,vl;function an(e){if(vl===void 0)try{throw Error()}catch(o){var t=o.stack.trim().match(/\n( *(at )?)/);vl=t&&t[1]||""}return` 34`+vl+e}var xl=!1;function kl(e,t){if(!e||xl)return"";xl=!0;var o=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(t,[])}catch(c){var a=c}Reflect.construct(e,[],t)}else{try{t.call()}catch(c){a=c}e.call(t.prototype)}else{try{throw Error()}catch(c){a=c}e()}}
vendor: 13,991 bytes, lines 34-37
34catch(c){if(c&&a&&typeof c.stack=="string"){for(var n=c.stack.split(` 35`),s=a.stack.split(` 36`),i=n.length-1,l=s.length-1;1<=i&&0<=l&&n[i]!==s[l];)l--;for(;1<=i&&0<=l;i--,l--)if(n[i]!==s[l]){if(i!==1||l!==1)do if(i--,l--,0>l||n[i]!==s[l]){var d=` 37`+n[i].replace(" at new "," at ");return e.displayName&&d.includes("<anonymous>")&&(d=d.replace("<anonymous>",e.displayName)),d}while(1<=i&&0<=l);break}}}finally{xl=!1,Error.prepareStackTrace=o}return(e=e?e.displayName||e.name:"")?an(e):""}function hv(e){switch(e.tag){case 5:return an(e.type);case 16:return an("Lazy");case 13:return an("Suspense");case 19:return an("SuspenseList");case 0:case 2:case 15:return e=kl(e.type,!1),e;case 11:return e=kl(e.type.render,!1),e;case 1:return e=kl(e.type,!0),e;default:return""}}function cd(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Yr:return"Fragment";case Vr:return"Portal";case id:return"Profiler";case Nc:return"StrictMode";case ld:return"Suspense";case dd:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case _p:return(e.displayName||"Context")+".Consumer";case Op:return(e._context.displayName||"Context")+".Provider";case Ac:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Ec:return t=e.displayName||null,t!==null?t:cd(e.type)||"Memo";case Bo:t=e._payload,e=e._init;try{return cd(e(t))}catch{}}return null}function mv(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return cd(t);case 8:return t===Nc?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function Yo(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function $p(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function pv(e){var t=$p(e)?"checked":"value",o=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),a=""+e[t];if(!e.hasOwnProperty(t)&&typeof o<"u"&&typeof o.get=="function"&&typeof o.set=="function"){var n=o.get,s=o.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return n.call(this)},set:function(i){a=""+i,s.call(this,i)}}),Object.defineProperty(e,t,{enumerable:o.enumerable}),{getValue:function(){return a},setValue:function(i){a=""+i},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function cs(e){e._valueTracker||(e._valueTracker=pv(e))}function zp(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var o=t.getValue(),a="";return e&&(a=$p(e)?e.checked?"true":"false":e.value),e=a,e!==o?(t.setValue(e),!0):!1}function Xs(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function ud(e,t){var o=t.checked;return ge({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:o??e._wrapperState.initialChecked})}function gh(e,t){var o=t.defaultValue==null?"":t.defaultValue,a=t.checked!=null?t.checked:t.defaultChecked;o=Yo(t.value!=null?t.value:o),e._wrapperState={initialChecked:a,initialValue:o,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function Gp(e,t){t=t.checked,t!=null&&Wc(e,"checked",t,!1)}function hd(e,t){Gp(e,t);var o=Yo(t.value),a=t.type;if(o!=null)a==="number"?(o===0&&e.value===""||e.value!=o)&&(e.value=""+o):e.value!==""+o&&(e.value=""+o);else if(a==="submit"||a==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?md(e,t.type,o):t.hasOwnProperty("defaultValue")&&md(e,t.type,Yo(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function yh(e,t,o){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var a=t.type;if(!(a!=="submit"&&a!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,o||t===e.value||(e.value=t),e.defaultValue=t}o=e.name,o!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,o!==""&&(e.name=o)}function md(e,t,o){(t!=="number"||Xs(e.ownerDocument)!==e)&&(o==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+o&&(e.defaultValue=""+o))}var nn=Array.isArray;function sa(e,t,o,a){if(e=e.options,t){t={};for(var n=0;n<o.length;n++)t["$"+o[n]]=!0;for(o=0;o<e.length;o++)n=t.hasOwnProperty("$"+e[o].value),e[o].selected!==n&&(e[o].selected=n),n&&a&&(e[o].defaultSelected=!0)}else{for(o=""+Yo(o),t=null,n=0;n<e.length;n++){if(e[n].value===o){e[n].selected=!0,a&&(e[n].defaultSelected=!0);return}t!==null||e[n].disabled||(t=e[n])}t!==null&&(t.selected=!0)}}function pd(e,t){if(t.dangerouslySetInnerHTML!=null)throw Error(F(91));return ge({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function wh(e,t){var o=t.value;if(o==null){if(o=t.children,t=t.defaultValue,o!=null){if(t!=null)throw Error(F(92));if(nn(o)){if(1<o.length)throw Error(F(93));o=o[0]}t=o}t==null&&(t=""),o=t}e._wrapperState={initialValue:Yo(o)}}function Vp(e,t){var o=Yo(t.value),a=Yo(t.defaultValue);o!=null&&(o=""+o,o!==e.value&&(e.value=o),t.defaultValue==null&&e.defaultValue!==o&&(e.defaultValue=o)),a!=null&&(e.defaultValue=""+a)}function bh(e){var t=e.textContent;t===e._wrapperState.initialValue&&t!==""&&t!==null&&(e.value=t)}function Yp(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function fd(e,t){return e==null||e==="http://www.w3.org/1999/xhtml"?Yp(t):e==="http://www.w3.org/2000/svg"&&t==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var us,Qp=function(e){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(t,o,a,n){MSApp.execUnsafeLocalFunction(function(){return e(t,o,a,n)})}:e}(function(e,t){if(e.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in e)e.innerHTML=t;else{for(us=us||document.createElement("div"),us.innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=us.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function vn(e,t){if(t){var o=e.firstChild;if(o&&o===e.lastChild&&o.nodeType===3){o.nodeValue=t;return}}e.textContent=t}var dn={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},fv=["Webkit","ms","Moz","O"];Object.keys(dn).forEach(function(e){fv.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),dn[t]=dn[e]})});function Kp(e,t,o){return t==null||typeof t=="boolean"||t===""?"":o||typeof t!="number"||t===0||dn.hasOwnProperty(e)&&dn[e]?(""+t).trim():t+"px"}function Xp(e,t){e=e.style;for(var o in t)if(t.hasOwnProperty(o)){var a=o.indexOf("--")===0,n=Kp(o,t[o],a);o==="float"&&(o="cssFloat"),a?e.setProperty(o,n):e[o]=n}}var gv=ge({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function gd(e,t){if(t){if(gv[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(F(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(F(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(F(61))}if(t.style!=null&&typeof t.style!="object")throw Error(F(62))}}function yd(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var wd=null;function Fc(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var bd=null,ia=null,la=null;function vh(e){if(e=Qn(e)){if(typeof bd!="function")throw Error(F(280));var t=e.stateNode;t&&(t=Hi(t),bd(e.stateNode,e.type,t))}}function Jp(e){ia?la?la.push(e):la=[e]:ia=e}function Zp(){if(ia){var e=ia,t=la;if(la=ia=null,vh(e),t)for(e=0;e<t.length;e++)vh(t[e])}}function ef(e,t){return e(t)}function tf(){}var Sl=!1;function of(e,t,o){if(Sl)return e(t,o);Sl=!0;try{return ef(e,t,o)}finally{Sl=!1,(ia!==null||la!==null)&&(tf(),Zp())}}function xn(e,t){var o=e.stateNode;if(o===null)return null;var a=Hi(o);if(a===null)return null;o=a[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(a=!a.disabled)||(e=e.type,a=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!a;break e;default:e=!1}if(e)return null;if(o&&typeof o!="function")throw Error(F(231,t,typeof o));return o}var vd=!1;if(lo)try{var Va={};Object.defineProperty(Va,"passive",{get:function(){vd=!0}}),window.addEventListener("test",Va,Va),window.removeEventListener("test",Va,Va)}catch{vd=!1}function yv(e,t,o,a,n,s,i,l,d){var c=Array.prototype.slice.call(arguments,3);try{t.apply(o,c)}catch(u){this.onError(u)}}var cn=!1,Js=null,Zs=!1,xd=null,wv={onError:function(e){cn=!0,Js=e}};function bv(e,t,o,a,n,s,i,l,d){cn=!1,Js=null,yv.apply(wv,arguments)}function vv(e,t,o,a,n,s,i,l,d){if(bv.apply(this,arguments),cn){if(cn){var c=Js;cn=!1,Js=null}else throw Error(F(198));Zs||(Zs=!0,xd=c)}}function Pr(e){var t=e,o=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(o=t.return),e=t.return;while(e)}return t.tag===3?o:null}function rf(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function xh(e){if(Pr(e)!==e)throw Error(F(188))}function xv(e){var t=e.alternate;if(!t){if(t=Pr(e),t===null)throw Error(F(188));return t!==e?null:e}for(var o=e,a=t;;){var n=o.return;if(n===null)break;var s=n.alternate;if(s===null){if(a=n.return,a!==null){o=a;continue}break}if(n.child===s.child){for(s=n.child;s;){if(s===o)return xh(n),e;if(s===a)return xh(n),t;s=s.sibling}throw Error(F(188))}if(o.return!==a.return)o=n,a=s;else{for(var i=!1,l=n.child;l;){if(l===o){i=!0,o=n,a=s;break}if(l===a){i=!0,a=n,o=s;break}l=l.sibling}if(!i){for(l=s.child;l;){if(l===o){i=!0,o=s,a=n;break}if(l===a){i=!0,a=s,o=n;break}l=l.sibling}if(!i)throw Error(F(189))}}if(o.alternate!==a)throw Error(F(190))}if(o.tag!==3)throw Error(F(188));return o.stateNode.current===o?e:t}function af(e){return e=xv(e),e!==null?nf(e):null}function nf(e){if(e.tag===5||e.tag===6)return e;for(e=e.child;e!==null;){var t=nf(e);if(t!==null)return t;e=e.sibling}return null}var sf=dt.unstable_scheduleCallback,kh=dt.unstable_cancelCallback,kv=dt.unstable_shouldYield,Sv=dt.unstable_requestPaint,be=dt.unstable_now,jv=dt.unstable_getCurrentPriorityLevel,qc=dt.unstable_ImmediatePriority,lf=dt.unstable_UserBlockingPriority,ei=dt.unstable_NormalPriority,Cv=dt.unstable_LowPriority,df=dt.unstable_IdlePriority,Li=null,Yt=null;function Tv(e){if(Yt&&typeof Yt.onCommitFiberRoot=="function")try{Yt.onCommitFiberRoot(Li,e,void 0,(e.current.flags&128)===128)}catch{}}var Pt=Math.clz32?Math.clz32:Nv,Bv=Math.log,Wv=Math.LN2;function Nv(e){return e>>>=0,e===0?32:31-(Bv(e)/Wv|0)|0}var hs=64,ms=4194304;function sn(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function ti(e,t){var o=e.pendingLanes;if(o===0)return 0;var a=0,n=e.suspendedLanes,s=e.pingedLanes,i=o&268435455;if(i!==0){var l=i&~n;l!==0?a=sn(l):(s&=i,s!==0&&(a=sn(s)))}else i=o&~n,i!==0?a=sn(i):s!==0&&(a=sn(s));if(a===0)return 0;if(t!==0&&t!==a&&!(t&n)&&(n=a&-a,s=t&-t,n>=s||n===16&&(s&4194240)!==0))return t;if(a&4&&(a|=o&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=a;0<t;)o=31-Pt(t),n=1<<o,a|=e[o],t&=~n;return a}function Av(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Ev(e,t){for(var o=e.suspendedLanes,a=e.pingedLanes,n=e.expirationTimes,s=e.pendingLanes;0<s;){var i=31-Pt(s),l=1<<i,d=n[i];d===-1?(!(l&o)||l&a)&&(n[i]=Av(l,t)):d<=t&&(e.expiredLanes|=l),s&=~l}}function kd(e){return e=e.pendingLanes&-1073741825,e!==0?e:e&1073741824?1073741824:0}function cf(){var e=hs;
vendor: 4,186 bytes, line 37
37return hs<<=1,!(hs&4194240)&&(hs=64),e}function jl(e){for(var t=[],o=0;31>o;o++)t.push(e);return t}function Vn(e,t,o){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Pt(t),e[t]=o}function Fv(e,t){var o=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var a=e.eventTimes;for(e=e.expirationTimes;0<o;){var n=31-Pt(o),s=1<<n;t[n]=0,a[n]=-1,e[n]=-1,o&=~s}}function Pc(e,t){var o=e.entangledLanes|=t;for(e=e.entanglements;o;){var a=31-Pt(o),n=1<<a;n&t|e[a]&t&&(e[a]|=t),o&=~n}}var ae=0;function uf(e){return e&=-e,1<e?4<e?e&268435455?16:536870912:4:1}var hf,Rc,mf,pf,ff,Sd=!1,ps=[],Io=null,Ho=null,Oo=null,kn=new Map,Sn=new Map,No=[],qv="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function Sh(e,t){switch(e){case"focusin":case"focusout":Io=null;break;case"dragenter":case"dragleave":Ho=null;break;case"mouseover":case"mouseout":Oo=null;break;case"pointerover":case"pointerout":kn.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Sn.delete(t.pointerId)}}function Ya(e,t,o,a,n,s){return e===null||e.nativeEvent!==s?(e={blockedOn:t,domEventName:o,eventSystemFlags:a,nativeEvent:s,targetContainers:[n]},t!==null&&(t=Qn(t),t!==null&&Rc(t)),e):(e.eventSystemFlags|=a,t=e.targetContainers,n!==null&&t.indexOf(n)===-1&&t.push(n),e)}function Pv(e,t,o,a,n){switch(t){case"focusin":return Io=Ya(Io,e,t,o,a,n),!0;case"dragenter":return Ho=Ya(Ho,e,t,o,a,n),!0;case"mouseover":return Oo=Ya(Oo,e,t,o,a,n),!0;case"pointerover":var s=n.pointerId;return kn.set(s,Ya(kn.get(s)||null,e,t,o,a,n)),!0;case"gotpointercapture":return s=n.pointerId,Sn.set(s,Ya(Sn.get(s)||null,e,t,o,a,n)),!0}return!1}function gf(e){var t=mr(e.target);if(t!==null){var o=Pr(t);if(o!==null){if(t=o.tag,t===13){if(t=rf(o),t!==null){e.blockedOn=t,ff(e.priority,function(){mf(o)});return}}else if(t===3&&o.stateNode.current.memoizedState.isDehydrated){e.blockedOn=o.tag===3?o.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Ps(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var o=jd(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(o===null){o=e.nativeEvent;var a=new o.constructor(o.type,o);wd=a,o.target.dispatchEvent(a),wd=null}else return t=Qn(o),t!==null&&Rc(t),e.blockedOn=o,!1;t.shift()}return!0}function jh(e,t,o){Ps(e)&&o.delete(t)}function Rv(){Sd=!1,Io!==null&&Ps(Io)&&(Io=null),Ho!==null&&Ps(Ho)&&(Ho=null),Oo!==null&&Ps(Oo)&&(Oo=null),kn.forEach(jh),Sn.forEach(jh)}function Qa(e,t){e.blockedOn===t&&(e.blockedOn=null,Sd||(Sd=!0,dt.unstable_scheduleCallback(dt.unstable_NormalPriority,Rv)))}function jn(e){function t(n){return Qa(n,e)}if(0<ps.length){Qa(ps[0],e);for(var o=1;o<ps.length;o++){var a=ps[o];a.blockedOn===e&&(a.blockedOn=null)}}for(Io!==null&&Qa(Io,e),Ho!==null&&Qa(Ho,e),Oo!==null&&Qa(Oo,e),kn.forEach(t),Sn.forEach(t),o=0;o<No.length;o++)a=No[o],a.blockedOn===e&&(a.blockedOn=null);for(;0<No.length&&(o=No[0],o.blockedOn===null);)gf(o),o.blockedOn===null&&No.shift()}var da=go.ReactCurrentBatchConfig,oi=!0;function Lv(e,t,o,a){var n=ae,s=da.transition;da.transition=null;try{ae=1,Lc(e,t,o,a)}finally{ae=n,da.transition=s}}function Mv(e,t,o,a){var n=ae,s=da.transition;da.transition=null;try{ae=4,Lc(e,t,o,a)}finally{ae=n,da.transition=s}}function Lc(e,t,o,a){if(oi){var n=jd(e,t,o,a);if(n===null)Pl(e,t,a,ri,o),Sh(e,a);else if(Pv(n,e,t,o,a))a.stopPropagation();else if(Sh(e,a),t&4&&-1<qv.indexOf(e)){for(;n!==null;){var s=Qn(n);if(s!==null&&hf(s),s=jd(e,t,o,a),s===null&&Pl(e,t,a,ri,o),s===n)break;n=s}n!==null&&a.stopPropagation()}else Pl(e,t,a,null,o)}}var ri=null;function jd(e,t,o,a){if(ri=null,e=Fc(a),e=mr(e),e!==null)if(t=Pr(e),t===null)e=null;else if(o=t.tag,o===13){if(e=rf(t),e!==null)return e;e=null}else if(o===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return ri=e,null}
vendor: 8,695 bytes, line 37
37function yf(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(jv()){case qc:return 1;case lf:return 4;case ei:case Cv:return 16;case df:return 536870912;default:return 16}default:return 16}}var Lo=null,Mc=null,Rs=null;function wf(){if(Rs)return Rs;var e,t=Mc,o=t.length,a,n="value"in Lo?Lo.value:Lo.textContent,s=n.length;for(e=0;e<o&&t[e]===n[e];e++);var i=o-e;for(a=1;a<=i&&t[o-a]===n[s-a];a++);return Rs=n.slice(e,1<a?1-a:void 0)}function Ls(e){var t=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function fs(){return!0}function Ch(){return!1}function ht(e){function t(o,a,n,s,i){this._reactName=o,this._targetInst=n,this.type=a,this.nativeEvent=s,this.target=i,this.currentTarget=null;for(var l in e)e.hasOwnProperty(l)&&(o=e[l],this[l]=o?o(s):s[l]);return this.isDefaultPrevented=(s.defaultPrevented!=null?s.defaultPrevented:s.returnValue===!1)?fs:Ch,this.isPropagationStopped=Ch,this}return ge(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var o=this.nativeEvent;o&&(o.preventDefault?o.preventDefault():typeof o.returnValue!="unknown"&&(o.returnValue=!1),this.isDefaultPrevented=fs)},stopPropagation:function(){var o=this.nativeEvent;o&&(o.stopPropagation?o.stopPropagation():typeof o.cancelBubble!="unknown"&&(o.cancelBubble=!0),this.isPropagationStopped=fs)},persist:function(){},isPersistent:fs}),t}var Ra={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Dc=ht(Ra),Yn=ge({},Ra,{view:0,detail:0}),Dv=ht(Yn),Cl,Tl,Ka,Mi=ge({},Yn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Ic,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==Ka&&(Ka&&e.type==="mousemove"?(Cl=e.screenX-Ka.screenX,Tl=e.screenY-Ka.screenY):Tl=Cl=0,Ka=e),Cl)},movementY:function(e){return"movementY"in e?e.movementY:Tl}}),Th=ht(Mi),Iv=ge({},Mi,{dataTransfer:0}),Hv=ht(Iv),Ov=ge({},Yn,{relatedTarget:0}),Bl=ht(Ov),_v=ge({},Ra,{animationName:0,elapsedTime:0,pseudoElement:0}),Uv=ht(_v),$v=ge({},Ra,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),zv=ht($v),Gv=ge({},Ra,{data:0}),Bh=ht(Gv),Vv={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Yv={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Qv={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Kv(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=Qv[e])?!!t[e]:!1}function Ic(){return Kv}var Xv=ge({},Yn,{key:function(e){if(e.key){var t=Vv[e.key]||e.key;if(t!=="Unidentified")return t}return e.type==="keypress"?(e=Ls(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?Yv[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Ic,charCode:function(e){return e.type==="keypress"?Ls(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?Ls(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),Jv=ht(Xv),Zv=ge({},Mi,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Wh=ht(Zv),ex=ge({},Yn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Ic}),tx=ht(ex),ox=ge({},Ra,{propertyName:0,elapsedTime:0,pseudoElement:0}),rx=ht(ox),ax=ge({},Mi,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),nx=ht(ax),sx=[9,13,27,32],Hc=lo&&"CompositionEvent"in window,un=null;lo&&"documentMode"in document&&(un=document.documentMode);var ix=lo&&"TextEvent"in window&&!un,bf=lo&&(!Hc||un&&8<un&&11>=un),Nh=" ",Ah=!1;function vf(e,t){switch(e){case"keyup":return sx.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function xf(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Qr=!1;function lx(e,t){switch(e){case"compositionend":return xf(t);case"keypress":return t.which!==32?null:(Ah=!0,Nh);case"textInput":return e=t.data,e===Nh&&Ah?null:e;default:return null}}function dx(e,t){if(Qr)return e==="compositionend"||!Hc&&vf(e,t)?(e=wf(),Rs=Mc=Lo=null,Qr=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return bf&&t.locale!=="ko"?null:t.data;default:return null}}var cx={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Eh(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!cx[e.type]:t==="textarea"}function kf(e,t,o,a){Jp(a),t=ai(t,"onChange"),0<t.length&&(o=new Dc("onChange","change",null,o,a),e.push({event:o,listeners:t}))}var hn=null,Cn=null;function ux(e){qf(e,0)}function Di(e){var t=Jr(e);if(zp(t))return e}function hx(e,t){if(e==="change")return t}var Sf=!1;if(lo){var Wl;if(lo){var Nl="oninput"in document;if(!Nl){var Fh=document.createElement("div");Fh.setAttribute("oninput","return;"),Nl=typeof Fh.oninput=="function"}Wl=Nl}else Wl=!1;Sf=Wl&&(!document.documentMode||9<document.documentMode)}function qh(){hn&&(hn.detachEvent("onpropertychange",jf),Cn=hn=null)}function jf(e){if(e.propertyName==="value"&&Di(Cn)){var t=[];kf(t,Cn,e,Fc(e)),of(ux,t)}}function mx(e,t,o){e==="focusin"?(qh(),hn=t,Cn=o,hn.attachEvent("onpropertychange",jf)):e==="focusout"&&qh()}function px(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return Di(Cn)}function fx(e,t){if(e==="click")return Di(t)}function gx(e,t){if(e==="input"||e==="change")return Di(t)}function yx(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Lt=typeof Object.is=="function"?Object.is:yx;function Tn(e,t){if(Lt(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;var o=Object.keys(e),a=Object.keys(t);if(o.length!==a.length)return!1;for(a=0;a<o.length;a++){var n=o[a];if(!sd.call(t,n)||!Lt(e[n],t[n]))return!1}return!0}function Ph(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Rh(e,t){var o=Ph(e);e=0;for(var a;o;){if(o.nodeType===3){if(a=e+o.textContent.length,e<=t&&a>=t)return{node:o,offset:t-e};e=a}e:{for(;o;){if(o.nextSibling){o=o.nextSibling;break e}o=o.parentNode}o=void 0}o=Ph(o)}}function Cf(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Cf(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Tf(){for(var e=window,t=Xs();t instanceof e.HTMLIFrameElement;){try{var o=typeof t.contentWindow.location.href=="string"}catch{o=!1}
vendor: 5,506 bytes, line 37
37if(o)e=t.contentWindow;else break;t=Xs(e.document)}return t}function Oc(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function wx(e){var t=Tf(),o=e.focusedElem,a=e.selectionRange;if(t!==o&&o&&o.ownerDocument&&Cf(o.ownerDocument.documentElement,o)){if(a!==null&&Oc(o)){if(t=a.start,e=a.end,e===void 0&&(e=t),"selectionStart"in o)o.selectionStart=t,o.selectionEnd=Math.min(e,o.value.length);else if(e=(t=o.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var n=o.textContent.length,s=Math.min(a.start,n);a=a.end===void 0?s:Math.min(a.end,n),!e.extend&&s>a&&(n=a,a=s,s=n),n=Rh(o,s);var i=Rh(o,a);n&&i&&(e.rangeCount!==1||e.anchorNode!==n.node||e.anchorOffset!==n.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&(t=t.createRange(),t.setStart(n.node,n.offset),e.removeAllRanges(),s>a?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}}for(t=[],e=o;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof o.focus=="function"&&o.focus(),o=0;o<t.length;o++)e=t[o],e.element.scrollLeft=e.left,e.element.scrollTop=e.top}}var bx=lo&&"documentMode"in document&&11>=document.documentMode,Kr=null,Cd=null,mn=null,Td=!1;function Lh(e,t,o){var a=o.window===o?o.document:o.nodeType===9?o:o.ownerDocument;Td||Kr==null||Kr!==Xs(a)||(a=Kr,"selectionStart"in a&&Oc(a)?a={start:a.selectionStart,end:a.selectionEnd}:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection(),a={anchorNode:a.anchorNode,anchorOffset:a.anchorOffset,focusNode:a.focusNode,focusOffset:a.focusOffset}),mn&&Tn(mn,a)||(mn=a,a=ai(Cd,"onSelect"),0<a.length&&(t=new Dc("onSelect","select",null,t,o),e.push({event:t,listeners:a}),t.target=Kr)))}function gs(e,t){var o={};return o[e.toLowerCase()]=t.toLowerCase(),o["Webkit"+e]="webkit"+t,o["Moz"+e]="moz"+t,o}var Xr={animationend:gs("Animation","AnimationEnd"),animationiteration:gs("Animation","AnimationIteration"),animationstart:gs("Animation","AnimationStart"),transitionend:gs("Transition","TransitionEnd")},Al={},Bf={};lo&&(Bf=document.createElement("div").style,"AnimationEvent"in window||(delete Xr.animationend.animation,delete Xr.animationiteration.animation,delete Xr.animationstart.animation),"TransitionEvent"in window||delete Xr.transitionend.transition);function Ii(e){if(Al[e])return Al[e];if(!Xr[e])return e;var t=Xr[e],o;for(o in t)if(t.hasOwnProperty(o)&&o in Bf)return Al[e]=t[o];return e}var Wf=Ii("animationend"),Nf=Ii("animationiteration"),Af=Ii("animationstart"),Ef=Ii("transitionend"),Ff=new Map,Mh="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function or(e,t){Ff.set(e,t),qr(t,[e])}for(var El=0;El<Mh.length;El++){var Fl=Mh[El],vx=Fl.toLowerCase(),xx=Fl[0].toUpperCase()+Fl.slice(1);or(vx,"on"+xx)}or(Wf,"onAnimationEnd");or(Nf,"onAnimationIteration");or(Af,"onAnimationStart");or("dblclick","onDoubleClick");or("focusin","onFocus");or("focusout","onBlur");or(Ef,"onTransitionEnd");ja("onMouseEnter",["mouseout","mouseover"]);ja("onMouseLeave",["mouseout","mouseover"]);ja("onPointerEnter",["pointerout","pointerover"]);ja("onPointerLeave",["pointerout","pointerover"]);qr("onChange","change click focusin focusout input keydown keyup selectionchange".split(" "));qr("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));qr("onBeforeInput",["compositionend","keypress","textInput","paste"]);qr("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" "));qr("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" "));qr("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var ln="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),kx=new Set("cancel close invalid load scroll toggle".split(" ").concat(ln));function Dh(e,t,o){var a=e.type||"unknown-event";e.currentTarget=o,vv(a,t,void 0,e),e.currentTarget=null}function qf(e,t){t=(t&4)!==0;for(var o=0;o<e.length;o++){var a=e[o],n=a.event;a=a.listeners;e:{var s=void 0;if(t)for(var i=a.length-1;0<=i;i--){var l=a[i],d=l.instance,c=l.currentTarget;if(l=l.listener,d!==s&&n.isPropagationStopped())break e;Dh(n,l,c),s=d}else for(i=0;i<a.length;i++){if(l=a[i],d=l.instance,c=l.currentTarget,l=l.listener,d!==s&&n.isPropagationStopped())break e;Dh(n,l,c),s=d}}}if(Zs)throw e=xd,Zs=!1,xd=null,e}function de(e,t){var o=t[Ed];o===void 0&&(o=t[Ed]=new Set);var a=e+"__bubble";o.has(a)||(Pf(t,e,2,!1),o.add(a))}function ql(e,t,o){var a=0;t&&(a|=4),Pf(o,e,a,t)}var ys="_reactListening"+Math.random().toString(36).slice(2);
vendor: 4,224 bytes, line 37
37function Bn(e){if(!e[ys]){e[ys]=!0,Hp.forEach(function(o){o!=="selectionchange"&&(kx.has(o)||ql(o,!1,e),ql(o,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[ys]||(t[ys]=!0,ql("selectionchange",!1,t))}}function Pf(e,t,o,a){switch(yf(t)){case 1:var n=Lv;break;case 4:n=Mv;break;default:n=Lc}o=n.bind(null,t,o,e),n=void 0,!vd||t!=="touchstart"&&t!=="touchmove"&&t!=="wheel"||(n=!0),a?n!==void 0?e.addEventListener(t,o,{capture:!0,passive:n}):e.addEventListener(t,o,!0):n!==void 0?e.addEventListener(t,o,{passive:n}):e.addEventListener(t,o,!1)}function Pl(e,t,o,a,n){var s=a;if(!(t&1)&&!(t&2)&&a!==null)e:for(;;){if(a===null)return;var i=a.tag;if(i===3||i===4){var l=a.stateNode.containerInfo;if(l===n||l.nodeType===8&&l.parentNode===n)break;if(i===4)for(i=a.return;i!==null;){var d=i.tag;if((d===3||d===4)&&(d=i.stateNode.containerInfo,d===n||d.nodeType===8&&d.parentNode===n))return;i=i.return}for(;l!==null;){if(i=mr(l),i===null)return;if(d=i.tag,d===5||d===6){a=s=i;continue e}l=l.parentNode}}a=a.return}of(function(){var c=s,u=Fc(o),m=[];e:{var p=Ff.get(e);if(p!==void 0){var h=Dc,v=e;switch(e){case"keypress":if(Ls(o)===0)break e;case"keydown":case"keyup":h=Jv;break;case"focusin":v="focus",h=Bl;break;case"focusout":v="blur",h=Bl;break;case"beforeblur":case"afterblur":h=Bl;break;case"click":if(o.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":h=Th;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":h=Hv;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":h=tx;break;case Wf:case Nf:case Af:h=Uv;break;case Ef:h=rx;break;case"scroll":h=Dv;break;case"wheel":h=nx;break;case"copy":case"cut":case"paste":h=zv;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":h=Wh}var y=(t&4)!==0,x=!y&&e==="scroll",g=y?p!==null?p+"Capture":null:p;y=[];for(var f=c,w;f!==null;){w=f;var k=w.stateNode;if(w.tag===5&&k!==null&&(w=k,g!==null&&(k=xn(f,g),k!=null&&y.push(Wn(f,k,w)))),x)break;f=f.return}0<y.length&&(p=new h(p,v,null,o,u),m.push({event:p,listeners:y}))}}if(!(t&7)){e:{if(p=e==="mouseover"||e==="pointerover",h=e==="mouseout"||e==="pointerout",p&&o!==wd&&(v=o.relatedTarget||o.fromElement)&&(mr(v)||v[co]))break e;if((h||p)&&(p=u.window===u?u:(p=u.ownerDocument)?p.defaultView||p.parentWindow:window,h?(v=o.relatedTarget||o.toElement,h=c,v=v?mr(v):null,v!==null&&(x=Pr(v),v!==x||v.tag!==5&&v.tag!==6)&&(v=null)):(h=null,v=c),h!==v)){if(y=Th,k="onMouseLeave",g="onMouseEnter",f="mouse",(e==="pointerout"||e==="pointerover")&&(y=Wh,k="onPointerLeave",g="onPointerEnter",f="pointer"),x=h==null?p:Jr(h),w=v==null?p:Jr(v),p=new y(k,f+"leave",h,o,u),p.target=x,p.relatedTarget=w,k=null,mr(u)===c&&(y=new y(g,f+"enter",v,o,u),y.target=w,y.relatedTarget=x,k=y),x=k,h&&v)t:{for(y=h,g=v,f=0,w=y;w;w=zr(w))f++;for(w=0,k=g;k;k=zr(k))w++;for(;0<f-w;)y=zr(y),f--;for(;0<w-f;)g=zr(g),w--;for(;f--;){if(y===g||g!==null&&y===g.alternate)break t;y=zr(y),g=zr(g)}y=null}else y=null;h!==null&&Ih(m,p,h,y,!1),v!==null&&x!==null&&Ih(m,x,v,y,!0)}}e:{if(p=c?Jr(c):window,h=p.nodeName&&p.nodeName.toLowerCase(),h==="select"||h==="input"&&p.type==="file")var j=hx;else if(Eh(p))if(Sf)j=gx;else{j=px;var C=mx}else(h=p.nodeName)&&h.toLowerCase()==="input"&&(p.type==="checkbox"||p.type==="radio")&&(j=fx);if(j&&(j=j(e,c))){kf(m,j,o,u);break e}C&&C(e,p,c),e==="focusout"&&(C=p._wrapperState)&&C.controlled&&p.type==="number"&&md(p,"number",p.value)}switch(C=c?Jr(c):window,e){case"focusin":(Eh(C)||C.contentEditable==="true")&&(Kr=C,Cd=c,mn=null);break;case"focusout":mn=Cd=Kr=null;break;case"mousedown":Td=!0;break;case"contextmenu":case"mouseup":case"dragend":Td=!1,Lh(m,o,u);break;case"selectionchange":if(bx)break;case"keydown":case"keyup":Lh(m,o,u)}var T;if(Hc)e:{switch(e){case"compositionstart":var E="onCompositionStart";break e;case"compositionend":E="onCompositionEnd";break e;case"compositionupdate":E="onCompositionUpdate";break e}E=void 0}else Qr?vf(e,o)&&(E="onCompositionEnd"):e==="keydown"&&o.keyCode===229&&(E="onCompositionStart");
vendor: 4,685 bytes, lines 37-38
37E&&(bf&&o.locale!=="ko"&&(Qr||E!=="onCompositionStart"?E==="onCompositionEnd"&&Qr&&(T=wf()):(Lo=u,Mc="value"in Lo?Lo.value:Lo.textContent,Qr=!0)),C=ai(c,E),0<C.length&&(E=new Bh(E,e,null,o,u),m.push({event:E,listeners:C}),T?E.data=T:(T=xf(o),T!==null&&(E.data=T)))),(T=ix?lx(e,o):dx(e,o))&&(c=ai(c,"onBeforeInput"),0<c.length&&(u=new Bh("onBeforeInput","beforeinput",null,o,u),m.push({event:u,listeners:c}),u.data=T))}qf(m,t)})}function Wn(e,t,o){return{instance:e,listener:t,currentTarget:o}}function ai(e,t){for(var o=t+"Capture",a=[];e!==null;){var n=e,s=n.stateNode;n.tag===5&&s!==null&&(n=s,s=xn(e,o),s!=null&&a.unshift(Wn(e,s,n)),s=xn(e,t),s!=null&&a.push(Wn(e,s,n))),e=e.return}return a}function zr(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5);return e||null}function Ih(e,t,o,a,n){for(var s=t._reactName,i=[];o!==null&&o!==a;){var l=o,d=l.alternate,c=l.stateNode;if(d!==null&&d===a)break;l.tag===5&&c!==null&&(l=c,n?(d=xn(o,s),d!=null&&i.unshift(Wn(o,d,l))):n||(d=xn(o,s),d!=null&&i.push(Wn(o,d,l)))),o=o.return}i.length!==0&&e.push({event:t,listeners:i})}var Sx=/\r\n?/g,jx=/\u0000|\uFFFD/g;function Hh(e){return(typeof e=="string"?e:""+e).replace(Sx,` 38`).replace(jx,"")}function ws(e,t,o){if(t=Hh(t),Hh(e)!==t&&o)throw Error(F(425))}function ni(){}var Bd=null,Wd=null;function Nd(e,t){return e==="textarea"||e==="noscript"||typeof t.children=="string"||typeof t.children=="number"||typeof t.dangerouslySetInnerHTML=="object"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var Ad=typeof setTimeout=="function"?setTimeout:void 0,Cx=typeof clearTimeout=="function"?clearTimeout:void 0,Oh=typeof Promise=="function"?Promise:void 0,Tx=typeof queueMicrotask=="function"?queueMicrotask:typeof Oh<"u"?function(e){return Oh.resolve(null).then(e).catch(Bx)}:Ad;function Bx(e){setTimeout(function(){throw e})}function Rl(e,t){var o=t,a=0;do{var n=o.nextSibling;if(e.removeChild(o),n&&n.nodeType===8)if(o=n.data,o==="/$"){if(a===0){e.removeChild(n),jn(t);return}a--}else o!=="$"&&o!=="$?"&&o!=="$!"||a++;o=n}while(o);jn(t)}function _o(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t==="$"||t==="$!"||t==="$?")break;if(t==="/$")return null}}return e}function _h(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var o=e.data;if(o==="$"||o==="$!"||o==="$?"){if(t===0)return e;t--}else o==="/$"&&t++}e=e.previousSibling}return null}var La=Math.random().toString(36).slice(2),Gt="__reactFiber$"+La,Nn="__reactProps$"+La,co="__reactContainer$"+La,Ed="__reactEvents$"+La,Wx="__reactListeners$"+La,Nx="__reactHandles$"+La;function mr(e){var t=e[Gt];if(t)return t;for(var o=e.parentNode;o;){if(t=o[co]||o[Gt]){if(o=t.alternate,t.child!==null||o!==null&&o.child!==null)for(e=_h(e);e!==null;){if(o=e[Gt])return o;e=_h(e)}return t}e=o,o=e.parentNode}return null}function Qn(e){return e=e[Gt]||e[co],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function Jr(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(F(33))}function Hi(e){return e[Nn]||null}var Fd=[],Zr=-1;function rr(e){return{current:e}}function ce(e){0>Zr||(e.current=Fd[Zr],Fd[Zr]=null,Zr--)}function ie(e,t){Zr++,Fd[Zr]=e.current,e.current=t}var Qo={},He=rr(Qo),et=rr(!1),Tr=Qo;function Ca(e,t){var o=e.type.contextTypes;if(!o)return Qo;var a=e.stateNode;if(a&&a.__reactInternalMemoizedUnmaskedChildContext===t)return a.__reactInternalMemoizedMaskedChildContext;var n={},s;for(s in o)n[s]=t[s];return a&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=n),n}function tt(e){return e=e.childContextTypes,e!=null}function si(){ce(et),ce(He)}function Uh(e,t,o){if(He.current!==Qo)throw Error(F(168));ie(He,t),ie(et,o)}function Rf(e,t,o){var a=e.stateNode;if(t=t.childContextTypes,typeof a.getChildContext!="function")return o;a=a.getChildContext();for(var n in a)if(!(n in t))throw Error(F(108,mv(e)||"Unknown",n));return ge({},o,a)}function ii(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Qo,Tr=He.current,ie(He,e),ie(et,et.current),!0}function $h(e,t,o){var a=e.stateNode;if(!a)throw Error(F(169));o?(e=Rf(e,t,Tr),a.__reactInternalMemoizedMergedChildContext=e,ce(et),ce(He),ie(He,e)):ce(et),ie(et,o)}var ro=null,Oi=!1,Ll=!1;function Lf(e){ro===null?ro=[e]:ro.push(e)}function Ax(e){Oi=!0,Lf(e)}function ar(){if(!Ll&&ro!==null){Ll=!0;var e=0,t=ae;try{var o=ro;for(ae=1;e<o.length;e++){var a=o[e];do a=a(!0);while(a!==null)}ro=null,Oi=!1}catch(n){throw ro!==null&&(ro=ro.slice(e+1)),sf(qc,ar),n}finally{ae=t,Ll=!1}}return null}var ea=[],ta=0,li=null,di=0,gt=[],yt=0,Br=null,no=1,so="";function ur(e,t){ea[ta++]=di,ea[ta++]=li,li=e,di=t}
vendor: 12,994 bytes, line 38
38function Mf(e,t,o){gt[yt++]=no,gt[yt++]=so,gt[yt++]=Br,Br=e;var a=no;e=so;var n=32-Pt(a)-1;a&=~(1<<n),o+=1;var s=32-Pt(t)+n;if(30<s){var i=n-n%5;s=(a&(1<<i)-1).toString(32),a>>=i,n-=i,no=1<<32-Pt(t)+n|o<<n|a,so=s+e}else no=1<<s|o<<n|a,so=e}function _c(e){e.return!==null&&(ur(e,1),Mf(e,1,0))}function Uc(e){for(;e===li;)li=ea[--ta],ea[ta]=null,di=ea[--ta],ea[ta]=null;for(;e===Br;)Br=gt[--yt],gt[yt]=null,so=gt[--yt],gt[yt]=null,no=gt[--yt],gt[yt]=null}var it=null,st=null,he=!1,Ft=null;function Df(e,t){var o=wt(5,null,null,0);o.elementType="DELETED",o.stateNode=t,o.return=e,t=e.deletions,t===null?(e.deletions=[o],e.flags|=16):t.push(o)}function zh(e,t){switch(e.tag){case 5:var o=e.type;return t=t.nodeType!==1||o.toLowerCase()!==t.nodeName.toLowerCase()?null:t,t!==null?(e.stateNode=t,it=e,st=_o(t.firstChild),!0):!1;case 6:return t=e.pendingProps===""||t.nodeType!==3?null:t,t!==null?(e.stateNode=t,it=e,st=null,!0):!1;case 13:return t=t.nodeType!==8?null:t,t!==null?(o=Br!==null?{id:no,overflow:so}:null,e.memoizedState={dehydrated:t,treeContext:o,retryLane:1073741824},o=wt(18,null,null,0),o.stateNode=t,o.return=e,e.child=o,it=e,st=null,!0):!1;default:return!1}}function qd(e){return(e.mode&1)!==0&&(e.flags&128)===0}function Pd(e){if(he){var t=st;if(t){var o=t;if(!zh(e,t)){if(qd(e))throw Error(F(418));t=_o(o.nextSibling);var a=it;t&&zh(e,t)?Df(a,o):(e.flags=e.flags&-4097|2,he=!1,it=e)}}else{if(qd(e))throw Error(F(418));e.flags=e.flags&-4097|2,he=!1,it=e}}}function Gh(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;it=e}function bs(e){if(e!==it)return!1;if(!he)return Gh(e),he=!0,!1;var t;if((t=e.tag!==3)&&!(t=e.tag!==5)&&(t=e.type,t=t!=="head"&&t!=="body"&&!Nd(e.type,e.memoizedProps)),t&&(t=st)){if(qd(e))throw If(),Error(F(418));for(;t;)Df(e,t),t=_o(t.nextSibling)}if(Gh(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(F(317));e:{for(e=e.nextSibling,t=0;e;){if(e.nodeType===8){var o=e.data;if(o==="/$"){if(t===0){st=_o(e.nextSibling);break e}t--}else o!=="$"&&o!=="$!"&&o!=="$?"||t++}e=e.nextSibling}st=null}}else st=it?_o(e.stateNode.nextSibling):null;return!0}function If(){for(var e=st;e;)e=_o(e.nextSibling)}function Ta(){st=it=null,he=!1}function $c(e){Ft===null?Ft=[e]:Ft.push(e)}var Ex=go.ReactCurrentBatchConfig;function Xa(e,t,o){if(e=o.ref,e!==null&&typeof e!="function"&&typeof e!="object"){if(o._owner){if(o=o._owner,o){if(o.tag!==1)throw Error(F(309));var a=o.stateNode}if(!a)throw Error(F(147,e));var n=a,s=""+e;return t!==null&&t.ref!==null&&typeof t.ref=="function"&&t.ref._stringRef===s?t.ref:(t=function(i){var l=n.refs;i===null?delete l[s]:l[s]=i},t._stringRef=s,t)}if(typeof e!="string")throw Error(F(284));if(!o._owner)throw Error(F(290,e))}return e}function vs(e,t){throw e=Object.prototype.toString.call(t),Error(F(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function Vh(e){var t=e._init;return t(e._payload)}function Hf(e){function t(g,f){if(e){var w=g.deletions;w===null?(g.deletions=[f],g.flags|=16):w.push(f)}}function o(g,f){if(!e)return null;for(;f!==null;)t(g,f),f=f.sibling;return null}function a(g,f){for(g=new Map;f!==null;)f.key!==null?g.set(f.key,f):g.set(f.index,f),f=f.sibling;return g}function n(g,f){return g=Go(g,f),g.index=0,g.sibling=null,g}function s(g,f,w){return g.index=w,e?(w=g.alternate,w!==null?(w=w.index,w<f?(g.flags|=2,f):w):(g.flags|=2,f)):(g.flags|=1048576,f)}function i(g){return e&&g.alternate===null&&(g.flags|=2),g}function l(g,f,w,k){return f===null||f.tag!==6?(f=Ul(w,g.mode,k),f.return=g,f):(f=n(f,w),f.return=g,f)}function d(g,f,w,k){var j=w.type;return j===Yr?u(g,f,w.props.children,k,w.key):f!==null&&(f.elementType===j||typeof j=="object"&&j!==null&&j.$$typeof===Bo&&Vh(j)===f.type)?(k=n(f,w.props),k.ref=Xa(g,f,w),k.return=g,k):(k=Us(w.type,w.key,w.props,null,g.mode,k),k.ref=Xa(g,f,w),k.return=g,k)}function c(g,f,w,k){return f===null||f.tag!==4||f.stateNode.containerInfo!==w.containerInfo||f.stateNode.implementation!==w.implementation?(f=$l(w,g.mode,k),f.return=g,f):(f=n(f,w.children||[]),f.return=g,f)}function u(g,f,w,k,j){return f===null||f.tag!==7?(f=Cr(w,g.mode,k,j),f.return=g,f):(f=n(f,w),f.return=g,f)}function m(g,f,w){if(typeof f=="string"&&f!==""||typeof f=="number")return f=Ul(""+f,g.mode,w),f.return=g,f;if(typeof f=="object"&&f!==null){switch(f.$$typeof){case ds:return w=Us(f.type,f.key,f.props,null,g.mode,w),w.ref=Xa(g,null,f),w.return=g,w;case Vr:return f=$l(f,g.mode,w),f.return=g,f;case Bo:var k=f._init;return m(g,k(f._payload),w)}if(nn(f)||Ga(f))return f=Cr(f,g.mode,w,null),f.return=g,f;vs(g,f)}return null}function p(g,f,w,k){var j=f!==null?f.key:null;if(typeof w=="string"&&w!==""||typeof w=="number")return j!==null?null:l(g,f,""+w,k);if(typeof w=="object"&&w!==null){switch(w.$$typeof){case ds:return w.key===j?d(g,f,w,k):null;case Vr:return w.key===j?c(g,f,w,k):null;case Bo:return j=w._init,p(g,f,j(w._payload),k)}if(nn(w)||Ga(w))return j!==null?null:u(g,f,w,k,null);vs(g,w)}return null}function h(g,f,w,k,j){if(typeof k=="string"&&k!==""||typeof k=="number")return g=g.get(w)||null,l(f,g,""+k,j);if(typeof k=="object"&&k!==null){switch(k.$$typeof){case ds:return g=g.get(k.key===null?w:k.key)||null,d(f,g,k,j);case Vr:return g=g.get(k.key===null?w:k.key)||null,c(f,g,k,j);case Bo:var C=k._init;return h(g,f,w,C(k._payload),j)}if(nn(k)||Ga(k))return g=g.get(w)||null,u(f,g,k,j,null);vs(f,k)}return null}function v(g,f,w,k){for(var j=null,C=null,T=f,E=f=0,R=null;T!==null&&E<w.length;E++){T.index>E?(R=T,T=null):R=T.sibling;var P=p(g,T,w[E],k);if(P===null){T===null&&(T=R);break}e&&T&&P.alternate===null&&t(g,T),f=s(P,f,E),C===null?j=P:C.sibling=P,C=P,T=R}if(E===w.length)return o(g,T),he&&ur(g,E),j;if(T===null){for(;E<w.length;E++)T=m(g,w[E],k),T!==null&&(f=s(T,f,E),C===null?j=T:C.sibling=T,C=T);return he&&ur(g,E),j}for(T=a(g,T);E<w.length;E++)R=h(T,g,E,w[E],k),R!==null&&(e&&R.alternate!==null&&T.delete(R.key===null?E:R.key),f=s(R,f,E),C===null?j=R:C.sibling=R,C=R);return e&&T.forEach(function(_){return t(g,_)}),he&&ur(g,E),j}function y(g,f,w,k){var j=Ga(w);if(typeof j!="function")throw Error(F(150));if(w=j.call(w),w==null)throw Error(F(151));for(var C=j=null,T=f,E=f=0,R=null,P=w.next();T!==null&&!P.done;E++,P=w.next()){T.index>E?(R=T,T=null):R=T.sibling;var _=p(g,T,P.value,k);if(_===null){T===null&&(T=R);break}e&&T&&_.alternate===null&&t(g,T),f=s(_,f,E),C===null?j=_:C.sibling=_,C=_,T=R}if(P.done)return o(g,T),he&&ur(g,E),j;if(T===null){for(;!P.done;E++,P=w.next())P=m(g,P.value,k),P!==null&&(f=s(P,f,E),C===null?j=P:C.sibling=P,C=P);return he&&ur(g,E),j}for(T=a(g,T);!P.done;E++,P=w.next())P=h(T,g,E,P.value,k),P!==null&&(e&&P.alternate!==null&&T.delete(P.key===null?E:P.key),f=s(P,f,E),C===null?j=P:C.sibling=P,C=P);return e&&T.forEach(function(I){return t(g,I)}),he&&ur(g,E),j}function x(g,f,w,k){if(typeof w=="object"&&w!==null&&w.type===Yr&&w.key===null&&(w=w.props.children),typeof w=="object"&&w!==null){switch(w.$$typeof){case ds:e:{for(var j=w.key,C=f;C!==null;){if(C.key===j){if(j=w.type,j===Yr){if(C.tag===7){o(g,C.sibling),f=n(C,w.props.children),f.return=g,g=f;break e}}else if(C.elementType===j||typeof j=="object"&&j!==null&&j.$$typeof===Bo&&Vh(j)===C.type){o(g,C.sibling),f=n(C,w.props),f.ref=Xa(g,C,w),f.return=g,g=f;break e}o(g,C);break}else t(g,C);C=C.sibling}w.type===Yr?(f=Cr(w.props.children,g.mode,k,w.key),f.return=g,g=f):(k=Us(w.type,w.key,w.props,null,g.mode,k),k.ref=Xa(g,f,w),k.return=g,g=k)}return i(g);case Vr:e:{for(C=w.key;f!==null;){if(f.key===C)if(f.tag===4&&f.stateNode.containerInfo===w.containerInfo&&f.stateNode.implementation===w.implementation){o(g,f.sibling),f=n(f,w.children||[]),f.return=g,g=f;break e}else{o(g,f);break}else t(g,f);f=f.sibling}f=$l(w,g.mode,k),f.return=g,g=f}return i(g);case Bo:return C=w._init,x(g,f,C(w._payload),k)}if(nn(w))return v(g,f,w,k);if(Ga(w))return y(g,f,w,k);vs(g,w)}return typeof w=="string"&&w!==""||typeof w=="number"?(w=""+w,f!==null&&f.tag===6?(o(g,f.sibling),f=n(f,w),f.return=g,g=f):(o(g,f),f=Ul(w,g.mode,k),f.return=g,g=f),i(g)):o(g,f)}return x}var Ba=Hf(!0),Of=Hf(!1),ci=rr(null),ui=null,oa=null,zc=null;function Gc(){zc=oa=ui=null}function Vc(e){var t=ci.current;ce(ci),e._currentValue=t}function Rd(e,t,o){for(;e!==null;){var a=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,a!==null&&(a.childLanes|=t)):a!==null&&(a.childLanes&t)!==t&&(a.childLanes|=t),e===o)break;e=e.return}}function ca(e,t){ui=e,zc=oa=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(Ze=!0),e.firstContext=null)}function vt(e){var t=e._currentValue;if(zc!==e)if(e={context:e,memoizedValue:t,next:null},oa===null){if(ui===null)throw Error(F(308));oa=e,ui.dependencies={lanes:0,firstContext:e}}else oa=oa.next=e;return t}var pr=null;function Yc(e){pr===null?pr=[e]:pr.push(e)}function _f(e,t,o,a){var n=t.interleaved;return n===null?(o.next=o,Yc(t)):(o.next=n.next,n.next=o),t.interleaved=o,uo(e,a)}function uo(e,t){e.lanes|=t;var o=e.alternate;for(o!==null&&(o.lanes|=t),o=e,e=e.return;e!==null;)e.childLanes|=t,o=e.alternate,o!==null&&(o.childLanes|=t),o=e,e=e.return;return o.tag===3?o.stateNode:null}var Wo=!1;function Qc(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Uf(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function io(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Uo(e,t,o){var a=e.updateQueue;if(a===null)return null;if(a=a.shared,te&2){var n=a.pending;return n===null?t.next=t:(t.next=n.next,n.next=t),a.pending=t,uo(e,o)}return n=a.interleaved,n===null?(t.next=t,Yc(a)):(t.next=n.next,n.next=t),a.interleaved=t,uo(e,o)}function Ms(e,t,o){if(t=t.updateQueue,t!==null&&(t=t.shared,(o&4194240)!==0)){var a=t.lanes;a&=e.pendingLanes,o|=a,t.lanes=o,Pc(e,o)}}function Yh(e,t){var o=e.updateQueue,a=e.alternate;if(a!==null&&(a=a.updateQueue,o===a)){var n=null,s=null;if(o=o.firstBaseUpdate,o!==null){do{var i={eventTime:o.eventTime,lane:o.lane,tag:o.tag,payload:o.payload,callback:o.callback,next:null};s===null?n=s=i:s=s.next=i,o=o.next}while(o!==null);s===null?n=s=t:s=s.next=t}else n=s=t;o={baseState:a.baseState,firstBaseUpdate:n,lastBaseUpdate:s,shared:a.shared,effects:a.effects},e.updateQueue=o;return}e=o.lastBaseUpdate,e===null?o.firstBaseUpdate=t:e.next=t,o.lastBaseUpdate=t}function hi(e,t,o,a){var n=e.updateQueue;Wo=!1;var s=n.firstBaseUpdate,i=n.lastBaseUpdate,l=n.shared.pending;if(l!==null){n.shared.pending=null;var d=l,c=d.next;d.next=null,i===null?s=c:i.next=c,i=d;var u=e.alternate;u!==null&&(u=u.updateQueue,l=u.lastBaseUpdate,l!==i&&(l===null?u.firstBaseUpdate=c:l.next=c,u.lastBaseUpdate=d))}if(s!==null){var m=n.baseState;i=0,u=c=d=null,l=s;do{var p=l.lane,h=l.eventTime;if((a&p)===p){u!==null&&(u=u.next={eventTime:h,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var v=e,y=l;switch(p=t,h=o,y.tag){case 1:if(v=y.payload,typeof v=="function"){m=v.call(h,m,p);break e}m=v;break e;case 3:v.flags=v.flags&-65537|128;case 0:if(v=y.payload,p=typeof v=="function"?v.call(h,m,p):v,p==null)break e;m=ge({},m,p);break e;case 2:Wo=!0}}l.callback!==null&&l.lane!==0&&(e.flags|=64,p=n.effects,p===null?n.effects=[l]:p.push(l))}else h={eventTime:h,lane:p,tag:l.tag,payload:l.payload,callback:l.callback,next:null},u===null?(c=u=h,d=m):u=u.next=h,i|=p;if(l=l.next,l===null){if(l=n.shared.pending,l===null)break;p=l,l=p.next,p.next=null,n.lastBaseUpdate=p,n.shared.pending=null}}while(!0);if(u===null&&(d=m),n.baseState=d,n.firstBaseUpdate=c,n.lastBaseUpdate=u,t=n.shared.interleaved,t!==null){n=t;do i|=n.lane,n=n.next;while(n!==t)}else s===null&&(n.shared.lanes=0);Nr|=i,e.lanes=i,e.memoizedState=m}}function Qh(e,t,o){if(e=t.effects,t.effects=null,e!==null)for(t=0;t<e.length;t++){var a=e[t],n=a.callback;if(n!==null){if(a.callback=null,a=o,typeof n!="function")throw Error(F(191,n));n.call(a)}}}var Kn={},Qt=rr(Kn),An=rr(Kn),En=rr(Kn);function fr(e){if(e===Kn)throw Error(F(174));return e}function Kc(e,t){switch(ie(En,t),ie(An,e),ie(Qt,Kn),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:fd(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=fd(t,e)}ce(Qt),ie(Qt,t)}function Wa(){ce(Qt),ce(An),ce(En)}function $f(e){fr(En.current);var t=fr(Qt.current),o=fd(t,e.type);t!==o&&(ie(An,e),ie(Qt,o))}function Xc(e){An.current===e&&(ce(Qt),ce(An))}var pe=rr(0);function mi(e){for(var t=e;t!==null;){if(t.tag===13){var o=t.memoizedState;if(o!==null&&(o=o.dehydrated,o===null||o.data==="$?"||o.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Ml=[];
vendor: 7,103 bytes, line 38
38function Jc(){for(var e=0;e<Ml.length;e++)Ml[e]._workInProgressVersionPrimary=null;Ml.length=0}var Ds=go.ReactCurrentDispatcher,Dl=go.ReactCurrentBatchConfig,Wr=0,fe=null,je=null,Ne=null,pi=!1,pn=!1,Fn=0,Fx=0;function Le(){throw Error(F(321))}function Zc(e,t){if(t===null)return!1;for(var o=0;o<t.length&&o<e.length;o++)if(!Lt(e[o],t[o]))return!1;return!0}function eu(e,t,o,a,n,s){if(Wr=s,fe=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,Ds.current=e===null||e.memoizedState===null?Lx:Mx,e=o(a,n),pn){s=0;do{if(pn=!1,Fn=0,25<=s)throw Error(F(301));s+=1,Ne=je=null,t.updateQueue=null,Ds.current=Dx,e=o(a,n)}while(pn)}if(Ds.current=fi,t=je!==null&&je.next!==null,Wr=0,Ne=je=fe=null,pi=!1,t)throw Error(F(300));return e}function tu(){var e=Fn!==0;return Fn=0,e}function _t(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Ne===null?fe.memoizedState=Ne=e:Ne=Ne.next=e,Ne}function xt(){if(je===null){var e=fe.alternate;e=e!==null?e.memoizedState:null}else e=je.next;var t=Ne===null?fe.memoizedState:Ne.next;if(t!==null)Ne=t,je=e;else{if(e===null)throw Error(F(310));je=e,e={memoizedState:je.memoizedState,baseState:je.baseState,baseQueue:je.baseQueue,queue:je.queue,next:null},Ne===null?fe.memoizedState=Ne=e:Ne=Ne.next=e}return Ne}function qn(e,t){return typeof t=="function"?t(e):t}function Il(e){var t=xt(),o=t.queue;if(o===null)throw Error(F(311));o.lastRenderedReducer=e;var a=je,n=a.baseQueue,s=o.pending;if(s!==null){if(n!==null){var i=n.next;n.next=s.next,s.next=i}a.baseQueue=n=s,o.pending=null}if(n!==null){s=n.next,a=a.baseState;var l=i=null,d=null,c=s;do{var u=c.lane;if((Wr&u)===u)d!==null&&(d=d.next={lane:0,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null}),a=c.hasEagerState?c.eagerState:e(a,c.action);else{var m={lane:u,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null};d===null?(l=d=m,i=a):d=d.next=m,fe.lanes|=u,Nr|=u}c=c.next}while(c!==null&&c!==s);d===null?i=a:d.next=l,Lt(a,t.memoizedState)||(Ze=!0),t.memoizedState=a,t.baseState=i,t.baseQueue=d,o.lastRenderedState=a}if(e=o.interleaved,e!==null){n=e;do s=n.lane,fe.lanes|=s,Nr|=s,n=n.next;while(n!==e)}else n===null&&(o.lanes=0);return[t.memoizedState,o.dispatch]}function Hl(e){var t=xt(),o=t.queue;if(o===null)throw Error(F(311));o.lastRenderedReducer=e;var a=o.dispatch,n=o.pending,s=t.memoizedState;if(n!==null){o.pending=null;var i=n=n.next;do s=e(s,i.action),i=i.next;while(i!==n);Lt(s,t.memoizedState)||(Ze=!0),t.memoizedState=s,t.baseQueue===null&&(t.baseState=s),o.lastRenderedState=s}return[s,a]}function zf(){}function Gf(e,t){var o=fe,a=xt(),n=t(),s=!Lt(a.memoizedState,n);if(s&&(a.memoizedState=n,Ze=!0),a=a.queue,ou(Qf.bind(null,o,a,e),[e]),a.getSnapshot!==t||s||Ne!==null&&Ne.memoizedState.tag&1){if(o.flags|=2048,Pn(9,Yf.bind(null,o,a,n,t),void 0,null),Ae===null)throw Error(F(349));Wr&30||Vf(o,t,n)}return n}function Vf(e,t,o){e.flags|=16384,e={getSnapshot:t,value:o},t=fe.updateQueue,t===null?(t={lastEffect:null,stores:null},fe.updateQueue=t,t.stores=[e]):(o=t.stores,o===null?t.stores=[e]:o.push(e))}function Yf(e,t,o,a){t.value=o,t.getSnapshot=a,Kf(t)&&Xf(e)}function Qf(e,t,o){return o(function(){Kf(t)&&Xf(e)})}function Kf(e){var t=e.getSnapshot;e=e.value;try{var o=t();return!Lt(e,o)}catch{return!0}}function Xf(e){var t=uo(e,1);t!==null&&Rt(t,e,1,-1)}function Kh(e){var t=_t();return typeof e=="function"&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:qn,lastRenderedState:e},t.queue=e,e=e.dispatch=Rx.bind(null,fe,e),[t.memoizedState,e]}function Pn(e,t,o,a){return e={tag:e,create:t,destroy:o,deps:a,next:null},t=fe.updateQueue,t===null?(t={lastEffect:null,stores:null},fe.updateQueue=t,t.lastEffect=e.next=e):(o=t.lastEffect,o===null?t.lastEffect=e.next=e:(a=o.next,o.next=e,e.next=a,t.lastEffect=e)),e}function Jf(){return xt().memoizedState}function Is(e,t,o,a){var n=_t();fe.flags|=e,n.memoizedState=Pn(1|t,o,void 0,a===void 0?null:a)}function _i(e,t,o,a){var n=xt();a=a===void 0?null:a;var s=void 0;if(je!==null){var i=je.memoizedState;if(s=i.destroy,a!==null&&Zc(a,i.deps)){n.memoizedState=Pn(t,o,s,a);return}}fe.flags|=e,n.memoizedState=Pn(1|t,o,s,a)}function Xh(e,t){return Is(8390656,8,e,t)}function ou(e,t){return _i(2048,8,e,t)}function Zf(e,t){return _i(4,2,e,t)}function eg(e,t){return _i(4,4,e,t)}function tg(e,t){if(typeof t=="function")return e=e(),t(e),function(){t(null)};if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function og(e,t,o){return o=o!=null?o.concat([e]):null,_i(4,4,tg.bind(null,t,e),o)}function ru(){}function rg(e,t){var o=xt();t=t===void 0?null:t;var a=o.memoizedState;return a!==null&&t!==null&&Zc(t,a[1])?a[0]:(o.memoizedState=[e,t],e)}function ag(e,t){var o=xt();t=t===void 0?null:t;var a=o.memoizedState;return a!==null&&t!==null&&Zc(t,a[1])?a[0]:(e=e(),o.memoizedState=[e,t],e)}function ng(e,t,o){return Wr&21?(Lt(o,t)||(o=cf(),fe.lanes|=o,Nr|=o,e.baseState=!0),t):(e.baseState&&(e.baseState=!1,Ze=!0),e.memoizedState=o)}function qx(e,t){var o=ae;ae=o!==0&&4>o?o:4,e(!0);var a=Dl.transition;Dl.transition={};try{e(!1),t()}finally{ae=o,Dl.transition=a}}function sg(){return xt().memoizedState}function Px(e,t,o){var a=zo(e);if(o={lane:a,action:o,hasEagerState:!1,eagerState:null,next:null},ig(e))lg(t,o);else if(o=_f(e,t,o,a),o!==null){var n=$e();Rt(o,e,a,n),dg(o,t,a)}}function Rx(e,t,o){var a=zo(e),n={lane:a,action:o,hasEagerState:!1,eagerState:null,next:null};if(ig(e))lg(t,n);else{var s=e.alternate;if(e.lanes===0&&(s===null||s.lanes===0)&&(s=t.lastRenderedReducer,s!==null))try{var i=t.lastRenderedState,l=s(i,o);if(n.hasEagerState=!0,n.eagerState=l,Lt(l,i)){var d=t.interleaved;d===null?(n.next=n,Yc(t)):(n.next=d.next,d.next=n),t.interleaved=n;return}}catch{}finally{}o=_f(e,t,n,a),o!==null&&(n=$e(),Rt(o,e,a,n),dg(o,t,a))}}function ig(e){var t=e.alternate;return e===fe||t!==null&&t===fe}function lg(e,t){pn=pi=!0;var o=e.pending;o===null?t.next=t:(t.next=o.next,o.next=t),e.pending=t}function dg(e,t,o){if(o&4194240){var a=t.lanes;a&=e.pendingLanes,o|=a,t.lanes=o,Pc(e,o)}}var fi={readContext:vt,useCallback:Le,useContext:Le,useEffect:Le,useImperativeHandle:Le,useInsertionEffect:Le,useLayoutEffect:Le,useMemo:Le,useReducer:Le,useRef:Le,useState:Le,useDebugValue:Le,useDeferredValue:Le,useTransition:Le,useMutableSource:Le,useSyncExternalStore:Le,useId:Le,unstable_isNewReconciler:!1},Lx={readContext:vt,useCallback:function(e,t){return _t().memoizedState=[e,t===void 0?null:t],e},useContext:vt,useEffect:Xh,useImperativeHandle:function(e,t,o){return o=o!=null?o.concat([e]):null,Is(4194308,4,tg.bind(null,t,e),o)},useLayoutEffect:function(e,t){return Is(4194308,4,e,t)},useInsertionEffect:function(e,t){return Is(4,2,e,t)},useMemo:function(e,t){var o=_t();return t=t===void 0?null:t,e=e(),o.memoizedState=[e,t],e},useReducer:function(e,t,o){var a=_t();return t=o!==void 0?o(t):t,a.memoizedState=a.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},a.queue=e,e=e.dispatch=Px.bind(null,fe,e),[a.memoizedState,e]}
vendor: 5,346 bytes, lines 38-40
38,useRef:function(e){var t=_t();return e={current:e},t.memoizedState=e},useState:Kh,useDebugValue:ru,useDeferredValue:function(e){return _t().memoizedState=e},useTransition:function(){var e=Kh(!1),t=e[0];return e=qx.bind(null,e[1]),_t().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,o){var a=fe,n=_t();if(he){if(o===void 0)throw Error(F(407));o=o()}else{if(o=t(),Ae===null)throw Error(F(349));Wr&30||Vf(a,t,o)}n.memoizedState=o;var s={value:o,getSnapshot:t};return n.queue=s,Xh(Qf.bind(null,a,s,e),[e]),a.flags|=2048,Pn(9,Yf.bind(null,a,s,o,t),void 0,null),o},useId:function(){var e=_t(),t=Ae.identifierPrefix;if(he){var o=so,a=no;o=(a&~(1<<32-Pt(a)-1)).toString(32)+o,t=":"+t+"R"+o,o=Fn++,0<o&&(t+="H"+o.toString(32)),t+=":"}else o=Fx++,t=":"+t+"r"+o.toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},Mx={readContext:vt,useCallback:rg,useContext:vt,useEffect:ou,useImperativeHandle:og,useInsertionEffect:Zf,useLayoutEffect:eg,useMemo:ag,useReducer:Il,useRef:Jf,useState:function(){return Il(qn)},useDebugValue:ru,useDeferredValue:function(e){var t=xt();return ng(t,je.memoizedState,e)},useTransition:function(){var e=Il(qn)[0],t=xt().memoizedState;return[e,t]},useMutableSource:zf,useSyncExternalStore:Gf,useId:sg,unstable_isNewReconciler:!1},Dx={readContext:vt,useCallback:rg,useContext:vt,useEffect:ou,useImperativeHandle:og,useInsertionEffect:Zf,useLayoutEffect:eg,useMemo:ag,useReducer:Hl,useRef:Jf,useState:function(){return Hl(qn)},useDebugValue:ru,useDeferredValue:function(e){var t=xt();return je===null?t.memoizedState=e:ng(t,je.memoizedState,e)},useTransition:function(){var e=Hl(qn)[0],t=xt().memoizedState;return[e,t]},useMutableSource:zf,useSyncExternalStore:Gf,useId:sg,unstable_isNewReconciler:!1};function Bt(e,t){if(e&&e.defaultProps){t=ge({},t),e=e.defaultProps;for(var o in e)t[o]===void 0&&(t[o]=e[o]);return t}return t}function Ld(e,t,o,a){t=e.memoizedState,o=o(a,t),o=o==null?t:ge({},t,o),e.memoizedState=o,e.lanes===0&&(e.updateQueue.baseState=o)}var Ui={isMounted:function(e){return(e=e._reactInternals)?Pr(e)===e:!1},enqueueSetState:function(e,t,o){e=e._reactInternals;var a=$e(),n=zo(e),s=io(a,n);s.payload=t,o!=null&&(s.callback=o),t=Uo(e,s,n),t!==null&&(Rt(t,e,n,a),Ms(t,e,n))},enqueueReplaceState:function(e,t,o){e=e._reactInternals;var a=$e(),n=zo(e),s=io(a,n);s.tag=1,s.payload=t,o!=null&&(s.callback=o),t=Uo(e,s,n),t!==null&&(Rt(t,e,n,a),Ms(t,e,n))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var o=$e(),a=zo(e),n=io(o,a);n.tag=2,t!=null&&(n.callback=t),t=Uo(e,n,a),t!==null&&(Rt(t,e,a,o),Ms(t,e,a))}};function Jh(e,t,o,a,n,s,i){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(a,s,i):t.prototype&&t.prototype.isPureReactComponent?!Tn(o,a)||!Tn(n,s):!0}function cg(e,t,o){var a=!1,n=Qo,s=t.contextType;return typeof s=="object"&&s!==null?s=vt(s):(n=tt(t)?Tr:He.current,a=t.contextTypes,s=(a=a!=null)?Ca(e,n):Qo),t=new t(o,s),e.memoizedState=t.state!==null&&t.state!==void 0?t.state:null,t.updater=Ui,e.stateNode=t,t._reactInternals=e,a&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=n,e.__reactInternalMemoizedMaskedChildContext=s),t}function Zh(e,t,o,a){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(o,a),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(o,a),t.state!==e&&Ui.enqueueReplaceState(t,t.state,null)}function Md(e,t,o,a){var n=e.stateNode;n.props=o,n.state=e.memoizedState,n.refs={},Qc(e);var s=t.contextType;typeof s=="object"&&s!==null?n.context=vt(s):(s=tt(t)?Tr:He.current,n.context=Ca(e,s)),n.state=e.memoizedState,s=t.getDerivedStateFromProps,typeof s=="function"&&(Ld(e,t,s,o),n.state=e.memoizedState),typeof t.getDerivedStateFromProps=="function"||typeof n.getSnapshotBeforeUpdate=="function"||typeof n.UNSAFE_componentWillMount!="function"&&typeof n.componentWillMount!="function"||(t=n.state,typeof n.componentWillMount=="function"&&n.componentWillMount(),typeof n.UNSAFE_componentWillMount=="function"&&n.UNSAFE_componentWillMount(),t!==n.state&&Ui.enqueueReplaceState(n,n.state,null),hi(e,o,n,a),n.state=e.memoizedState),typeof n.componentDidMount=="function"&&(e.flags|=4194308)}function Na(e,t){try{var o="",a=t;do o+=hv(a),a=a.return;while(a);var n=o}catch(s){n=` 39Error generating stack: `+s.message+` 40`+s.stack}return{value:e,source:t,stack:n,digest:null}}function Ol(e,t,o){return{value:e,source:null,stack:o??null,digest:t??null}}function Dd(e,t){try{console.error(t.value)}catch(o){setTimeout(function(){throw o})}}var Ix=typeof WeakMap=="function"?WeakMap:Map;function ug(e,t,o){o=io(-1,o),o.tag=3,o.payload={element:null};var a=t.value;return o.callback=function(){yi||(yi=!0,Yd=a),Dd(e,t)},o}function hg(e,t,o){o=io(-1,o),o.tag=3;var a=e.type.getDerivedStateFromError;if(typeof a=="function"){var n=t.value;o.payload=function(){return a(n)},o.callback=function(){Dd(e,t)}}var s=e.stateNode;return s!==null&&typeof s.componentDidCatch=="function"&&(o.callback=function(){Dd(e,t),typeof a!="function"&&($o===null?$o=new Set([this]):$o.add(this));var i=t.stack;this.componentDidCatch(t.value,{componentStack:i!==null?i:""})}),o}function em(e,t,o){var a=e.pingCache;if(a===null){a=e.pingCache=new Ix;var n=new Set;a.set(t,n)}else n=a.get(t),n===void 0&&(n=new Set,a.set(t,n));
vendor: 2,311 bytes, line 40
40n.has(o)||(n.add(o),e=Zx.bind(null,e,t,o),t.then(e,e))}function tm(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function om(e,t,o,a,n){return e.mode&1?(e.flags|=65536,e.lanes=n,e):(e===t?e.flags|=65536:(e.flags|=128,o.flags|=131072,o.flags&=-52805,o.tag===1&&(o.alternate===null?o.tag=17:(t=io(-1,1),t.tag=2,Uo(o,t,1))),o.lanes|=1),e)}var Hx=go.ReactCurrentOwner,Ze=!1;function _e(e,t,o,a){t.child=e===null?Of(t,null,o,a):Ba(t,e.child,o,a)}function rm(e,t,o,a,n){o=o.render;var s=t.ref;return ca(t,n),a=eu(e,t,o,a,s,n),o=tu(),e!==null&&!Ze?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n,ho(e,t,n)):(he&&o&&_c(t),t.flags|=1,_e(e,t,a,n),t.child)}function am(e,t,o,a,n){if(e===null){var s=o.type;return typeof s=="function"&&!uu(s)&&s.defaultProps===void 0&&o.compare===null&&o.defaultProps===void 0?(t.tag=15,t.type=s,mg(e,t,s,a,n)):(e=Us(o.type,null,a,t,t.mode,n),e.ref=t.ref,e.return=t,t.child=e)}if(s=e.child,!(e.lanes&n)){var i=s.memoizedProps;if(o=o.compare,o=o!==null?o:Tn,o(i,a)&&e.ref===t.ref)return ho(e,t,n)}return t.flags|=1,e=Go(s,a),e.ref=t.ref,e.return=t,t.child=e}function mg(e,t,o,a,n){if(e!==null){var s=e.memoizedProps;if(Tn(s,a)&&e.ref===t.ref)if(Ze=!1,t.pendingProps=a=s,(e.lanes&n)!==0)e.flags&131072&&(Ze=!0);else return t.lanes=e.lanes,ho(e,t,n)}return Id(e,t,o,a,n)}function pg(e,t,o){var a=t.pendingProps,n=a.children,s=e!==null?e.memoizedState:null;if(a.mode==="hidden")if(!(t.mode&1))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},ie(aa,at),at|=o;else{if(!(o&1073741824))return e=s!==null?s.baseLanes|o:o,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,ie(aa,at),at|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},a=s!==null?s.baseLanes:o,ie(aa,at),at|=a}else s!==null?(a=s.baseLanes|o,t.memoizedState=null):a=o,ie(aa,at),at|=a;return _e(e,t,n,o),t.child}function fg(e,t){var o=t.ref;(e===null&&o!==null||e!==null&&e.ref!==o)&&(t.flags|=512,t.flags|=2097152)}function Id(e,t,o,a,n){var s=tt(o)?Tr:He.current;return s=Ca(t,s),ca(t,n),o=eu(e,t,o,a,s,n),a=tu(),e!==null&&!Ze?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n,ho(e,t,n)):(he&&a&&_c(t),t.flags|=1,_e(e,t,o,n),t.child)}
vendor: 9,879 bytes, line 40
40function nm(e,t,o,a,n){if(tt(o)){var s=!0;ii(t)}else s=!1;if(ca(t,n),t.stateNode===null)Hs(e,t),cg(t,o,a),Md(t,o,a,n),a=!0;else if(e===null){var i=t.stateNode,l=t.memoizedProps;i.props=l;var d=i.context,c=o.contextType;typeof c=="object"&&c!==null?c=vt(c):(c=tt(o)?Tr:He.current,c=Ca(t,c));var u=o.getDerivedStateFromProps,m=typeof u=="function"||typeof i.getSnapshotBeforeUpdate=="function";m||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(l!==a||d!==c)&&Zh(t,i,a,c),Wo=!1;var p=t.memoizedState;i.state=p,hi(t,a,i,n),d=t.memoizedState,l!==a||p!==d||et.current||Wo?(typeof u=="function"&&(Ld(t,o,u,a),d=t.memoizedState),(l=Wo||Jh(t,o,l,a,p,d,c))?(m||typeof i.UNSAFE_componentWillMount!="function"&&typeof i.componentWillMount!="function"||(typeof i.componentWillMount=="function"&&i.componentWillMount(),typeof i.UNSAFE_componentWillMount=="function"&&i.UNSAFE_componentWillMount()),typeof i.componentDidMount=="function"&&(t.flags|=4194308)):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=a,t.memoizedState=d),i.props=a,i.state=d,i.context=c,a=l):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),a=!1)}else{i=t.stateNode,Uf(e,t),l=t.memoizedProps,c=t.type===t.elementType?l:Bt(t.type,l),i.props=c,m=t.pendingProps,p=i.context,d=o.contextType,typeof d=="object"&&d!==null?d=vt(d):(d=tt(o)?Tr:He.current,d=Ca(t,d));var h=o.getDerivedStateFromProps;(u=typeof h=="function"||typeof i.getSnapshotBeforeUpdate=="function")||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(l!==m||p!==d)&&Zh(t,i,a,d),Wo=!1,p=t.memoizedState,i.state=p,hi(t,a,i,n);var v=t.memoizedState;l!==m||p!==v||et.current||Wo?(typeof h=="function"&&(Ld(t,o,h,a),v=t.memoizedState),(c=Wo||Jh(t,o,c,a,p,v,d)||!1)?(u||typeof i.UNSAFE_componentWillUpdate!="function"&&typeof i.componentWillUpdate!="function"||(typeof i.componentWillUpdate=="function"&&i.componentWillUpdate(a,v,d),typeof i.UNSAFE_componentWillUpdate=="function"&&i.UNSAFE_componentWillUpdate(a,v,d)),typeof i.componentDidUpdate=="function"&&(t.flags|=4),typeof i.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof i.componentDidUpdate!="function"||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),t.memoizedProps=a,t.memoizedState=v),i.props=a,i.state=v,i.context=d,a=c):(typeof i.componentDidUpdate!="function"||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),a=!1)}return Hd(e,t,o,a,s,n)}function Hd(e,t,o,a,n,s){fg(e,t);var i=(t.flags&128)!==0;if(!a&&!i)return n&&$h(t,o,!1),ho(e,t,s);a=t.stateNode,Hx.current=t;var l=i&&typeof o.getDerivedStateFromError!="function"?null:a.render();return t.flags|=1,e!==null&&i?(t.child=Ba(t,e.child,null,s),t.child=Ba(t,null,l,s)):_e(e,t,l,s),t.memoizedState=a.state,n&&$h(t,o,!0),t.child}function gg(e){var t=e.stateNode;t.pendingContext?Uh(e,t.pendingContext,t.pendingContext!==t.context):t.context&&Uh(e,t.context,!1),Kc(e,t.containerInfo)}function sm(e,t,o,a,n){return Ta(),$c(n),t.flags|=256,_e(e,t,o,a),t.child}var Od={dehydrated:null,treeContext:null,retryLane:0};function _d(e){return{baseLanes:e,cachePool:null,transitions:null}}function yg(e,t,o){var a=t.pendingProps,n=pe.current,s=!1,i=(t.flags&128)!==0,l;if((l=i)||(l=e!==null&&e.memoizedState===null?!1:(n&2)!==0),l?(s=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(n|=1),ie(pe,n&1),e===null)return Pd(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?(t.mode&1?e.data==="$!"?t.lanes=8:t.lanes=1073741824:t.lanes=1,null):(i=a.children,e=a.fallback,s?(a=t.mode,s=t.child,i={mode:"hidden",children:i},!(a&1)&&s!==null?(s.childLanes=0,s.pendingProps=i):s=Gi(i,a,0,null),e=Cr(e,a,o,null),s.return=t,e.return=t,s.sibling=e,t.child=s,t.child.memoizedState=_d(o),t.memoizedState=Od,e):au(t,i));if(n=e.memoizedState,n!==null&&(l=n.dehydrated,l!==null))return Ox(e,t,i,a,l,n,o);if(s){s=a.fallback,i=t.mode,n=e.child,l=n.sibling;var d={mode:"hidden",children:a.children};return!(i&1)&&t.child!==n?(a=t.child,a.childLanes=0,a.pendingProps=d,t.deletions=null):(a=Go(n,d),a.subtreeFlags=n.subtreeFlags&14680064),l!==null?s=Go(l,s):(s=Cr(s,i,o,null),s.flags|=2),s.return=t,a.return=t,a.sibling=s,t.child=a,a=s,s=t.child,i=e.child.memoizedState,i=i===null?_d(o):{baseLanes:i.baseLanes|o,cachePool:null,transitions:i.transitions},s.memoizedState=i,s.childLanes=e.childLanes&~o,t.memoizedState=Od,a}return s=e.child,e=s.sibling,a=Go(s,{mode:"visible",children:a.children}),!(t.mode&1)&&(a.lanes=o),a.return=t,a.sibling=null,e!==null&&(o=t.deletions,o===null?(t.deletions=[e],t.flags|=16):o.push(e)),t.child=a,t.memoizedState=null,a}function au(e,t){return t=Gi({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function xs(e,t,o,a){return a!==null&&$c(a),Ba(t,e.child,null,o),e=au(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Ox(e,t,o,a,n,s,i){if(o)return t.flags&256?(t.flags&=-257,a=Ol(Error(F(422))),xs(e,t,i,a)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(s=a.fallback,n=t.mode,a=Gi({mode:"visible",children:a.children},n,0,null),s=Cr(s,n,i,null),s.flags|=2,a.return=t,s.return=t,a.sibling=s,t.child=a,t.mode&1&&Ba(t,e.child,null,i),t.child.memoizedState=_d(i),t.memoizedState=Od,s);if(!(t.mode&1))return xs(e,t,i,null);if(n.data==="$!"){if(a=n.nextSibling&&n.nextSibling.dataset,a)var l=a.dgst;return a=l,s=Error(F(419)),a=Ol(s,a,void 0),xs(e,t,i,a)}if(l=(i&e.childLanes)!==0,Ze||l){if(a=Ae,a!==null){switch(i&-i){case 4:n=2;break;case 16:n=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:n=32;break;case 536870912:n=268435456;break;default:n=0}n=n&(a.suspendedLanes|i)?0:n,n!==0&&n!==s.retryLane&&(s.retryLane=n,uo(e,n),Rt(a,e,n,-1))}return cu(),a=Ol(Error(F(421))),xs(e,t,i,a)}return n.data==="$?"?(t.flags|=128,t.child=e.child,t=e0.bind(null,e),n._reactRetry=t,null):(e=s.treeContext,st=_o(n.nextSibling),it=t,he=!0,Ft=null,e!==null&&(gt[yt++]=no,gt[yt++]=so,gt[yt++]=Br,no=e.id,so=e.overflow,Br=t),t=au(t,a.children),t.flags|=4096,t)}function im(e,t,o){e.lanes|=t;var a=e.alternate;a!==null&&(a.lanes|=t),Rd(e.return,t,o)}function _l(e,t,o,a,n){var s=e.memoizedState;s===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:a,tail:o,tailMode:n}:(s.isBackwards=t,s.rendering=null,s.renderingStartTime=0,s.last=a,s.tail=o,s.tailMode=n)}function wg(e,t,o){var a=t.pendingProps,n=a.revealOrder,s=a.tail;if(_e(e,t,a.children,o),a=pe.current,a&2)a=a&1|2,t.flags|=128;else{if(e!==null&&e.flags&128)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&im(e,o,t);else if(e.tag===19)im(e,o,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}a&=1}if(ie(pe,a),!(t.mode&1))t.memoizedState=null;else switch(n){case"forwards":for(o=t.child,n=null;o!==null;)e=o.alternate,e!==null&&mi(e)===null&&(n=o),o=o.sibling;o=n,o===null?(n=t.child,t.child=null):(n=o.sibling,o.sibling=null),_l(t,!1,n,o,s);break;case"backwards":for(o=null,n=t.child,t.child=null;n!==null;){if(e=n.alternate,e!==null&&mi(e)===null){t.child=n;break}e=n.sibling,n.sibling=o,o=n,n=e}_l(t,!0,o,null,s);break;case"together":_l(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Hs(e,t){!(t.mode&1)&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function ho(e,t,o){if(e!==null&&(t.dependencies=e.dependencies),Nr|=t.lanes,!(o&t.childLanes))return null;if(e!==null&&t.child!==e.child)throw Error(F(153));if(t.child!==null){for(e=t.child,o=Go(e,e.pendingProps),t.child=o,o.return=t;e.sibling!==null;)e=e.sibling,o=o.sibling=Go(e,e.pendingProps),o.return=t;o.sibling=null}return t.child}function _x(e,t,o){switch(t.tag){case 3:gg(t),Ta();break;case 5:$f(t);break;case 1:tt(t.type)&&ii(t);break;case 4:Kc(t,t.stateNode.containerInfo);break;case 10:var a=t.type._context,n=t.memoizedProps.value;ie(ci,a._currentValue),a._currentValue=n;break;case 13:if(a=t.memoizedState,a!==null)return a.dehydrated!==null?(ie(pe,pe.current&1),t.flags|=128,null):o&t.child.childLanes?yg(e,t,o):(ie(pe,pe.current&1),e=ho(e,t,o),e!==null?e.sibling:null);ie(pe,pe.current&1);break;case 19:if(a=(o&t.childLanes)!==0,e.flags&128){if(a)return wg(e,t,o);t.flags|=128}if(n=t.memoizedState,n!==null&&(n.rendering=null,n.tail=null,n.lastEffect=null),ie(pe,pe.current),a)break;return null;case 22:case 23:return t.lanes=0,pg(e,t,o)}return ho(e,t,o)}var bg,Ud,vg,xg;bg=function(e,t){for(var o=t.child;o!==null;){if(o.tag===5||o.tag===6)e.appendChild(o.stateNode);else if(o.tag!==4&&o.child!==null){o.child.return=o,o=o.child;continue}if(o===t)break;for(;o.sibling===null;){if(o.return===null||o.return===t)return;o=o.return}o.sibling.return=o.return,o=o.sibling}};Ud=function(){};vg=function(e,t,o,a){var n=e.memoizedProps;if(n!==a){e=t.stateNode,fr(Qt.current);var s=null;switch(o){case"input":n=ud(e,n),a=ud(e,a),s=[];break;case"select":n=ge({},n,{value:void 0}),a=ge({},a,{value:void 0}),s=[];break;case"textarea":n=pd(e,n),a=pd(e,a),s=[];break;default:typeof n.onClick!="function"&&typeof a.onClick=="function"&&(e.onclick=ni)}gd(o,a);var i;o=null;for(c in n)if(!a.hasOwnProperty(c)&&n.hasOwnProperty(c)&&n[c]!=null)if(c==="style"){var l=n[c];for(i in l)l.hasOwnProperty(i)&&(o||(o={}),o[i]="")}else c!=="dangerouslySetInnerHTML"&&c!=="children"&&c!=="suppressContentEditableWarning"&&c!=="suppressHydrationWarning"&&c!=="autoFocus"&&(bn.hasOwnProperty(c)?s||
vendor: 1,244 bytes, line 40
40(s=[]):(s=s||[]).push(c,null));for(c in a){var d=a[c];if(l=n!=null?n[c]:void 0,a.hasOwnProperty(c)&&d!==l&&(d!=null||l!=null))if(c==="style")if(l){for(i in l)!l.hasOwnProperty(i)||d&&d.hasOwnProperty(i)||(o||(o={}),o[i]="");for(i in d)d.hasOwnProperty(i)&&l[i]!==d[i]&&(o||(o={}),o[i]=d[i])}else o||(s||(s=[]),s.push(c,o)),o=d;else c==="dangerouslySetInnerHTML"?(d=d?d.__html:void 0,l=l?l.__html:void 0,d!=null&&l!==d&&(s=s||[]).push(c,d)):c==="children"?typeof d!="string"&&typeof d!="number"||(s=s||[]).push(c,""+d):c!=="suppressContentEditableWarning"&&c!=="suppressHydrationWarning"&&(bn.hasOwnProperty(c)?(d!=null&&c==="onScroll"&&de("scroll",e),s||l===d||(s=[])):(s=s||[]).push(c,d))}o&&(s=s||[]).push("style",o);var c=s;(t.updateQueue=c)&&(t.flags|=4)}};xg=function(e,t,o,a){o!==a&&(t.flags|=4)};function Ja(e,t){if(!he)switch(e.tailMode){case"hidden":t=e.tail;for(var o=null;t!==null;)t.alternate!==null&&(o=t),t=t.sibling;o===null?e.tail=null:o.sibling=null;break;case"collapsed":o=e.tail;for(var a=null;o!==null;)o.alternate!==null&&(a=o),o=o.sibling;a===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:a.sibling=null}}function Me(e){var t=e.alternate!==null&&e.alternate.child===e.child,o=0,a=0;if(t)for(var n=e.child;n!==null;
vendor: 34,205 bytes, line 40
40)o|=n.lanes|n.childLanes,a|=n.subtreeFlags&14680064,a|=n.flags&14680064,n.return=e,n=n.sibling;else for(n=e.child;n!==null;)o|=n.lanes|n.childLanes,a|=n.subtreeFlags,a|=n.flags,n.return=e,n=n.sibling;return e.subtreeFlags|=a,e.childLanes=o,t}function Ux(e,t,o){var a=t.pendingProps;switch(Uc(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Me(t),null;case 1:return tt(t.type)&&si(),Me(t),null;case 3:return a=t.stateNode,Wa(),ce(et),ce(He),Jc(),a.pendingContext&&(a.context=a.pendingContext,a.pendingContext=null),(e===null||e.child===null)&&(bs(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,Ft!==null&&(Xd(Ft),Ft=null))),Ud(e,t),Me(t),null;case 5:Xc(t);var n=fr(En.current);if(o=t.type,e!==null&&t.stateNode!=null)vg(e,t,o,a,n),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!a){if(t.stateNode===null)throw Error(F(166));return Me(t),null}if(e=fr(Qt.current),bs(t)){a=t.stateNode,o=t.type;var s=t.memoizedProps;switch(a[Gt]=t,a[Nn]=s,e=(t.mode&1)!==0,o){case"dialog":de("cancel",a),de("close",a);break;case"iframe":case"object":case"embed":de("load",a);break;case"video":case"audio":for(n=0;n<ln.length;n++)de(ln[n],a);break;case"source":de("error",a);break;case"img":case"image":case"link":de("error",a),de("load",a);break;case"details":de("toggle",a);break;case"input":gh(a,s),de("invalid",a);break;case"select":a._wrapperState={wasMultiple:!!s.multiple},de("invalid",a);break;case"textarea":wh(a,s),de("invalid",a)}gd(o,s),n=null;for(var i in s)if(s.hasOwnProperty(i)){var l=s[i];i==="children"?typeof l=="string"?a.textContent!==l&&(s.suppressHydrationWarning!==!0&&ws(a.textContent,l,e),n=["children",l]):typeof l=="number"&&a.textContent!==""+l&&(s.suppressHydrationWarning!==!0&&ws(a.textContent,l,e),n=["children",""+l]):bn.hasOwnProperty(i)&&l!=null&&i==="onScroll"&&de("scroll",a)}switch(o){case"input":cs(a),yh(a,s,!0);break;case"textarea":cs(a),bh(a);break;case"select":case"option":break;default:typeof s.onClick=="function"&&(a.onclick=ni)}a=n,t.updateQueue=a,a!==null&&(t.flags|=4)}else{i=n.nodeType===9?n:n.ownerDocument,e==="http://www.w3.org/1999/xhtml"&&(e=Yp(o)),e==="http://www.w3.org/1999/xhtml"?o==="script"?(e=i.createElement("div"),e.innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):typeof a.is=="string"?e=i.createElement(o,{is:a.is}):(e=i.createElement(o),o==="select"&&(i=e,a.multiple?i.multiple=!0:a.size&&(i.size=a.size))):e=i.createElementNS(e,o),e[Gt]=t,e[Nn]=a,bg(e,t,!1,!1),t.stateNode=e;e:{switch(i=yd(o,a),o){case"dialog":de("cancel",e),de("close",e),n=a;break;case"iframe":case"object":case"embed":de("load",e),n=a;break;case"video":case"audio":for(n=0;n<ln.length;n++)de(ln[n],e);n=a;break;case"source":de("error",e),n=a;break;case"img":case"image":case"link":de("error",e),de("load",e),n=a;break;case"details":de("toggle",e),n=a;break;case"input":gh(e,a),n=ud(e,a),de("invalid",e);break;case"option":n=a;break;case"select":e._wrapperState={wasMultiple:!!a.multiple},n=ge({},a,{value:void 0}),de("invalid",e);break;case"textarea":wh(e,a),n=pd(e,a),de("invalid",e);break;default:n=a}gd(o,n),l=n;for(s in l)if(l.hasOwnProperty(s)){var d=l[s];s==="style"?Xp(e,d):s==="dangerouslySetInnerHTML"?(d=d?d.__html:void 0,d!=null&&Qp(e,d)):s==="children"?typeof d=="string"?(o!=="textarea"||d!=="")&&vn(e,d):typeof d=="number"&&vn(e,""+d):s!=="suppressContentEditableWarning"&&s!=="suppressHydrationWarning"&&s!=="autoFocus"&&(bn.hasOwnProperty(s)?d!=null&&s==="onScroll"&&de("scroll",e):d!=null&&Wc(e,s,d,i))}switch(o){case"input":cs(e),yh(e,a,!1);break;case"textarea":cs(e),bh(e);break;case"option":a.value!=null&&e.setAttribute("value",""+Yo(a.value));break;case"select":e.multiple=!!a.multiple,s=a.value,s!=null?sa(e,!!a.multiple,s,!1):a.defaultValue!=null&&sa(e,!!a.multiple,a.defaultValue,!0);break;default:typeof n.onClick=="function"&&(e.onclick=ni)}switch(o){case"button":case"input":case"select":case"textarea":a=!!a.autoFocus;break e;case"img":a=!0;break e;default:a=!1}}a&&(t.flags|=4)}t.ref!==null&&(t.flags|=512,t.flags|=2097152)}return Me(t),null;case 6:if(e&&t.stateNode!=null)xg(e,t,e.memoizedProps,a);else{if(typeof a!="string"&&t.stateNode===null)throw Error(F(166));if(o=fr(En.current),fr(Qt.current),bs(t)){if(a=t.stateNode,o=t.memoizedProps,a[Gt]=t,(s=a.nodeValue!==o)&&(e=it,e!==null))switch(e.tag){case 3:ws(a.nodeValue,o,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&ws(a.nodeValue,o,(e.mode&1)!==0)}s&&(t.flags|=4)}else a=(o.nodeType===9?o:o.ownerDocument).createTextNode(a),a[Gt]=t,t.stateNode=a}return Me(t),null;case 13:if(ce(pe),a=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(he&&st!==null&&t.mode&1&&!(t.flags&128))If(),Ta(),t.flags|=98560,s=!1;else if(s=bs(t),a!==null&&a.dehydrated!==null){if(e===null){if(!s)throw Error(F(318));if(s=t.memoizedState,s=s!==null?s.dehydrated:null,!s)throw Error(F(317));s[Gt]=t}else Ta(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Me(t),s=!1}else Ft!==null&&(Xd(Ft),Ft=null),s=!0;if(!s)return t.flags&65536?t:null}return t.flags&128?(t.lanes=o,t):(a=a!==null,a!==(e!==null&&e.memoizedState!==null)&&a&&(t.child.flags|=8192,t.mode&1&&(e===null||pe.current&1?Te===0&&(Te=3):cu())),t.updateQueue!==null&&(t.flags|=4),Me(t),null);case 4:return Wa(),Ud(e,t),e===null&&Bn(t.stateNode.containerInfo),Me(t),null;case 10:return Vc(t.type._context),Me(t),null;case 17:return tt(t.type)&&si(),Me(t),null;case 19:if(ce(pe),s=t.memoizedState,s===null)return Me(t),null;if(a=(t.flags&128)!==0,i=s.rendering,i===null)if(a)Ja(s,!1);else{if(Te!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(i=mi(e),i!==null){for(t.flags|=128,Ja(s,!1),a=i.updateQueue,a!==null&&(t.updateQueue=a,t.flags|=4),t.subtreeFlags=0,a=o,o=t.child;o!==null;)s=o,e=a,s.flags&=14680066,i=s.alternate,i===null?(s.childLanes=0,s.lanes=e,s.child=null,s.subtreeFlags=0,s.memoizedProps=null,s.memoizedState=null,s.updateQueue=null,s.dependencies=null,s.stateNode=null):(s.childLanes=i.childLanes,s.lanes=i.lanes,s.child=i.child,s.subtreeFlags=0,s.deletions=null,s.memoizedProps=i.memoizedProps,s.memoizedState=i.memoizedState,s.updateQueue=i.updateQueue,s.type=i.type,e=i.dependencies,s.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),o=o.sibling;return ie(pe,pe.current&1|2),t.child}e=e.sibling}s.tail!==null&&be()>Aa&&(t.flags|=128,a=!0,Ja(s,!1),t.lanes=4194304)}else{if(!a)if(e=mi(i),e!==null){if(t.flags|=128,a=!0,o=e.updateQueue,o!==null&&(t.updateQueue=o,t.flags|=4),Ja(s,!0),s.tail===null&&s.tailMode==="hidden"&&!i.alternate&&!he)return Me(t),null}else 2*be()-s.renderingStartTime>Aa&&o!==1073741824&&(t.flags|=128,a=!0,Ja(s,!1),t.lanes=4194304);s.isBackwards?(i.sibling=t.child,t.child=i):(o=s.last,o!==null?o.sibling=i:t.child=i,s.last=i)}return s.tail!==null?(t=s.tail,s.rendering=t,s.tail=t.sibling,s.renderingStartTime=be(),t.sibling=null,o=pe.current,ie(pe,a?o&1|2:o&1),t):(Me(t),null);case 22:case 23:return du(),a=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==a&&(t.flags|=8192),a&&t.mode&1?at&1073741824&&(Me(t),t.subtreeFlags&6&&(t.flags|=8192)):Me(t),null;case 24:return null;case 25:return null}throw Error(F(156,t.tag))}function $x(e,t){switch(Uc(t),t.tag){case 1:return tt(t.type)&&si(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Wa(),ce(et),ce(He),Jc(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Xc(t),null;case 13:if(ce(pe),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(F(340));Ta()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return ce(pe),null;case 4:return Wa(),null;case 10:return Vc(t.type._context),null;case 22:case 23:return du(),null;case 24:return null;default:return null}}var ks=!1,Ie=!1,zx=typeof WeakSet=="function"?WeakSet:Set,D=null;function ra(e,t){var o=e.ref;if(o!==null)if(typeof o=="function")try{o(null)}catch(a){we(e,t,a)}else o.current=null}function $d(e,t,o){try{o()}catch(a){we(e,t,a)}}var lm=!1;function Gx(e,t){if(Bd=oi,e=Tf(),Oc(e)){if("selectionStart"in e)var o={start:e.selectionStart,end:e.selectionEnd};else e:{o=(o=e.ownerDocument)&&o.defaultView||window;var a=o.getSelection&&o.getSelection();if(a&&a.rangeCount!==0){o=a.anchorNode;var n=a.anchorOffset,s=a.focusNode;a=a.focusOffset;try{o.nodeType,s.nodeType}catch{o=null;break e}var i=0,l=-1,d=-1,c=0,u=0,m=e,p=null;t:for(;;){for(var h;m!==o||n!==0&&m.nodeType!==3||(l=i+n),m!==s||a!==0&&m.nodeType!==3||(d=i+a),m.nodeType===3&&(i+=m.nodeValue.length),(h=m.firstChild)!==null;)p=m,m=h;for(;;){if(m===e)break t;if(p===o&&++c===n&&(l=i),p===s&&++u===a&&(d=i),(h=m.nextSibling)!==null)break;m=p,p=m.parentNode}m=h}o=l===-1||d===-1?null:{start:l,end:d}}else o=null}o=o||{start:0,end:0}}else o=null;for(Wd={focusedElem:e,selectionRange:o},oi=!1,D=t;D!==null;)if(t=D,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,D=e;else for(;D!==null;){t=D;try{var v=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(v!==null){var y=v.memoizedProps,x=v.memoizedState,g=t.stateNode,f=g.getSnapshotBeforeUpdate(t.elementType===t.type?y:Bt(t.type,y),x);g.__reactInternalSnapshotBeforeUpdate=f}break;case 3:var w=t.stateNode.containerInfo;w.nodeType===1?w.textContent="":w.nodeType===9&&w.documentElement&&w.removeChild(w.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(F(163))}}catch(k){we(t,t.return,k)}if(e=t.sibling,e!==null){e.return=t.return,D=e;break}D=t.return}return v=lm,lm=!1,v}function fn(e,t,o){var a=t.updateQueue;if(a=a!==null?a.lastEffect:null,a!==null){var n=a=a.next;do{if((n.tag&e)===e){var s=n.destroy;n.destroy=void 0,s!==void 0&&$d(t,o,s)}n=n.next}while(n!==a)}}function $i(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var o=t=t.next;do{if((o.tag&e)===e){var a=o.create;o.destroy=a()}o=o.next}while(o!==t)}}function zd(e){var t=e.ref;if(t!==null){var o=e.stateNode;switch(e.tag){case 5:e=o;break;default:e=o}typeof t=="function"?t(e):t.current=e}}function kg(e){var t=e.alternate;t!==null&&(e.alternate=null,kg(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Gt],delete t[Nn],delete t[Ed],delete t[Wx],delete t[Nx])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Sg(e){return e.tag===5||e.tag===3||e.tag===4}function dm(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Sg(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Gd(e,t,o){var a=e.tag;if(a===5||a===6)e=e.stateNode,t?o.nodeType===8?o.parentNode.insertBefore(e,t):o.insertBefore(e,t):(o.nodeType===8?(t=o.parentNode,t.insertBefore(e,o)):(t=o,t.appendChild(e)),o=o._reactRootContainer,o!=null||t.onclick!==null||(t.onclick=ni));else if(a!==4&&(e=e.child,e!==null))for(Gd(e,t,o),e=e.sibling;e!==null;)Gd(e,t,o),e=e.sibling}function Vd(e,t,o){var a=e.tag;if(a===5||a===6)e=e.stateNode,t?o.insertBefore(e,t):o.appendChild(e);else if(a!==4&&(e=e.child,e!==null))for(Vd(e,t,o),e=e.sibling;e!==null;)Vd(e,t,o),e=e.sibling}var Ee=null,Et=!1;function So(e,t,o){for(o=o.child;o!==null;)jg(e,t,o),o=o.sibling}function jg(e,t,o){if(Yt&&typeof Yt.onCommitFiberUnmount=="function")try{Yt.onCommitFiberUnmount(Li,o)}catch{}switch(o.tag){case 5:Ie||ra(o,t);case 6:var a=Ee,n=Et;Ee=null,So(e,t,o),Ee=a,Et=n,Ee!==null&&(Et?(e=Ee,o=o.stateNode,e.nodeType===8?e.parentNode.removeChild(o):e.removeChild(o)):Ee.removeChild(o.stateNode));break;case 18:Ee!==null&&(Et?(e=Ee,o=o.stateNode,e.nodeType===8?Rl(e.parentNode,o):e.nodeType===1&&Rl(e,o),jn(e)):Rl(Ee,o.stateNode));break;case 4:a=Ee,n=Et,Ee=o.stateNode.containerInfo,Et=!0,So(e,t,o),Ee=a,Et=n;break;case 0:case 11:case 14:case 15:if(!Ie&&(a=o.updateQueue,a!==null&&(a=a.lastEffect,a!==null))){n=a=a.next;do{var s=n,i=s.destroy;s=s.tag,i!==void 0&&(s&2||s&4)&&$d(o,t,i),n=n.next}while(n!==a)}So(e,t,o);break;case 1:if(!Ie&&(ra(o,t),a=o.stateNode,typeof a.componentWillUnmount=="function"))try{a.props=o.memoizedProps,a.state=o.memoizedState,a.componentWillUnmount()}catch(l){we(o,t,l)}So(e,t,o);break;case 21:So(e,t,o);break;case 22:o.mode&1?(Ie=(a=Ie)||o.memoizedState!==null,So(e,t,o),Ie=a):So(e,t,o);break;default:So(e,t,o)}}function cm(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var o=e.stateNode;o===null&&(o=e.stateNode=new zx),t.forEach(function(a){var n=t0.bind(null,e,a);o.has(a)||(o.add(a),a.then(n,n))})}}function Ct(e,t){var o=t.deletions;if(o!==null)for(var a=0;a<o.length;a++){var n=o[a];try{var s=e,i=t,l=i;e:for(;l!==null;){switch(l.tag){case 5:Ee=l.stateNode,Et=!1;break e;case 3:Ee=l.stateNode.containerInfo,Et=!0;break e;case 4:Ee=l.stateNode.containerInfo,Et=!0;break e}l=l.return}if(Ee===null)throw Error(F(160));jg(s,i,n),Ee=null,Et=!1;var d=n.alternate;d!==null&&(d.return=null),n.return=null}catch(c){we(n,t,c)}}if(t.subtreeFlags&12854)for(t=t.child;t!==null;)Cg(t,e),t=t.sibling}function Cg(e,t){var o=e.alternate,a=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(Ct(t,e),Ot(e),a&4){try{fn(3,e,e.return),$i(3,e)}catch(y){we(e,e.return,y)}try{fn(5,e,e.return)}catch(y){we(e,e.return,y)}}break;case 1:Ct(t,e),Ot(e),a&512&&o!==null&&ra(o,o.return);break;case 5:if(Ct(t,e),Ot(e),a&512&&o!==null&&ra(o,o.return),e.flags&32){var n=e.stateNode;try{vn(n,"")}catch(y){we(e,e.return,y)}}if(a&4&&(n=e.stateNode,n!=null)){var s=e.memoizedProps,i=o!==null?o.memoizedProps:s,l=e.type,d=e.updateQueue;if(e.updateQueue=null,d!==null)try{l==="input"&&s.type==="radio"&&s.name!=null&&Gp(n,s),yd(l,i);var c=yd(l,s);for(i=0;i<d.length;i+=2){var u=d[i],m=d[i+1];u==="style"?Xp(n,m):u==="dangerouslySetInnerHTML"?Qp(n,m):u==="children"?vn(n,m):Wc(n,u,m,c)}switch(l){case"input":hd(n,s);break;case"textarea":Vp(n,s);break;case"select":var p=n._wrapperState.wasMultiple;n._wrapperState.wasMultiple=!!s.multiple;var h=s.value;h!=null?sa(n,!!s.multiple,h,!1):p!==!!s.multiple&&(s.defaultValue!=null?sa(n,!!s.multiple,s.defaultValue,!0):sa(n,!!s.multiple,s.multiple?[]:"",!1))}n[Nn]=s}catch(y){we(e,e.return,y)}}break;case 6:if(Ct(t,e),Ot(e),a&4){if(e.stateNode===null)throw Error(F(162));n=e.stateNode,s=e.memoizedProps;try{n.nodeValue=s}catch(y){we(e,e.return,y)}}break;case 3:if(Ct(t,e),Ot(e),a&4&&o!==null&&o.memoizedState.isDehydrated)try{jn(t.containerInfo)}catch(y){we(e,e.return,y)}break;case 4:Ct(t,e),Ot(e);break;case 13:Ct(t,e),Ot(e),n=e.child,n.flags&8192&&(s=n.memoizedState!==null,n.stateNode.isHidden=s,!s||n.alternate!==null&&n.alternate.memoizedState!==null||(iu=be())),a&4&&cm(e);break;case 22:if(u=o!==null&&o.memoizedState!==null,e.mode&1?(Ie=(c=Ie)||u,Ct(t,e),Ie=c):Ct(t,e),Ot(e),a&8192){if(c=e.memoizedState!==null,(e.stateNode.isHidden=c)&&!u&&e.mode&1)for(D=e,u=e.child;u!==null;){for(m=D=u;D!==null;){switch(p=D,h=p.child,p.tag){case 0:case 11:case 14:case 15:fn(4,p,p.return);break;case 1:ra(p,p.return);var v=p.stateNode;if(typeof v.componentWillUnmount=="function"){a=p,o=p.return;try{t=a,v.props=t.memoizedProps,v.state=t.memoizedState,v.componentWillUnmount()}catch(y){we(a,o,y)}}break;case 5:ra(p,p.return);break;case 22:if(p.memoizedState!==null){hm(m);continue}}h!==null?(h.return=p,D=h):hm(m)}u=u.sibling}e:for(u=null,m=e;;){if(m.tag===5){if(u===null){u=m;try{n=m.stateNode,c?(s=n.style,typeof s.setProperty=="function"?s.setProperty("display","none","important"):s.display="none"):(l=m.stateNode,d=m.memoizedProps.style,i=d!=null&&d.hasOwnProperty("display")?d.display:null,l.style.display=Kp("display",i))}catch(y){we(e,e.return,y)}}}else if(m.tag===6){if(u===null)try{m.stateNode.nodeValue=c?"":m.memoizedProps}catch(y){we(e,e.return,y)}}else if((m.tag!==22&&m.tag!==23||m.memoizedState===null||m===e)&&m.child!==null){m.child.return=m,m=m.child;continue}if(m===e)break e;for(;m.sibling===null;){if(m.return===null||m.return===e)break e;u===m&&(u=null),m=m.return}u===m&&(u=null),m.sibling.return=m.return,m=m.sibling}}break;case 19:Ct(t,e),Ot(e),a&4&&cm(e);break;case 21:break;default:Ct(t,e),Ot(e)}}function Ot(e){var t=e.flags;if(t&2){try{e:{for(var o=e.return;o!==null;){if(Sg(o)){var a=o;break e}o=o.return}throw Error(F(160))}switch(a.tag){case 5:var n=a.stateNode;a.flags&32&&(vn(n,""),a.flags&=-33);var s=dm(e);Vd(e,s,n);break;case 3:case 4:var i=a.stateNode.containerInfo,l=dm(e);Gd(e,l,i);break;default:throw Error(F(161))}}catch(d){we(e,e.return,d)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function Vx(e,t,o){D=e,Tg(e)}function Tg(e,t,o){for(var a=(e.mode&1)!==0;D!==null;){var n=D,s=n.child;if(n.tag===22&&a){var i=n.memoizedState!==null||ks;if(!i){var l=n.alternate,d=l!==null&&l.memoizedState!==null||Ie;l=ks;var c=Ie;if(ks=i,(Ie=d)&&!c)for(D=n;D!==null;)i=D,d=i.child,i.tag===22&&i.memoizedState!==null?mm(n):d!==null?(d.return=i,D=d):mm(n);for(;s!==null;)D=s,Tg(s),s=s.sibling;D=n,ks=l,Ie=c}um(e)}else n.subtreeFlags&8772&&s!==null?(s.return=n,D=s):um(e)}}function um(e){for(;D!==null;){var t=D;if(t.flags&8772){var o=t.alternate;try{if(t.flags&8772)switch(t.tag){case 0:case 11:case 15:Ie||$i(5,t);break;case 1:var a=t.stateNode;if(t.flags&4&&!Ie)if(o===null)a.componentDidMount();else{var n=t.elementType===t.type?o.memoizedProps:Bt(t.type,o.memoizedProps);a.componentDidUpdate(n,o.memoizedState,a.__reactInternalSnapshotBeforeUpdate)}var s=t.updateQueue;s!==null&&Qh(t,s,a);break;case 3:var i=t.updateQueue;if(i!==null){if(o=null,t.child!==null)switch(t.child.tag){case 5:o=t.child.stateNode;break;case 1:o=t.child.stateNode}Qh(t,i,o)}break;case 5:var l=t.stateNode;if(o===null&&t.flags&4){o=l;var d=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":d.autoFocus&&o.focus();break;case"img":d.src&&(o.src=d.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(t.memoizedState===null){var c=t.alternate;if(c!==null){var u=c.memoizedState;if(u!==null){var m=u.dehydrated;m!==null&&jn(m)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(F(163))}Ie||t.flags&512&&zd(t)}catch(p){we(t,t.return,p)}}if(t===e){D=null;break}if(o=t.sibling,o!==null){o.return=t.return,D=o;break}D=t.return}}function hm(e){for(;D!==null;){var t=D;if(t===e){D=null;break}var o=t.sibling;if(o!==null){o.return=t.return,D=o;break}D=t.return}}function mm(e){for(;D!==null;){var t=D;try{switch(t.tag){case 0:case 11:case 15:var o=t.return;try{$i(4,t)}catch(d){we(t,o,d)}break;case 1:var a=t.stateNode;if(typeof a.componentDidMount=="function"){var n=t.return;try{a.componentDidMount()}catch(d){we(t,n,d)}}var s=t.return;try{zd(t)}catch(d){we(t,s,d)}break;case 5:var i=t.return;try{zd(t)}catch(d){we(t,i,d)}}}catch(d){we(t,t.return,d)}if(t===e){D=null;break}var l=t.sibling;if(l!==null){l.return=t.return,D=l;break}D=t.return}}var Yx=Math.ceil,gi=go.ReactCurrentDispatcher,nu=go.ReactCurrentOwner,bt=go.ReactCurrentBatchConfig,te=0,Ae=null,xe=null,Fe=0,at=0,aa=rr(0),Te=0,Rn=null,Nr=0,zi=0,su=0,gn=null,Je=null,iu=0,Aa=1/0,oo=null,yi=!1,Yd=null,$o=null,Ss=!1,Mo=null,wi=0,yn=0,Qd=null,Os=-1,_s=0;function $e(){return te&6?be():Os!==-1?Os:Os=be()}function zo(e){return e.mode&1?te&2&&Fe!==0?Fe&-Fe:Ex.transition!==null?(_s===0&&(_s=cf()),_s):(e=ae,e!==0||(e=window.event,e=e===void 0?16:yf(e.type)),e):1}function Rt(e,t,o,a){if(50<yn)throw yn=0,Qd=null,Error(F(185));Vn(e,o,a),(!(te&2)||e!==Ae)&&(e===Ae&&(!(te&2)&&(zi|=o),Te===4&&Ao(e,Fe)),ot(e,a),o===1&&te===0&&!(t.mode&1)&&(Aa=be()+500,Oi&&ar()))}function ot(e,t){var o=e.callbackNode;Ev(e,t);var a=ti(e,e===Ae?Fe:0);if(a===0)o!==null&&kh(o),e.callbackNode=null,e.callbackPriority=0;else if(t=a&-a,e.callbackPriority!==t){if(o!=null&&kh(o),t===1)e.tag===0?Ax(pm.bind(null,e)):Lf(pm.bind(null,e)),Tx(function(){!(te&6)&&ar()}),o=null;else{switch(uf(a)){case 1:o=qc;break;case 4:o=lf;break;case 16:o=ei;break;case 536870912:o=df;break;default:o=ei}o=Pg(o,Bg.bind(null,e))}e.callbackPriority=t,e.callbackNode=o}}function Bg(e,t){if(Os=-1,_s=0,te&6)throw Error(F(327));var o=e.callbackNode;if(ua()&&e.callbackNode!==o)return null;var a=ti(e,e===Ae?Fe:0);if(a===0)return null;if(a&30||a&e.expiredLanes||t)t=bi(e,a);else{t=a;var n=te;te|=2;var s=Ng();(Ae!==e||Fe!==t)&&(oo=null,Aa=be()+500,jr(e,t));do try{Xx();break}catch(l){Wg(e,l)}while(!0);Gc(),gi.current=s,te=n,xe!==null?t=0:(Ae=null,Fe=0,t=Te)}if(t!==0){if(t===2&&(n=kd(e),n!==0&&(a=n,t=Kd(e,n))),t===1)throw o=Rn,jr(e,0),Ao(e,a),ot(e,be()),o;if(t===6)Ao(e,a);else{if(n=e.current.alternate,!(a&30)&&!Qx(n)&&(t=bi(e,a),t===2&&(s=kd(e),s!==0&&(a=s,t=Kd(e,s))),t===1))throw o=Rn,jr(e,0),Ao(e,a),ot(e,be()),o;switch(e.finishedWork=n,e.finishedLanes=a,t){case 0:case 1:throw Error(F(345));case 2:hr(e,Je,oo);break;case 3:if(Ao(e,a),(a&130023424)===a&&(t=iu+500-be(),10<t)){if(ti(e,0)!==0)break;if(n=e.suspendedLanes,(n&a)!==a){$e(),e.pingedLanes|=e.suspendedLanes&n;break}e.timeoutHandle=Ad(hr.bind(null,e,Je,oo),t);break}hr(e,Je,oo);break;case 4:if(Ao(e,a),(a&4194240)===a)break;for(t=e.eventTimes,n=-1;0<a;){var i=31-Pt(a);s=1<<i,i=t[i],i>n&&(n=i),a&=~s}if(a=n,a=be()-a,a=(120>a?120:480>a?480:1080>a?1080:1920>a?1920:3e3>a?3e3:4320>a?4320:1960*Yx(a/1960))-a,10<a){e.timeoutHandle=Ad(hr.bind(null,e,Je,oo),a);break}hr(e,Je,oo);break;case 5:hr(e,Je,oo);break;default:throw Error(F(329))}}}return ot(e,be()),e.callbackNode===o?Bg.bind(null,e):null}function Kd(e,t){var o=gn;return e.current.memoizedState.isDehydrated&&(jr(e,t).flags|=256),e=bi(e,t),e!==2&&(t=Je,Je=o,t!==null&&Xd(t)),e}function Xd(e){Je===null?Je=e:Je.push.apply(Je,e)}function Qx(e){for(var t=e;;){if(t.flags&16384){var o=t.updateQueue;if(o!==null&&(o=o.stores,o!==null))for(var a=0;a<o.length;a++){var n=o[a],s=n.getSnapshot;n=n.value;try{if(!Lt(s(),n))return!1}catch{return!1}}}if(o=t.child,t.subtreeFlags&16384&&o!==null)o.return=t,t=o;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function Ao(e,t){for(t&=~su,t&=~zi,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var o=31-Pt(t),a=1<<o;e[o]=-1,t&=~a}}function pm(e){if(te&6)throw Error(F(327));ua();var t=ti(e,0);if(!(t&1))return ot(e,be()),null;var o=bi(e,t);if(e.tag!==0&&o===2){var a=kd(e);a!==0&&(t=a,o=Kd(e,a))}if(o===1)throw o=Rn,jr(e,0),Ao(e,t),ot(e,be()),o;if(o===6)throw Error(F(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,hr(e,Je,oo),ot(e,be()),null}function lu(e,t){var o=te;te|=1;try{return e(t)}finally{te=o,te===0&&(Aa=be()+500,Oi&&ar())}}function Ar(e){Mo!==null&&Mo.tag===0&&!(te&6)&&ua();var t=te;te|=1;var o=bt.transition,a=ae;try{if(bt.transition=null,ae=1,e)return e()}finally{ae=a,bt.transition=o,te=t,!(te&6)&&ar()}}function du(){at=aa.current,ce(aa)}function jr(e,t){e.finishedWork=null,e.finishedLanes=0;var o=e.timeoutHandle;if(o!==-1&&(e.timeoutHandle=-1,Cx(o)),xe!==null)for(o=xe.return;o!==null;){var a=o;switch(Uc(a),a.tag){case 1:a=a.type.childContextTypes,a!=null&&si();break;case 3:Wa(),ce(et),ce(He),Jc();break;case 5:Xc(a);break;case 4:Wa();break;case 13:ce(pe);break;case 19:ce(pe);break;case 10:Vc(a.type._context);break;case 22:case 23:du()}o=o.return}if(Ae=e,xe=e=Go(e.current,null),Fe=at=t,Te=0,Rn=null,su=zi=Nr=0,Je=gn=null,pr!==null){for(t=0;t<pr.length;t++)if(o=pr[t],a=o.interleaved,a!==null){o.interleaved=null;var n=a.next,s=o.pending;if(s!==null){var i=s.next;s.next=n,a.next=i}o.pending=a}pr=null}return e}function Wg(e,t){do{var o=xe;try{if(Gc(),Ds.current=fi,pi){for(var a=fe.memoizedState;a!==null;){var n=a.queue;n!==null&&(n.pending=null),a=a.next}pi=!1}if(Wr=0,Ne=je=fe=null,pn=!1,Fn=0,nu.current=null,o===null||o.return===null){Te=1,Rn=t,xe=null;break}e:{var s=e,i=o.return,l=o,d=t;if(t=Fe,l.flags|=32768,d!==null&&typeof d=="object"&&typeof d.then=="function"){var c=d,u=l,m=u.tag;if(!(u.mode&1)&&(m===0||m===11||m===15)){var p=u.alternate;p?(u.updateQueue=p.updateQueue,u.memoizedState=p.memoizedState,u.lanes=p.lanes):(u.updateQueue=null,u.memoizedState=null)}var h=tm(i);if(h!==null){h.flags&=-257,om(h,i,l,s,t),h.mode&1&&em(s,c,t),t=h,d=c;var v=t.updateQueue;if(v===null){var y=new Set;y.add(d),t.updateQueue=y}else v.add(d);break e}else{if(!(t&1)){em(s,c,t),cu();break e}d=Error(F(426))}}else if(he&&l.mode&1){var x=tm(i);if(x!==null){!(x.flags&65536)&&(x.flags|=256),om(x,i,l,s,t),$c(Na(d,l));break e}}s=d=Na(d,l),Te!==4&&(Te=2),gn===null?gn=[s]:gn.push(s),s=i;do{switch(s.tag){case 3:s.flags|=65536,t&=-t,s.lanes|=t;var g=ug(s,d,t);Yh(s,g);break e;case 1:l=d;var f=s.type,w=s.stateNode;if(!(s.flags&128)&&(typeof f.getDerivedStateFromError=="function"||w!==null&&typeof w.componentDidCatch=="function"&&($o===null||!$o.has(w)))){s.flags|=65536,t&=-t,s.lanes|=t;var k=hg(s,l,t);Yh(s,k);break e}}s=s.return}while(s!==null)}Eg(o)}catch(j){t=j,xe===o&&o!==null&&(xe=o=o.return);continue}break}while(!0)}function Ng(){var e=gi.current;return gi.current=fi,e===null?fi:e}function cu(){(Te===0||Te===3||Te===2)&&(Te=4),Ae===null||!(Nr&268435455)&&!(zi&268435455)||Ao(Ae,Fe)}function bi(e,t){var o=te;te|=2;var a=Ng();(Ae!==e||Fe!==t)&&(oo=null,jr(e,t));do try{Kx();break}catch(n){Wg(e,n)}while(!0);if(Gc(),te=o,gi.current=a,xe!==null)throw Error(F(261));return Ae=null,Fe=0,Te}function Kx(){for(;xe!==null;)Ag(xe)}function Xx(){for(;xe!==null&&!kv();)Ag(xe)}function Ag(e){var t=qg(e.alternate,e,at);e.memoizedProps=e.pendingProps,t===null?Eg(e):xe=t,nu.current=null}function Eg(e){var t=e;do{var o=t.alternate;if(e=t.return,t.flags&32768){if(o=$x(o,t),o!==null){o.flags&=32767,xe=o;return}if(e!==null)e.flags|=32768,e.subtreeFlags=0,e.deletions=null;else{Te=6,xe=null;return}}else if(o=Ux(o,t,at),o!==null){xe=o;return}if(t=t.sibling,t!==null){xe=t;return}xe=t=e}while(t!==null);Te===0&&(Te=5)}function hr(e,t,o){var a=ae,n=bt.transition;try{bt.transition=null,ae=1,Jx(e,t,o,a)}finally{bt.transition=n,ae=a}return null}function Jx(e,t,o,a){do ua();while(Mo!==null);if(te&6)throw Error(F(327));o=e.finishedWork;var n=e.finishedLanes;if(o===null)return null;if(e.finishedWork=null,e.finishedLanes=0,o===e.current)throw Error(F(177));e.callbackNode=null,e.callbackPriority=0;var s=o.lanes|o.childLanes;if(Fv(e,s),e===Ae&&(xe=Ae=null,Fe=0),!(o.subtreeFlags&2064)&&!(o.flags&2064)||Ss||(Ss=!0,Pg(ei,function(){return ua(),null})),s=(o.flags&15990)!==0,o.subtreeFlags&15990||s){s=bt.transition,bt.transition=null;var i=ae;ae=1;var l=te;te|=4,nu.current=null,Gx(e,o),Cg(o,e),wx(Wd),oi=!!Bd,Wd=Bd=null,e.current=o,Vx(o),Sv(),te=l,ae=i,bt.transition=s}else e.current=o;if(Ss&&(Ss=!1,Mo=e,wi=n),s=e.pendingLanes,s===0&&($o=null),Tv(o.stateNode),ot(e,be()),t!==null)for(a=e.onRecoverableError,o=0;o<t.length;o++)n=t[o],a(n.value,{componentStack:n.stack,digest:n.digest});if(yi)throw yi=!1,e=Yd,Yd=null,e;return wi&1&&e.tag!==0&&ua(),s=e.pendingLanes,s&1?e===Qd?yn++:(yn=0,Qd=e):yn=0,ar(),null}function ua(){if(Mo!==null){var e=uf(wi),t=bt.transition,o=ae;try{if(bt.transition=null,ae=16>e?16:e,Mo===null)var a=!1;else{if(e=Mo,Mo=null,wi=0,te&6)throw Error(F(331));var n=te;for(te|=4,D=e.current;D!==null;){var s=D,i=s.child;if(D.flags&16){var l=s.deletions;if(l!==null){for(var d=0;d<l.length;d++){var c=l[d];for(D=c;D!==null;){var u=D;switch(u.tag){case 0:case 11:case 15:fn(8,u,s)}var m=u.child;if(m!==null)m.return=u,D=m;else for(;D!==null;){u=D;var p=u.sibling,h=u.return;if(kg(u),u===c){D=null;break}if(p!==null){p.return=h,D=p;break}D=h}}}var v=s.alternate;if(v!==null){var y=v.child;if(y!==null){v.child=null;do{var x=y.sibling;y.sibling=null,y=x}while(y!==null)}}D=s}}if(s.subtreeFlags&2064&&i!==null)i.return=s,D=i;else e:for(;D!==null;){if(s=D,s.flags&2048)switch(s.tag){case 0:case 11:case 15:fn(9,s,s.return)}var g=s.sibling;if(g!==null){g.return=s.return,D=g;break e}D=s.return}}var f=e.current;for(D=f;D!==null;){i=D;var w=i.child;if(i.subtreeFlags&2064&&w!==null)w.return=i,D=w;else e:for(i=f;D!==null;){if(l=D,l.flags&2048)try{switch(l.tag){case 0:case 11:case 15:$i(9,l)}}catch(j){we(l,l.return,j)}if(l===i){D=null;break e}var k=l.sibling;if(k!==null){k.return=l.return,D=k;break e}D=l.return}}if(te=n,ar(),Yt&&typeof Yt.onPostCommitFiberRoot=="function")try{Yt.onPostCommitFiberRoot(Li,e)}catch{}a=!0}return a}finally{ae=o,bt.transition=t}}return!1}function fm(e,t,o){t=Na(o,t),t=ug(e,t,1),e=Uo(e,t,1),t=$e(),e!==null&&(Vn(e,1,t),ot(e,t))}function we(e,t,o){if(e.tag===3)fm(e,e,o);else for(;t!==null;){if(t.tag===3){fm(t,e,o);break}else if(t.tag===1){var a=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof a.componentDidCatch=="function"&&($o===null||!$o.has(a))){e=Na(o,e),e=hg(t,e,1),t=Uo(t,e,1),e=$e(),t!==null&&(Vn(t,1,e),ot(t,e));break}}t=t.return}}function Zx(e,t,o){var a=e.pingCache;a!==null&&a.delete(t),t=$e(),e.pingedLanes|=e.suspendedLanes&o,Ae===e&&(Fe&o)===o&&(Te===4||Te===3&&(Fe&130023424)===Fe&&500>be()-iu?jr(e,0):su|=o),ot(e,t)}function Fg(e,t){t===0&&(e.mode&1?(t=ms,ms<<=1,!(ms&130023424)&&(ms=4194304)):t=1);var o=$e();e=uo(e,t),e!==null&&(Vn(e,t,o),ot(e,o))}function e0(e){var t=e.memoizedState,o=0;t!==null&&(o=t.retryLane),Fg(e,o)}function t0(e,t){var o=0;switch(e.tag){case 13:var a=e.stateNode,n=e.memoizedState;n!==null&&(o=n.retryLane);break;case 19:a=e.stateNode;break;default:throw Error(F(314))}a!==null&&a.delete(t),Fg(e,o)}var qg;qg=function(e,t,o){if(e!==null)if(e.memoizedProps!==t.pendingProps||et.current)Ze=!0;else{if(!(e.lanes&o)&&!(t.flags&128))return Ze=!1,_x(e,t,o);Ze=!!(e.flags&131072)}else Ze=!1,he&&t.flags&1048576&&Mf(t,di,t.index);switch(t.lanes=0,t.tag){case 2:var a=t.type;Hs(e,t),e=t.pendingProps;var n=Ca(t,He.current);ca(t,o),n=eu(null,t,a,e,n,o);var s=tu();return t.flags|=1,typeof n=="object"&&n!==null&&typeof n.render=="function"&&n.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,tt(a)?(s=!0,ii(t)):s=!1,t.memoizedState=n.state!==null&&n.state!==void 0?n.state:null,Qc(t),n.updater=Ui,t.stateNode=n,n._reactInternals=t,Md(t,a,e,o),t=Hd(null,t,a,!0,s,o)):(t.tag=0,he&&s&&_c(t),_e(null,t,n,o),t=t.child),t;case 16:a=t.elementType;e:{switch(Hs(e,t),e=t.pendingProps,n=a._init,a=n(a._payload),t.type=a,n=t.tag=r0(a),e=Bt(a,e),n){case 0:t=Id(null,t,a,e,o);break e;case 1:t=nm(null,t,a,e,o);break e;case 11:t=rm(null,t,a,e,o);break e;case 14:t=am(null,t,a,Bt(a.type,e),o);break e}throw Error(F(306,a,""))}return t;case 0:return a=t.type,n=t.pendingProps,n=t.elementType===a?n:Bt(a,n),Id(e,t,a,n,o);case 1:return a=t.type,n=t.pendingProps,n=t.elementType===a?n:Bt(a,n),nm(e,t,a,n,o);case 3:e:{if(gg(t),e===null)throw Error(F(387));a=t.pendingProps,s=t.memoizedState,n=s.element,Uf(e,t),hi(t,a,null,o);var i=t.memoizedState;if(a=i.element,s.isDehydrated)if(s={element:a,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions},t.updateQueue.baseState=s,t.memoizedState=s,t.flags&256){n=Na(Error(F(423)),t),t=sm(e,t,a,o,n);break e}else if(a!==n){n=Na(Error(F(424)),t),t=sm(e,t,a,o,n);break e}else for(st=_o(t.stateNode.containerInfo.firstChild),it=t,he=!0,Ft=null,o=Of(t,null,a,o),t.child=o;o;)o.flags=o.flags&-3|4096,o=o.sibling;else{if(Ta(),a===n){t=ho(e,t,o);break e}_e(e,t,a,o)}t=t.child}return t;case 5:return $f(t),e===null&&Pd(t),a=t.type,n=t.pendingProps,s=e!==null?e.memoizedProps:null,i=n.children,Nd(a,n)?i=null:s!==null&&Nd(a,s)&&(t.flags|=32),fg(e,t),_e(e,t,i,o),t.child;case 6:return e===null&&Pd(t),null;case 13:return yg(e,t,o);case 4:return Kc(t,t.stateNode.containerInfo),a=t.pendingProps,e===null?t.child=Ba(t,null,a,o):_e(e,t,a,o),t.child;case 11:return a=t.type,n=t.pendingProps,n=t.elementType===a?n:Bt(a,n),rm(e,t,a,n,o);case 7:return _e(e,t,t.pendingProps,o),t.child;case 8:return _e(e,t,t.pendingProps.children,o),t.child;case 12:return _e(e,t,t.pendingProps.children,o),t.child;case 10:e:{if(a=t.type._context,n=t.pendingProps,s=t.memoizedProps,i=n.value,ie(ci,a._currentValue),a._currentValue=i,s!==null)if(Lt(s.value,i)){if(s.children===n.children&&!et.current){t=ho(e,t,o);break e}}else for(s=t.child,s!==null&&(s.return=t);s!==null;){var l=s.dependencies;if(l!==null){i=s.child;for(var d=l.firstContext;d!==null;){if(d.context===a){if(s.tag===1){d=io(-1,o&-o),d.tag=2;var c=s.updateQueue;if(c!==null){c=c.shared;var u=c.pending;u===null?d.next=d:(d.next=u.next,u.next=d),c.pending=d}}s.lanes|=o,d=s.alternate,d!==null&&(d.lanes|=o),Rd(s.return,o,t),l.lanes|=o;break}d=d.next}}else if(s.tag===10)i=s.type===t.type?null:s.child;else if(s.tag===18){if(i=s.return,i===null)throw Error(F(341));i.lanes|=o,l=i.alternate,l!==null&&(l.lanes|=o),Rd(i,o,t),i=s.sibling}else i=s.child;if(i!==null)i.return=s;else for(i=s;i!==null;){if(i===t){i=null;break}if(s=i.sibling,s!==null){s.return=i.return,i=s;break}i=i.return}s=i}_e(e,t,n.children,o),t=t.child}return t;case 9:return n=t.type,a=t.pendingProps.children,ca(t,o),n=vt(n),a=a(n),t.flags|=1,_e(e,t,a,o),t.child;case 14:return a=t.type,n=Bt(a,t.pendingProps),n=Bt(a.type,n),am(e,t,a,n,o);case 15:return mg(e,t,t.type,t.pendingProps,o);case 17:return a=t.type,n=t.pendingProps,n=t.elementType===a?n:Bt(a,n),Hs(e,t),t.tag=1,tt(a)?(e=!0,ii(t)):e=!1,ca(t,o),cg(t,a,n),Md(t,a,n,o),Hd(null,t,a,!0,e,o);case 19:return wg(e,t,o);case 22:return pg(e,t,o)}throw Error(F(156,t.tag))};function Pg(e,t){return sf(e,t)}function o0(e,t,o,a){this.tag=e,this.key=o,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=a,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function wt(e,t,o,a){return new o0(e,t,o,a)}function uu(e){return e=e.prototype,!(!e||!e.isReactComponent)}function r0(e){if(typeof e=="function")return uu(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Ac)return 11;if(e===Ec)return 14}return 2}function Go(e,t){var o=e.alternate;return o===null?(o=wt(e.tag,t,e.key,e.mode),o.elementType=e.elementType,o.type=e.type,o.stateNode=e.stateNode,o.alternate=e,e.alternate=o):(o.pendingProps=t,o.type=e.type,o.flags=0,o.subtreeFlags=0,o.deletions=null),o.flags=e.flags&14680064,o.childLanes=e.childLanes,o.lanes=e.lanes,o.child=e.child,o.memoizedProps=e.memoizedProps,o.memoizedState=e.memoizedState,o.updateQueue=e.updateQueue,t=e.depen
vendor: 4,128 bytes, line 40
40dencies,o.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},o.sibling=e.sibling,o.index=e.index,o.ref=e.ref,o}function Us(e,t,o,a,n,s){var i=2;if(a=e,typeof e=="function")uu(e)&&(i=1);else if(typeof e=="string")i=5;else e:switch(e){case Yr:return Cr(o.children,n,s,t);case Nc:i=8,n|=8;break;case id:return e=wt(12,o,t,n|2),e.elementType=id,e.lanes=s,e;case ld:return e=wt(13,o,t,n),e.elementType=ld,e.lanes=s,e;case dd:return e=wt(19,o,t,n),e.elementType=dd,e.lanes=s,e;case Up:return Gi(o,n,s,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Op:i=10;break e;case _p:i=9;break e;case Ac:i=11;break e;case Ec:i=14;break e;case Bo:i=16,a=null;break e}throw Error(F(130,e==null?e:typeof e,""))}return t=wt(i,o,t,n),t.elementType=e,t.type=a,t.lanes=s,t}function Cr(e,t,o,a){return e=wt(7,e,a,t),e.lanes=o,e}function Gi(e,t,o,a){return e=wt(22,e,a,t),e.elementType=Up,e.lanes=o,e.stateNode={isHidden:!1},e}function Ul(e,t,o){return e=wt(6,e,null,t),e.lanes=o,e}function $l(e,t,o){return t=wt(4,e.children!==null?e.children:[],e.key,t),t.lanes=o,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function a0(e,t,o,a,n){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=jl(0),this.expirationTimes=jl(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=jl(0),this.identifierPrefix=a,this.onRecoverableError=n,this.mutableSourceEagerHydrationData=null}function hu(e,t,o,a,n,s,i,l,d){return e=new a0(e,t,o,l,d),t===1?(t=1,s===!0&&(t|=8)):t=0,s=wt(3,null,null,t),e.current=s,s.stateNode=e,s.memoizedState={element:a,isDehydrated:o,cache:null,transitions:null,pendingSuspenseBoundaries:null},Qc(s),e}function n0(e,t,o){var a=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:Vr,key:a==null?null:""+a,children:e,containerInfo:t,implementation:o}}function Rg(e){if(!e)return Qo;e=e._reactInternals;e:{if(Pr(e)!==e||e.tag!==1)throw Error(F(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(tt(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(t!==null);throw Error(F(171))}if(e.tag===1){var o=e.type;if(tt(o))return Rf(e,o,t)}return t}function Lg(e,t,o,a,n,s,i,l,d){return e=hu(o,a,!0,e,n,s,i,l,d),e.context=Rg(null),o=e.current,a=$e(),n=zo(o),s=io(a,n),s.callback=t??null,Uo(o,s,n),e.current.lanes=n,Vn(e,n,a),ot(e,a),e}function Vi(e,t,o,a){var n=t.current,s=$e(),i=zo(n);return o=Rg(o),t.context===null?t.context=o:t.pendingContext=o,t=io(s,i),t.payload={element:e},a=a===void 0?null:a,a!==null&&(t.callback=a),e=Uo(n,t,i),e!==null&&(Rt(e,n,i,s),Ms(e,n,i)),i}function vi(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return e.child.stateNode;default:return e.child.stateNode}}function gm(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var o=e.retryLane;e.retryLane=o!==0&&o<t?o:t}}function mu(e,t){gm(e,t),(e=e.alternate)&&gm(e,t)}function s0(){return null}var Mg=typeof reportError=="function"?reportError:function(e){console.error(e)};function pu(e){this._internalRoot=e}Yi.prototype.render=pu.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(F(409));Vi(e,t,null,null)};Yi.prototype.unmount=pu.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;Ar(function(){Vi(null,e,null,null)}),t[co]=null}};function Yi(e){this._internalRoot=e}Yi.prototype.unstable_scheduleHydration=function(e){if(e){var t=pf();e={blockedOn:null,target:e,priority:t};for(var o=0;o<No.length&&t!==0&&t<No[o].priority;o++);No.splice(o,0,e),o===0&&gf(e)}};function fu(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function Qi(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11&&(e.nodeType!==8||e.nodeValue!==" react-mount-point-unstable "))}function ym(){}
40function i0(e,t,o,a,n){if(n){if(typeof a=="function"){var s=a;a=function(){var c=vi(i);s.call(c)}}var i=Lg(t,a,e,0,null,!1,!1,"",ym);return e._reactRootContainer=i,e[co]=i.current,Bn(e.nodeType===8?e.parentNode:e),Ar(),i}for(;n=e.lastChild;)e.removeChild(n);if(typeof a=="function"){var l=a;a=function(){var c=vi(d);l.call(c)}}var d=hu(e,0,!1,null,null,!1,!1,"",ym);return e._reactRootContainer=d,e[co]=d.current,Bn(e.nodeType===8?e.parentNode:e),Ar(function(){Vi(t,d,o,a)}),d}function Ki(e,t,o,a,n){var s=o._reactRootContainer;if(s){var i=s;if(typeof n=="function"){var l=n;n=function(){var d=vi(i);l.call(d)}}Vi(t,i,e,n)}else i=i0(o,t,e,n,a);return vi(i)}hf=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var o=sn(t.pendingLanes);o!==0&&(Pc(t,o|1),ot(t,be()),!(te&6)&&(Aa=be()+500,ar()))}break;case 13:Ar(function(){var a=uo(e,1);if(a!==null){var n=$e();Rt(a,e,1,n)}}),mu(e,1)}};Rc=function(e){if(e.tag===13){var t=uo(e,134217728);if(t!==null){var o=$e();Rt(t,e,134217728,o)}mu(e,134217728)}};mf=function(e){if(e.tag===13){var t=zo(e),o=uo(e,t);if(o!==null){var a=$e();Rt(o,e,t,a)}mu(e,t)}};pf=function(){return ae};ff=function(e,t){var o=ae;try{return ae=e,t()}finally{ae=o}};bd=function(e,t,o){switch(t){case"input":if(hd(e,o),t=o.name,o.type==="radio"&&t!=null){for(o=e;o.parentNode;)o=o.parentNode;for(o=o.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<o.length;t++){var a=o[t];if(a!==e&&a.form===e.form){var n=Hi(a);if(!n)throw Error(F(90));zp(a),hd(a,n)}}}break;case"textarea":Vp(e,o);break;case"select":t=o.value,t!=null&&sa(e,!!o.multiple,t,!1)}};ef=lu;tf=Ar;var l0={usingClientEntryPoint:!1,Events:[Qn,Jr,Hi,Jp,Zp,lu]},Za={findFiberByHostInstance:mr,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},d0={bundleType:Za.bundleType,version:Za.version,rendererPackageName:Za.rendererPackageName,rendererConfig:Za.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:go.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=af(e),e===null?null:e.stateNode},findFiberByHostInstance:Za.findFiberByHostInstance||s0,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var js=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!js.isDisabled&&js.supportsFiber)try{Li=js.inject(d0),Yt=js}catch{}}ut.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=l0;ut.createPortal=function(e,t){var o=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!fu(t))throw Error(F(200));return n0(e,t,null,o)};ut.createRoot=function(e,t){if(!fu(e))throw Error(F(299));var o=!1,a="",n=Mg;return t!=null&&(t.unstable_strictMode===!0&&(o=!0),t.identifierPrefix!==void 0&&(a=t.identifierPrefix),t.onRecoverableError!==void 0&&(n=t.onRecoverableError)),t=hu(e,1,!1,null,null,o,!1,a,n),e[co]=t.current,Bn(e.nodeType===8?e.parentNode:e),new pu(t)};ut.findDOMNode=function(e){if(e==null)return null;if(e.nodeType===1)return e;var t=e._reactInternals;if(t===void 0)throw typeof e.render=="function"?Error(F(188)):(e=Object.keys(e).join(","),Error(F(268,e)));return e=af(t),e=e===null?null:e.stateNode,e};ut.flushSync=function(e){return Ar(e)};ut.hydrate=function(e,t,o){if(!Qi(t))throw Error(F(200));return Ki(null,e,t,!0,o)};ut.hydrateRoot=function(e,t,o){if(!fu(e))throw Error(F(405));var a=o!=null&&o.hydratedSources||null,n=!1,s="",i=Mg;if(o!=null&&(o.unstable_strictMode===!0&&(n=!0),o.identifierPrefix!==void 0&&(s=o.identifierPrefix),o.onRecoverableError!==void 0&&(i=o.onRecoverableError)),t=Lg(t,null,e,1,o??null,n,!1,s,i),e[co]=t.current,Bn(e),a)for(e=0;e<a.length;e++)o=a[e],n=o._getVersion,n=n(o._source),t.mutableSourceEagerHydrationData==null?t.mutableSourceEagerHydrationData=[o,n]:t.mutableSourceEagerHydrationData.push(o,n);return new Yi(t)};ut.render=function(e,t,o){if(!Qi(t))throw Error(F(200));return Ki(null,e,t,!1,o)};ut.unmountComponentAtNode=function(e){if(!Qi(e))throw Error(F(40));return e._reactRootContainer?(Ar(function(){Ki(null,null,e,!1,function(){e._reactRootContainer=null,e[co]=null})}),!0):!1};ut.unstable_batchedUpdates=lu;ut.unstable_renderSubtreeIntoContainer=function(e,t,o,a){if(!Qi(o))throw Error(F(200));if(e==null||e._reactInternals===void 0)throw Error(F(38));return Ki(e,t,o,!1,a)};ut.version="18.3.1-next-f1338f8080-20240426";function Dg(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Dg)}catch(e){console.error(e)}}Dg(),Mp.exports=ut;var Xn=Mp.exports;const Ig=zn(Xn);var Hg,wm=Xn;Hg=wm.createRoot,wm.hydrateRoot;var Xi=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},Ji=typeof window>"u"||"Deno"in globalThis;function Wt(){}function c0(e,t){return typeof e=="function"?e(t):e}function u0(e){return typeof e=="number"&&e>=0&&e!==1/0}function h0(e,t){return Math.max(e+(t||0)-Date.now(),0)}function Jd(e,t){return typeof e=="function"?e(t):e}function m0(e,t){return typeof e=="function"?e(t):e}function bm(e,t){const{type:o="all",exact:a,fetchStatus:n,predicate:s,queryKey:i,stale:l}=e;if(i){if(a){if(t.queryHash!==gu(i,t.options))return!1}else if(!Mn(t.queryKey,i))return!1}if(o!=="all"){const d=t.isActive();if(o==="active"&&!d||o==="inactive"&&d)return!1}return!(typeof l=="boolean"&&t.isStale()!==l||n&&n!==t.state.fetchStatus||s&&!s(t))}function vm(e,t){const{exact:o,status:a,predicate:n,mutationKey:s}=e;if(s){if(!t.options.mutationKey)return!1;if(o){if(Ln(t.options.mutationKey)!==Ln(s))return!1}else if(!Mn(t.options.mutationKey,s))return!1}return!(a&&t.state.status!==a||n&&!n(t))}function gu(e,t){return((t==null?void 0:t.queryKeyHashFn)||Ln)(e)}function Ln(e){return JSON.stringify(e,(t,o)=>Zd(o)?Object.keys(o).sort().reduce((a,n)=>(a[n]=o[n],a),{}):o)}function Mn(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?Object.keys(t).every(o=>Mn(e[o],t[o])):!1}function Og(e,t){if(e===t)return e;const o=xm(e)&&xm(t);if(o||Zd(e)&&Zd(t)){const a=o?e:Object.keys(e),n=a.length,s=o?t:Object.keys(t),i=s.length,l=o?[]:{}
vendor: 21,372 bytes, line 40
40,d=new Set(a);let c=0;for(let u=0;u<i;u++){const m=o?u:s[u];(!o&&d.has(m)||o)&&e[m]===void 0&&t[m]===void 0?(l[m]=void 0,c++):(l[m]=Og(e[m],t[m]),l[m]===e[m]&&e[m]!==void 0&&c++)}return n===i&&c===n?e:l}return t}function xm(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function Zd(e){if(!km(e))return!1;const t=e.constructor;if(t===void 0)return!0;const o=t.prototype;return!(!km(o)||!o.hasOwnProperty("isPrototypeOf")||Object.getPrototypeOf(e)!==Object.prototype)}function km(e){return Object.prototype.toString.call(e)==="[object Object]"}function p0(e){return new Promise(t=>{setTimeout(t,e)})}function f0(e,t,o){return typeof o.structuralSharing=="function"?o.structuralSharing(e,t):o.structuralSharing!==!1?Og(e,t):t}function g0(e,t,o=0){const a=[...e,t];return o&&a.length>o?a.slice(1):a}function y0(e,t,o=0){const a=[t,...e];return o&&a.length>o?a.slice(0,-1):a}var yu=Symbol();function _g(e,t){return!e.queryFn&&(t!=null&&t.initialPromise)?()=>t.initialPromise:!e.queryFn||e.queryFn===yu?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}var yr,Eo,ga,yp,w0=(yp=class extends Xi{constructor(){super();oe(this,yr);oe(this,Eo);oe(this,ga);G(this,ga,t=>{if(!Ji&&window.addEventListener){const o=()=>t();return window.addEventListener("visibilitychange",o,!1),()=>{window.removeEventListener("visibilitychange",o)}}})}onSubscribe(){B(this,Eo)||this.setEventListener(B(this,ga))}onUnsubscribe(){var t;this.hasListeners()||((t=B(this,Eo))==null||t.call(this),G(this,Eo,void 0))}setEventListener(t){var o;G(this,ga,t),(o=B(this,Eo))==null||o.call(this),G(this,Eo,t(a=>{typeof a=="boolean"?this.setFocused(a):this.onFocus()}))}setFocused(t){B(this,yr)!==t&&(G(this,yr,t),this.onFocus())}onFocus(){const t=this.isFocused();this.listeners.forEach(o=>{o(t)})}isFocused(){var t;return typeof B(this,yr)=="boolean"?B(this,yr):((t=globalThis.document)==null?void 0:t.visibilityState)!=="hidden"}},yr=new WeakMap,Eo=new WeakMap,ga=new WeakMap,yp),Ug=new w0,ya,Fo,wa,wp,b0=(wp=class extends Xi{constructor(){super();oe(this,ya,!0);oe(this,Fo);oe(this,wa);G(this,wa,t=>{if(!Ji&&window.addEventListener){const o=()=>t(!0),a=()=>t(!1);return window.addEventListener("online",o,!1),window.addEventListener("offline",a,!1),()=>{window.removeEventListener("online",o),window.removeEventListener("offline",a)}}})}onSubscribe(){B(this,Fo)||this.setEventListener(B(this,wa))}onUnsubscribe(){var t;this.hasListeners()||((t=B(this,Fo))==null||t.call(this),G(this,Fo,void 0))}setEventListener(t){var o;G(this,wa,t),(o=B(this,Fo))==null||o.call(this),G(this,Fo,t(this.setOnline.bind(this)))}setOnline(t){B(this,ya)!==t&&(G(this,ya,t),this.listeners.forEach(a=>{a(t)}))}isOnline(){return B(this,ya)}},ya=new WeakMap,Fo=new WeakMap,wa=new WeakMap,wp),xi=new b0;function v0(){let e,t;const o=new Promise((n,s)=>{e=n,t=s});o.status="pending",o.catch(()=>{});function a(n){Object.assign(o,n),delete o.resolve,delete o.reject}return o.resolve=n=>{a({status:"fulfilled",value:n}),e(n)},o.reject=n=>{a({status:"rejected",reason:n}),t(n)},o}function x0(e){return Math.min(1e3*2**e,3e4)}function $g(e){return(e??"online")==="online"?xi.isOnline():!0}var zg=class extends Error{constructor(e){super("CancelledError"),this.revert=e==null?void 0:e.revert,this.silent=e==null?void 0:e.silent}};function zl(e){return e instanceof zg}function Gg(e){let t=!1,o=0,a=!1,n;const s=v0(),i=y=>{var x;a||(p(new zg(y)),(x=e.abort)==null||x.call(e))},l=()=>{t=!0},d=()=>{t=!1},c=()=>Ug.isFocused()&&(e.networkMode==="always"||xi.isOnline())&&e.canRun(),u=()=>$g(e.networkMode)&&e.canRun(),m=y=>{var x;a||(a=!0,(x=e.onSuccess)==null||x.call(e,y),n==null||n(),s.resolve(y))},p=y=>{var x;a||(a=!0,(x=e.onError)==null||x.call(e,y),n==null||n(),s.reject(y))},h=()=>new Promise(y=>{var x;n=g=>{(a||c())&&y(g)},(x=e.onPause)==null||x.call(e)}).then(()=>{var y;n=void 0,a||(y=e.onContinue)==null||y.call(e)}),v=()=>{if(a)return;let y;const x=o===0?e.initialPromise:void 0;try{y=x??e.fn()}catch(g){y=Promise.reject(g)}Promise.resolve(y).then(m).catch(g=>{var C;if(a)return;const f=e.retry??(Ji?0:3),w=e.retryDelay??x0,k=typeof w=="function"?w(o,g):w,j=f===!0||typeof f=="number"&&o<f||typeof f=="function"&&f(o,g);if(t||!j){p(g);return}o++,(C=e.onFail)==null||C.call(e,o,g),p0(k).then(()=>c()?void 0:h()).then(()=>{t?p(g):v()})})};return{promise:s,cancel:i,continue:()=>(n==null||n(),s),cancelRetry:l,continueRetry:d,canStart:u,start:()=>(u()?v():h().then(v),s)}}var k0=e=>setTimeout(e,0);function S0(){let e=[],t=0,o=l=>{l()},a=l=>{l()},n=k0;const s=l=>{t?e.push(l):n(()=>{o(l)})},i=()=>{const l=e;e=[],l.length&&n(()=>{a(()=>{l.forEach(d=>{o(d)})})})};return{batch:l=>{let d;t++;try{d=l()}finally{t--,t||i()}return d},batchCalls:l=>(...d)=>{s(()=>{l(...d)})},schedule:s,setNotifyFunction:l=>{o=l},setBatchNotifyFunction:l=>{a=l},setScheduler:l=>{n=l}}}var Ue=S0(),wr,bp,Vg=(bp=class{constructor(){oe(this,wr)}destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),u0(this.gcTime)&&G(this,wr,setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(Ji?1/0:5*60*1e3))}clearGcTimeout(){B(this,wr)&&(clearTimeout(B(this,wr)),G(this,wr,void 0))}},wr=new WeakMap,bp),ba,br,ft,vr,De,Un,xr,Nt,to,vp,j0=(vp=class extends Vg{constructor(t){super();oe(this,Nt);oe(this,ba);oe(this,br);oe(this,ft);oe(this,vr);oe(this,De);oe(this,Un);oe(this,xr);G(this,xr,!1),G(this,Un,t.defaultOptions),this.setOptions(t.options),this.observers=[],G(this,vr,t.client),G(this,ft,B(this,vr).getQueryCache()),this.queryKey=t.queryKey,this.queryHash=t.queryHash,G(this,ba,T0(this.options)),this.state=t.state??B(this,ba),this.scheduleGc()}get meta(){return this.options.meta}get promise(){var t;return(t=B(this,De))==null?void 0:t.promise}setOptions(t){this.options={...B(this,Un),...t},this.updateGcTime(this.options.gcTime)}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&B(this,ft).remove(this)}setData(t,o){const a=f0(this.state.data,t,this.options);return Re(this,Nt,to).call(this,{data:a,type:"success",dataUpdatedAt:o==null?void 0:o.updatedAt,manual:o==null?void 0:o.manual}),a}setState(t,o){Re(this,Nt,to).call(this,{type:"setState",state:t,setStateOptions:o})}cancel(t){var a,n;const o=(a=B(this,De))==null?void 0:a.promise;return(n=B(this,De))==null||n.cancel(t),o?o.then(Wt).catch(Wt):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(B(this,ba))}isActive(){return this.observers.some(t=>m0(t.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===yu||this.state.dataUpdateCount+this.state.errorUpdateCount===0}isStatic(){return this.getObserversCount()>0?this.observers.some(t=>Jd(t.options.staleTime,this)==="static"):!1}isStale(){return this.getObserversCount()>0?this.observers.some(t=>t.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(t=0){return this.state.data===void 0?!0:t==="static"?!1:this.state.isInvalidated?!0:!h0(this.state.dataUpdatedAt,t)}onFocus(){var o;const t=this.observers.find(a=>a.shouldFetchOnWindowFocus());t==null||t.refetch({cancelRefetch:!1}),(o=B(this,De))==null||o.continue()}onOnline(){var o;const t=this.observers.find(a=>a.shouldFetchOnReconnect());t==null||t.refetch({cancelRefetch:!1}),(o=B(this,De))==null||o.continue()}addObserver(t){this.observers.includes(t)||(this.observers.push(t),this.clearGcTimeout(),B(this,ft).notify({type:"observerAdded",query:this,observer:t}))}removeObserver(t){this.observers.includes(t)&&(this.observers=this.observers.filter(o=>o!==t),this.observers.length||(B(this,De)&&(B(this,xr)?B(this,De).cancel({revert:!0}):B(this,De).cancelRetry()),this.scheduleGc()),B(this,ft).notify({type:"observerRemoved",query:this,observer:t}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||Re(this,Nt,to).call(this,{type:"invalidate"})}fetch(t,o){var c,u,m;if(this.state.fetchStatus!=="idle"){if(this.state.data!==void 0&&(o!=null&&o.cancelRefetch))this.cancel({silent:!0});else if(B(this,De))return B(this,De).continueRetry(),B(this,De).promise}if(t&&this.setOptions(t),!this.options.queryFn){const p=this.observers.find(h=>h.options.queryFn);p&&this.setOptions(p.options)}const a=new AbortController,n=p=>{Object.defineProperty(p,"signal",{enumerable:!0,get:()=>(G(this,xr,!0),a.signal)})},s=()=>{const p=_g(this.options,o),v=(()=>{const y={client:B(this,vr),queryKey:this.queryKey,meta:this.meta};return n(y),y})();return G(this,xr,!1),this.options.persister?this.options.persister(p,v,this):p(v)},l=(()=>{const p={fetchOptions:o,options:this.options,queryKey:this.queryKey,client:B(this,vr),state:this.state,fetchFn:s};return n(p),p})();(c=this.options.behavior)==null||c.onFetch(l,this),G(this,br,this.state),(this.state.fetchStatus==="idle"||this.state.fetchMeta!==((u=l.fetchOptions)==null?void 0:u.meta))&&Re(this,Nt,to).call(this,{type:"fetch",meta:(m=l.fetchOptions)==null?void 0:m.meta});const d=p=>{var h,v,y,x;zl(p)&&p.silent||Re(this,Nt,to).call(this,{type:"error",error:p}),zl(p)||((v=(h=B(this,ft).config).onError)==null||v.call(h,p,this),(x=(y=B(this,ft).config).onSettled)==null||x.call(y,this.state.data,p,this)),this.scheduleGc()};return G(this,De,Gg({initialPromise:o==null?void 0:o.initialPromise,fn:l.fetchFn,abort:a.abort.bind(a),onSuccess:p=>{var h,v,y,x;if(p===void 0){d(new Error(`${this.queryHash} data is undefined`));return}try{this.setData(p)}catch(g){d(g);return}(v=(h=B(this,ft).config).onSuccess)==null||v.call(h,p,this),(x=(y=B(this,ft).config).onSettled)==null||x.call(y,p,this.state.error,this),this.scheduleGc()},onError:d,onFail:(p,h)=>{Re(this,Nt,to).call(this,{type:"failed",failureCount:p,error:h})},onPause:()=>{Re(this,Nt,to).call(this,{type:"pause"})},onContinue:()=>{Re(this,Nt,to).call(this,{type:"continue"})},retry:l.options.retry,retryDelay:l.options.retryDelay,networkMode:l.options.networkMode,canRun:()=>!0})),B(this,De).start()}},ba=new WeakMap,br=new WeakMap,ft=new WeakMap,vr=new WeakMap,De=new WeakMap,Un=new WeakMap,xr=new WeakMap,Nt=new WeakSet,to=function(t){const o=a=>{switch(t.type){case"failed":return{...a,fetchFailureCount:t.failureCount,fetchFailureReason:t.error};case"pause":return{...a,fetchStatus:"paused"};case"continue":return{...a,fetchStatus:"fetching"};case"fetch":return{...a,...C0(a.data,this.options),fetchMeta:t.meta??null};case"success":return G(this,br,void 0),{...a,data:t.data,dataUpdateCount:a.dataUpdateCount+1,dataUpdatedAt:t.dataUpdatedAt??Date.now(),error:null,isInvalidated:!1,status:"success",...!t.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};case"error":const n=t.error;return zl(n)&&n.revert&&B(this,br)?{...B(this,br),fetchStatus:"idle"}:{...a,error:n,errorUpdateCount:a.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:a.fetchFailureCount+1,fetchFailureReason:n,fetchStatus:"idle",status:"error"};case"invalidate":return{...a,isInvalidated:!0};case"setState":return{...a,...t.state}}};this.state=o(this.state),Ue.batch(()=>{this.observers.forEach(a=>{a.onQueryUpdate()}),B(this,ft).notify({query:this,type:"updated",action:t})})},vp);function C0(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:$g(t.networkMode)?"fetching":"paused",...e===void 0&&{error:null,status:"pending"}}}function T0(e){const t=typeof e.initialData=="function"?e.initialData():e.initialData,o=t!==void 0,a=o?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:o?a??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:o?"success":"pending",fetchStatus:"idle"}}var Ut,xp,B0=(xp=class extends Xi{constructor(t={}){super();oe(this,Ut);this.config=t,G(this,Ut,new Map)}build(t,o,a){const n=o.queryKey,s=o.queryHash??gu(n,o);let i=this.get(s);return i||(i=new j0({client:t,queryKey:n,queryHash:s,options:t.defaultQueryOptions(o),state:a,defaultOptions:t.getQueryDefaults(n)}),this.add(i)),i}add(t){B(this,Ut).has(t.queryHash)||(B(this,Ut).set(t.queryHash,t),this.notify({type:"added",query:t}))}remove(t){const o=B(this,Ut).get(t.queryHash);o&&(t.destroy(),o===t&&B(this,Ut).delete(t.queryHash),this.notify({type:"removed",query:t}))}clear(){Ue.batch(()=>{this.getAll().forEach(t=>{this.remove(t)})})}get(t){return B(this,Ut).get(t)}getAll(){return[...B(this,Ut).values()]}find(t){const o={exact:!0,...t};return this.getAll().find(a=>bm(o,a))}findAll(t={}){const o=this.getAll();return Object.keys(t).length>0?o.filter(a=>bm(t,a)):o}notify(t){Ue.batch(()=>{this.listeners.forEach(o=>{o(t)})})}onFocus(){Ue.batch(()=>{this.getAll().forEach(t=>{t.onFocus()})})}onOnline(){Ue.batch(()=>{this.getAll().forEach(t=>{t.onOnline()})})}},Ut=new WeakMap,xp),$t,Oe,kr,zt,To,kp,W0=(kp=class extends Vg{constructor(t){super();oe(this,zt);oe(this,$t);oe(this,Oe);oe(this,kr);this.mutationId=t.mutationId,G(this,Oe,t.mutationCache),G(this,$t,[]),this.state=t.state||N0(),this.setOptions(t.options),this.scheduleGc()}setOptions(t){this.options=t,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(t){B(this,$t).includes(t)||(B(this,$t).push(t),this.clearGcTimeout(),B(this,Oe).notify({type:"observerAdded",mutation:this,observer:t}))}removeObserver(t){G(this,$t,B(this,$t).filter(o=>o!==t)),this.scheduleGc(),B(this,Oe).notify({type:"observerRemoved",mutation:this,observer:t})}optionalRemove(){B(this,$t).length||(this.state.status==="pending"?this.scheduleGc():B(this,Oe).remove(this))}continue(){var t;return((t=B(this,kr))==null?void 0:t.continue())??this.execute(this.state.variables)}async execute(t){var s,i,l,d,c,u,m,p,h,v,y,x,g,f,w,k,j,C,T,E;const o=()=>{Re(this,zt,To).call(this,{type:"continue"})};G(this,kr,Gg({fn:()=>this.options.mutationFn?this.options.mutationFn(t):Promise.reject(new Error("No mutationFn found")),onFail:(R,P)=>{Re(this,zt,To).call(this,{type:"failed",failureCount:R,error:P})},onPause:()=>{Re(this,zt,To).call(this,{type:"pause"})},onContinue:o,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>B(this,Oe).canRun(this)}));const a=this.state.status==="pending",n=!B(this,kr).canStart();try{if(a)o();else{Re(this,zt,To).call(this,{type:"pending",variables:t,isPaused:n}),await((i=(s=B(this,Oe).config).onMutate)==null?void 0:i.call(s,t,this));const P=await((d=(l=this.options).onMutate)==null?void 0:d.call(l,t));P!==this.state.context&&Re(this,zt,To).call(this,{type:"pending",context:P,variables:t,isPaused:n})}const R=await B(this,kr).start();return await((u=(c=B(this,Oe).config).onSuccess)==null?void 0:u.call(c,R,t,this.state.context,this)),await((p=(m=this.options).onSuccess)==null?void 0:p.call(m,R,t,this.state.context)),await((v=(h=B(this,Oe).config).onSettled)==null?void 0:v.call(h,R,null,this.state.variables,this.state.context,this)),await((x=(y=this.options).onSettled)==null?void 0:x.call(y,R,null,t,this.state.context)),Re(this,zt,To).call(this,{type:"success",data:R}),R}catch(R){try{throw await((f=(g=B(this,Oe).config).onError)==null?void 0:f.call(g,R,t,this.state.context,this)),await((k=(w=this.options).onError)==null?void 0:k.call(w,R,t,this.state.context)),await((C=(j=B(this,Oe).config).onSettled)==null?void 0:C.call(j,void 0,R,this.state.variables,this.state.context,this)),await((E=(T=this.options).onSettled)==null?void 0:E.call(T,void 0,R,t,this.state.context)),R}finally{Re(this,zt,To).call(this,{type:"error",error:R})}}finally{B(this,Oe).runNext(this)}}},$t=new WeakMap,Oe=new WeakMap,kr=new WeakMap,zt=new WeakSet,To=function(t){const o=a=>{switch(t.type){case"failed":return{...a,failureCount:t.failureCount,failureReason:t.error};case"pause":return{...a,isPaused:!0};case"continue":return{...a,isPaused:!1};case"pending":return{...a,context:t.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:t.isPaused,status:"pending",variables:t.variables,submittedAt:Date.now()};case"success":return{...a,data:t.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...a,data:void 0,error:t.error,failureCount:a.failureCount+1,failureReason:t.error,isPaused:!1,status:"error"}}};this.state=o(this.state),Ue.batch(()=>{B(this,$t).forEach(a=>{a.onMutationUpdate(t)}),B(this,Oe).notify({mutation:this,type:"updated",action:t})})},kp);function N0(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var ao,At,$n,Sp,A0=(Sp=class extends Xi{constructor(t={}){super();oe(this,ao);oe(this,At);oe(this,$n);this.config=t,G(this,ao,new Set),G(this,At,new Map),G(this,$n,0)}build(t,o,a){const n=new W0({mutationCache:this,mutationId:++is(this,$n)._,options:t.defaultMutationOptions(o),state:a});return this.add(n),n}add(t){B(this,ao).add(t);const o=Cs(t);if(typeof o=="string"){const a=B(this,At).get(o);a?a.push(t):B(this,At).set(o,[t])}this.notify({type:"added",mutation:t})}remove(t){if(B(this,ao).delete(t)){const o=Cs(t);if(typeof o=="string"){const a=B(this,At).get(o);if(a)if(a.length>1){const n=a.indexOf(t);n!==-1&&a.splice(n,1)}else a[0]===t&&B(this,At).delete(o)}}this.notify({type:"removed",mutation:t})}canRun(t){const o=Cs(t);if(typeof o=="string"){const a=B(this,At).get(o),n=a==null?void 0:a.find(s=>s.state.status==="pending");return!n||n===t}else return!0}runNext(t){var a;const o=Cs(t);if(typeof o=="string"){const n=(a=B(this,At).get(o))==null?void 0:a.find(s=>s!==t&&s.state.isPaused);return(n==null?void 0:n.continue())??Promise.resolve()}else return Promise.resolve()}clear(){Ue.batch(()=>{B(this,ao).forEach(t=>{this.notify({type:"removed",mutation:t})}),B(this,ao).clear(),B(this,At).clear()})}getAll(){return Array.from(B(this,ao))}find(t){const o={exact:!0,...t};return this.getAll().find(a=>vm(o,a))}findAll(t={}){return this.getAll().filter(o=>vm(t,o))}notify(t){Ue.batch(()=>{this.listeners.forEach(o=>{o(t)})})}resumePausedMutations(){const t=this.getAll().filter(o=>o.state.isPaused);return Ue.batch(()=>Promise.all(t.map(o=>o.continue().catch(Wt))))}},ao=new WeakMap,At=new WeakMap,$n=new WeakMap,Sp);function Cs(e){var t;return(t=e.options.scope)==null?void 0:t.id}function Sm(e){return{onFetch:(t,o)=>{var u,m,p,h,v;const a=t.options,n=(p=(m=(u=t.fetchOptions)==null?void 0:u.meta)==null?void 0:m.fetchMore)==null?void 0:p.direction,s=((h=t.state.data)==null?void 0:h.pages)||[],i=((v=t.state.data)==null?void 0:v.pageParams)||[];let l={pages:[],pageParams:[]},d=0;const c=async()=>{let y=!1;const x=w=>{Object.defineProperty(w,"signal",{enumerable:!0,get:()=>(t.signal.aborted?y=!0:t.signal.addEventListener("abort",()=>{y=!0}),t.signal)})},g=_g(t.options,t.fetchOptions),f=async(w,k,j)=>{if(y)return Promise.reject();if(k==null&&w.pages.length)return Promise.resolve(w);const T=(()=>{const _={client:t.client,queryKey:t.queryKey,pageParam:k,direction:j?"backward":"forward",meta:t.options.meta};return x(_),_})(),E=await g(T),{maxPages:R}=t.options,P=j?y0:g0;return{pages:P(w.pages,E,R),pageParams:P(w.pageParams,k,R)}};if(n&&s.length){const w=n==="backward",k=w?E0:jm,j={pages:s,pageParams:i},C=k(a,j);l=await f(j,C,w)}else{const w=e??s.length;do{const k=d===0?i[0]??a.initialPageParam:jm(a,l);if(d>0&&k==null)break;l=await f(l,k),d++}while(d<w)}return l};t.options.persister?t.fetchFn=()=>{var y,x;return(x=(y=t.options).persister)==null?void 0:x.call(y,c,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},o)}:t.fetchFn=c}}}function jm(e,{pages:t,pageParams:o}){const a=t.length-1;return t.length>0?e.getNextPageParam(t[a],t,o[a],o):void 0}function E0(e,{pages:t,pageParams:o}){var a;return t.length>0?(a=e.getPreviousPageParam)==null?void 0:a.call(e,t[0],t,o[0],o):void 0}var ye,qo,Po,va,xa,Ro,ka,Sa,jp,F0=(jp=class{constructor(e={}){oe(this,ye);oe(this,qo);oe(this,Po);oe(this,va);oe(this,xa);oe(this,Ro);oe(this,ka);oe(this,Sa);G(this,ye,e.queryCache||new B0),G(this,qo,e.mutationCache||new A0),G(this,Po,e.defaultOptions||{}),G(this,va,new Map),G(this,xa,new Map),G(this,Ro,0)}mount(){is(this,Ro)._++,B(this,Ro)===1&&(G(this,ka,Ug.subscribe(async e=>{e&&(await this.resumePausedMutations(),B(this,ye).onFocus())})),G(this,Sa,xi.subscribe(async e=>{e&&(await this.resumePausedMutations(),B(this,ye).onOnline())})))}unmount(){var e,t;is(this,Ro)._--,B(this,Ro)===0&&((e=B(this,ka))==null||e.call(this),G(this,ka,void 0),(t=B(this,Sa))==null||t.call(this),G(this,Sa,void 0))}isFetching(e){return B(this,ye).findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return B(this,qo).findAll({...e,status:"pending"}).length}getQueryData(e){var o;const t=this.defaultQueryOptions({queryKey:e});return(o=B(this,ye).get(t.queryHash))==null?void 0:o.state.data}ensureQueryData(e){const t=this.defaultQueryOptions(e),o=B(this,ye).build(this,t),a=o.state.data;return a===void 0?this.fetchQuery(e):(e.revalidateIfStale&&o.isStaleByTime(Jd(t.staleTime,o))&&this.prefetchQuery(t),Promise.resolve(a))}getQueriesData(e){return B(this,ye).findAll(e).map(({queryKey:t,state:o})=>{const a=o.data;return[t,a]})}setQueryData(e,t,o){const a=this.defaultQueryOptions({queryKey:e}),n=B(this,ye).get(a.queryHash),s=n==null?void 0:n.state.data,i=c0(t,s);if(i!==void 0)return B(this,ye).build(this,a).setData(i,{...o,manual:!0})}
40setQueriesData(e,t,o){return Ue.batch(()=>B(this,ye).findAll(e).map(({queryKey:a})=>[a,this.setQueryData(a,t,o)]))}getQueryState(e){var o;const t=this.defaultQueryOptions({queryKey:e});return(o=B(this,ye).get(t.queryHash))==null?void 0:o.state}removeQueries(e){const t=B(this,ye);Ue.batch(()=>{t.findAll(e).forEach(o=>{t.remove(o)})})}resetQueries(e,t){const o=B(this,ye);return Ue.batch(()=>(o.findAll(e).forEach(a=>{a.reset()}),this.refetchQueries({type:"active",...e},t)))}cancelQueries(e,t={}){const o={revert:!0,...t},a=Ue.batch(()=>B(this,ye).findAll(e).map(n=>n.cancel(o)));return Promise.all(a).then(Wt).catch(Wt)}invalidateQueries(e,t={}){return Ue.batch(()=>(B(this,ye).findAll(e).forEach(o=>{o.invalidate()}),(e==null?void 0:e.refetchType)==="none"?Promise.resolve():this.refetchQueries({...e,type:(e==null?void 0:e.refetchType)??(e==null?void 0:e.type)??"active"},t)))}refetchQueries(e,t={}){const o={...t,cancelRefetch:t.cancelRefetch??!0},a=Ue.batch(()=>B(this,ye).findAll(e).filter(n=>!n.isDisabled()&&!n.isStatic()).map(n=>{let s=n.fetch(void 0,o);return o.throwOnError||(s=s.catch(Wt)),n.state.fetchStatus==="paused"?Promise.resolve():s}));return Promise.all(a).then(Wt)}fetchQuery(e){const t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);const o=B(this,ye).build(this,t);return o.isStaleByTime(Jd(t.staleTime,o))?o.fetch(t):Promise.resolve(o.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(Wt).catch(Wt)}fetchInfiniteQuery(e){return e.behavior=Sm(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(Wt).catch(Wt)}ensureInfiniteQueryData(e){return e.behavior=Sm(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return xi.isOnline()?B(this,qo).resumePausedMutations():Promise.resolve()}getQueryCache(){return B(this,ye)}getMutationCache(){return B(this,qo)}getDefaultOptions(){return B(this,Po)}setDefaultOptions(e){G(this,Po,e)}setQueryDefaults(e,t){B(this,va).set(Ln(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){const t=[...B(this,va).values()],o={};return t.forEach(a=>{Mn(e,a.queryKey)&&Object.assign(o,a.defaultOptions)}),o}setMutationDefaults(e,t){B(this,xa).set(Ln(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){const t=[...B(this,xa).values()],o={};return t.forEach(a=>{Mn(e,a.mutationKey)&&Object.assign(o,a.defaultOptions)}),o}defaultQueryOptions(e){if(e._defaulted)return e;const t={...B(this,Po).queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=gu(t.queryKey,t)),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!=="always"),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t.queryFn===yu&&(t.enabled=!1),t}defaultMutationOptions(e){return e!=null&&e._defaulted?e:{...B(this,Po).mutations,...(e==null?void 0:e.mutationKey)&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){B(this,ye).clear(),B(this,qo).clear()}},ye=new WeakMap,qo=new WeakMap,Po=new WeakMap,va=new WeakMap,xa=new WeakMap,Ro=new WeakMap,ka=new WeakMap,Sa=new WeakMap,jp),q0=b.createContext(void 0),P0=({client:e,children:t})=>(b.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),r.jsx(q0.Provider,{value:e,children:t}));/** 41 * @remix-run/router v1.23.0 42 * 43 * Copyright (c) Remix Software Inc. 44 * 45 * This source code is licensed under the MIT license found in the 46 * LICENSE.md file in the root directory of this source tree. 47 * 48 * @license MIT 49 */function Dn(){return Dn=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var a in o)Object.prototype.hasOwnProperty.call(o,a)&&(e[a]=o[a])}return e},Dn.apply(this,arguments)}var Do;(function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"})(Do||(Do={}));const Cm="popstate";function R0(e){e===void 0&&(e={});function t(a,n){let{pathname:s,search:i,hash:l}=a.location;return ec("",{pathname:s,search:i,hash:l},n.state&&n.state.usr||null,n.state&&n.state.key||"default")}function o(a,n){return typeof n=="string"?n:ki(n)}return M0(t,o,null,e)}function ke(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function Yg(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function L0(){return Math.random().toString(36).substr(2,8)}function Tm(e,t){return{usr:e.state,key:e.key,idx:t}}function ec(e,t,o,a){return o===void 0&&(o=null),Dn({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Ma(t):t,{state:o,key:t&&t.key||a||L0()})}function ki(e){let{pathname:t="/",search:o="",hash:a=""}=e;return o&&o!=="?"&&(t+=o.charAt(0)==="?"?o:"?"+o),a&&a!=="#"&&(t+=a.charAt(0)==="#"?a:"#"+a),t}function Ma(e){let t={};if(e){let o=e.indexOf("#");o>=0&&(t.hash=e.substr(o),e=e.substr(0,o));let a=e.indexOf("?");a>=0&&(t.search=e.substr(a),e=e.substr(0,a)),e&&(t.pathname=e)}return t}function M0(e,t,o,a){a===void 0&&(a={});let{window:n=document.defaultView,v5Compat:s=!1}=a,i=n.history,l=Do.Pop,d=null,c=u();c==null&&(c=0,i.replaceState(Dn({},i.state,{idx:c}),""));function u(){return(i.state||{idx:null}).idx}function m(){l=Do.Pop;let x=u(),g=x==null?null:x-c;c=x,d&&d({action:l,location:y.location,delta:g})}function p(x,g){l=Do.Push;let f=ec(y.location,x,g);c=u()+1;let w=Tm(f,c),k=y.createHref(f);try{i.pushState(w,"",k)}catch(j){if(j instanceof DOMException&&j.name==="DataCloneError")throw j;n.location.assign(k)}s&&d&&d({action:l,location:y.location,delta:1})}function h(x,g){l=Do.Replace;let f=ec(y.location,x,g);c=u();let w=Tm(f,c),k=y.createHref(f);i.replaceState(w,"",k),s&&d&&d({action:l,location:y.location,delta:0})}function v(x){let g=n.location.origin!=="null"?n.location.origin:n.location.href,f=typeof x=="str
49ing"?x:ki(x);return f=f.replace(/ $/,"%20"),ke(g,"No window.location.(origin|href) available to create URL for href: "+f),new URL(f,g)}let y={get action(){return l},get location(){return e(n,i)},listen(x){if(d)throw new Error("A history only accepts one active listener");return n.addEventListener(Cm,m),d=x,()=>{n.removeEventListener(Cm,m),d=null}},createHref(x){return t(n,x)},createURL:v,encodeLocation(x){let g=v(x);return{pathname:g.pathname,search:g.search,hash:g.hash}},push:p,replace:h,go(x){return i.go(x)}};return y}var Bm;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(Bm||(Bm={}));function D0(e,t,o){return o===void 0&&(o="/"),I0(e,t,o,!1)}function I0(e,t,o,a){let n=typeof t=="string"?Ma(t):t,s=wu(n.pathname||"/",o);if(s==null)return null;let i=Qg(e);H0(i);let l=null;for(let d=0;l==null&&d<i.length;++d){let c=X0(s);l=Q0(i[d],c,a)}return l}function Qg(e,t,o,a){t===void 0&&(t=[]),o===void 0&&(o=[]),a===void 0&&(a="");let n=(s,i,l)=>{let d={relativePath:l===void 0?s.path||"":l,caseSensitive:s.caseSensitive===!0,childrenIndex:i,route:s};d.relativePath.startsWith("/")&&(ke(d.relativePath.startsWith(a),'Absolute route path "'+d.relativePath+'" nested under path '+('"'+a+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),d.relativePath=d.relativePath.slice(a.length));let c=Vo([a,d.relativePath]),u=o.concat(d);s.children&&s.children.length>0&&(ke(s.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+c+'".')),Qg(s.children,t,u,c)),!(s.path==null&&!s.index)&&t.push({path:c,score:V0(c,s.index),routesMeta:u})};return e.forEach((s,i)=>{var l;if(s.path===""||!((l=s.path)!=null&&l.includes("?")))n(s,i);else for(let d of Kg(s.path))n(s,i,d)}),t}function Kg(e){let t=e.split("/");if(t.length===0)return[];let[o,...a]=t,n=o.endsWith("?"),s=o.replace(/\?$/,"");if(a.length===0)return n?[s,""]:[s];let i=Kg(a.join("/")),l=[];return l.push(...i.map(d=>d===""?s:[s,d].join("/"))),n&&l.push(...i),l.map(d=>e.startsWith("/")&&d===""?"/":d)}function H0(e){e.sort((t,o)=>t.score!==o.score?o.score-t.score:Y0(t.routesMeta.map(a=>a.childrenIndex),o.routesMeta.map(a=>a.childrenIndex)))}const O0=/^:[\w-]+$/,_0=3,U0=2,$0=1,z0=10,G0=-2,Wm=e=>e==="*";function V0(e,t){let o=e.split("/"),a=o.length;return o.some(Wm)&&(a+=G0),t&&(a+=U0),o.filter(n=>!Wm(n)).reduce((n,s)=>n+(O0.test(s)?_0:s===""?$0:z0),a)}function Y0(e,t){return e.length===t.length&&e.slice(0,-1).every((a,n)=>a===t[n])?e[e.length-1]-t[t.length-1]:0}function Q0(e,t,o){let{routesMeta:a}=e,n={},s="/",i=[];for(let l=0;l<a.length;++l){let d=a[l],c=l===a.length-1,u=s==="/"?t:t.slice(s.length)||"/",m=Nm({path:d.relativePath,caseSensitive:d.caseSensitive,end:c},u),p=d.route;if(!m&&c&&o&&!a[a.length-1].route.index&&(m=Nm({path:d.relativePath,caseSensitive:d.caseSensitive,end:!1},u)),!m)return null;
vendor: 9,412 bytes, lines 49-58
49Object.assign(n,m.params),i.push({params:n,pathname:Vo([s,m.pathname]),pathnameBase:tk(Vo([s,m.pathnameBase])),route:p}),m.pathnameBase!=="/"&&(s=Vo([s,m.pathnameBase]))}return i}function Nm(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[o,a]=K0(e.path,e.caseSensitive,e.end),n=t.match(o);if(!n)return null;let s=n[0],i=s.replace(/(.)\/+$/,"$1"),l=n.slice(1);return{params:a.reduce((c,u,m)=>{let{paramName:p,isOptional:h}=u;if(p==="*"){let y=l[m]||"";i=s.slice(0,s.length-y.length).replace(/(.)\/+$/,"$1")}const v=l[m];return h&&!v?c[p]=void 0:c[p]=(v||"").replace(/%2F/g,"/"),c},{}),pathname:s,pathnameBase:i,pattern:e}}function K0(e,t,o){t===void 0&&(t=!1),o===void 0&&(o=!0),Yg(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let a=[],n="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(i,l,d)=>(a.push({paramName:l,isOptional:d!=null}),d?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(a.push({paramName:"*"}),n+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):o?n+="\\/*$":e!==""&&e!=="/"&&(n+="(?:(?=\\/|$))"),[new RegExp(n,t?void 0:"i"),a]}function X0(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return Yg(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function wu(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let o=t.endsWith("/")?t.length-1:t.length,a=e.charAt(o);return a&&a!=="/"?null:e.slice(o)||"/"}function J0(e,t){t===void 0&&(t="/");let{pathname:o,search:a="",hash:n=""}=typeof e=="string"?Ma(e):e;return{pathname:o?o.startsWith("/")?o:Z0(o,t):t,search:ok(a),hash:rk(n)}}function Z0(e,t){let o=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(n=>{n===".."?o.length>1&&o.pop():n!=="."&&o.push(n)}),o.length>1?o.join("/"):"/"}function Gl(e,t,o,a){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(a)+"]. Please separate it out to the ")+("`to."+o+"` field. Alternatively you may provide the full path as ")+'a string in <Link to="..."> and the router will parse it for you.'}function ek(e){return e.filter((t,o)=>o===0||t.route.path&&t.route.path.length>0)}function Xg(e,t){let o=ek(e);return t?o.map((a,n)=>n===o.length-1?a.pathname:a.pathnameBase):o.map(a=>a.pathnameBase)}function Jg(e,t,o,a){a===void 0&&(a=!1);let n;typeof e=="string"?n=Ma(e):(n=Dn({},e),ke(!n.pathname||!n.pathname.includes("?"),Gl("?","pathname","search",n)),ke(!n.pathname||!n.pathname.includes("#"),Gl("#","pathname","hash",n)),ke(!n.search||!n.search.includes("#"),Gl("#","search","hash",n)));let s=e===""||n.pathname==="",i=s?"/":n.pathname,l;if(i==null)l=o;else{let m=t.length-1;if(!a&&i.startsWith("..")){let p=i.split("/");for(;p[0]==="..";)p.shift(),m-=1;n.pathname=p.join("/")}l=m>=0?t[m]:"/"}let d=J0(n,l),c=i&&i!=="/"&&i.endsWith("/"),u=(s||i===".")&&o.endsWith("/");return!d.pathname.endsWith("/")&&(c||u)&&(d.pathname+="/"),d}const Vo=e=>e.join("/").replace(/\/\/+/g,"/"),tk=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),ok=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,rk=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function ak(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const Zg=["post","put","patch","delete"];new Set(Zg);const nk=["get",...Zg];new Set(nk);/** 50 * React Router v6.30.1 51 * 52 * Copyright (c) Remix Software Inc. 53 * 54 * This source code is licensed under the MIT license found in the 55 * LICENSE.md file in the root directory of this source tree. 56 * 57 * @license MIT 58 */function In(){return In=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var a in o)Object.prototype.hasOwnProperty.call(o,a)&&(e[a]=o[a])}return e},In.apply(this,arguments)}const bu=b.createContext(null),sk=b.createContext(null),Rr=b.createContext(null),Zi=b.createContext(null),Lr=b.createContext({outlet:null,matches:[],isDataRoute:!1}),ey=b.createContext(null);function ik(e,t){let{relative:o}=t===void 0?{}:t;Jn()||ke(!1);let{basename:a,navigator:n}=b.useContext(Rr),{hash:s,pathname:i,search:l}=oy(e,{relative:o}),d=i;return a!=="/"&&(d=i==="/"?a:Vo([a,i])),n.createHref({pathname:d,search:l,hash:s})}function Jn(){return b.useContext(Zi)!=null}function nr(){return Jn()||ke(!1),b.useContext(Zi).location}function ty(e){b.useContext(Rr).static||b.useLayoutEffect(e)}function lk(){let{isDataRoute:e}=b.useContext(Lr);return e?xk():dk()}function dk(){Jn()||ke(!1);let e=b.useContext(bu),{basename:t,future:o,navigator:a}=b.useContext(Rr),{matches:n}=b.useContext(Lr),{pathname:s}=nr(),i=JSON.stringify(Xg(n,o.v7_relativeSplatPath)),l=b.useRef(!1);return ty(()=>{l.current=!0}),b.useCallback(function(c,u){if(u===void 0&&(u={}),!l.current)return;if(typeof c=="number"){a.go(c);return}let m=Jg(c,JSON.parse(i),s,u.relative==="path");e==null&&t!=="/"&&(m.pathname=m.pathname==="/"?t:Vo([t,m.pathname])),(u.replace?a.replace:a.push)(m,u.state,u)},[t,a,i,s,e])}function oy(e,t){let{relative:o}=t===void 0?{}:t,{future:a}=b.useContext(Rr),{matches:n}=b.useContext(Lr),{pathname:s}=nr(),i=JSON.stringify(Xg(n,a.v7_relativeSplatPath));return b.useMemo(()=>Jg(e,JSON.parse(i),s,o==="path"),[e,i,s,o])}function ck(e,t){return uk(e,t)}function uk(e,t,o,a){Jn()||ke(!1);let{navigator:n}=b.useContext(Rr),{matches:s}=b.useContext(Lr),i=s[s.length-1],l=i?i.params:{};i&&i.pathname;let d=i?i.pathnameBase:"/";i&&i.route;let c=nr(),u;if(t){var m;let x=typeof t=="string"?Ma(t):t;d==="/"||(m=x.pathname)!=null&&m.startsWith(d)||ke(!1),u=x}else u=c;let p=u.pathname||"/",h=p;if(d!=="/"){let x=d.replace(/^\//,"").split("/");h="/"+p.replace(/^\//,"").split("/").slice(x.length).join("/")}let v=D0(e,{pathname:h}),y=gk(v&&v.map(x=>Object.assign({},x,{params:Object.assign({},l,x.params),pathname:Vo([d,n.encodeLocation?n.encodeLocation(x.pathname).pathname:x.pathname]),pathnameBase:x.pathnameBase==="/"?d:Vo([d,n.encodeLocation?n.encodeLocation(x.pathnameBase).pathname:x.pathnameBase])})),s,o,a);return t&&y?b.createElement(Zi.Provider,{value:{location:In({pathname:"/",search:"",hash:"",state:null,key:"default"},u),navigationType:Do.Pop}},y):y}function hk(){let e=vk(),t=ak(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),o=e instanceof Error?e.stack:null,n={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return b.createElement(b.Fragment,null,b.createElement("h2",null,"Unexpected Application Error!"),b.createElement("h3",{style:{fontStyle:"italic"}},t),o?b.createElement("pre",{style:n},o):null,null)}const mk=b.createElement(hk,null);class pk extends b.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,o){return o.location!==t.location||o.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:o.error,location:o.location,revalidation:t.revalidation||o.revalidation}}componentDidCatch(t,o){console.error("React Router caught the following error during render",t,o)}render(){return this.state.error!==void 0?b.createElement(Lr.Provider,{value:this.props.routeContext},b.createElement(ey.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function fk(e){let{routeContext:t,match:o,children:a}=e,n=b.useContext(bu);return n&&n.static&&n.staticContext&&(o.route.errorElement||o.route.ErrorBoundary)&&(n.staticContext._deepestRenderedBoundaryId=o.route.id),b.createElement(Lr.Provider,{value:t},a)}function gk(e,t,o,a){var n;if(t===void 0&&(t=[]),o===void 0&&(o=null),a===void 0&&(a=null),e==null){var s;if(!o)return null;if(o.errors)e=o.matches;else if((s=a)!=null&&s.v7_partialHydration&&t.length===0&&!o.initialized&&o.matches.length>0)e=o.matches;else return null}let i=e,l=(n=o)==null?void 0:n.errors;if(l!=null){let u=i.findIndex(m=>m.route.id&&(l==null?void 0:l[m.route.id])!==void 0);u>=0||ke(!1),i=i.slice(0,Math.min(i.length,u+1))}let d=!1,c=-1;if(o&&a&&a.v7_partialHydration)for(let u=0;u<i.length;u++){let m=i[u];if((m.route.HydrateFallback||m.route.hydrateFallbackElement)&&(c=u),m.route.id){let{loaderData:p,errors:h}=o,v=m.route.loader&&p[m.route.id]===void 0&&(!h||h[m.route.id]===void 0);if(m.route.lazy||v){d=!0,c>=0?i=i.slice(0,c+1):i=[i[0]];break}}}return i.reduceRight((u,m,p)=>{let h,v=!1,y=null,x=null;o&&(h=l&&m.route.id?l[m.route.id]:void 0,y=m.route.errorElement||mk,d&&(c<0&&p===0?(v=!0,x=null):c===p&&(v=!0,x=m.route.hydrateFallbackElement||null)));let g=t.concat(i.slice(0,p+1)),f=()=>{let w;return h?w=y:v?w=x:m.route.Component?w=b.createElement(m.route.Component,null):m.route.element?w=m.route.element:w=u,b.createElement(fk,{match:m,routeContext:{outlet:u,matches:g,isDataRoute:o!=null},children:w})};return o&&(m.route.ErrorBoundary||m.route.errorElement||p===0)?b.createElement(pk,{location:o.location,revalidation:o.revalidation,component:y,error:h,children:f(),routeC
58ontext:{outlet:null,matches:g,isDataRoute:!0}}):f()},null)}var ry=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(ry||{}),Si=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(Si||{});function yk(e){let t=b.useContext(bu);return t||ke(!1),t}function wk(e){let t=b.useContext(sk);return t||ke(!1),t}function bk(e){let t=b.useContext(Lr);return t||ke(!1),t}function ay(e){let t=bk(),o=t.matches[t.matches.length-1];return o.route.id||ke(!1),o.route.id}function vk(){var e;let t=b.useContext(ey),o=wk(Si.UseRouteError),a=ay(Si.UseRouteError);return t!==void 0?t:(e=o.errors)==null?void 0:e[a]}function xk(){let{router:e}=yk(ry.UseNavigateStable),t=ay(Si.UseNavigateStable),o=b.useRef(!1);return ty(()=>{o.current=!0}),b.useCallback(function(n,s){s===void 0&&(s={}),o.current&&(typeof n=="number"?e.navigate(n):e.navigate(n,In({fromRouteId:t},s)))},[e,t])}function kk(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function q(e){ke(!1)}function Sk(e){let{basename:t="/",children:o=null,location:a,navigationType:n=Do.Pop,navigator:s,static:i=!1,future:l}=e;Jn()&&ke(!1);let d=t.replace(/^\/*/,"/"),c=b.useMemo(()=>({basename:d,navigator:s,static:i,future:In({v7_relativeSplatPath:!1},l)}),[d,l,s,i]);typeof a=="string"&&(a=Ma(a));let{pathname:u="/",search:m="",hash:p="",state:h=null,key:v="default"}=a,y=b.useMemo(()=>{let x=wu(u,d);return x==null?null:{location:{pathname:x,search:m,hash:p,state:h,key:v},navigationType:n}},[d,u,m,p,h,v,n]);return y==null?null:b.createElement(Rr.Provider,{value:c},b.createElement(Zi.Provider,{children:o,value:y}))}function jk(e){let{children:t,location:o}=e;return ck(tc(t),o)}new Promise(()=>{});function tc(e,t){t===void 0&&(t=[]);let o=[];return b.Children.forEach(e,(a,n)=>{if(!b.isValidElement(a))return;let s=[...t,n];if(a.type===b.Fragment){o.push.apply(o,tc(a.props.children,s));return}a.type!==q&&ke(!1),!a.props.index||!a.props.children||ke(!1);let i={id:a.props.id||s.join("-"),caseSensitive:a.props.caseSensitive,element:a.props.element,Component:a.props.Component,index:a.props.index,path:a.props.path,loader:a.props.loader,action:a.props.action,errorElement:a.props.errorElement,ErrorBoundary:a.props.ErrorBoundary,hasErrorBoundary:a.props.ErrorBoundary!=null||a.props.errorElement!=null,shouldRevalidate:a.props.shouldRevalidate,handle:a.props.handle,lazy:a.props.lazy};a.props.children&&(i.children=tc(a.props.children,s)),o.push(i)}),o}/** 59 * React Router DOM v6.30.1 60 * 61 * Copyright (c) Remix Software Inc. 62 * 63 * This source code is licensed under the MIT license found in the 64 * LICENSE.md file in the root directory of this source tree. 65 * 66 * @license MIT 67 */function oc(){return oc=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var a in o)Object.prototype.hasOwnProperty.call(o,a)&&(e[a]=o[a])}return e},oc.apply(this,arguments)}function Ck(e,t){if(e==null)return{};var o={},a=Object.keys(e),n,s;for(s=0;s<a.length;s++)n=a[s],!(t.indexOf(n)>=0)&&(o[n]=e[n]);return o}function Tk(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function Bk(e,t){return e.button===0&&(!t||t==="_self")&&!Tk(e)}const Wk=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],Nk="6";try{window.__reactRouterVersion=Nk}catch{}const Ak="startTransition",Am=Rp[Ak];function Ek(e){let{basename:t,children:o,future:a,window:n}=e,s=b.useRef();s.current==null&&(s.current=R0({window:n,v5Compat:!0}));let i=s.current,[l,d]=b.useState({action:i.action,location:i.location}),{v7_startTransition:c}=a||{},u=b.useCallback(m=>{c&&Am?Am(()=>d(m)):d(m)},[d,c]);return b.useLayoutEffect(()=>i.listen(u),[i,u]),b.useEffect(()=>kk(a),[a]),b.createElement(Sk,{basename:t,children:o,location:l.location,navigationType:l.action,navigator:i,future:a})}const Fk=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",qk=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,S=b.forwardRef(function(t,o){let{onClick:a,relative:n,reloadDocument:s,replace:i,state:l,target:d,to:c,preventScrollReset:u,viewTransition:m}=t,p=Ck(t,Wk),{basename:h}=b.useContext(Rr),v,y=!1;if(typeof c=="string"&&qk.test(c)&&(v=c,Fk))try{let w=new URL(window.location.href),k=c.startsWith("//")?new URL(w.protocol+c):new URL(c),j=wu(k.pathname,h);k.origin===w.origin&&j!=null?c=j+k.search+k.hash:y=!0}catch{}let x=ik(c,{relative:n}),g=Pk(c,{replace:i,state:l,target:d,preventScrollReset:u,relative:n,viewTransition:m});function f(w){a&&a(w),w.defaultPrevented||g(w)}return b.createElement("a",oc({},p,{href:v||x,onClick:y||s?a:f,ref:o,target:d}))});var Em;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(Em||(Em={}));var Fm;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(Fm||(Fm={}));function Pk(e,t){let{target:o,replace:a,state:n,preventScrollReset:s,relative:i,viewTransition:l}=t===void 0?{}:t,d=lk(),c=nr(),u=oy(e,{relative:i});return b.useCallback(m=>{if(Bk(m,o)){m.preventDefault();let p=a!==void 0?a:ki(c)===ki(u);d(e,{replace:p,state:n,preventScrollReset:s,relative:i,viewTransition:l})}},[c,d,u,a,n,o,e,s,i,l])}var Rk=typeof Element<"u",Lk=typeof Map=="function",Mk=typeof Set=="function",Dk=typeof ArrayBuffer=="function"&&!!ArrayBuffer.isView;function $s(e,t){if(e===t)return!0;
67if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return!1;var o,a,n;if(Array.isArray(e)){if(o=e.length,o!=t.length)return!1;for(a=o;a--!==0;)if(!$s(e[a],t[a]))return!1;return!0}var s;if(Lk&&e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(s=e.entries();!(a=s.next()).done;)if(!t.has(a.value[0]))return!1;for(s=e.entries();!(a=s.next()).done;)if(!$s(a.value[1],t.get(a.value[0])))return!1;return!0}if(Mk&&e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(s=e.entries();!(a=s.next()).done;)if(!t.has(a.value[0]))return!1;return!0}if(Dk&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)){if(o=e.length,o!=t.length)return!1;for(a=o;a--!==0;)if(e[a]!==t[a])return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf&&typeof e.valueOf=="function"&&typeof t.valueOf=="function")return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString&&typeof e.toString=="function"&&typeof t.toString=="function")return e.toString()===t.toString();if(n=Object.keys(e),o=n.length,o!==Object.keys(t).length)return!1;for(a=o;a--!==0;)if(!Object.prototype.hasOwnProperty.call(t,n[a]))return!1;if(Rk&&e instanceof Element)return!1;for(a=o;a--!==0;)if(!((n[a]==="_owner"||n[a]==="__v"||n[a]==="__o")&&e.$$typeof)&&!$s(e[n[a]],t[n[a]]))return!1;return!0}return e!==e&&t!==t}var Ik=function(t,o){try{return $s(t,o)}catch(a){if((a.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw a}};const Hk=zn(Ik);var Ok=function(e,t,o,a,n,s,i,l){if(!e){var d;if(t===void 0)d=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[o,a,n,s,i,l],u=0;d=new Error(t.replace(/%s/g,function(){return c[u++]})),d.name="Invariant Violation"}throw d.framesToPop=1,d}},_k=Ok;const qm=zn(_k);var Uk=function(t,o,a,n){var s=a?a.call(n,t,o):void 0;if(s!==void 0)return!!s;if(t===o)return!0;if(typeof t!="object"||!t||typeof o!="object"||!o)return!1;var i=Object.keys(t),l=Object.keys(o);if(i.length!==l.length)return!1;for(var d=Object.prototype.hasOwnProperty.bind(o),c=0;c<i.length;c++){var u=i[c];if(!d(u))return!1;var m=t[u],p=o[u];if(s=a?a.call(n,m,p,u):void 0,s===!1||s===void 0&&m!==p)return!1}return!0};const $k=zn(Uk);var ny=(e=>(e.BASE="base",e.BODY="body",e.HEAD="head",e.HTML="html",e.LINK="link",e.META="meta",e.NOSCRIPT="noscript",e.SCRIPT="script",e.STYLE="style",e.TITLE="title",e.FRAGMENT="Symbol(react.fragment)",e))(ny||{}),Vl={link:{rel:["amphtml","canonical","alternate"]},script:{type:["application/ld+json"]},meta:{charset:"",name:["generator","robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]}},Pm=Object.values(ny),el={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},sy=Object.entries(el).reduce((e,[t,o])=>(e[o]=t,e),{}),qt="data-rh",ha={DEFAULT_TITLE:"defaultTitle",DEFER:"defer",ENCODE_SPECIAL_CHARACTERS:"encodeSpecialCharacters",ON_CHANGE_CLIENT_STATE:"onChangeClientState",TITLE_TEMPLATE:"titleTemplate",PRIORITIZE_SEO_TAGS:"prioritizeSeoTags"},ma=(e,t)=>{for(let o=e.length-1;o>=0;o-=1){const a=e[o];if(Object.prototype.hasOwnProperty.call(a,t))return a[t]}return null},zk=e=>{let t=ma(e,"title");const o=ma(e,ha.TITLE_TEMPLATE);if(Array.isArray(t)&&(t=t.join("")),o&&t)return o.replace(/%s/g,()=>t);const a=ma(e,ha.DEFAULT_TITLE);return t||a||void 0},Gk=e=>ma(e,ha.ON_CHANGE_CLIENT_STATE)||(()=>{}),Yl=(e,t)=>t.filter(o=>typeof o[e]<"u").map(o=>o[e]).reduce((o,a)=>({...o,...a}),{}),Vk=(e,t)=>t.filter(o=>typeof o.base<"u").map(o=>o.base).reverse().reduce((o,a)=>{if(!o.length){const n=Object.keys(a);for(let s=0;s<n.length;s+=1){const l=n[s].toLowerCase();if(e.indexOf(l)!==-1&&a[l])return o.concat(a)}}return o},[]),Yk=e=>console&&typeof console.warn=="function"&&console.warn(e),en=(e,t,o)=>{const a={};return o.filter(n=>Array.isArray(n[e])?!0:(typeof n[e]<"u"&&Yk(`Helmet: ${e} should be of type "Array". Instead found type "${typeof n[e]}"`),!1)).map(n=>n[e]).reverse().reduce((n,s)=>{const i={};s.filter(d=>{let c;const u=Object.keys(d);for(let p=0;p<u.length;p+=1){const h=u[p],v=h.toLowerCase();t.indexOf(v)!==-1&&!(c==="rel"&&d[c].toLowerCase()==="canonical")&&!(v==="rel"&&d[v].toLowerCase()==="stylesheet")&&(c=v),t.indexOf(h)!==-1&&(h==="innerHTML"||h==="cssText"||h==="itemprop")&&(c=h)}if(!c||!d[c])return!1;const m=d[c].toLowerCase();return a[c]||(a[c]={}),i[c]||(i[c]={}),a[c][m]?!1:(i[c][m]=!0,!0)}
67).reverse().forEach(d=>n.push(d));const l=Object.keys(i);for(let d=0;d<l.length;d+=1){const c=l[d],u={...a[c],...i[c]};a[c]=u}return n},[]).reverse()},Qk=(e,t)=>{if(Array.isArray(e)&&e.length){for(let o=0;o<e.length;o+=1)if(e[o][t])return!0}return!1},Kk=e=>({baseTag:Vk(["href"],e),bodyAttributes:Yl("bodyAttributes",e),defer:ma(e,ha.DEFER),encode:ma(e,ha.ENCODE_SPECIAL_CHARACTERS),htmlAttributes:Yl("htmlAttributes",e),linkTags:en("link",["rel","href"],e),metaTags:en("meta",["name","charset","http-equiv","property","itemprop"],e),noscriptTags:en("noscript",["innerHTML"],e),onChangeClientState:Gk(e),scriptTags:en("script",["src","innerHTML"],e),styleTags:en("style",["cssText"],e),title:zk(e),titleAttributes:Yl("titleAttributes",e),prioritizeSeoTags:Qk(e,ha.PRIORITIZE_SEO_TAGS)}),iy=e=>Array.isArray(e)?e.join(""):e,Xk=(e,t)=>{const o=Object.keys(e);for(let a=0;a<o.length;a+=1)if(t[o[a]]&&t[o[a]].includes(e[o[a]]))return!0;return!1},Ql=(e,t)=>Array.isArray(e)?e.reduce((o,a)=>(Xk(a,t)?o.priority.push(a):o.default.push(a),o),{priority:[],default:[]}):{default:e,priority:[]},Rm=(e,t)=>({...e,[t]:void 0}),Jk=["noscript","script","style"],rc=(e,t=!0)=>t===!1?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),ly=e=>Object.keys(e).reduce((t,o)=>{const a=typeof e[o]<"u"?`${o}="${e[o]}"`:`${o}`;return t?`${t} ${a}`:a},""),Zk=(e,t,o,a)=>{const n=ly(o),s=iy(t);return n?`<${e} ${qt}="true" ${n}>${rc(s,a)}</${e}>`:`<${e} ${qt}="true">${rc(s,a)}</${e}>`},e1=(e,t,o=!0)=>t.reduce((a,n)=>{const s=n,i=Object.keys(s).filter(c=>!(c==="innerHTML"||c==="cssText")).reduce((c,u)=>{const m=typeof s[u]>"u"?u:`${u}="${rc(s[u],o)}"`;return c?`${c} ${m}`:m},""),l=s.innerHTML||s.cssText||"",d=Jk.indexOf(e)===-1;return`${a}<${e} ${qt}="true" ${i}${d?"/>":`>${l}</${e}>`}`},""),dy=(e,t={})=>Object.keys(e).reduce((o,a)=>{const n=el[a];return o[n||a]=e[a],o},t),t1=(e,t,o)=>{const a={key:t,[qt]:!0},n=dy(o,a);return[N.createElement("title",n,t)]},zs=(e,t)=>t.map((o,a)=>{const n={key:a,[qt]:!0};return Object.keys(o).forEach(s=>{const l=el[s]||s;if(l==="innerHTML"||l==="cssText"){const d=o.innerHTML||o.cssText;n.dangerouslySetInnerHTML={__html:d}}else n[l]=o[s]}),N.createElement(e,n)}),pt=(e,t,o=!0)=>{switch(e){case"title":return{toComponent:()=>t1(e,t.title,t.titleAttributes),toString:()=>Zk(e,t.title,t.titleAttributes,o)};case"bodyAttributes":case"htmlAttributes":return{toComponent:()=>dy(t),toString:()=>ly(t)};default:return{toComponent:()=>zs(e,t),toString:()=>e1(e,t,o)}}},o1=({metaTags:e,linkTags:t,scriptTags:o,encode:a})=>{const n=Ql(e,Vl.meta),s=Ql(t,Vl.link),i=Ql(o,Vl.script);return{priorityMethods:{toComponent:()=>[...zs("meta",n.priority),...zs("link",s.priority),...zs("script",i.priority)],toString:()=>`${pt("meta",n.priority,a)} ${pt("link",s.priority,a)} ${pt("script",i.priority,a)}`},metaTags:n.default,linkTags:s.default,scriptTags:i.default}},r1=e=>{const{baseTag:t,bodyAttributes:o,encode:a=!0,htmlAttributes:n,noscriptTags:s,styleTags:i,title:l="",titleAttributes:d,prioritizeSeoTags:c}=e;let{linkTags:u,metaTags:m,scriptTags:p}=e,h={toComponent:()=>[],toString:()=>""};return c&&({priorityMethods:h,linkTags:u,metaTags:m,scriptTags:p}=o1(e)),{priority:h,base:pt("base",t,a),bodyAttributes:pt("bodyAttributes",o,a),htmlAttributes:pt("htmlAttributes",n,a),link:pt("link",u,a),meta:pt("meta",m,a),noscript:pt("noscript",s,a),script:pt("script",p,a),style:pt("style",i,a),title:pt("title",{title:l,titleAttributes:d},a)}},ac=r1,Ts=[],vu=!!(typeof window<"u"&&window.document&&window.document.createElement),nc=class{constructor(e,t){Zt(this,"instances",[]);Zt(this,"canUseDOM",vu);Zt(this,"context");Zt(this,"value",{setHelmet:e=>{this.context.helmet=e},helmetInstances:{get:()=>this.canUseDOM?Ts:this.instances,add:e=>{(this.canUseDOM?Ts:this.instances).push(e)},remove:e=>{const t=(this.canUseDOM?Ts:this.instances).indexOf(e);(this.canUseDOM?Ts:this.instances).splice(t,1)}}});this.context=e,this.canUseDOM=t||!1,t||(e.helmet=ac({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))}},a1=parseInt(N.version.split(".")[0],10),sc=a1>=19,n1={}
67,cy=N.createContext(n1),Sr,uy=(Sr=class extends b.Component{constructor(o){super(o);Zt(this,"helmetData");sc?this.helmetData=null:this.helmetData=new nc(this.props.context||{},Sr.canUseDOM)}render(){return sc?N.createElement(N.Fragment,null,this.props.children):N.createElement(cy.Provider,{value:this.helmetData.value},this.props.children)}},Zt(Sr,"canUseDOM",vu),Sr),Gr=(e,t)=>{const o=document.head||document.querySelector("head"),a=o.querySelectorAll(`${e}[${qt}]`),n=[].slice.call(a),s=[];let i;return t&&t.length&&t.forEach(l=>{const d=document.createElement(e);for(const c in l)if(Object.prototype.hasOwnProperty.call(l,c))if(c==="innerHTML")d.innerHTML=l.innerHTML;else if(c==="cssText"){const u=l.cssText;d.appendChild(document.createTextNode(u))}else{const u=c,m=typeof l[u]>"u"?"":l[u];d.setAttribute(c,m)}d.setAttribute(qt,"true"),n.some((c,u)=>(i=u,d.isEqualNode(c)))?n.splice(i,1):s.push(d)}),n.forEach(l=>{var d;return(d=l.parentNode)==null?void 0:d.removeChild(l)}),s.forEach(l=>o.appendChild(l)),{oldTags:n,newTags:s}},ic=(e,t)=>{const o=document.getElementsByTagName(e)[0];if(!o)return;const a=o.getAttribute(qt),n=a?a.split(","):[],s=[...n],i=Object.keys(t);for(const l of i){const d=t[l]||"";o.getAttribute(l)!==d&&o.setAttribute(l,d),n.indexOf(l)===-1&&n.push(l);const c=s.indexOf(l);c!==-1&&s.splice(c,1)}for(let l=s.length-1;l>=0;l-=1)o.removeAttribute(s[l]);n.length===s.length?o.removeAttribute(qt):o.getAttribute(qt)!==i.join(",")&&o.setAttribute(qt,i.join(","))},s1=(e,t)=>{typeof e<"u"&&document.title!==e&&(document.title=iy(e)),ic("title",t)},Lm=(e,t)=>{const{baseTag:o,bodyAttributes:a,htmlAttributes:n,linkTags:s,metaTags:i,noscriptTags:l,onChangeClientState:d,scriptTags:c,styleTags:u,title:m,titleAttributes:p}=e;ic("body",a),ic("html",n),s1(m,p);const h={baseTag:Gr("base",o),linkTags:Gr("link",s),metaTags:Gr("meta",i),noscriptTags:Gr("noscript",l),scriptTags:Gr("script",c),styleTags:Gr("style",u)},v={},y={};Object.keys(h).forEach(x=>{const{newTags:g,oldTags:f}=h[x];g.length&&(v[x]=g),f.length&&(y[x]=h[x].oldTags)}),t&&t(),d(e,v,y)},tn=null,i1=e=>{tn&&cancelAnimationFrame(tn),e.defer?tn=requestAnimationFrame(()=>{Lm(e,()=>{tn=null})}):(Lm(e),tn=null)},l1=i1,Mm=class extends b.Component{constructor(){super(...arguments);Zt(this,"rendered",!1)}shouldComponentUpdate(t){return!$k(t,this.props)}componentDidUpdate(){this.emitChange()}componentWillUnmount(){const{helmetInstances:t}=this.props.context;t.remove(this),this.emitChange()}emitChange(){const{helmetInstances:t,setHelmet:o}=this.props.context;let a=null;const n=Kk(t.get().map(s=>{const{context:i,...l}=s.props;return l}));uy.canUseDOM?l1(n):ac&&(a=ac(n)),o(a)}init(){if(this.rendered)return;this.rendered=!0;const{helmetInstances:t}=this.props.context;t.add(this),this.emitChange()}render(){return this.init(),null}},Gs=[],Dm=e=>{const t={};for(const o of Object.keys(e))t[sy[o]||o]=e[o];return t},dr=e=>{const t={};for(const o of Object.keys(e)){const a=el[o];t[a||o]=e[o]}return t},Im=(e,t)=>{if(!vu)return;const o=document.getElementsByTagName(e)[0];if(!o)return;const a="data-rh-managed",n=o.getAttribute(a),s=n?n.split(","):[],i=Object.keys(t);for(const l of s)i.includes(l)||o.removeAttribute(l);for(const l of i){const d=t[l];d==null||d===!1?o.removeAttribute(l):d===!0?o.setAttribute(l,""):o.setAttribute(l,String(d))}i.length>0?o.setAttribute(a,i.join(",")):o.removeAttribute(a)},Kl=()=>{const e={},t={};for(const o of Gs){const{htmlAttributes:a,bodyAttributes:n}=o.props;a&&Object.assign(e,Dm(a)),n&&Object.assign(t,Dm(n))}Im("html",e),Im("body",t)},d1=class extends b.Component{componentDidMount(){Gs.push(this),Kl()}componentDidUpdate(){Kl()}componentWillUnmount(){const e=Gs.indexOf(this);e!==-1&&Gs.splice(e,1),Kl()}resolveTitle(){const{title:e,titleTemplate:t,defaultTitle:o}=this.props;return e&&t?t.replace(/%s/g,()=>Array.isArray(e)?e.join(""):e):e||o||void 0}renderTitle(){const e=this.resolveTitle();if(e===void 0)return null;const t=this.props.titleAttributes||{};return N.createElement("title",dr(t),e)}renderBase(){const{base:e}=this.props;
67return e?N.createElement("base",dr(e)):null}renderMeta(){const{meta:e}=this.props;return!e||!Array.isArray(e)?null:e.map((t,o)=>N.createElement("meta",{key:o,...dr(t)}))}renderLink(){const{link:e}=this.props;return!e||!Array.isArray(e)?null:e.map((t,o)=>N.createElement("link",{key:o,...dr(t)}))}renderScript(){const{script:e}=this.props;return!e||!Array.isArray(e)?null:e.map((t,o)=>{const{innerHTML:a,...n}=t,s=dr(n);return a&&(s.dangerouslySetInnerHTML={__html:a}),N.createElement("script",{key:o,...s})})}renderStyle(){const{style:e}=this.props;return!e||!Array.isArray(e)?null:e.map((t,o)=>{const{cssText:a,...n}=t,s=dr(n);return a&&(s.dangerouslySetInnerHTML={__html:a}),N.createElement("style",{key:o,...s})})}renderNoscript(){const{noscript:e}=this.props;return!e||!Array.isArray(e)?null:e.map((t,o)=>{const{innerHTML:a,...n}=t,s=dr(n);return a&&(s.dangerouslySetInnerHTML={__html:a}),N.createElement("noscript",{key:o,...s})})}render(){return N.createElement(N.Fragment,null,this.renderTitle(),this.renderBase(),this.renderMeta(),this.renderLink(),this.renderScript(),this.renderStyle(),this.renderNoscript())}},nd,xu=(nd=class extends b.Component{shouldComponentUpdate(e){return!Hk(Rm(this.props,"helmetData"),Rm(e,"helmetData"))}mapNestedChildrenToProps(e,t){if(!t)return null;switch(e.type){case"script":case"noscript":return{innerHTML:t};case"style":return{cssText:t};default:throw new Error(`<${e.type} /> elements are self-closing and can not contain children. Refer to our API for more information.`)}}flattenArrayTypeChildren(e,t,o,a){return{...t,[e.type]:[...t[e.type]||[],{...o,...this.mapNestedChildrenToProps(e,a)}]}}mapObjectTypeChildren(e,t,o,a){switch(e.type){case"title":return{...t,[e.type]:a,titleAttributes:{...o}};case"body":return{...t,bodyAttributes:{...o}};case"html":return{...t,htmlAttributes:{...o}};default:return{...t,[e.type]:{...o}}}}mapArrayTypeChildrenToProps(e,t){let o={...t};return Object.keys(e).forEach(a=>{o={...o,[a]:e[a]}}),o}warnOnInvalidChildren(e,t){return qm(Pm.some(o=>e.type===o),typeof e.type=="function"?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":`Only elements types ${Pm.join(", ")} are allowed. Helmet does not support rendering <${e.type}> elements. Refer to our API for more information.`),qm(!t||typeof t=="string"||Array.isArray(t)&&!t.some(o=>typeof o!="string"),`Helmet expects a string as a child of <${e.type}>. Did you forget to wrap your children in braces? ( <${e.type}>{\`\`}</${e.type}> ) Refer to our API for more information.`),!0}mapChildrenToProps(e,t){let o={};return N.Children.forEach(e,a=>{if(!a||!a.props)return;const{children:n,...s}=a.props,i=Object.keys(s).reduce((d,c)=>(d[sy[c]||c]=s[c],d),{});let{type:l}=a;
67switch(typeof l=="symbol"?l=l.toString():this.warnOnInvalidChildren(a,n),l){case"Symbol(react.fragment)":t=this.mapChildrenToProps(n,t);break;case"link":case"meta":case"noscript":case"script":case"style":o=this.flattenArrayTypeChildren(a,o,i,n);break;default:t=this.mapObjectTypeChildren(a,t,i,n);break}}),this.mapArrayTypeChildrenToProps(o,t)}render(){const{children:e,...t}=this.props;let o={...t},{helmetData:a}=t;if(e&&(o=this.mapChildrenToProps(e,o)),a&&!(a instanceof nc)){const n=a;a=new nc(n.context,!0),delete o.helmetData}return sc?N.createElement(d1,{...o}):a?N.createElement(Mm,{...o,context:a.value}):N.createElement(cy.Consumer,null,n=>N.createElement(Mm,{...o,context:n}))}},Zt(nd,"defaultProps",{defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1}),nd),Hm=["light","dark"],c1="(prefers-color-scheme: dark)",u1=b.createContext(void 0),h1={setTheme:e=>{},themes:[]},m1=()=>{var e;return(e=b.useContext(u1))!=null?e:h1};b.memo(({forcedTheme:e,storageKey:t,attribute:o,enableSystem:a,enableColorScheme:n,defaultTheme:s,value:i,attrs:l,nonce:d})=>{let c=s==="system",u=o==="class"?`var d=document.documentElement,c=d.classList;${`c.remove(${l.map(v=>`'${v}'`).join(",")})`};`:`var d=document.documentElement,n='${o}',s='setAttribute';`,m=n?Hm.includes(s)&&s?`if(e==='light'||e==='dark'||!e)d.style.colorScheme=e||'${s}'`:"if(e==='light'||e==='dark')d.style.colorScheme=e":"",p=(v,y=!1,x=!0)=>{let g=i?i[v]:v,f=y?v+"|| ''":`'${g}'`,w="";return n&&x&&!y&&Hm.includes(v)&&(w+=`d.style.colorScheme = '${v}';`),o==="class"?y||g?w+=`c.add(${f})`:w+="null":g&&(w+=`d[s](n,${f})`),w},h=e?`!function(){${u}${p(e)}}()`:a?`!function(){try{${u}var e=localStorage.getItem('${t}');if('system'===e||(!e&&${c})){var t='${c1}',m=window.matchMedia(t);if(m.media!==t||m.matches){${p("dark")}}else{${p("light")}}}else if(e){${i?`var x=${JSON.stringify(i)};`:""}${p(i?"x[e]":"e",!0)}}${c?"":"else{"+p(s,!1,!1)+"}"}${m}}catch(e){}}()`:`!function(){try{${u}var e=localStorage.getItem('${t}');if(e){${i?`var x=${JSON.stringify(i)};`:""}${p(i?"x[e]":"e",!0)}}else{${p(s,!1,!1)};}${m}}catch(t){}}();`;return b.createElement("script",{nonce:d,dangerouslySetInnerHTML:{__html:h}})});var p1=e=>{switch(e){case"success":return y1;case"info":return b1;case"warning":return w1;case"error":return v1;default:return null}},f1=Array(12).fill(0),g1=({visible:e,className:t})=>N.createElement("div",{className:["sonner-loading-wrapper",t].filter(Boolean).join(" "),"data-visible":e},N.createElement("div",{className:"sonner-spinner"},f1.map((o,a)=>N.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${a}`})))),y1=N.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},N.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),w1=N.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},N.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),b1=N.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},N.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),v1=N.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},N.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),x1=N.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},N.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),N.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),k1=()=>{let[e,t]=N.useState(document.hidden);return N.useEffect(()=>{let o=()=>{t(document.hidden)};return document.addEventListener("visibilitychange",o),()=>window.removeEventListener("visibilitychange",o)},[]),e},lc=1,S1=class{constructor(){this.subscribe=e=>(this.subscribers.push(e),()=>{let t=this.subscribers.indexOf(e);this.subscribers.splice(t,1)}),this.publish=e=>
vendor: 1,050 bytes, line 67
67{this.subscribers.forEach(t=>t(e))},this.addToast=e=>{this.publish(e),this.toasts=[...this.toasts,e]},this.create=e=>{var t;let{message:o,...a}=e,n=typeof(e==null?void 0:e.id)=="number"||((t=e.id)==null?void 0:t.length)>0?e.id:lc++,s=this.toasts.find(l=>l.id===n),i=e.dismissible===void 0?!0:e.dismissible;return this.dismissedToasts.has(n)&&this.dismissedToasts.delete(n),s?this.toasts=this.toasts.map(l=>l.id===n?(this.publish({...l,...e,id:n,title:o}),{...l,...e,id:n,dismissible:i,title:o}):l):this.addToast({title:o,...a,dismissible:i,id:n}),n},this.dismiss=e=>(this.dismissedToasts.add(e),e||this.toasts.forEach(t=>{this.subscribers.forEach(o=>o({id:t.id,dismiss:!0}))}),this.subscribers.forEach(t=>t({id:e,dismiss:!0})),e),this.message=(e,t)=>this.create({...t,message:e}),this.error=(e,t)=>this.create({...t,message:e,type:"error"}),this.success=(e,t)=>this.create({...t,type:"success",message:e}),this.info=(e,t)=>this.create({...t,type:"info",message:e}),this.warning=(e,t)=>this.create({...t,type:"warning",message:e}),this.loading=(e,t)=>
67this.create({...t,type:"loading",message:e}),this.promise=(e,t)=>{if(!t)return;let o;t.loading!==void 0&&(o=this.create({...t,promise:e,type:"loading",message:t.loading,description:typeof t.description!="function"?t.description:void 0}));let a=e instanceof Promise?e:e(),n=o!==void 0,s,i=a.then(async d=>{if(s=["resolve",d],N.isValidElement(d))n=!1,this.create({id:o,type:"default",message:d});else if(C1(d)&&!d.ok){n=!1;let c=typeof t.error=="function"?await t.error(`HTTP error! status: ${d.status}`):t.error,u=typeof t.description=="function"?await t.description(`HTTP error! status: ${d.status}`):t.description;this.create({id:o,type:"error",message:c,description:u})}else if(t.success!==void 0){n=!1;let c=typeof t.success=="function"?await t.success(d):t.success,u=typeof t.description=="function"?await t.description(d):t.description;this.create({id:o,type:"success",message:c,description:u})}}).catch(async d=>{if(s=["reject",d],t.error!==void 0){n=!1;let c=typeof t.error=="function"?await t.error(d):t.error,u=typeof t.description=="function"?await t.description(d):t.description;this.create({id:o,type:"error",message:c,description:u})}}).finally(()=>{var d;n&&(this.dismiss(o),o=void 0),(d=t.finally)==null||d.call(t)}),l=()=>new Promise((d,c)=>i.then(()=>s[0]==="reject"?c(s[1]):d(s[1])).catch(c));return typeof o!="string"&&typeof o!="number"?{unwrap:l}:Object.assign(o,{unwrap:l})},this.custom=(e,t)=>{let o=(t==null?void 0:t.id)||lc++;return this.create({jsx:e(o),id:o,...t}),o},this.getActiveToasts=()=>this.toasts.filter(e=>!this.dismissedToasts.has(e.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},Xe=new S1,j1=(e,t)=>{let o=(t==null?void 0:t.id)||lc++;return Xe.addToast({title:e,...t,id:o}),o},C1=e=>e&&typeof e=="object"&&"ok"in e&&typeof e.ok=="boolean"&&"status"in e&&typeof e.status=="number",T1=j1,B1=()=>Xe.toasts,W1=()=>Xe.getActiveToasts();Object.assign(T1,{success:Xe.success,info:Xe.info,warning:Xe.warning,error:Xe.error,custom:Xe.custom,message:Xe.message,promise:Xe.promise,dismiss:Xe.dismiss,loading:Xe.loading},{getHistory:B1,getToasts:W1});function N1(e,{insertAt:t}={}){if(typeof document>"u")return;let o=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.type="text/css",t==="top"&&o.firstChild?o.insertBefore(a,o.firstChild):o.appendChild(a),a.styleSheet?a.styleSheet.cssText=e:a.appendChild(document.createTextNode(e))}N1(`:where(html[dir="ltr"]),:where([data-sonner-toaster][dir="ltr"]){--toast-icon-margin-start: -3px;--toast-icon-margin-end: 4px;--toast-svg-margin-start: -1px;--toast-svg-margin-end: 0px;--toast-button-margin-start: auto;--toast-button-margin-end: 0;--toast-close-button-start: 0;--toast-close-button-end: unset;--toast-close-button-transform: translate(-35%, -35%)}:where(html[dir="rtl"]),:where([data-sonner-toaster][dir="rtl"]){--toast-icon-margin-start: 4px;--toast-icon-margin-end: -3px;--toast-svg-margin-start: 0px;--toast-svg-margin-end: -1px;--toast-button-margin-start: 0;--toast-button-margin-end: auto;--toast-close-button-start: unset;--toast-close-button-end: 0;--toast-close-button-transform: translate(35%, -35%)}:where([data-sonner-toaster]){position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1: hsl(0, 0%, 99%);--gray2: hsl(0, 0%, 97.3%);--gray3: hsl(0, 0%, 95.1%);--gray4: hsl(0, 0%, 93%);--gray5: hsl(0, 0%, 90.9%);--gray6: hsl(0, 0%, 88.7%);--gray7: hsl(0, 0%, 85.8%);--gray8: hsl(0, 0%, 78%);--gray9: hsl(0, 0%, 56.1%);--gray10: hsl(0, 0%, 52.3%);--gray11: hsl(0, 0%, 43.5%);--gray12: hsl(0, 0%, 9%);--border-radius: 8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:none;z-index:999999999;transition:transform .4s ease}:where([data-sonner-toaster][data-lifted="true"]){transform:translateY(-10px)}@media (hover: none) and (pointer: coarse){:where([data-sonner-toaster][data-lifted="true"]){transform:none}}:where([data-sonner-toaster][data-x-position="right"]){right:var(--offset-right)}:where([data-sonner-toaster][data-x-position="left"]){left:var(--offset-left)}:where([data-sonner-toaster][data-x-position="center"]){left:50%;transform:translate(-50%)}:where([data-sonner-toaster][data-y-position="top"]){top:var(--offset-top)}:where([data-sonner-toaster][data-y-position="bottom"]){bottom:var(--offset-bottom)}:where([data-sonner-toast]){--y: translateY(100%);--lift-amount: calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);filter:blur(0);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:none;overflow-wrap:anywhere}:where([data-sonner-toast][data-styled="true"]){padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px #0000001a;width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}:where([data-sonner-toast]:focus-visible){box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast][data-y-position="top"]){top:0;--y: translateY(-100%);--lift: 1;--lift-amount: calc(1 * var(--gap))}:where([data-sonner-toast][data-y-position="bottom"]){bottom:0;--y: translateY(100%);--lift: -1;--lift-amount: calc(var(--lift) * var(--gap))}:where([data-sonner-toast]) :where([data-description]){font-weight:400;line-height:1.4;color:inherit}:where([data-sonner-toast]) :where([data-title]){font-weight:500;line-height:1.5;color:inherit}:where([data-sonner-toast]) :where([data-icon]){display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}:where([data-sonner-toast][data-promise="true"]) :where([data-icon])>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}:where([data-sonner-toast]) :where([data-icon])>*{flex-shrink:0}:where([data-sonner-toast]) :where([data-icon]) svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}:where([data-sonner-toast]) :where([data-content]){display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;cursor:pointer;outline:none;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}:where([data-sonner-toast]) :where([data-button]):focus-visible{box-shadow:0 0 0 2px #0006}:where([data-sonner-toast]) :where([data-button]):first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}:where([data-sonner-toast]) :where([data-cancel]){color:var(--normal-text);background:rgba(0,0,0,.08)}:where([data-sonner-toast][data-theme="dark"]) :where([data-cancel]){background:rgba(255,255,255,.3)}:where([data-sonner-toast]) :where([data-close-button]){position:absolute;
67left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast] [data-close-button]{background:var(--gray1)}:where([data-sonner-toast]) :where([data-close-button]):focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast]) :where([data-disabled="true"]){cursor:not-allowed}:where([data-sonner-toast]):hover :where([data-close-button]):hover{background:var(--gray2);border-color:var(--gray5)}:where([data-sonner-toast][data-swiping="true"]):before{content:"";position:absolute;left:-50%;right:-50%;height:100%;z-index:-1}:where([data-sonner-toast][data-y-position="top"][data-swiping="true"]):before{bottom:50%;transform:scaleY(3) translateY(50%)}:where([data-sonner-toast][data-y-position="bottom"][data-swiping="true"]):before{top:50%;transform:scaleY(3) translateY(-50%)}:where([data-sonner-toast][data-swiping="false"][data-removed="true"]):before{content:"";position:absolute;inset:0;transform:scaleY(2)}:where([data-sonner-toast]):after{content:"";position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}:where([data-sonner-toast][data-mounted="true"]){--y: translateY(0);opacity:1}:where([data-sonner-toast][data-expanded="false"][data-front="false"]){--scale: var(--toasts-before) * .05 + 1;--y: translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}:where([data-sonner-toast])>*{transition:opacity .4s}:where([data-sonner-toast][data-expanded="false"][data-front="false"][data-styled="true"])>*{opacity:0}
67:where([data-sonner-toast][data-visible="false"]){opacity:0;pointer-events:none}:where([data-sonner-toast][data-mounted="true"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}:where([data-sonner-toast][data-removed="true"][data-front="true"][data-swipe-out="false"]){--y: translateY(calc(var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="false"]){--y: translateY(40%);opacity:0;transition:transform .5s,opacity .2s}:where([data-sonner-toast][data-removed="true"][data-front="false"]):before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y, 0px)) translate(var(--swipe-amount-x, 0px));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width: 600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-theme=light]{--normal-bg: #fff;--normal-border: var(--gray4);--normal-text: var(--gray12);--success-bg: hsl(143, 85%, 96%);--success-border: hsl(145, 92%, 91%);--success-text: hsl(140, 100%, 27%);--info-bg: hsl(208, 100%, 97%);--info-border: hsl(221, 91%, 91%);--info-text: hsl(210, 92%, 45%);--warning-bg: hsl(49, 100%, 97%);--warning-border: hsl(49, 91%, 91%);--warning-text: hsl(31, 92%, 45%);--error-bg: hsl(359, 100%, 97%);--error-border: hsl(359, 100%, 94%);--error-text: hsl(360, 100%, 45%)}[data-sonner-toaster][data-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg: #000;--normal-border: hsl(0, 0%, 20%);--normal-text: var(--gray1)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg: #fff;--normal-border: var(--gray3);--normal-text: var(--gray12)}[data-sonner-toaster][data-theme=dark]{--normal-bg: #000;--normal-bg-hover: hsl(0, 0%, 12%);--normal-border: hsl(0, 0%, 20%);--normal-border-hover: hsl(0, 0%, 25%);--normal-text: var(--gray1);--success-bg: hsl(150, 100%, 6%);--success-border: hsl(147, 100%, 12%);--success-text: hsl(150, 86%, 65%);--info-bg: hsl(215, 100%, 6%);--info-border: hsl(223, 100%, 12%);--info-text: hsl(216, 87%, 65%);--warning-bg: hsl(64, 100%, 6%);--warning-border: hsl(60, 100%, 12%);--warning-text: hsl(46, 87%, 65%);--error-bg: hsl(358, 76%, 10%);--error-border: hsl(357, 89%, 16%);
67--error-text: hsl(358, 100%, 81%)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success],[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info],[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning],[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error],[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size: 16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:nth-child(1){animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}to{opacity:.15}}@media (prefers-reduced-motion){[data-sonner-toast],[data-sonner-toast]>*,.sonner-loading-bar{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)} 68`);function Bs(e){return e.label!==void 0}var A1=3,E1="32px",F1="16px",Om=4e3,q1=356,P1=14,R1=20,L1=200;function Tt(...e){return e.filter(Boolean).join(" ")}function M1(e){let[t,o]=e.split("-"),a=[];return t&&a.push(t),o&&a.push(o),a}var D1=e=>{var t,o,a,n,s,i,l,d,c,u,m;let{invert:p,toast:h,unstyled:v,interacting:y,setHeights:x,visibleToasts:g,heights:f,index:w,toasts:k,expanded:j,removeToast:C,defaultRichColors:T,closeButton:E,style:R,cancelButtonStyle:P,actionButtonStyle:_,className:I="",descriptionClassName:K="",duration:L,position:Z,gap:$,loadingIcon:V,expandByDefault:W,classNames:A,icons:M,closeButtonAriaLabel:Y="Close toast",pauseWhenPageIsHidden:O}=e,[X,ee]=N.useState(null),[ve,Pe]=N.useState(null),[re,Ir]=N.useState(!1),[yo,sr]=N.useState(!1),[w
68o,Hr]=N.useState(!1),[bo,as]=N.useState(!1),[pl,ns]=N.useState(!1),[fl,$a]=N.useState(0),[Or,rh]=N.useState(0),za=N.useRef(h.duration||L||Om),ah=N.useRef(null),ir=N.useRef(null),Bb=w===0,Wb=w+1<=g,mt=h.type,_r=h.dismissible!==!1,Nb=h.className||"",Ab=h.descriptionClassName||"",ss=N.useMemo(()=>f.findIndex(z=>z.toastId===h.id)||0,[f,h.id]),Eb=N.useMemo(()=>{var z;return(z=h.closeButton)!=null?z:E},[h.closeButton,E]),nh=N.useMemo(()=>h.duration||L||Om,[h.duration,L]),gl=N.useRef(0),Ur=N.useRef(0),sh=N.useRef(0),$r=N.useRef(null),[Fb,qb]=Z.split("-"),ih=N.useMemo(()=>f.reduce((z,ne,ue)=>ue>=ss?z:z+ne.height,0),[f,ss]),lh=k1(),Pb=h.invert||p,yl=mt==="loading";Ur.current=N.useMemo(()=>ss*$+ih,[ss,ih]),N.useEffect(()=>{za.current=nh},[nh]),N.useEffect(()=>{Ir(!0)},[]),N.useEffect(()=>{let z=ir.current;if(z){let ne=z.getBoundingClientRect().height;return rh(ne),x(ue=>[{toastId:h.id,height:ne,position:h.position},...ue]),()=>x(ue=>ue.filter(kt=>kt.toastId!==h.id))}},[x,h.id]),N.useLayoutEffect(()=>{if(!re)return;let z=ir.current,ne=z.style.height;z.style.height="auto";let ue=z.getBoundingClientRect().height;z.style.height=ne,rh(ue),x(kt=>kt.find(St=>St.toastId===h.id)?kt.map(St=>St.toastId===h.id?{...St,height:ue}:St):[{toastId:h.id,height:ue,position:h.position},...kt])},[re,h.title,h.description,x,h.id]);let vo=N.useCallback(()=>{sr(!0),$a(Ur.current),x(z=>z.filter(ne=>ne.toastId!==h.id)),setTimeout(()=>{C(h)},L1)},[h,C,x,Ur]);N.useEffect(()=>{if(h.promise&&mt==="loading"||h.duration===1/0||h.type==="loading")return;let z;return j||y||O&&lh?(()=>{if(sh.current<gl.current){let ne=new Date().getTime()-gl.current;za.current=za.current-ne}sh.current=new Date().getTime()})():za.current!==1/0&&(gl.current=new Date().getTime(),z=setTimeout(()=>{var ne;(ne=h.onAutoClose)==null||ne.call(h,h),vo()},za.current)),()=>clearTimeout(z)},[j,y,h,mt,O,lh,vo]),N.useEffect(()=>{h.delete&&vo()},[vo,h.delete]);function Rb(){var z,ne,ue;return M!=null&&M.loading?N.createElement("div",{className:Tt(A==null?void 0:A.loader,(z=h==null?void 0:h.classNames)==null?void 0:z.loader,"sonner-loader"),"data-visible":mt==="loading"},M.loading):V?N.createElement("div",{className:Tt(A==null?void 0:A.loader,(ne=h==null?void 0:h.classNames)==null?void 0:ne.loader,"sonner-loader"),"data-visible":mt==="loading"},V):N.createElement(g1,{className:Tt(A==null?void 0:A.loader,(ue=h==null?void 0:h.classNames)==null?void 0:ue.loader),visible:mt==="loading"})}return N.createElement("li",{tabIndex:0,ref:ir,className:Tt(I,Nb,A==null?void 0:A.toast,(t=h==null?void 0:h.classNames)==null?void 0:t.toast,A==null?void 0:A.default,A==null?void 0:A[mt],(o=h==null?void 0:h.classNames)==null?void 0:o[mt]),"data-sonner-toast":"","data-rich-colors":(a=h.richColors)!=null?a:T,"data-styled":!(h.jsx||h.unstyled||v),"data-mounted":re,"data-
68promise":!!h.promise,"data-swiped":pl,"data-removed":yo,"data-visible":Wb,"data-y-position":Fb,"data-x-position":qb,"data-index":w,"data-front":Bb,"data-swiping":wo,"data-dismissible":_r,"data-type":mt,"data-invert":Pb,"data-swipe-out":bo,"data-swipe-direction":ve,"data-expanded":!!(j||W&&re),style:{"--index":w,"--toasts-before":w,"--z-index":k.length-w,"--offset":`${yo?fl:Ur.current}px`,"--initial-height":W?"auto":`${Or}px`,...R,...h.style},onDragEnd:()=>{Hr(!1),ee(null),$r.current=null},onPointerDown:z=>{yl||!_r||(ah.current=new Date,$a(Ur.current),z.target.setPointerCapture(z.pointerId),z.target.tagName!=="BUTTON"&&(Hr(!0),$r.current={x:z.clientX,y:z.clientY}))},onPointerUp:()=>{var z,ne,ue,kt;if(bo||!_r)return;$r.current=null;let St=Number(((z=ir.current)==null?void 0:z.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),xo=Number(((ne=ir.current)==null?void 0:ne.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),lr=new Date().getTime()-((ue=ah.current)==null?void 0:ue.getTime()),jt=X==="x"?St:xo,ko=Math.abs(jt)/lr;if(Math.abs(jt)>=R1||ko>.11){$a(Ur.current),(kt=h.onDismiss)==null||kt.call(h,h),Pe(X==="x"?St>0?"right":"left":xo>0?"down":"up"),vo(),as(!0),ns(!1);return}Hr(!1),ee(null)},onPointerMove:z=>{var ne,ue,kt,St;if(!$r.current||!_r||((ne=window.getSelection())==null?void 0:ne.toString().length)>0)return;let xo=z.clientY-$r.current.y,lr=z.clientX-$r.current.x,jt=(ue=e.swipeDirections)!=null?ue:M1(Z);!X&&(Math.abs(lr)>1||Math.abs(xo)>1)&&ee(Math.abs(lr)>Math.abs(xo)?"x":"y");let ko={x:0,y:0};X==="y"?(jt.includes("top")||jt.includes("bottom"))&&(jt.includes("top")&&xo<0||jt.includes("bottom")&&xo>0)&&(ko.y=xo):X==="x"&&(jt.includes("left")||jt.includes("right"))&&(jt.includes("left")&&lr<0||jt.includes("right")&&lr>0)&&(ko.x=lr),(Math.abs(ko.x)>0||Math.abs(ko.y)>0)&&ns(!0),(kt=ir.current)==null||kt.style.setProperty("--swipe-amount-x",`${ko.x}px`),(St=ir.current)==null||St.style.setProperty("--swipe-amount-y",`${ko.y}px`)}},Eb&&!h.jsx?N.createElement("button",{"aria-label":Y,"data-disabled":yl,"data-close-button":!0,onClick:yl||!_r?()=>{}:()=>{var z;vo(),(z=h.onDismiss)==null||z.call(h,h)},className:Tt(A==null?void 0:A.closeButton,(n=h==null?void 0:h.classNames)==null?void 0:n.closeButton)},(s=M==null?void 0:M.close)!=null?s:x1):null,h.jsx||b.isValidElement(h.title)?h.jsx?h.jsx:typeof h.title=="function"?h.title():h.title:N.createElement(N.Fragment,null,mt||h.icon||h.promise?N.createElement("div",{"data-icon":"",className:Tt(A==null?void 0:A.icon,(i=h==null?void 0:h.classNames)==null?void 0:i.icon)},h.promise||h.type==="loading"&&!h.icon?h.icon||Rb():null,h.type!=="loading"?h.icon||(M==null?void 0:M[mt])||p1(mt):null):null,N.createElement("div",{"data-content":"",className:Tt(A==null?void 0:A.content,(l=h==null?void 0:h.classNames)==null?void 0:l.content)},N.createElement("div",{"data-title":"",className:Tt(A==null?void 0:A.title,(d=h==null?void 0:h.classNames)==null?void 0:d.title)},typeof h.title=="function"?h.title():h.title),h.description?N.createElement("div",{"data-description":"",className:Tt(K,Ab,A==null?void 0:A.description,(c=h==null?void 0:h.classNames)==null?void 0:c.description)},typeof h.description=="function"?h.description():h.description):null),b.isValidElement(h.cancel)?h.cancel:h.cancel&&Bs(h.cancel)?N.createElement("button",{"data-button":!0,"data-cancel":!0,style:h.cancelButtonStyle||P,onClick:z=>{var ne,ue;Bs(h.cancel)&&_r&&((ue=(ne=h.cancel).onClick)==null||ue.call(ne,z),vo())},className:Tt(A==null?void 0:A.cancelButton,(u=h==null?void 0:h.classNames)==null?void 0:u.cancelButton)},h.cancel.label):null,b.isValidElement(h.action)?h.action:h.action&&Bs(h.action)?N.createElement("button",{"data-button":!0,"data-action":!0,style:h.actionButtonStyle||_,onClick:z=>{var ne,ue;Bs(h.action)&&((ue=(ne=h.action).onClick)==null||ue.call(ne,z),!z.defaultPrevented&&vo())},className:Tt(A==null?void 0:A.actionButton,(m=h==null?void 0:h.classNames)==null?void 0:m.actionButton)},h.action.label):null))};function _m(){if(typeof window>"u"||typeof document>"u")return"ltr";let e=document.documentElement.getAttribute("dir");return e==="auto"||!e?window.getComputedStyle(document.documentElement).direction:e}function I1(e,t){let o={};return[e,t].forEach((a,n)=>{let s=n===1,i=s?"--mobile-offset":"--offset",l=s?F1:E1;function d(c){["top","right","bottom","left"].forEach(u=>{o[`${i}-${u}`]=typeof c=="number"?`${c}px`:c})}
68typeof a=="number"||typeof a=="string"?d(a):typeof a=="object"?["top","right","bottom","left"].forEach(c=>{a[c]===void 0?o[`${i}-${c}`]=l:o[`${i}-${c}`]=typeof a[c]=="number"?`${a[c]}px`:a[c]}):d(l)}),o}var H1=b.forwardRef(function(e,t){let{invert:o,position:a="bottom-right",hotkey:n=["altKey","KeyT"],expand:s,closeButton:i,className:l,offset:d,mobileOffset:c,theme:u="light",richColors:m,duration:p,style:h,visibleToasts:v=A1,toastOptions:y,dir:x=_m(),gap:g=P1,loadingIcon:f,icons:w,containerAriaLabel:k="Notifications",pauseWhenPageIsHidden:j}=e,[C,T]=N.useState([]),E=N.useMemo(()=>Array.from(new Set([a].concat(C.filter(O=>O.position).map(O=>O.position)))),[C,a]),[R,P]=N.useState([]),[_,I]=N.useState(!1),[K,L]=N.useState(!1),[Z,$]=N.useState(u!=="system"?u:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),V=N.useRef(null),W=n.join("+").replace(/Key/g,"").replace(/Digit/g,""),A=N.useRef(null),M=N.useRef(!1),Y=N.useCallback(O=>{T(X=>{var ee;return(ee=X.find(ve=>ve.id===O.id))!=null&&ee.delete||Xe.dismiss(O.id),X.filter(({id:ve})=>ve!==O.id)})},[]);return N.useEffect(()=>Xe.subscribe(O=>{if(O.dismiss){T(X=>X.map(ee=>ee.id===O.id?{...ee,delete:!0}:ee));return}setTimeout(()=>{Ig.flushSync(()=>{T(X=>{let ee=X.findIndex(ve=>ve.id===O.id);return ee!==-1?[...X.slice(0,ee),{...X[ee],...O},...X.slice(ee+1)]:[O,...X]})})})}),[]),N.useEffect(()=>{if(u!=="system"){$(u);return}if(u==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?$("dark"):$("light")),typeof window>"u")return;let O=window.matchMedia("(prefers-color-scheme: dark)");try{O.addEventListener("change",({matches:X})=>{$(X?"dark":"light")})}catch{O.addListener(({matches:ee})=>{try{$(ee?"dark":"light")}catch(ve){console.error(ve)}})}},[u]),N.useEffect(()=>{C.length<=1&&I(!1)},[C]),N.useEffect(()=>{let O=X=>{var ee,ve;n.every(Pe=>X[Pe]||X.code===Pe)&&(I(!0),(ee=V.current)==null||ee.focus()),X.code==="Escape"&&(document.activeElement===V.current||(ve=V.current)!=null&&ve.contains(document.activeElement))&&I(!1)};return document.addEventListener("keydown",O),()=>document.removeEventListener("keydown",O)},[n]),N.useEffect(()=>{if(V.current)return()=>{A.current&&(A.current.focus({preventScroll:!0}),A.current=null,M.current=!1)}},[V.current]),N.createElement("section",{ref:t,"aria-label":`${k} ${W}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},E.map((O,X)=>{var ee;let[ve,Pe]=O.split("-");return C.length?N.createElement("ol",{key:O,dir:x==="auto"?_m():x,tabIndex:-1,ref:V,className:l,"data-sonner-toaster":!0,"data-theme":Z,"data-y-position":ve,"data-lifted":_&&C.length>1&&!s,"data-x-position":Pe,style:{"--front-toast-height":`${((ee=R[0])==null?void 0:ee.height)||0}px`,"--width":`${q1}px`,"--gap":`${g}px`,...h,...I1(d,c)},onBlur:re=>{M.current&&!re.currentTarget.contains(re.relatedTarget)&&(M.current=!1,A.current&&(A.current.focus({preventScroll:!0}),A.current=null))},onFocus:re=>{re.target instanceof HTMLElement&&re.target.dataset.dismissible==="false"||M.current||(M.current=!0,A.current=re.relatedTarget)},onMouseEnter:()=>I(!0),onMouseMove:()=>I(!0),onMouseLeave:()=>{K||I(!1)},onDragEnd:()=>I(!1),onPointerDown:re=>{re.target instanceof HTMLElement&&re.target.dataset.dismissible==="false"||L(!0)},onPointerUp:()=>L(!1)},C.filter(re=>!re.position&&X===0||re.position===O).map((re,Ir)=>{var yo,sr;return N.createElement(D1,{key:re.id,icons:w,index:Ir,toast:re,defaultRichColors:m,duration:(yo=y==null?void 0:y.duration)!=null?yo:p,className:y==null?void 0:y.className,descriptionClassName:y==null?void 0:y.descriptionClassName,invert:o,visibleToasts:v,closeButton:(sr=y==null?void 0:y.closeButton)!=null?sr:i,interacting:K,position:O,style:y==null?void 0:y.style,unstyled:y==null?void 0:y.unstyled,classNames:y==null?void 0:y.classNames,cancelButtonStyle:y==null?void 0:y.cancelButtonStyle,actionButtonStyle:y==null?void 0:y.actionButtonStyle,removeToast:Y,toasts:C.filter(wo=>wo.position==re.position),heights:R.filter(wo=>wo.position==re.position),setHeights:P,expandByDefault:s,gap:g,loadingIcon:f,expanded:_,pauseWhenPageIsHidden:j,swipeDirections:e.swipeDirections})})):null}))});const O1=({...e})=>{const{theme:t="system"}=m1();return r.jsx(H1,{theme:t,className:"toaster group",toastOptions:{classNames:{toast:"group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",description:"group-[.toast]:text-muted-foreground",actionButton:"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",cancelButton:"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground"}},...e})},_1=1,U1=1e6;let Xl=0;function $1(){return Xl=(Xl+1)%Number.MAX_SAFE_INTEGER,Xl.toString()}const Jl=new Map,Um=e=>{if(Jl.has(e))return;const t=setTimeout(()=>{Jl.delete(e),wn({type:"REMOVE_TOAST",toastId:e})},U1);Jl.set(e,t)},z1=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,_1)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(o=>o.id===t.toast.id?{...o,...t.toast}:o)};case"DISMISS_TOAST":{const{toastId:o}=t;
68return o?Um(o):e.toasts.forEach(a=>{Um(a.id)}),{...e,toasts:e.toasts.map(a=>a.id===o||o===void 0?{...a,open:!1}:a)}}case"REMOVE_TOAST":return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(o=>o.id!==t.toastId)}}},Vs=[];let Ys={toasts:[]};function wn(e){Ys=z1(Ys,e),Vs.forEach(t=>{t(Ys)})}function G1({...e}){const t=$1(),o=n=>wn({type:"UPDATE_TOAST",toast:{...n,id:t}}),a=()=>wn({type:"DISMISS_TOAST",toastId:t});return wn({type:"ADD_TOAST",toast:{...e,id:t,open:!0,onOpenChange:n=>{n||a()}}}),{id:t,dismiss:a,update:o}}function V1(){const[e,t]=b.useState(Ys);return b.useEffect(()=>(Vs.push(t),()=>{const o=Vs.indexOf(t);o>-1&&Vs.splice(o,1)}),[e]),{...e,toast:G1,dismiss:o=>wn({type:"DISMISS_TOAST",toastId:o})}}function Ce(e,t,{checkForDefaultPrevented:o=!0}={}){return function(n){if(e==null||e(n),o===!1||!n.defaultPrevented)return t==null?void 0:t(n)}}function $m(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function hy(...e){return t=>{let o=!1;const a=e.map(n=>{const s=$m(n,t);return!o&&typeof s=="function"&&(o=!0),s});if(o)return()=>{for(let n=0;n<a.length;n++){const s=a[n];typeof s=="function"?s():$m(e[n],null)}}}}function Mt(...e){return b.useCallback(hy(...e),e)}function tl(e,t=[]){let o=[];function a(s,i){const l=b.createContext(i),d=o.length;o=[...o,i];const c=m=>{var g;const{scope:p,children:h,...v}=m,y=((g=p==null?void 0:p[e])==null?void 0:g[d])||l,x=b.useMemo(()=>v,Object.values(v));return r.jsx(y.Provider,{value:x,children:h})};c.displayName=s+"Provider";function u(m,p){var y;const h=((y=p==null?void 0:p[e])==null?void 0:y[d])||l,v=b.useContext(h);if(v)return v;if(i!==void 0)return i;throw new Error(`\`${m}\` must be used within \`${s}\``)}return[c,u]}const n=()=>{const s=o.map(i=>b.createContext(i));return function(l){const d=(l==null?void 0:l[e])||s;return b.useMemo(()=>({[`__scope${e}`]:{...l,[e]:d}}),[l,d])}};return n.scopeName=e,[a,Y1(n,...t)]}function Y1(...e){const t=e[0];if(e.length===1)return t;const o=()=>{const a=e.map(n=>({useScope:n(),scopeName:n.scopeName}));return function(s){const i=a.reduce((l,{useScope:d,scopeName:c})=>{const m=d(s)[`__scope${c}`];return{...l,...m}},{});return b.useMemo(()=>({[`__scope${t.scopeName}`]:i}),[i])}};return o.scopeName=t.scopeName,o}function dc(e){const t=Q1(e),o=b.forwardRef((a,n)=>{const{children:s,...i}=a,l=b.Children.toArray(s),d=l.find(X1);if(d){const c=d.props.children,u=l.map(m=>m===d?b.Children.count(c)>1?b.Children.only(null):b.isValidElement(c)?c.props.children:null:m);return r.jsx(t,{...i,ref:n,children:b.isValidElement(c)?b.cloneElement(c,void 0,u):null})}return r.jsx(t,{...i,ref:n,children:s})});return o.displayName=`${e}.Slot`,o}function Q1(e){const t=b.forwardRef((o,a)=>{const{children:n,...s}=o;if(b.isValidElement(n)){const i=Z1(n),l=J1(s,n.props);return n.type!==b.Fragment&&(l.ref=a?hy(a,i):i),b.cloneElement(n,l)}return b.Children.count(n)>1?b.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var my=Symbol("radix.slottable");function K1(e){const t=({children:o})=>r.jsx(r.Fragment,{children:o});return t.displayName=`${e}.Slottable`,t.__radixId=my,t}function X1(e){return b.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===my}function J1(e,t){const o={...t};for(const a in t){const n=e[a],s=t[a];/^on[A-Z]/.test(a)?n&&s?o[a]=(...l)=>{const d=s(...l);return n(...l),d}:n&&(o[a]=n):a==="style"?o[a]={...n,...s}:a==="className"&&(o[a]=[n,s].filter(Boolean).join(" "))}return{...e,...o}}function Z1(e){var a,n;let t=(a=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:a.get,o=t&&"isReactWarning"in t&&t.isReactWarning;return o?e.ref:(t=(n=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:n.get,o=t&&"isReactWarning"in t&&t.isReactWarning,o?e.props.ref:e.props.ref||e.ref)}function eS(e){const t=e+"CollectionProvider",[o,a]=tl(t),[n,s]=o(t,{collectionRef:{current:null},itemMap:new Map}),i=y=>{const{scope:x,children:g}=y,f=N.useRef(null),w=N.useRef(new Map).current;return r.jsx(n,{scope:x,itemMap:w,collectionRef:f,children:g})};i.displayName=t;const l=e+"CollectionSlot",d=dc(l),c=N.forwardRef((y,x)=>{const{scope:g,children:f}=y,w=s(l,g),k=Mt(x,w.collectionRef);return r.jsx(d,{ref:k,children:f})});c.displayName=l;const u=e+"CollectionItemSlot",m="data-radix-collection-item",p=dc(u),h=N.forwardRef((y,x)=>{const{scope:g,children:f,...w}
vendor: 9,265 bytes, line 68
68=y,k=N.useRef(null),j=Mt(x,k),C=s(u,g);return N.useEffect(()=>(C.itemMap.set(k,{ref:k,...w}),()=>void C.itemMap.delete(k))),r.jsx(p,{[m]:"",ref:j,children:f})});h.displayName=u;function v(y){const x=s(e+"CollectionConsumer",y);return N.useCallback(()=>{const f=x.collectionRef.current;if(!f)return[];const w=Array.from(f.querySelectorAll(`[${m}]`));return Array.from(x.itemMap.values()).sort((C,T)=>w.indexOf(C.ref.current)-w.indexOf(T.ref.current))},[x.collectionRef,x.itemMap])}return[{Provider:i,Slot:c,ItemSlot:h},v,a]}var tS=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],rt=tS.reduce((e,t)=>{const o=dc(`Primitive.${t}`),a=b.forwardRef((n,s)=>{const{asChild:i,...l}=n,d=i?o:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),r.jsx(d,{...l,ref:s})});return a.displayName=`Primitive.${t}`,{...e,[t]:a}},{});function py(e,t){e&&Xn.flushSync(()=>e.dispatchEvent(t))}function Ko(e){const t=b.useRef(e);return b.useEffect(()=>{t.current=e}),b.useMemo(()=>(...o)=>{var a;return(a=t.current)==null?void 0:a.call(t,...o)},[])}function oS(e,t=globalThis==null?void 0:globalThis.document){const o=Ko(e);b.useEffect(()=>{const a=n=>{n.key==="Escape"&&o(n)};return t.addEventListener("keydown",a,{capture:!0}),()=>t.removeEventListener("keydown",a,{capture:!0})},[o,t])}var rS="DismissableLayer",cc="dismissableLayer.update",aS="dismissableLayer.pointerDownOutside",nS="dismissableLayer.focusOutside",zm,fy=b.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),ku=b.forwardRef((e,t)=>{const{disableOutsidePointerEvents:o=!1,onEscapeKeyDown:a,onPointerDownOutside:n,onFocusOutside:s,onInteractOutside:i,onDismiss:l,...d}=e,c=b.useContext(fy),[u,m]=b.useState(null),p=(u==null?void 0:u.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,h]=b.useState({}),v=Mt(t,T=>m(T)),y=Array.from(c.layers),[x]=[...c.layersWithOutsidePointerEventsDisabled].slice(-1),g=y.indexOf(x),f=u?y.indexOf(u):-1,w=c.layersWithOutsidePointerEventsDisabled.size>0,k=f>=g,j=iS(T=>{const E=T.target,R=[...c.branches].some(P=>P.contains(E));!k||R||(n==null||n(T),i==null||i(T),T.defaultPrevented||l==null||l())},p),C=lS(T=>{const E=T.target;[...c.branches].some(P=>P.contains(E))||(s==null||s(T),i==null||i(T),T.defaultPrevented||l==null||l())},p);return oS(T=>{f===c.layers.size-1&&(a==null||a(T),!T.defaultPrevented&&l&&(T.preventDefault(),l()))},p),b.useEffect(()=>{if(u)return o&&(c.layersWithOutsidePointerEventsDisabled.size===0&&(zm=p.body.style.pointerEvents,p.body.style.pointerEvents="none"),c.layersWithOutsidePointerEventsDisabled.add(u)),c.layers.add(u),Gm(),()=>{o&&c.layersWithOutsidePointerEventsDisabled.size===1&&(p.body.style.pointerEvents=zm)}},[u,p,o,c]),b.useEffect(()=>()=>{u&&(c.layers.delete(u),c.layersWithOutsidePointerEventsDisabled.delete(u),Gm())},[u,c]),b.useEffect(()=>{const T=()=>h({});return document.addEventListener(cc,T),()=>document.removeEventListener(cc,T)},[]),r.jsx(rt.div,{...d,ref:v,style:{pointerEvents:w?k?"auto":"none":void 0,...e.style},onFocusCapture:Ce(e.onFocusCapture,C.onFocusCapture),onBlurCapture:Ce(e.onBlurCapture,C.onBlurCapture),onPointerDownCapture:Ce(e.onPointerDownCapture,j.onPointerDownCapture)})});ku.displayName=rS;var sS="DismissableLayerBranch",gy=b.forwardRef((e,t)=>{const o=b.useContext(fy),a=b.useRef(null),n=Mt(t,a);return b.useEffect(()=>{const s=a.current;if(s)return o.branches.add(s),()=>{o.branches.delete(s)}},[o.branches]),r.jsx(rt.div,{...e,ref:n})});gy.displayName=sS;function iS(e,t=globalThis==null?void 0:globalThis.document){const o=Ko(e),a=b.useRef(!1),n=b.useRef(()=>{});return b.useEffect(()=>{const s=l=>{if(l.target&&!a.current){let d=function(){yy(aS,o,c,{discrete:!0})};const c={originalEvent:l};l.pointerType==="touch"?(t.removeEventListener("click",n.current),n.current=d,t.addEventListener("click",n.current,{once:!0})):d()}else t.removeEventListener("click",n.current);a.current=!1},i=window.setTimeout(()=>{t.addEventListener("pointerdown",s)},0);return()=>{window.clearTimeout(i),t.removeEventListener("pointerdown",s),t.removeEventListener("click",n.current)}},[t,o]),{onPointerDownCapture:()=>a.current=!0}}function lS(e,t=globalThis==null?void 0:globalThis.document){const o=Ko(e),a=b.useRef(!1);return b.useEffect(()=>{const n=s=>{s.target&&!a.current&&yy(nS,o,{originalEvent:s},{discrete:!1})};return t.addEventListener("focusin",n),()=>t.removeEventListener("focusin",n)},[t,o]),{onFocusCapture:()=>a.current=!0,onBlurCapture:()=>a.current=!1}}function Gm(){const e=new CustomEvent(cc);document.dispatchEvent(e)}function yy(e,t,o,{discrete:a}){const n=o.originalEvent.target,s=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:o});t&&n.addEventListener(e,t,{once:!0}),a?py(n,s):n.dispatchEvent(s)}var dS=ku,cS=gy,Xo=globalThis!=null&&globalThis.document?b.useLayoutEffect:()=>{},uS="Portal",wy=b.forwardRef((e,t)=>{var l;const{container:o,...a}=e,[n,s]=b.useState(!1);Xo(()=>s(!0),[]);const i=o||n&&((l=globalThis==null?void 0:globalThis.document)==null?void 0:l.body);return i?Ig.createPortal(r.jsx(rt.div,{...a,ref:t}),i):null});wy.displayName=uS;function hS(e,t){return b.useReducer((o,a)=>t[o][a]??o,e)}var Su=e=>{const{present:t,children:o}=e,a=mS(t),n=typeof o=="function"?o({present:a.isPresent}):b.Children.only(o),s=Mt(a.ref,pS(n));return typeof o=="function"||a.isPresent?b.cloneElement(n,{ref:s}):null};Su.displayName="Presence";function mS(e){const[t,o]=b.useState(),a=b.useRef(null),n=b.useRef(e),s=b.useRef("none"),i=e?"mounted":"unmounted",[l,d]=hS(i,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return b.useEffect(()=>{const c=Ws(a.current);s.current=l==="mounted"?c:"none"},[l]),Xo(()=>{const c=a.current,u=n.current;if(u!==e){const p=s.current,h=Ws(c);e?d("MOUNT"):h==="none"||(c==null?void 0:c.display)==="none"?d("UNMOUNT"):d(u&&p!==h?"ANIMATION_OUT":"UNMOUNT"),n.current=e}},[e,d]),Xo(()=>{if(t){let c;const u=t.ownerDocument.defaultView??window,m=h=>{const y=Ws(a.current).includes(h.animationName);if(h.target===t&&y&&(d("ANIMATION_END"),!n.current)){const x=t.style.animationFillMode;t.style.animationFillMode="forwards",c=u.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=x)})}},p=h=>{h.target===t&&(s.current=Ws(a.current))};return t.addEventListener("animationstart",p),t.addEventListener("animationcancel",m),t.addEventListener("animationend",m),()=>{u.clearTimeout(c),t.removeEventListener("animationstart",p),t.removeEventListener("animationcancel",m),t.removeEventListener("animationend",m)}}else d("ANIMATION_END")},[t,d]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:b.useCallback(c=>{a.current=c?getComputedStyle(c):null,o(c)},[])}}function Ws(e){return(e==null?void 0:e.animationName)||"none"}function pS(e){var a,n;let t=(a=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:a.get,o=t&&"isReactWarning"in t&&t.isReactWarning;return o?e.ref:(t=(n=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:n.get,o=t&&"isReactWarning"in t&&t.isReactWarning,o?e.props.ref:e.props.ref||e.ref)}var fS=Rp[" useInsertionEffect ".trim().toString()]||Xo;function gS({prop:e,defaultProp:t,onChange:o=()=>{},caller:a}){const[n,s,i]=yS({defaultProp:t,onChange:o}),l=e!==void 0,d=l?e:n;{const u=b.useRef(e!==void 0);b.useEffect(()=>{const m=u.current;m!==l&&console.warn(`${a} is changing from ${m?"controlled":"uncontrolled"} to ${l?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),u.current=l},[l,a])}const c=b.useCallback(u=>{var m;if(l){const p=wS(u)?u(e):u;p!==e&&((m=i.current)==null||m.call(i,p))}else s(u)},[l,e,s,i]);return[d,c]}function yS({defaultProp:e,onChange:t}){const[o,a]=b.useState(e),n=b.useRef(o),s=b.useRef(t);return fS(()=>{s.current=t},[t]),b.useEffect(()=>{var i;n.current!==o&&((i=s.current)==null||i.call(s,o),n.current=o)},[o,n]),[o,a,s]}function wS(e){return typeof e=="function"}var bS=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),vS="VisuallyHidden",ol=b.forwardRef((e,t)=>r.jsx(rt.span,{...e,ref:t,style:{...bS,...e.style}}));ol.displayName=vS;var xS=ol,ju="ToastProvider",[Cu,kS,SS]=eS("Toast"),[by,oA]=tl("Toast",[SS]),[jS,rl]=by(ju),vy=e=>{const{__scopeToast:t,label:o="Notification",duration:a=5e3,swipeDirection:n="right",swipeThreshold:s=50,children:i}=e,[l,d]=b.useState(null),[c,u]=b.useState(0),m=b.useRef(!1),p=b.useRef(!1);return o.trim()||console.error(`Invalid prop \`label\` supplied to \`${ju}\`. Expected non-empty \`string\`.`),r.jsx(Cu.Provider,{scope:t,children:r.jsx(jS,{scope:t,label:o,duration:a,swipeDirection:n,swipeThreshold:s,toastCount:c,viewport:l,onViewportChange:d,onToastAdd:b.useCallback(()=>u(h=>h+1),[]),onToastRemove:b.useCallback(()=>u(h=>h-1),[]),isFocusedToastEscapeKeyDownRef:m,isClosePausedRef:p,children:i})})};vy.displayName=ju;var xy="ToastViewport",CS=["F8"],uc="toast.viewportPause",hc="toast.viewportResume",ky=b.forwardRef((e,t)=>
68{const{__scopeToast:o,hotkey:a=CS,label:n="Notifications ({hotkey})",...s}=e,i=rl(xy,o),l=kS(o),d=b.useRef(null),c=b.useRef(null),u=b.useRef(null),m=b.useRef(null),p=Mt(t,m,i.onViewportChange),h=a.join("+").replace(/Key/g,"").replace(/Digit/g,""),v=i.toastCount>0;b.useEffect(()=>{const x=g=>{var w;a.length!==0&&a.every(k=>g[k]||g.code===k)&&((w=m.current)==null||w.focus())};return document.addEventListener("keydown",x),()=>document.removeEventListener("keydown",x)},[a]),b.useEffect(()=>{const x=d.current,g=m.current;if(v&&x&&g){const f=()=>{if(!i.isClosePausedRef.current){const C=new CustomEvent(uc);g.dispatchEvent(C),i.isClosePausedRef.current=!0}},w=()=>{if(i.isClosePausedRef.current){const C=new CustomEvent(hc);g.dispatchEvent(C),i.isClosePausedRef.current=!1}},k=C=>{!x.contains(C.relatedTarget)&&w()},j=()=>{x.contains(document.activeElement)||w()};return x.addEventListener("focusin",f),x.addEventListener("focusout",k),x.addEventListener("pointermove",f),x.addEventListener("pointerleave",j),window.addEventListener("blur",f),window.addEventListener("focus",w),()=>{x.removeEventListener("focusin",f),x.removeEventListener("focusout",k),x.removeEventListener("pointermove",f),x.removeEventListener("pointerleave",j),window.removeEventListener("blur",f),window.removeEventListener("focus",w)}}},[v,i.isClosePausedRef]);const y=b.useCallback(({tabbingDirection:x})=>{const f=l().map(w=>{const k=w.ref.current,j=[k,...DS(k)];return x==="forwards"?j:j.reverse()});return(x==="forwards"?f.reverse():f).flat()},[l]);return b.useEffect(()=>{const x=m.current;if(x){const g=f=>{var j,C,T;const w=f.altKey||f.ctrlKey||f.metaKey;if(f.key==="Tab"&&!w){const E=document.activeElement,R=f.shiftKey;if(f.target===x&&R){(j=c.current)==null||j.focus();return}const I=y({tabbingDirection:R?"backwards":"forwards"}),K=I.findIndex(L=>L===E);Zl(I.slice(K+1))?f.preventDefault():R?(C=c.current)==null||C.focus():(T=u.current)==null||T.focus()}};return x.addEventListener("keydown",g),()=>x.removeEventListener("keydown",g)}},[l,y]),r.jsxs(cS,{ref:d,role:"region","aria-label":n.replace("{hotkey}",h),tabIndex:-1,style:{pointerEvents:v?void 0:"none"},children:[v&&r.jsx(mc,{ref:c,onFocusFromOutsideViewport:()=>{const x=y({tabbingDirection:"forwards"});Zl(x)}}),r.jsx(Cu.Slot,{scope:o,children:r.jsx(rt.ol,{tabIndex:-1,...s,ref:p})}),v&&r.jsx(mc,{ref:u,onFocusFromOutsideViewport:()=>{const x=y({tabbingDirection:"backwards"});Zl(x)}})]})});ky.displayName=xy;var Sy="ToastFocusProxy",mc=b.forwardRef((e,t)=>{const{__scopeToast:o,onFocusFromOutsideViewport:a,...n}=e,s=rl(Sy,o);return r.jsx(ol,{"aria-hidden":!0,tabIndex:0,...n,ref:t,style:{position:"fixed"},onFocus:i=>{var c;const l=i.relatedTarget;!((c=s.viewport)!=null&&c.contains(l))&&a()}})});mc.displayName=Sy;var Zn="Toast",TS="toast.swipeStart",BS="toast.swipeMove",WS="toast.swipeCancel",NS="toast.swipeEnd",jy=b.forwardRef((e,t)=>{const{forceMount:o,open:a,defaultOpen:n,onOpenChange:s,...i}=e,[l,d]=gS({prop:a,defaultProp:n??!0,onChange:s,caller:Zn});return r.jsx(Su,{present:o||l,children:r.jsx(FS,{open:l,...i,ref:t,onClose:()=>d(!1),onPause:Ko(e.onPause),onResume:Ko(e.onResume),onSwipeStart:Ce(e.onSwipeStart,c=>{c.currentTarget.setAttribute("data-swipe","start")}),onSwipeMove:Ce(e.onSwipeMove,c=>{const{x:u,y:m}=c.detail.delta;c.currentTarget.setAttribute("data-swipe","move"),c.currentTarget.style.setProperty("--radix-toast-swipe-move-x",`${u}px`),c.currentTarget.style.setProperty("--radix-toast-swipe-move-y",`${m}px`)}),onSwipeCancel:Ce(e.onSwipeCancel,c=>{c.currentTarget.setAttribute("data-swipe","cancel"),c.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),c.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),c.currentTarget.style.removeProperty("--radix-toast-swipe-end-x"),c.currentTarget.style.removeProperty("--radix-toast-swipe-end-y")}),onSwipeEnd:Ce(e.onSwipeEnd,c=>{const{x:u,y:m}=c.detail.delta;c.currentTarget.setAttribute("data-swipe","end"),c.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),c.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),c.currentTarget.style.setProperty("--radix-toast-swipe-end-x",`${u}px`),c.currentTarget.style.setProperty("--radix-toast-swipe-end-y",`${m}px`),d(!1)})})})});jy.displayName=Zn;var[AS,ES]=by(Zn,{onClose(){}}),FS=b.forwardRef((e,t)=>
68{const{__scopeToast:o,type:a="foreground",duration:n,open:s,onClose:i,onEscapeKeyDown:l,onPause:d,onResume:c,onSwipeStart:u,onSwipeMove:m,onSwipeCancel:p,onSwipeEnd:h,...v}=e,y=rl(Zn,o),[x,g]=b.useState(null),f=Mt(t,L=>g(L)),w=b.useRef(null),k=b.useRef(null),j=n||y.duration,C=b.useRef(0),T=b.useRef(j),E=b.useRef(0),{onToastAdd:R,onToastRemove:P}=y,_=Ko(()=>{var Z;(x==null?void 0:x.contains(document.activeElement))&&((Z=y.viewport)==null||Z.focus()),i()}),I=b.useCallback(L=>{!L||L===1/0||(window.clearTimeout(E.current),C.current=new Date().getTime(),E.current=window.setTimeout(_,L))},[_]);b.useEffect(()=>{const L=y.viewport;if(L){const Z=()=>{I(T.current),c==null||c()},$=()=>{const V=new Date().getTime()-C.current;T.current=T.current-V,window.clearTimeout(E.current),d==null||d()};return L.addEventListener(uc,$),L.addEventListener(hc,Z),()=>{L.removeEventListener(uc,$),L.removeEventListener(hc,Z)}}},[y.viewport,j,d,c,I]),b.useEffect(()=>{s&&!y.isClosePausedRef.current&&I(j)},[s,j,y.isClosePausedRef,I]),b.useEffect(()=>(R(),()=>P()),[R,P]);const K=b.useMemo(()=>x?Ey(x):null,[x]);return y.viewport?r.jsxs(r.Fragment,{children:[K&&r.jsx(qS,{__scopeToast:o,role:"status","aria-live":a==="foreground"?"assertive":"polite","aria-atomic":!0,children:K}),r.jsx(AS,{scope:o,onClose:_,children:Xn.createPortal(r.jsx(Cu.ItemSlot,{scope:o,children:r.jsx(dS,{asChild:!0,onEscapeKeyDown:Ce(l,()=>{y.isFocusedToastEscapeKeyDownRef.current||_(),y.isFocusedToastEscapeKeyDownRef.current=!1}),children:r.jsx(rt.li,{role:"status","aria-live":"off","aria-atomic":!0,tabIndex:0,"data-state":s?"open":"closed","data-swipe-direction":y.swipeDirection,...v,ref:f,style:{userSelect:"none",touchAction:"none",...e.style},onKeyDown:Ce(e.onKeyDown,L=>{L.key==="Escape"&&(l==null||l(L.nativeEvent),L.nativeEvent.defaultPrevented||(y.isFocusedToastEscapeKeyDownRef.current=!0,_()))}),onPointerDown:Ce(e.onPointerDown,L=>{L.button===0&&(w.current={x:L.clientX,y:L.clientY})}),onPointerMove:Ce(e.onPointerMove,L=>{if(!w.current)return;const Z=L.clientX-w.current.x,$=L.clientY-w.current.y,V=!!k.current,W=["left","right"].includes(y.swipeDirection),A=["left","up"].includes(y.swipeDirection)?Math.min:Math.max,M=W?A(0,Z):0,Y=W?0:A(0,$),O=L.pointerType==="touch"?10:2,X={x:M,y:Y},ee={originalEvent:L,delta:X};V?(k.current=X,Ns(BS,m,ee,{discrete:!1})):Vm(X,y.swipeDirection,O)?(k.current=X,Ns(TS,u,ee,{discrete:!1}),L.target.setPointerCapture(L.pointerId)):(Math.abs(Z)>O||Math.abs($)>O)&&(w.current=null)}),onPointerUp:Ce(e.onPointerUp,L=>{const Z=k.current,$=L.target;if($.hasPointerCapture(L.pointerId)&&$.releasePointerCapture(L.pointerId),k.current=null,w.current=null,Z){const V=L.currentTarget,W={originalEvent:L,delta:Z};Vm(Z,y.swipeDirection,y.swipeThreshold)?Ns(NS,h,W,{discrete:!0}):Ns(WS,p,W,{discrete:!0}),V.addEventListener("click",A=>A.preventDefault(),{once:!0})}})})})}),y.viewport)})]}):null}),qS=e=>{const{__scopeToast:t,children:o,...a}=e,n=rl(Zn,t),[s,i]=b.useState(!1),[l,d]=b.useState(!1);return LS(()=>i(!0)),b.useEffect(()=>{const c=window.setTimeout(()=>d(!0),1e3);return()=>window.clearTimeout(c)},[]),l?null:r.jsx(wy,{asChild:!0,children:r.jsx(ol,{...a,children:s&&r.jsxs(r.Fragment,{children:[n.label," ",o]})})})},PS="ToastTitle",Cy=b.forwardRef((e,t)=>{const{__scopeToast:o,...a}=e;return r.jsx(rt.div,{...a,ref:t})});Cy.displayName=PS;var RS="ToastDescription",Ty=b.forwardRef((e,t)=>{const{__scopeToast:o,...a}=e;return r.jsx(rt.div,{...a,ref:t})});Ty.displayName=RS;var By="ToastAction",Wy=b.forwardRef((e,t)=>{const{altText:o,...a}=e;return o.trim()?r.jsx(Ay,{altText:o,asChild:!0,children:r.jsx(Tu,{...a,ref:t})}):(console.error(`Invalid prop \`altText\` supplied to \`${By}\`. Expected non-empty \`string\`.`),null)});Wy.displayName=By;var Ny="ToastClose",Tu=b.forwardRef((e,t)=>{const{__scopeToast:o,...a}=e,n=ES(Ny,o);return r.jsx(Ay,{asChild:!0,children:r.jsx(rt.button,{type:"button",...a,ref:t,onClick:Ce(e.onClick,n.onClose)})})});Tu.displayName=Ny;var Ay=b.forwardRef((e,t)=>{const{__scopeToast:o,altText:a,...n}=e;return r.jsx(rt.div,{"data-radix-toast-announce-exclude":"","data-radix-toast-announce-alt":a||void 0,...n,ref:t})});function Ey(e){const t=[];
vendor: 8,355 bytes, lines 68-152
68return Array.from(e.childNodes).forEach(a=>{if(a.nodeType===a.TEXT_NODE&&a.textContent&&t.push(a.textContent),MS(a)){const n=a.ariaHidden||a.hidden||a.style.display==="none",s=a.dataset.radixToastAnnounceExclude==="";if(!n)if(s){const i=a.dataset.radixToastAnnounceAlt;i&&t.push(i)}else t.push(...Ey(a))}}),t}function Ns(e,t,o,{discrete:a}){const n=o.originalEvent.currentTarget,s=new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:o});t&&n.addEventListener(e,t,{once:!0}),a?py(n,s):n.dispatchEvent(s)}var Vm=(e,t,o=0)=>{const a=Math.abs(e.x),n=Math.abs(e.y),s=a>n;return t==="left"||t==="right"?s&&a>o:!s&&n>o};function LS(e=()=>{}){const t=Ko(e);Xo(()=>{let o=0,a=0;return o=window.requestAnimationFrame(()=>a=window.requestAnimationFrame(t)),()=>{window.cancelAnimationFrame(o),window.cancelAnimationFrame(a)}},[t])}function MS(e){return e.nodeType===e.ELEMENT_NODE}function DS(e){const t=[],o=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:a=>{const n=a.tagName==="INPUT"&&a.type==="hidden";return a.disabled||a.hidden||n?NodeFilter.FILTER_SKIP:a.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;o.nextNode();)t.push(o.currentNode);return t}function Zl(e){const t=document.activeElement;return e.some(o=>o===t?!0:(o.focus(),document.activeElement!==t))}var IS=vy,Fy=ky,qy=jy,Py=Cy,Ry=Ty,Ly=Wy,My=Tu;function Dy(e){var t,o,a="";if(typeof e=="string"||typeof e=="number")a+=e;else if(typeof e=="object")if(Array.isArray(e)){var n=e.length;for(t=0;t<n;t++)e[t]&&(o=Dy(e[t]))&&(a&&(a+=" "),a+=o)}else for(o in e)e[o]&&(a&&(a+=" "),a+=o);return a}function Iy(){for(var e,t,o=0,a="",n=arguments.length;o<n;o++)(e=arguments[o])&&(t=Dy(e))&&(a&&(a+=" "),a+=t);return a}const Ym=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,Qm=Iy,HS=(e,t)=>o=>{var a;if((t==null?void 0:t.variants)==null)return Qm(e,o==null?void 0:o.class,o==null?void 0:o.className);const{variants:n,defaultVariants:s}=t,i=Object.keys(n).map(c=>{const u=o==null?void 0:o[c],m=s==null?void 0:s[c];if(u===null)return null;const p=Ym(u)||Ym(m);return n[c][p]}),l=o&&Object.entries(o).reduce((c,u)=>{let[m,p]=u;return p===void 0||(c[m]=p),c},{}),d=t==null||(a=t.compoundVariants)===null||a===void 0?void 0:a.reduce((c,u)=>{let{class:m,className:p,...h}=u;return Object.entries(h).every(v=>{let[y,x]=v;return Array.isArray(x)?x.includes({...s,...l}[y]):{...s,...l}[y]===x})?[...c,m,p]:c},[]);return Qm(e,i,d,o==null?void 0:o.class,o==null?void 0:o.className)};/** 69 * @license lucide-react v0.462.0 - ISC 70 * 71 * This source code is licensed under the ISC license. 72 * See the LICENSE file in the root directory of this source tree. 73 */const OS=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Hy=(...e)=>e.filter((t,o,a)=>!!t&&t.trim()!==""&&a.indexOf(t)===o).join(" ").trim();/** 74 * @license lucide-react v0.462.0 - ISC 75 * 76 * This source code is licensed under the ISC license. 77 * See the LICENSE file in the root directory of this source tree. 78 */var _S={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** 79 * @license lucide-react v0.462.0 - ISC 80 * 81 * This source code is licensed under the ISC license. 82 * See the LICENSE file in the root directory of this source tree. 83 */const US=b.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:o=2,absoluteStrokeWidth:a,className:n="",children:s,iconNode:i,...l},d)=>b.createElement("svg",{ref:d,..._S,width:t,height:t,stroke:e,strokeWidth:a?Number(o)*24/Number(t):o,className:Hy("lucide",n),...l},[...i.map(([c,u])=>b.createElement(c,u)),...Array.isArray(s)?s:[s]]));/** 84 * @license lucide-react v0.462.0 - ISC 85 * 86 * This source code is licensed under the ISC license. 87 * See the LICENSE file in the root directory of this source tree. 88 */const U=(e,t)=>{const o=b.forwardRef(({className:a,...n},s)=>b.createElement(US,{ref:s,iconNode:t,className:Hy(`lucide-${OS(e)}`,a),...n}));return o.displayName=`${e}`,o};/** 89 * @license lucide-react v0.462.0 - ISC 90 * 91 * This source code is licensed under the ISC license. 92 * See the LICENSE file in the root directory of this source tree. 93 */const Oy=U("Accessibility",[["circle",{cx:"16",cy:"4",r:"1",key:"1grugj"}],["path",{d:"m18 19 1-7-6 1",key:"r0i19z"}],["path",{d:"m5 8 3-3 5.5 3-2.36 3.5",key:"9ptxx2"}],["path",{d:"M4.24 14.5a5 5 0 0 0 6.88 6",key:"10kmtu"}],["path",{d:"M13.76 17.5a5 5 0 0 0-6.88-6",key:"2qq6rc"}]]);/** 94 * @license lucide-react v0.462.0 - ISC 95 * 96 * This source code is licensed under the ISC license. 97 * See the LICENSE file in the root directory of this source tree. 98 */const Bu=U("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);/** 99 * @license lucide-react v0.462.0 - ISC 100 * 101 * This source code is licensed under the ISC license. 102 * See the LICENSE file in the root directory of this source tree. 103 */const Da=U("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);/** 104 * @license lucide-react v0.462.0 - ISC 105 * 106 * This source code is licensed under the ISC license. 107 * See the LICENSE file in the root directory of this source tree. 108 */const al=U("Award",[["path",{d:"m15.477 12.89 1.515 8.526a.5.5 0 0 1-.81.47l-3.58-2.687a1 1 0 0 0-1.197 0l-3.586 2.686a.5.5 0 0 1-.81-.469l1.514-8.526",key:"1yiouv"}],["circle",{cx:"12",cy:"8",r:"6",key:"1vp47v"}]]);/** 109 * @license lucide-react v0.462.0 - ISC 110 * 111 * This source code is licensed under the ISC license. 112 * See the LICENSE file in the root directory of this source tree. 113 */const pc=U("Bath",[["path",{d:"M10 4 8 6",key:"1rru8s"}],["path",{d:"M17 19v2",key:"ts1sot"}],["path",{d:"M2 12h20",key:"9i4pu4"}],["path",{d:"M7 19v2",key:"12npes"}],["path",{d:"M9 5 7.621 3.621A2.121 2.121 0 0 0 4 5v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5",key:"14ym8i"}]]);/** 114 * @license lucide-react v0.462.0 - ISC 115 * 116 * This source code is licensed under the ISC license. 117 * See the LICENSE file in the root directory of this source tree. 118 */const $S=U("CalendarCheck",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"m9 16 2 2 4-4",key:"19s6y9"}]]);/** 119 * @license lucide-react v0.462.0 - ISC 120 * 121 * This source code is licensed under the ISC license. 122 * See the LICENSE file in the root directory of this source tree. 123 */const Ea=U("Calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]);/** 124 * @license lucide-react v0.462.0 - ISC 125 * 126 * This source code is licensed under the ISC license. 127 * See the LICENSE file in the root directory of this source tree. 128 */const zS=U("Camera",[["path",{d:"M14.5 4h-5L7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3l-2.5-3z",key:"1tc9qg"}],["circle",{cx:"12",cy:"13",r:"3",key:"1vg3eu"}]]);/** 129 * @license lucide-react v0.462.0 - ISC 130 * 131 * This source code is licensed under the ISC license. 132 * See the LICENSE file in the root directory of this source tree. 133 */const _y=U("ChefHat",[["path",{d:"M17 21a1 1 0 0 0 1-1v-5.35c0-.457.316-.844.727-1.041a4 4 0 0 0-2.134-7.589 5 5 0 0 0-9.186 0 4 4 0 0 0-2.134 7.588c.411.198.727.585.727 1.041V20a1 1 0 0 0 1 1Z",key:"1qvrer"}],["path",{d:"M6 17h12",key:"1jwigz"}]]);/** 134 * @license lucide-react v0.462.0 - ISC 135 * 136 * This source code is licensed under the ISC license. 137 * See the LICENSE file in the root directory of this source tree. 138 */const gr=U("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/** 139 * @license lucide-react v0.462.0 - ISC 140 * 141 * This source code is licensed under the ISC license. 142 * See the LICENSE file in the root directory of this source tree. 143 */const GS=U("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/** 144 * @license lucide-react v0.462.0 - ISC 145 * 146 * This source code is licensed under the ISC license. 147 * See the LICENSE file in the root directory of this source tree. 148 */const Ia=U("CircleCheckBig",[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]);/** 149 * @license lucide-react v0.462.0 - ISC 150 * 151 * This source code is licensed under the ISC license. 152 * See the LICENSE file in the root directory of this source tree.
153 */const VS=U("ClipboardList",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"M12 11h4",key:"1jrz19"}],["path",{d:"M12 16h4",key:"n85exb"}],["path",{d:"M8 11h.01",key:"1dfujw"}],["path",{d:"M8 16h.01",key:"18s6g9"}]]);/** 154 * @license lucide-react v0.462.0 - ISC 155 * 156 * This source code is licensed under the ISC license. 157 * See the LICENSE file in the root directory of this source tree. 158 */const Dt=U("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);/** 159 * @license lucide-react v0.462.0 - ISC 160 * 161 * This source code is licensed under the ISC license. 162 * See the LICENSE file in the root directory of this source tree. 163 */const YS=U("DoorOpen",[["path",{d:"M13 4h3a2 2 0 0 1 2 2v14",key:"hrm0s9"}],["path",{d:"M2 20h3",key:"1gaodv"}],["path",{d:"M13 20h9",key:"s90cdi"}],["path",{d:"M10 12v.01",key:"vx6srw"}],["path",{d:"M13 4.562v16.157a1 1 0 0 1-1.242.97L5 20V5.562a2 2 0 0 1 1.515-1.94l4-1A2 2 0 0 1 13 4.561Z",key:"199qr4"}]]);/** 164 * @license lucide-react v0.462.0 - ISC 165 * 166 * This source code is licensed under the ISC license. 167 * See the LICENSE file in the root directory of this source tree. 168 */const Uy=U("Droplets",[["path",{d:"M7 16.3c2.2 0 4-1.83 4-4.05 0-1.16-.57-2.26-1.71-3.19S7.29 6.75 7 5.3c-.29 1.45-1.14 2.84-2.29 3.76S3 11.1 3 12.25c0 2.22 1.8 4.05 4 4.05z",key:"1ptgy4"}],["path",{d:"M12.56 6.6A10.97 10.97 0 0 0 14 3.02c.5 2.5 2 4.9 4 6.5s3 3.5 3 5.5a6.98 6.98 0 0 1-11.91 4.97",key:"1sl1rz"}]]);/** 169 * @license lucide-react v0.462.0 - ISC 170 * 171 * This source code is licensed under the ISC license. 172 * See the LICENSE file in the root directory of this source tree. 173 */const Qs=U("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);/** 174 * @license lucide-react v0.462.0 - ISC 175 * 176 * This source code is licensed under the ISC license. 177 * See the LICENSE file in the root directory of this source tree. 178 */const QS=U("Eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/** 179 * @license lucide-react v0.462.0 - ISC 180 * 181 * This source code is licensed under the ISC license. 182 * See the LICENSE file in the root directory of this source tree. 183 */const $y=U("Facebook",[["path",{d:"M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z",key:"1jg4f8"}]]);/** 184 * @license lucide-react v0.462.0 - ISC 185 * 186 * This source code is licensed under the ISC license. 187 * See the LICENSE file in the root directory of this source tree. 188 */const zy=U("Flame",[["path",{d:"M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5z",key:"96xj49"}]]);/** 189 * @license lucide-react v0.462.0 - ISC 190 * 191 * This source code is licensed under the ISC license. 192 * See the LICENSE file in the root directory of this source tree. 193 */const KS=U("Gift",[["rect",{x:"3",y:"8",width:"18",height:"4",rx:"1",key:"bkv52"}],["path",{d:"M12 8v13",key:"1c76mn"}],["path",{d:"M19 12v7a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-7",key:"6wjy6b"}],["path",{d:"M7.5 8a2.5 2.5 0 0 1 0-5A4.8 8 0 0 1 12 8a4.8 8 0 0 1 4.5-5 2.5 2.5 0 0 1 0 5",key:"1ihvrl"}]]);/** 194 * @license lucide-react v0.462.0 - ISC 195 * 196 * This source code is licensed under the ISC license. 197 * See the LICENSE file in the root directory of this source tree. 198 */const XS=U("Grid3x3",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M3 15h18",key:"5xshup"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"M15 3v18",key:"14nvp0"}]]);/** 199 * @license lucide-react v0.462.0 - ISC 200 * 201 * This source code is licensed under the ISC license. 202 * See the LICENSE file in the root directory of this source tree. 203 */const JS=U("Hammer",[["path",{d:"m15 12-8.373 8.373a1 1 0 1 1-3-3L12 9",key:"eefl8a"}],["path",{d:"m18 15 4-4",key:"16gjal"}],["path",{d:"m21.5 11.5-1.914-1.914A2 2 0 0 1 19 8.172V7l-2.26-2.26a6 6 0 0 0-4.202-1.756L9 2.96l.92.82A6.18 6.18 0 0 1 12 8.4V10l2 2h1.172a2 2 0 0 1 1.414.586L18.5 14.5",key:"b7pghm"}]]);/** 204 * @license lucide-react v0.462.0 - ISC 205 * 206 * This source code is licensed under the ISC license. 207 * See the LICENSE file in the root directory of this source tree. 208 */const nl=U("House",[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"1d0kgt"}]]);/** 209 * @license lucide-react v0.462.0 - ISC 210 * 211 * This source code is licensed under the ISC license. 212 * See the LICENSE file in the root directory of this source tree. 213 */const ZS=U("Instagram",[["rect",{width:"20",height:"20",x:"2",y:"2",rx:"5",ry:"5",key:"2e1cvw"}],["path",{d:"M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z",key:"9exkf1"}],["line",{x1:"17.5",x2:"17.51",y1:"6.5",y2:"6.5",key:"r4j83e"}]]);/** 214 * @license lucide-react v0.462.0 - ISC 215 * 216 * This source code is licensed under the ISC license. 217 * See the LICENSE file in the root directory of this source tree. 218 */const Gy=U("Mail",[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}]]);/** 219 * @license lucide-react v0.462.0 - ISC 220 * 221 * This source code is licensed under the ISC license. 222 * See the LICENSE file in the root directory of this source tree. 223 */const mo=U("MapPin",[["path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0",key:"1r0f0z"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}]]);/** 224 * @license lucide-react v0.462.0 - ISC 225 * 226 * This source code is licensed under the ISC license. 227 * See the LICENSE file in the root directory of this source tree. 228 */const e2=U("Menu",[["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}],["line",{x1:"4",x2:"20",y1:"6",y2:"6",key:"1owob3"}],["line",{x1:"4",x2:"20",y1:"18",y2:"18",key:"yk5zj1"}]]);/** 229 * @license lucide-react v0.462.0 - ISC 230 * 231 * This source code is licensed under the ISC license. 232 * See the LICENSE file in the root directory of this source tree. 233 */const t2=U("Package",[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["path",{d:"m3.3 7 7.703 4.734a2 2 0 0 0 1.994 0L20.7 7",key:"yx3hmr"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]);/** 234 * @license lucide-react v0.462.0 - ISC 235 * 236 * This source code is licensed under the ISC license. 237 * See the LICENSE file in the root directory of this source tree. 238 */const o2=U("Palette",[["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["path",{d:"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.926 0 1.648-.746 1.648-1.688 0-.437-.18-.835-.437-1.125-.29-.289-.438-.652-.438-1.125a1.64 1.64 0 0 1 1.668-1.668h1.996c3.051 0 5.555-2.503 5.555-5.554C21.965 6.012 17.461 2 12 2z",key:"12rzf8"}]]);/** 239 * @license lucide-react v0.462.0 - ISC 240 * 241 * This source code is licensed under the ISC license. 242 * See the LICENSE file in the root directory of this source tree. 243 */const r2=U("Pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);/** 244 * @license lucide-react v0.462.0 - ISC 245 * 246 * This source code is licensed under the ISC license. 247 * See the LICENSE file in the root directory of this source tree. 248 */const me=U("Phone",[["path",{d:"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z",key:"foiqr5"}]]);/** 249 * @license lucide-react v0.462.0 - ISC 250 * 251 * This source code is licensed under the ISC license. 252 * See the LICENSE file in the root directory of this source tree. 253 */const a2=U("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);/** 254 * @license lucide-react v0.462.0 - ISC 255 * 256 * This source code is licensed under the ISC license. 257 * See the LICENSE file in the root directory of this source tree. 258 */const n2=U("Ruler",[["path",{d:"M21.3 15.3a2.4 2.4 0 0 1 0 3.4l-2.6 2.6a2.4 2.4 0 0 1-3.4 0L2.7 8.7a2.41 2.41 0 0 1 0-3.4l2.6-2.6a2.41 2.41 0 0 1 3.4 0Z",key:"icamh8"}
258],["path",{d:"m14.5 12.5 2-2",key:"inckbg"}],["path",{d:"m11.5 9.5 2-2",key:"fmmyf7"}],["path",{d:"m8.5 6.5 2-2",key:"vc6u1g"}],["path",{d:"m17.5 15.5 2-2",key:"wo5hmg"}]]);/** 259 * @license lucide-react v0.462.0 - ISC 260 * 261 * This source code is licensed under the ISC license. 262 * See the LICENSE file in the root directory of this source tree. 263 */const Vy=U("ShieldCheck",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/** 264 * @license lucide-react v0.462.0 - ISC 265 * 266 * This source code is licensed under the ISC license. 267 * See the LICENSE file in the root directory of this source tree. 268 */const Ha=U("Shield",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]]);/** 269 * @license lucide-react v0.462.0 - ISC 270 * 271 * This source code is licensed under the ISC license. 272 * See the LICENSE file in the root directory of this source tree. 273 */const Yy=U("ShowerHead",[["path",{d:"m4 4 2.5 2.5",key:"uv2vmf"}],["path",{d:"M13.5 6.5a4.95 4.95 0 0 0-7 7",key:"frdkwv"}],["path",{d:"M15 5 5 15",key:"1ag8rq"}],["path",{d:"M14 17v.01",key:"eokfpp"}],["path",{d:"M10 16v.01",key:"14uyyl"}],["path",{d:"M13 13v.01",key:"1v1k97"}],["path",{d:"M16 10v.01",key:"5169yg"}],["path",{d:"M11 20v.01",key:"cj92p8"}],["path",{d:"M17 14v.01",key:"11cswd"}],["path",{d:"M20 11v.01",key:"19e0od"}]]);/** 274 * @license lucide-react v0.462.0 - ISC 275 * 276 * This source code is licensed under the ISC license. 277 * See the LICENSE file in the root directory of this source tree. 278 */const Qy=U("Sparkles",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]]);/** 279 * @license lucide-react v0.462.0 - ISC 280 * 281 * This source code is licensed under the ISC license. 282 * See the LICENSE file in the root directory of this source tree. 283 */const sl=U("Star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]);/** 284 * @license lucide-react v0.462.0 - ISC 285 * 286 * This source code is licensed under the ISC license. 287 * See the LICENSE file in the root directory of this source tree. 288 */const s2=U("Store",[["path",{d:"m2 7 4.41-4.41A2 2 0 0 1 7.83 2h8.34a2 2 0 0 1 1.42.59L22 7",key:"ztvudi"}],["path",{d:"M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8",key:"1b2hhj"}],["path",{d:"M15 22v-4a2 2 0 0 0-2-2h-2a2 2 0 0 0-2 2v4",key:"2ebpfo"}],["path",{d:"M2 7h20",key:"1fcdvo"}],["path",{d:"M22 7v3a2 2 0 0 1-2 2a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 16 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 12 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 8 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 4 12a2 2 0 0 1-2-2V7",key:"6c3vgh"}]]);/** 289 * @license lucide-react v0.462.0 - ISC 290 * 291 * This source code is licensed under the ISC license. 292 * See the LICENSE file in the root directory of this source tree. 293 */const i2=U("Thermometer",[["path",{d:"M14 4v10.54a4 4 0 1 1-4 0V4a2 2 0 0 1 4 0Z",key:"17jzev"}]]);/** 294 * @license lucide-react v0.462.0 - ISC 295 * 296 * This source code is licensed under the ISC license. 297 * See the LICENSE file in the root directory of this source tree. 298 */const l2=U("TriangleAlert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);/** 299 * @license lucide-react v0.462.0 - ISC 300 * 301 * This source code is licensed under the ISC license. 302 * See the LICENSE file in the root directory of this source tree. 303 */const Wu=U("User",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);/** 304 * @license lucide-react v0.462.0 - ISC 305 * 306 * This source code is licensed under the ISC license. 307 * See the LICENSE file in the root directory of this source tree. 308 */const Ky=U("Users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["path",{d:"M16 3.13a4 4 0 0 1 0 7.75",key:"1da9ce"}]]);/** 309 * @license lucide-react v0.462.0 - ISC 310 * 311 * This source code is licensed under the ISC license. 312 * See the LICENSE file in the root directory of this source tree. 313 */const il=U("Wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",key:"cbrjhi"}]]);/** 314 * @license lucide-react v0.462.0 - ISC 315 * 316 * This source code is licensed under the ISC license. 317 * See the LICENSE file in the root directory of this source tree. 318 */const Xy=U("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}
vendor: 5,760 bytes, line 318
318],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),Nu="-",d2=e=>{const t=u2(e),{conflictingClassGroups:o,conflictingClassGroupModifiers:a}=e;return{getClassGroupId:i=>{const l=i.split(Nu);return l[0]===""&&l.length!==1&&l.shift(),Jy(l,t)||c2(i)},getConflictingClassGroupIds:(i,l)=>{const d=o[i]||[];return l&&a[i]?[...d,...a[i]]:d}}},Jy=(e,t)=>{var i;if(e.length===0)return t.classGroupId;const o=e[0],a=t.nextPart.get(o),n=a?Jy(e.slice(1),a):void 0;if(n)return n;if(t.validators.length===0)return;const s=e.join(Nu);return(i=t.validators.find(({validator:l})=>l(s)))==null?void 0:i.classGroupId},Km=/^\[(.+)\]$/,c2=e=>{if(Km.test(e)){const t=Km.exec(e)[1],o=t==null?void 0:t.substring(0,t.indexOf(":"));if(o)return"arbitrary.."+o}},u2=e=>{const{theme:t,prefix:o}=e,a={nextPart:new Map,validators:[]};return m2(Object.entries(e.classGroups),o).forEach(([s,i])=>{fc(i,a,s,t)}),a},fc=(e,t,o,a)=>{e.forEach(n=>{if(typeof n=="string"){const s=n===""?t:Xm(t,n);s.classGroupId=o;return}if(typeof n=="function"){if(h2(n)){fc(n(a),t,o,a);return}t.validators.push({validator:n,classGroupId:o});return}Object.entries(n).forEach(([s,i])=>{fc(i,Xm(t,s),o,a)})})},Xm=(e,t)=>{let o=e;return t.split(Nu).forEach(a=>{o.nextPart.has(a)||o.nextPart.set(a,{nextPart:new Map,validators:[]}),o=o.nextPart.get(a)}),o},h2=e=>e.isThemeGetter,m2=(e,t)=>t?e.map(([o,a])=>{const n=a.map(s=>typeof s=="string"?t+s:typeof s=="object"?Object.fromEntries(Object.entries(s).map(([i,l])=>[t+i,l])):s);return[o,n]}):e,p2=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,o=new Map,a=new Map;const n=(s,i)=>{o.set(s,i),t++,t>e&&(t=0,a=o,o=new Map)};return{get(s){let i=o.get(s);if(i!==void 0)return i;if((i=a.get(s))!==void 0)return n(s,i),i},set(s,i){o.has(s)?o.set(s,i):n(s,i)}}},Zy="!",f2=e=>{const{separator:t,experimentalParseClassName:o}=e,a=t.length===1,n=t[0],s=t.length,i=l=>{const d=[];let c=0,u=0,m;for(let x=0;x<l.length;x++){let g=l[x];if(c===0){if(g===n&&(a||l.slice(x,x+s)===t)){d.push(l.slice(u,x)),u=x+s;continue}if(g==="/"){m=x;continue}}g==="["?c++:g==="]"&&c--}const p=d.length===0?l:l.substring(u),h=p.startsWith(Zy),v=h?p.substring(1):p,y=m&&m>u?m-u:void 0;return{modifiers:d,hasImportantModifier:h,baseClassName:v,maybePostfixModifierPosition:y}};return o?l=>o({className:l,parseClassName:i}):i},g2=e=>{if(e.length<=1)return e;const t=[];let o=[];return e.forEach(a=>{a[0]==="["?(t.push(...o.sort(),a),o=[]):o.push(a)}),t.push(...o.sort()),t},y2=e=>({cache:p2(e.cacheSize),parseClassName:f2(e),...d2(e)}),w2=/\s+/,b2=(e,t)=>{const{parseClassName:o,getClassGroupId:a,getConflictingClassGroupIds:n}=t,s=[],i=e.trim().split(w2);let l="";for(let d=i.length-1;d>=0;d-=1){const c=i[d],{modifiers:u,hasImportantModifier:m,baseClassName:p,maybePostfixModifierPosition:h}=o(c);let v=!!h,y=a(v?p.substring(0,h):p);if(!y){if(!v){l=c+(l.length>0?" "+l:l);continue}if(y=a(p),!y){l=c+(l.length>0?" "+l:l);continue}v=!1}const x=g2(u).join(":"),g=m?x+Zy:x,f=g+y;if(s.includes(f))continue;s.push(f);const w=n(y,v);for(let k=0;k<w.length;++k){const j=w[k];s.push(g+j)}l=c+(l.length>0?" "+l:l)}return l};function v2(){let e=0,t,o,a="";for(;e<arguments.length;)(t=arguments[e++])&&(o=ew(t))&&(a&&(a+=" "),a+=o);return a}const ew=e=>{if(typeof e=="string")return e;let t,o="";for(let a=0;a<e.length;a++)e[a]&&(t=ew(e[a]))&&(o&&(o+=" "),o+=t);return o};function x2(e,...t){let o,a,n,s=i;function i(d){const c=t.reduce((u,m)=>m(u),e());return o=y2(c),a=o.cache.get,n=o.cache.set,s=l,l(d)}function l(d){const c=a(d);if(c)return c;const u=b2(d,o);return n(d,u),u}return function(){return s(v2.apply(null,arguments))}}const le=e=>{const t=o=>o[e]||[];return t.isThemeGetter=!0,t},tw=/^\[(?:([a-z-]+):)?(.+)\]$/i,k2=/^\d+\/\d+$/,S2=new Set(["px","full","screen"]),j2=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,C2=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,T2=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,B2=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,W2=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,eo=e=>pa(e)||S2.has(e)||k2.test(e),jo=e=>Oa(e,"length",L2),pa=e=>!!e&&!Number.isNaN(Number(e)),ed=e=>Oa(e,"number",pa),on=e=>!!e&&Number.isInteger(Number(e)),N2=e=>e.endsWith("%")&&pa(e.slice(0,-1)),Q=e=>tw.test(e),Co=e=>j2.test(e),A2=new Set(["length","size","percentage"]),E2=e=>Oa(e,A2,ow),F2=e=>Oa(e,"position",ow),q2=new Set(["image","url"]),P2=e=>Oa(e,q2,D2),R2=e=>Oa(e,"",M2),rn=()=>!0,Oa=(e,t,o)=>{const a=tw.exec(e);return a?a[1]?typeof t=="string"?a[1]===t:t.has(a[1]):o(a[2]):!1},L2=e=>C2.test(e)&&!T2.test(e),ow=()=>!1,M2=e=>B2.test(e),D2=e=>W2.test(e),I2=()=>{const e=le("colors"),t=le("spacing"),o=le("blur"),a=le("brightness"),n=le("borderColor"),s=le("borderRadius"),i=le("borderSpacing"),l=le("borderWidth"),d=le("contrast"),c=le("grayscale"),u=le("hueRotate"),m=le("invert"),p=le("gap"),h=le("gradientColorStops"),v=le("gradientColorStopPositions"),y=le("inset"),x=le("margin"),g=le("opacity"),f=le("padding"),w=le("saturate"),k=le("scale"),j=le("sepia"),C=le("skew"),T=le("space"),E=le("translate"),R=()=>["auto","contain","none"],P=()=>["auto","hidden","clip","visible","scroll"],_=()=>["auto",Q,t],I=()=>[Q,t],K=()=>["",eo,jo],L=()=>["auto",pa,Q],Z=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],$=()=>["solid","dashed","dotted","double","none"],V=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],W=()=>["start","end","center","between","around","evenly","stretch"],A=()=>["","0",Q],M=()=>["auto","avoid","all","avoid-page","page","left","right","column"],Y=()=>
vendor: 11,635 bytes, line 318
318[pa,Q];return{cacheSize:500,separator:":",theme:{colors:[rn],spacing:[eo,jo],blur:["none","",Co,Q],brightness:Y(),borderColor:[e],borderRadius:["none","","full",Co,Q],borderSpacing:I(),borderWidth:K(),contrast:Y(),grayscale:A(),hueRotate:Y(),invert:A(),gap:I(),gradientColorStops:[e],gradientColorStopPositions:[N2,jo],inset:_(),margin:_(),opacity:Y(),padding:I(),saturate:Y(),scale:Y(),sepia:A(),skew:Y(),space:I(),translate:I()},classGroups:{aspect:[{aspect:["auto","square","video",Q]}],container:["container"],columns:[{columns:[Co]}],"break-after":[{"break-after":M()}],"break-before":[{"break-before":M()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...Z(),Q]}],overflow:[{overflow:P()}],"overflow-x":[{"overflow-x":P()}],"overflow-y":[{"overflow-y":P()}],overscroll:[{overscroll:R()}],"overscroll-x":[{"overscroll-x":R()}],"overscroll-y":[{"overscroll-y":R()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[y]}],"inset-x":[{"inset-x":[y]}],"inset-y":[{"inset-y":[y]}],start:[{start:[y]}],end:[{end:[y]}],top:[{top:[y]}],right:[{right:[y]}],bottom:[{bottom:[y]}],left:[{left:[y]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",on,Q]}],basis:[{basis:_()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",Q]}],grow:[{grow:A()}],shrink:[{shrink:A()}],order:[{order:["first","last","none",on,Q]}],"grid-cols":[{"grid-cols":[rn]}],"col-start-end":[{col:["auto",{span:["full",on,Q]},Q]}],"col-start":[{"col-start":L()}],"col-end":[{"col-end":L()}],"grid-rows":[{"grid-rows":[rn]}],"row-start-end":[{row:["auto",{span:[on,Q]},Q]}],"row-start":[{"row-start":L()}],"row-end":[{"row-end":L()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",Q]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",Q]}],gap:[{gap:[p]}],"gap-x":[{"gap-x":[p]}],"gap-y":[{"gap-y":[p]}],"justify-content":[{justify:["normal",...W()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...W(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...W(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[f]}],px:[{px:[f]}],py:[{py:[f]}],ps:[{ps:[f]}],pe:[{pe:[f]}],pt:[{pt:[f]}],pr:[{pr:[f]}],pb:[{pb:[f]}],pl:[{pl:[f]}],m:[{m:[x]}],mx:[{mx:[x]}],my:[{my:[x]}],ms:[{ms:[x]}],me:[{me:[x]}],mt:[{mt:[x]}],mr:[{mr:[x]}],mb:[{mb:[x]}],ml:[{ml:[x]}],"space-x":[{"space-x":[T]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[T]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",Q,t]}],"min-w":[{"min-w":[Q,t,"min","max","fit"]}],"max-w":[{"max-w":[Q,t,"none","full","min","max","fit","prose",{screen:[Co]},Co]}],h:[{h:[Q,t,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[Q,t,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[Q,t,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[Q,t,"auto","min","max","fit"]}],"font-size":[{text:["base",Co,jo]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",ed]}],"font-family":[{font:[rn]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",Q]}],"line-clamp":[{"line-clamp":["none",pa,ed]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",eo,Q]}],"list-image":[{"list-image":["none",Q]}],"list-style-type":[{list:["none","disc","decimal",Q]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[g]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[g]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...$(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",eo,jo]}],"underline-offset":[{"underline-offset":["auto",eo,Q]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:I()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",Q]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",Q]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[g]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...Z(),F2]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",E2]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},P2]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[v]}],"gradient-via-pos":[{via:[v]}],"gradient-to-pos":[{to:[v]}],"gradient-from":[{from:[h]}],"gradient-via":[{via:[h]}],"gradient-to":[{to:[h]}],rounded:[{rounded:[s]}],"rounded-s":[{"rounded-s":[s]}],"rounded-e":[{"rounded-e":[s]}],"rounded-t":[{"rounded-t":[s]}],"rounded-r":[{"rounded-r":[s]}],"rounded-b":[{"rounded-b":[s]}],"rounded-l":[{"rounded-l":[s]}],"rounded-ss":[{"rounded-ss":[s]}],"rounded-se":[{"rounded-se":[s]}],"rounded-ee":[{"rounded-ee":[s]}],"rounded-es":[{"rounded-es":[s]}],"rounded-tl":[{"rounded-tl":[s]}],"rounded-tr":[{"rounded-tr":[s]}],"rounded-br":[{"rounded-br":[s]}],"rounded-bl":[{"rounded-bl":[s]}],"border-w":[{border:[l]}],"border-w-x":[{"border-x":[l]}],"border-w-y":[{"border-y":[l]}],"border-w-s":[{"border-s":[l]}],"border-w-e":[{"border-e":[l]}],"border-w-t":[{"border-t":[l]}],"border-w-r":[{"border-r":[l]}],"border-w-b":[{"border-b":[l]}],"border-w-l":[{"border-l":[l]}],"border-opacity":[{"border-opacity":[g]}],"border-style":[{border:[...$(),"hidden"]}],"divide-x":[{"divide-x":[l]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[l]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[g]}],"divide-style":[{divide:$()}],"border-color":[{border:[n]}],"border-color-x":[{"border-x":[n]}],"border-color-y":[{"border-y":[n]}],"border-color-s":[{"border-s":[n]}],"border-color-e":[{"border-e":[n]}],"border-color-t":[{"border-t":[n]}],"border-color-r":[{"border-r":[n]}],"border-color-b":[{"border-b":[n]}],"border-color-l":[{"border-l":[n]}],"divide-color":[{divide:[n]}],"outline-style":[{outline:["",...$()]}],"outline-offset":[{"outline-offset":[eo,Q]}],"outline-w":[{outline:[eo,jo]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:K()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[g]}],"ring-offset-w":[{"ring-offset":[eo,jo]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",Co,R2]}],"shadow-color":[{shadow:[rn]}],opacity:[{opacity:[g]}],"mix-blend":[{"mix-blend":[...V(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":V()}],filter:[{filter:["","none"]}],blur:[{blur:[o]}],brightness:[{brightness:[a]}],contrast:[{contrast:[d]}],"drop-shadow":[{"drop-shadow":["","none",Co,Q]}],grayscale:[{grayscale:[c]}],"hue-rotate":[{"hue-rotate":[u]}],invert:[{invert:[m]}],saturate:[{saturate:[w]}],sepia:[{sepia:[j]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[o]}],"backdrop-brightness":[{"backdrop-brightness":[a]}],"backdrop-contrast":[{"backdrop-contrast":[d]}],"backdrop-grayscale":[{"backdrop-grayscale":[c]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[u]}],"backdrop-invert":[{"backdrop-invert":[m]}],"backdrop-opacity":[{"backdrop-opacity":[g]}],"backdrop-saturate":[{"backdrop-saturate":[w]}],"backdrop-sepia":[{"backdrop-sepia":[j]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[i]}],"border-spacing-x":[{"border-spacing-x":[i]}],"border-spacing-y":[{"border-spacing-y":[i]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",Q]}],duration:[{duration:Y()}],ease:[{ease:["linear","in","out","in-out",Q]}],delay:[{delay:Y()}],animate:[{animate:["none","spin","ping","pulse","bounce",Q]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[k]}],"scale-x":[{"scale-x":[k]}],"scale-y":[{"scale-y":[k]}],rotate:[{rotate:[on,Q]}],"translate-x":[{"translate-x":[E]}],"translate-y":[{"translate-y":[E]}],"skew-x":[{"skew-x":[C]}],"skew-y":[{"skew-y":[C]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",Q]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",Q]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":I()}],"scroll-mx":[{"scroll-mx":I()}],"scroll-my":[{"scroll-my":I()}],"scroll-ms":[{"scroll-ms":I()}],"scroll-me":[{"scroll-me":I()}],"scroll-mt":[{"scroll-mt":I()}],"scroll-mr":[{"scroll-mr":I()}],"scroll-mb":[{"scroll-mb":I()}],"scroll-ml":[{"scroll-ml":I()}],"scroll-p":[{"scroll-p":I()}],"scroll-px":[{"scroll-px":I()}],"scroll-py":[{"scroll-py":I()}],"scroll-ps":[{"scroll-ps":I()}],"scroll-pe":[{"scroll-pe":I()}],"scroll-pt":[{"scroll-pt":I()}],"scroll-pr":[{"scroll-pr":I()}],"scroll-pb":[{"scroll-pb":I()}],"scroll-pl":[{"scroll-pl":I()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}
vendor: 4,646 bytes, line 318
318],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",Q]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[eo,jo,ed]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},H2=x2(I2);function Mr(...e){return H2(Iy(e))}const O2=IS,rw=b.forwardRef(({className:e,...t},o)=>r.jsx(Fy,{ref:o,className:Mr("fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",e),...t}));rw.displayName=Fy.displayName;const _2=HS("group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",{variants:{variant:{default:"border bg-background text-foreground",destructive:"destructive group border-destructive bg-destructive text-destructive-foreground"}},defaultVariants:{variant:"default"}}),aw=b.forwardRef(({className:e,variant:t,...o},a)=>r.jsx(qy,{ref:a,className:Mr(_2({variant:t}),e),...o}));aw.displayName=qy.displayName;const U2=b.forwardRef(({className:e,...t},o)=>r.jsx(Ly,{ref:o,className:Mr("inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors group-[.destructive]:border-muted/40 hover:bg-secondary group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 group-[.destructive]:focus:ring-destructive disabled:pointer-events-none disabled:opacity-50",e),...t}));U2.displayName=Ly.displayName;const nw=b.forwardRef(({className:e,...t},o)=>r.jsx(My,{ref:o,className:Mr("absolute right-2 top-2 rounded-md p-1 text-foreground
vendor: 12,991 bytes, line 318
318/50 opacity-0 transition-opacity group-hover:opacity-100 group-[.destructive]:text-red-300 hover:text-foreground group-[.destructive]:hover:text-red-50 focus:opacity-100 focus:outline-none focus:ring-2 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",e),"toast-close":"",...t,children:r.jsx(Xy,{className:"h-4 w-4"})}));nw.displayName=My.displayName;const sw=b.forwardRef(({className:e,...t},o)=>r.jsx(Py,{ref:o,className:Mr("text-sm font-semibold",e),...t}));sw.displayName=Py.displayName;const iw=b.forwardRef(({className:e,...t},o)=>r.jsx(Ry,{ref:o,className:Mr("text-sm opacity-90",e),...t}));iw.displayName=Ry.displayName;function $2(){const{toasts:e}=V1();return r.jsxs(O2,{children:[e.map(function({id:t,title:o,description:a,action:n,...s}){return r.jsxs(aw,{...s,children:[r.jsxs("div",{className:"grid gap-1",children:[o&&r.jsx(sw,{children:o}),a&&r.jsx(iw,{children:a})]}),n,r.jsx(nw,{})]},t)}),r.jsx(rw,{})]})}const z2=["top","right","bottom","left"],Jo=Math.min,nt=Math.max,ji=Math.round,As=Math.floor,Kt=e=>({x:e,y:e}),G2={left:"right",right:"left",bottom:"top",top:"bottom"},V2={start:"end",end:"start"};function gc(e,t,o){return nt(e,Jo(t,o))}function po(e,t){return typeof e=="function"?e(t):e}function fo(e){return e.split("-")[0]}function _a(e){return e.split("-")[1]}function Au(e){return e==="x"?"y":"x"}function Eu(e){return e==="y"?"height":"width"}const Y2=new Set(["top","bottom"]);function Vt(e){return Y2.has(fo(e))?"y":"x"}function Fu(e){return Au(Vt(e))}function Q2(e,t,o){o===void 0&&(o=!1);const a=_a(e),n=Fu(e),s=Eu(n);let i=n==="x"?a===(o?"end":"start")?"right":"left":a==="start"?"bottom":"top";return t.reference[s]>t.floating[s]&&(i=Ci(i)),[i,Ci(i)]}function K2(e){const t=Ci(e);return[yc(e),t,yc(t)]}function yc(e){return e.replace(/start|end/g,t=>V2[t])}const Jm=["left","right"],Zm=["right","left"],X2=["top","bottom"],J2=["bottom","top"];function Z2(e,t,o){switch(e){case"top":case"bottom":return o?t?Zm:Jm:t?Jm:Zm;case"left":case"right":return t?X2:J2;default:return[]}}function ej(e,t,o,a){const n=_a(e);let s=Z2(fo(e),o==="start",a);return n&&(s=s.map(i=>i+"-"+n),t&&(s=s.concat(s.map(yc)))),s}function Ci(e){return e.replace(/left|right|bottom|top/g,t=>G2[t])}function tj(e){return{top:0,right:0,bottom:0,left:0,...e}}function lw(e){return typeof e!="number"?tj(e):{top:e,right:e,bottom:e,left:e}}function Ti(e){const{x:t,y:o,width:a,height:n}=e;return{width:a,height:n,top:o,left:t,right:t+a,bottom:o+n,x:t,y:o}}function ep(e,t,o){let{reference:a,floating:n}=e;const s=Vt(t),i=Fu(t),l=Eu(i),d=fo(t),c=s==="y",u=a.x+a.width/2-n.width/2,m=a.y+a.height/2-n.height/2,p=a[l]/2-n[l]/2;let h;switch(d){case"top":h={x:u,y:a.y-n.height};break;case"bottom":h={x:u,y:a.y+a.height};break;case"right":h={x:a.x+a.width,y:m};break;case"left":h={x:a.x-n.width,y:m};break;default:h={x:a.x,y:a.y}}switch(_a(t)){case"start":h[i]-=p*(o&&c?-1:1);break;case"end":h[i]+=p*(o&&c?-1:1);break}return h}const oj=async(e,t,o)=>{const{placement:a="bottom",strategy:n="absolute",middleware:s=[],platform:i}=o,l=s.filter(Boolean),d=await(i.isRTL==null?void 0:i.isRTL(t));let c=await i.getElementRects({reference:e,floating:t,strategy:n}),{x:u,y:m}=ep(c,a,d),p=a,h={},v=0;for(let y=0;y<l.length;y++){const{name:x,fn:g}=l[y],{x:f,y:w,data:k,reset:j}=await g({x:u,y:m,initialPlacement:a,placement:p,strategy:n,middlewareData:h,rects:c,platform:i,elements:{reference:e,floating:t}});u=f??u,m=w??m,h={...h,[x]:{...h[x],...k}},j&&v<=50&&(v++,typeof j=="object"&&(j.placement&&(p=j.placement),j.rects&&(c=j.rects===!0?await i.getElementRects({reference:e,floating:t,strategy:n}):j.rects),{x:u,y:m}=ep(c,p,d)),y=-1)}return{x:u,y:m,placement:p,strategy:n,middlewareData:h}};async function Hn(e,t){var o;t===void 0&&(t={});const{x:a,y:n,platform:s,rects:i,elements:l,strategy:d}=e,{boundary:c="clippingAncestors",rootBoundary:u="viewport",elementContext:m="floating",altBoundary:p=!1,padding:h=0}=po(t,e),v=lw(h),x=l[p?m==="floating"?"reference":"floating":m],g=Ti(await s.getClippingRect({element:(o=await(s.isElement==null?void 0:s.isElement(x)))==null||o?x:x.contextElement||await(s.getDocumentElement==null?void 0:s.getDocumentElement(l.floating)),boundary:c,rootBoundary:u,strategy:d})),f=m==="floating"?{x:a,y:n,width:i.floating.width,height:i.floating.height}:i.reference,w=await(s.getOffsetParent==null?void 0:s.getOffsetParent(l.floating)),k=await(s.isElement==null?void 0:s.isElement(w))?await(s.getScale==null?void 0:s.getScale(w))||{x:1,y:1}:{x:1,y:1},j=Ti(s.convertOffsetParentRelativeRectToViewportRelativeRect?await s.convertOffsetParentRelativeRectToViewportRelativeRect({elements:l,rect:f,offsetParent:w,strategy:d}):f);return{top:(g.top-j.top+v.top)/k.y,bottom:(j.bottom-g.bottom+v.bottom)/k.y,left:(g.left-j.left+v.left)/k.x,right:(j.right-g.right+v.right)/k.x}}const rj=e=>({name:"arrow",options:e,async fn(t){const{x:o,y:a,placement:n,rects:s,platform:i,elements:l,middlewareData:d}=t,{element:c,padding:u=0}=po(e,t)||{};if(c==null)return{};const m=lw(u),p={x:o,y:a},h=Fu(n),v=Eu(h),y=await i.getDimensions(c),x=h==="y",g=x?"top":"left",f=x?"bottom":"right",w=x?"clientHeight":"clientWidth",k=s.reference[v]+s.reference[h]-p[h]-s.floating[v],j=p[h]-s.reference[h],C=await(i.getOffsetParent==null?void 0:i.getOffsetParent(c));let T=C?C[w]:0;(!T||!await(i.isElement==null?void 0:i.isElement(C)))&&(T=l.floating[w]||s.floating[v]);const E=k/2-j/2,R=T/2-y[v]/2-1,P=Jo(m[g],R),_=Jo(m[f],R),I=P,K=T-y[v]-_,L=T/2-y[v]/2+E,Z=gc(I,L,K),$=!d.arrow&&_a(n)!=null&&L!==Z&&s.reference[v]/2-(L<I?P:_)-y[v]/2<0,V=$?L<I?L-I:L-K:0;return{[h]:p[h]+V,data:{[h]:Z,centerOffset:L-Z-V,...$&&{alignmentOffset:V}},reset:$}}}),aj=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var o,a;const{placement:n,middlewareData:s,rects:i,initialPlacement:l,platform:d,elements:c}=t,{mainAxis:u=!0,crossAxis:m=!0,fallbackPlacements:p,fallbackStrategy:h="bestFit",fallbackAxisSideDirection:v="none",flipAlignment:y=!0,...x}=po(e,t);if((o=s.arrow)!=null&&o.alignmentOffset)return{};const g=fo(n),f=Vt(l),w=fo(l)===l,k=await(d.isRTL==null?void 0:d.isRTL(c.floating)),j=p||(w||!y?[Ci(l)]:K2(l)),C=v!=="none";!p&&C&&j.push(...ej(l,y,v,k));const T=[l,...j],E=await Hn(t,x),R=[];let P=((a=s.flip)==null?void 0:a.overflows)||[];if(u&&R.push(E[g]),m){const L=Q2(n,i,k);R.push(E[L[0]],E[L[1]])}if(P=[...P,{placement:n,overflows:R}],!R.every(L=>L<=0)){var _,I;const L=(((_=s.flip)==null?void 0:_.index)||0)+1,Z=T[L];if(Z&&(!(m==="alignment"?f!==Vt(Z):!1)||P.every(W=>W.overflows[0]>0&&Vt(W.placement)===f)))return{data:{index:L,overflows:P},reset:{placement:Z}};let $=(I=P.filter(V=>V.overflows[0]<=0).sort((V,W)=>V.overflows[1]-W.overflows[1])[0])==null?void 0:I.placement;if(!$)switch(h){case"bestFit":{var K;const V=(K=P.filter(W=>{if(C){const A=Vt(W.placement);return A===f||A==="y"}return!0}).map(W=>[W.placement,W.overflows.filter(A=>A>0).reduce((A,M)=>A+M,0)]).sort((W,A)=>W[1]-A[1])[0])==null?void 0:K[0];V&&($=V);break}case"initialPlacement":$=l;break}if(n!==$)return{reset:{placement:$}}}return{}}}};function tp(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function op(e){return z2.some(t=>e[t]>=0)}const nj=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:o}=t,{strategy:a="referenceHidden",...n}=po(e,t);switch(a){case"referenceHidden":{const s=await Hn(t,{...n,elementContext:"reference"}),i=tp(s,o.reference);return{data:{referenceHiddenOffsets:i,referenceHidden:op(i)}}}case"escaped":{const s=await Hn(t,{...n,altBoundary:!0}),i=tp(s,o.floating);return{data:{escapedOffsets:i,escaped:op(i)}}}default:return{}}}}},dw=new Set(["left","top"]);async function sj(e,t){const{placement:o,platform:a,elements:n}=e,s=await(a.isRTL==null?void 0:a.isRTL(n.floating)),i=fo(o),l=_a(o),d=Vt(o)==="y",c=dw.has(i)?-1:1,u=s&&d?-1:1,m=po(t,e);let{mainAxis:p,crossAxis:h,alignmentAxis:v}=typeof m=="number"?{mainAxis:m,crossAxis:0,alignmentAxis:null}:{mainAxis:m.mainAxis||0,crossAxis:m.crossAxis||0,alignmentAxis:m.alignmentAxis};return l&&typeof v=="number"&&(h=l==="end"?v*-1:v),d?{x:h*u,y:p*c}:{x:p*c,y:h*u}}const ij=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var o,a;const{x:n,y:s,placement:i,middlewareData:l}=t,d=await sj(t,e);return i===((o=l.offset)==null?void 0:o.placement)&&(a=l.arrow)!=null&&a.alignmentOffset?{}:{x:n+d.x,y:s+d.y,data:{...d,placement:i}}}}},lj=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:o,y:a,placement:n}=t,{mainAxis:s=!0,crossAxis:i=!1,limiter:l={fn:x=>{let{x:g,y:f}=x;return{x:g,y:f}}},...d}=po(e,t),c={x:o,y:a},u=await Hn(t,d),m=Vt(fo(n)),p=Au(m);let h=c[p],v=c[m];if(s){const x=p==="y"?"top":"left",g=p==="y"?"bottom":"right",f=h+u[x],w=h-u[g];h=gc(f,h,w)}if(i){const x=m==="y"?"top":"left",g=m==="y"?"bottom":"right",f=v+u[x],w=v-u[g];v=gc(f,v,w)}const y=l.fn({...t,[p]:h,[m]:v});return{...y,data:{x:y.x-o,y:y.y-a,enabled:{[p]:s,[m]:i}}}}}},dj=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:o,y:a,placement:n,rects:s,middlewareData:i}=t,{offset:l=0,mainAxis:d=!0,crossAxis:c=!0}=po(e,t),u={x:o,y:a},m=Vt(n),p=Au(m);let h=u[p],v=u[m];const y=po(l,t),x=typeof y=="number"?{mainAxis:y,crossAxis:0}:{mainAxis:0,crossAxis:0,...y};if(d){const w=p==="y"?"height":"width",k=s.reference[p]-s.floating[w]+x.mainAxis,j=s.reference[p]+s.reference[w]-x.mainAxis;h<k?h=k:h>j&&(h=j)}if(c){var g,f;const w=p==="y"?"width":"height",k=dw.has(fo(n)),j=s.reference[m]-s.floating[w]+(k&&((g=i.offset)==null?void 0:g[m])||0)+(k?0:x.crossAxis),C=s.reference[m]+s.reference[w]+(k?0:((f=i.offset)==null?void 0:f[m])||0)-(k?x.crossAxis:0);v<j?v=j:v>C&&(v=C)}return{[p]:h,[m]:v}}}},cj=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var o,a;const{placement:n,rects:s,platform:i,elements:l}=t,{apply:d=()=>{},...c}=po(e,t),u=await Hn(t,c),m=fo(n),p=_a(n),h=Vt(n)==="y",{width:v,height:y}=s.floating;let x,g;m==="top"||m==="bottom"?(x=m,g=p===(await(i.isRTL==null?void 0:i.isRTL(l.floating))?"start":"end")?"left":"right"):(g=m,x=p==="end"?"top":"bottom");const f=y-u.top-u.bottom,w=v-u.left-u.right,k=Jo(y-u[x],f),j=Jo(v-u[g],w),C=!t.middlewareData.shift;let T=k,E=j;if((o=t.middlewareData.shift)!=null&&o.enabled.x&&(E=w),(a=t.middlewareData.shift)!=null&&a.enabled.y&&(T=f),C&&!p){const P=nt(u.left,0),_=nt(u.right,0),I=nt(u.top,0),K=nt(u.bottom,0);h?E=v-2*(P!==0||_!==0?P+_:nt(u.left,u.right)):T=y-2*(I!==0||K!==0?I+K:nt(u.top,u.bottom))}await d({...t,availableWidth:E,availableHeight:T});const R=await i.getDimensions(l.floating);return v!==R.width||y!==R.height?{reset:{rects:!0}}:{}}}};function ll(){return typeof window<"u"}function Ua(e){return cw(e)?(e.nodeName||"").toLowerCase():"#document"}function lt(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Jt(e){var t;return(t=(cw(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function cw(e){return ll()?e instanceof Node||e instanceof lt(e).Node:!1}function It(e){return ll()?e instanceof Element||e instanceof lt(e).Element:!1}function Xt(e){return ll()?e instanceof HTMLElement||e instanceof lt(e).HTMLElement:!1}function rp(e){return!ll()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof lt(e).ShadowRoot}const uj=new Set(["inline","contents"]);function es(e){const{overflow:t,overflowX:o,overflowY:a,display:n}=Ht(e);return/auto|scroll|overlay|hidden|clip/.test(t+a+o)&&!uj.has(n)}const hj=new Set(["table","td","th"]);function mj(e){return hj.has(Ua(e))}const pj=[":popover-open",":modal"];function dl(e){return pj.some(t=>{try{return e.matches(t)}catch{return!1}})}const fj=["transform","translate","scale","rotate","perspective"],gj=["transform","translate","scale","rotate","perspective","filter"],yj=["paint","layout","strict","content"];function qu(e){const t=Pu(),o=It(e)?Ht(e):e;return fj.some(a=>o[a]?o[a]!=="none":!1)||(o.containerType?o.containerType!=="normal":!1)||!t&&(o.backdropFilter?o.backdropFilter!=="none":!1)||!t&&(o.filter?o.filter!=="none":!1)||gj.some(a=>(o.willChange||"").includes(a))||yj.some(a=>(o.contain||"").includes(a))}function wj(e){let t=Zo(e);for(;Xt(t)&&!Fa(t);){if(qu(t))return t;if(dl(t))return null;t=Zo(t)}return null}function Pu(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const bj=new Set(["html","body","#document"]);function Fa(e){return bj.has(Ua(e))}function Ht(e){return lt(e).getComputedStyle(e)}function cl(e){return It(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Zo(e){if(Ua(e)==="html")return e;const t=e.assignedSlot||e.parentNode||rp(e)&&e.host||Jt(e);return rp(t)?t.host:t}function uw(e){const t=Zo(e);return Fa(t)?e.ownerDocument?e.ownerDocument.body:e.body:Xt(t)&&es(t)?t:uw(t)}function On(e,t,o){var a;t===void 0&&(t=[]),o===void 0&&(o=!0);const n=uw(e),s=n===((a=e.ownerDocument)==null?void 0:a.body),i=lt(n);if(s){const l=wc(i);
vendor: 4,828 bytes, line 318
318return t.concat(i,i.visualViewport||[],es(n)?n:[],l&&o?On(l):[])}return t.concat(n,On(n,[],o))}function wc(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function hw(e){const t=Ht(e);let o=parseFloat(t.width)||0,a=parseFloat(t.height)||0;const n=Xt(e),s=n?e.offsetWidth:o,i=n?e.offsetHeight:a,l=ji(o)!==s||ji(a)!==i;return l&&(o=s,a=i),{width:o,height:a,$:l}}function Ru(e){return It(e)?e:e.contextElement}function fa(e){const t=Ru(e);if(!Xt(t))return Kt(1);const o=t.getBoundingClientRect(),{width:a,height:n,$:s}=hw(t);let i=(s?ji(o.width):o.width)/a,l=(s?ji(o.height):o.height)/n;return(!i||!Number.isFinite(i))&&(i=1),(!l||!Number.isFinite(l))&&(l=1),{x:i,y:l}}const vj=Kt(0);function mw(e){const t=lt(e);return!Pu()||!t.visualViewport?vj:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function xj(e,t,o){return t===void 0&&(t=!1),!o||t&&o!==lt(e)?!1:t}function Er(e,t,o,a){t===void 0&&(t=!1),o===void 0&&(o=!1);const n=e.getBoundingClientRect(),s=Ru(e);let i=Kt(1);t&&(a?It(a)&&(i=fa(a)):i=fa(e));const l=xj(s,o,a)?mw(s):Kt(0);let d=(n.left+l.x)/i.x,c=(n.top+l.y)/i.y,u=n.width/i.x,m=n.height/i.y;if(s){const p=lt(s),h=a&&It(a)?lt(a):a;let v=p,y=wc(v);for(;y&&a&&h!==v;){const x=fa(y),g=y.getBoundingClientRect(),f=Ht(y),w=g.left+(y.clientLeft+parseFloat(f.paddingLeft))*x.x,k=g.top+(y.clientTop+parseFloat(f.paddingTop))*x.y;d*=x.x,c*=x.y,u*=x.x,m*=x.y,d+=w,c+=k,v=lt(y),y=wc(v)}}return Ti({width:u,height:m,x:d,y:c})}function Lu(e,t){const o=cl(e).scrollLeft;return t?t.left+o:Er(Jt(e)).left+o}function pw(e,t,o){o===void 0&&(o=!1);const a=e.getBoundingClientRect(),n=a.left+t.scrollLeft-(o?0:Lu(e,a)),s=a.top+t.scrollTop;return{x:n,y:s}}function kj(e){let{elements:t,rect:o,offsetParent:a,strategy:n}=e;const s=n==="fixed",i=Jt(a),l=t?dl(t.floating):!1;if(a===i||l&&s)return o;let d={scrollLeft:0,scrollTop:0},c=Kt(1);const u=Kt(0),m=Xt(a);if((m||!m&&!s)&&((Ua(a)!=="body"||es(i))&&(d=cl(a)),Xt(a))){const h=Er(a);c=fa(a),u.x=h.x+a.clientLeft,u.y=h.y+a.clientTop}const p=i&&!m&&!s?pw(i,d,!0):Kt(0);return{width:o.width*c.x,height:o.height*c.y,x:o.x*c.x-d.scrollLeft*c.x+u.x+p.x,y:o.y*c.y-d.scrollTop*c.y+u.y+p.y}}function Sj(e){return Array.from(e.getClientRects())}function jj(e){const t=Jt(e),o=cl(e),a=e.ownerDocument.body,n=nt(t.scrollWidth,t.clientWidth,a.scrollWidth,a.clientWidth),s=nt(t.scrollHeight,t.clientHeight,a.scrollHeight,a.clientHeight);let i=-o.scrollLeft+Lu(e);const l=-o.scrollTop;return Ht(a).direction==="rtl"&&(i+=nt(t.clientWidth,a.clientWidth)-n),{width:n,height:s,x:i,y:l}}function Cj(e,t){const o=lt(e),a=Jt(e),n=o.visualViewport;let s=a.clientWidth,i=a.clientHeight,l=0,d=0;if(n){s=n.width,i=n.height;const c=Pu();(!c||c&&t==="fixed")&&(l=n.offsetLeft,d=n.offsetTop)}return{width:s,height:i,x:l,y:d}}const Tj=new Set(["absolute","fixed"]);function Bj(e,t){const o=Er(e,!0,t==="fixed"),a=o.top+e.clientTop,n=o.left+e.clientLeft,s=Xt(e)?fa(e):Kt(1),i=e.clientWidth*s.x,l=e.clientHeight*s.y,d=n*s.x,c=a*s.y;return{width:i,height:l,x:d,y:c}}function ap(e,t,o){let a;if(t==="viewport")a=Cj(e,o);else if(t==="document")a=jj(Jt(e));else if(It(t))a=Bj(t,o);else{const n=mw(e);a={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return Ti(a)}function fw(e,t){const o=Zo(e);return o===t||!It(o)||Fa(o)?!1:Ht(o).position==="fixed"||fw(o,t)}function Wj(e,t){const o=t.get(e);if(o)return o;let a=On(e,[],!1).filter(l=>It(l)&&Ua(l)!=="body"),n=null;const s=Ht(e).position==="fixed";let i=s?Zo(e):e;for(;It(i)&&!Fa(i);){const l=Ht(i),d=qu(i);!d&&l.position==="fixed"&&(n=null),(s?!d&&!n:!d&&l.position==="static"&&!!n&&Tj.has(n.position)||es(i)&&!d&&fw(e,i))?a=a.filter(u=>u!==i):n=l,i=Zo(i)}return t.set(e,a),a}function Nj(e){let{element:t,boundary:o,rootBoundary:a,strategy:n}=e;const i=[...o==="clippingAncestors"?dl(t)?[]:Wj(t,this._c):[].concat(o),a],l=i[0],d=i.reduce((c,u)=>{const m=ap(t,u,n);return c.top=nt(m.top,c.top),c.right=Jo(m.right,c.right),c.bottom=Jo(m.bottom,c.bottom),c.left=nt(m.left,c.left),c},ap(t,l,n));return{width:d.right-d.left,height:d.bottom-d.top,x:d.left,y:d.top}}function Aj(e){const{width:t,height:o}=hw(e);return{width:t,height:o}}function Ej(e,t,o){const a=Xt(t),n=Jt(t),s=o==="fixed",i=Er(e,!0,s,t);let l={scrollLeft:0,scrollTop:0};const d=Kt(0);function c(){d.x=Lu(n)}if(a||!a&&!s)if((Ua(t)!=="body"||es(n))&&(l=cl(t)),a){const h=Er(t,!0,s,t);d.x=h.x+t.clientLeft,d.y=h.y+t.clientTop}else n&&c();s&&!a&&n&&c();const u=n&&!a&&!s?pw(n,l):Kt(0),m=i.left+l.scrollLeft-d.x-u.x,p=i.top+l.scrollTop-d.y-u.y;return{x:m,y:p,width:i.width,height:i.height}}function td(e){return Ht(e).position==="static"}function np(e,t){if(!Xt(e)||Ht(e).position==="fixed")return null;if(t)return t(e);let o=e.offsetParent;return Jt(e)===o&&(o=o.ownerDocument.body),o}function gw(e,t){const o=lt(e);if(dl(e))return o;if(!Xt(e)){let n=Zo(e);for(;n&&!Fa(n);
vendor: 8,934 bytes, line 318
318){if(It(n)&&!td(n))return n;n=Zo(n)}return o}let a=np(e,t);for(;a&&mj(a)&&td(a);)a=np(a,t);return a&&Fa(a)&&td(a)&&!qu(a)?o:a||wj(e)||o}const Fj=async function(e){const t=this.getOffsetParent||gw,o=this.getDimensions,a=await o(e.floating);return{reference:Ej(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:a.width,height:a.height}}};function qj(e){return Ht(e).direction==="rtl"}const Pj={convertOffsetParentRelativeRectToViewportRelativeRect:kj,getDocumentElement:Jt,getClippingRect:Nj,getOffsetParent:gw,getElementRects:Fj,getClientRects:Sj,getDimensions:Aj,getScale:fa,isElement:It,isRTL:qj};function yw(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function Rj(e,t){let o=null,a;const n=Jt(e);function s(){var l;clearTimeout(a),(l=o)==null||l.disconnect(),o=null}function i(l,d){l===void 0&&(l=!1),d===void 0&&(d=1),s();const c=e.getBoundingClientRect(),{left:u,top:m,width:p,height:h}=c;if(l||t(),!p||!h)return;const v=As(m),y=As(n.clientWidth-(u+p)),x=As(n.clientHeight-(m+h)),g=As(u),w={rootMargin:-v+"px "+-y+"px "+-x+"px "+-g+"px",threshold:nt(0,Jo(1,d))||1};let k=!0;function j(C){const T=C[0].intersectionRatio;if(T!==d){if(!k)return i();T?i(!1,T):a=setTimeout(()=>{i(!1,1e-7)},1e3)}T===1&&!yw(c,e.getBoundingClientRect())&&i(),k=!1}try{o=new IntersectionObserver(j,{...w,root:n.ownerDocument})}catch{o=new IntersectionObserver(j,w)}o.observe(e)}return i(!0),s}function Lj(e,t,o,a){a===void 0&&(a={});const{ancestorScroll:n=!0,ancestorResize:s=!0,elementResize:i=typeof ResizeObserver=="function",layoutShift:l=typeof IntersectionObserver=="function",animationFrame:d=!1}=a,c=Ru(e),u=n||s?[...c?On(c):[],...On(t)]:[];u.forEach(g=>{n&&g.addEventListener("scroll",o,{passive:!0}),s&&g.addEventListener("resize",o)});const m=c&&l?Rj(c,o):null;let p=-1,h=null;i&&(h=new ResizeObserver(g=>{let[f]=g;f&&f.target===c&&h&&(h.unobserve(t),cancelAnimationFrame(p),p=requestAnimationFrame(()=>{var w;(w=h)==null||w.observe(t)})),o()}),c&&!d&&h.observe(c),h.observe(t));let v,y=d?Er(e):null;d&&x();function x(){const g=Er(e);y&&!yw(y,g)&&o(),y=g,v=requestAnimationFrame(x)}return o(),()=>{var g;u.forEach(f=>{n&&f.removeEventListener("scroll",o),s&&f.removeEventListener("resize",o)}),m==null||m(),(g=h)==null||g.disconnect(),h=null,d&&cancelAnimationFrame(v)}}const Mj=ij,Dj=lj,Ij=aj,Hj=cj,Oj=nj,sp=rj,_j=dj,Uj=(e,t,o)=>{const a=new Map,n={platform:Pj,...o},s={...n.platform,_c:a};return oj(e,t,{...n,platform:s})};var $j=typeof document<"u",zj=function(){},Ks=$j?b.useLayoutEffect:zj;function Bi(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let o,a,n;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(o=e.length,o!==t.length)return!1;for(a=o;a--!==0;)if(!Bi(e[a],t[a]))return!1;return!0}if(n=Object.keys(e),o=n.length,o!==Object.keys(t).length)return!1;for(a=o;a--!==0;)if(!{}.hasOwnProperty.call(t,n[a]))return!1;for(a=o;a--!==0;){const s=n[a];if(!(s==="_owner"&&e.$$typeof)&&!Bi(e[s],t[s]))return!1}return!0}return e!==e&&t!==t}function ww(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function ip(e,t){const o=ww(e);return Math.round(t*o)/o}function od(e){const t=b.useRef(e);return Ks(()=>{t.current=e}),t}function Gj(e){e===void 0&&(e={});const{placement:t="bottom",strategy:o="absolute",middleware:a=[],platform:n,elements:{reference:s,floating:i}={},transform:l=!0,whileElementsMounted:d,open:c}=e,[u,m]=b.useState({x:0,y:0,strategy:o,placement:t,middlewareData:{},isPositioned:!1}),[p,h]=b.useState(a);Bi(p,a)||h(a);const[v,y]=b.useState(null),[x,g]=b.useState(null),f=b.useCallback(W=>{W!==C.current&&(C.current=W,y(W))},[]),w=b.useCallback(W=>{W!==T.current&&(T.current=W,g(W))},[]),k=s||v,j=i||x,C=b.useRef(null),T=b.useRef(null),E=b.useRef(u),R=d!=null,P=od(d),_=od(n),I=od(c),K=b.useCallback(()=>{if(!C.current||!T.current)return;const W={placement:t,strategy:o,middleware:p};_.current&&(W.platform=_.current),Uj(C.current,T.current,W).then(A=>{const M={...A,isPositioned:I.current!==!1};L.current&&!Bi(E.current,M)&&(E.current=M,Xn.flushSync(()=>{m(M)}))})},[p,t,o,_,I]);Ks(()=>{c===!1&&E.current.isPositioned&&(E.current.isPositioned=!1,m(W=>({...W,isPositioned:!1})))},[c]);const L=b.useRef(!1);Ks(()=>(L.current=!0,()=>{L.current=!1}),[]),Ks(()=>{if(k&&(C.current=k),j&&(T.current=j),k&&j){if(P.current)return P.current(k,j,K);K()}},[k,j,K,P,R]);const Z=b.useMemo(()=>({reference:C,floating:T,setReference:f,setFloating:w}),[f,w]),$=b.useMemo(()=>({reference:k,floating:j}),[k,j]),V=b.useMemo(()=>{const W={position:o,left:0,top:0};if(!$.floating)return W;const A=ip($.floating,u.x),M=ip($.floating,u.y);return l?{...W,transform:"translate("+A+"px, "+M+"px)",...ww($.floating)>=1.5&&{willChange:"transform"}}:{position:o,left:A,top:M}},[o,l,$.floating,u.x,u.y]);return b.useMemo(()=>({...u,update:K,refs:Z,elements:$,floatingStyles:V}),[u,K,Z,$,V])}const Vj=e=>{function t(o){return{}.hasOwnProperty.call(o,"current")}return{name:"arrow",options:e,fn(o){const{element:a,padding:n}=typeof e=="function"?e(o):e;return a&&t(a)?a.current!=null?sp({element:a.current,padding:n}).fn(o):{}:a?sp({element:a,padding:n}).fn(o):{}}}},Yj=(e,t)=>({...Mj(e),options:[e,t]}),Qj=(e,t)=>({...Dj(e),options:[e,t]}),Kj=(e,t)=>({..._j(e),options:[e,t]}),Xj=(e,t)=>({...Ij(e),options:[e,t]}),Jj=(e,t)=>({...Hj(e),options:[e,t]}),Zj=(e,t)=>({...Oj(e),options:[e,t]}),eC=(e,t)=>({...Vj(e),options:[e,t]});var tC="Arrow",bw=b.forwardRef((e,t)=>{const{children:o,width:a=10,height:n=5,...s}=e;return r.jsx(rt.svg,{...s,ref:t,width:a,height:n,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?o:r.jsx("polygon",{points:"0,0 30,0 15,10"})})});bw.displayName=tC;var oC=bw;function rC(e){const[t,o]=b.useState(void 0);return Xo(()=>{if(e){o({width:e.offsetWidth,height:e.offsetHeight});const a=new ResizeObserver(n=>{if(!Array.isArray(n)||!n.length)return;const s=n[0];let i,l;if("borderBoxSize"in s){const d=s.borderBoxSize,c=Array.isArray(d)?d[0]:d;i=c.inlineSize,l=c.blockSize}else i=e.offsetWidth,l=e.offsetHeight;o({width:i,height:l})});return a.observe(e,{box:"border-box"}),()=>a.unobserve(e)}else o(void 0)},[e]),t}var vw="Popper",[xw,kw]=tl(vw),[rA,Sw]=xw(vw),jw="PopperAnchor",Cw=b.forwardRef((e,t)=>{const{__scopePopper:o,virtualRef:a,...n}=e,s=Sw(jw,o),i=b.useRef(null),l=Mt(t,i);return b.useEffect(()=>{s.onAnchorChange((a==null?void 0:a.current)||i.current)}),a?null:r.jsx(rt.div,{...n,ref:l})});Cw.displayName=jw;var Mu="PopperContent",[aC,nC]=xw(Mu),Tw=b.forwardRef((e,t)=>{var re,Ir,yo,sr,wo,Hr;const{__scopePopper:o,side:a="bottom",sideOffset:n=0,align:s="center",alignOffset:i=0,arrowPadding:l=0,avoidCollisions:d=!0,collisionBoundary:c=[],collisionPadding:u=0,sticky:m="partial",hideWhenDetached:p=!1,updatePositionStrategy:h="optimized",onPlaced:v,...y}=e,x=Sw(Mu,o),[g,f]=b.useState(null),w=Mt(t,bo=>f(bo)),[k,j]=b.useState(null),C=rC(k),T=(C==null?void 0:C.width)??0,E=(C==null?void 0:C.height)??0,R=a+(s!=="center"?"-"+s:""),P=typeof u=="number"?u:{top:0,right:0,bottom:0,left:0,...u},_=Array.isArray(c)?c:[c],I=_.length>0,K={padding:P,boundary:_.filter(iC),altBoundary:I},{refs:L,floatingStyles:Z,placement:$,isPositioned:V,middlewareData:W}=Gj({strategy:"fixed",placement:R,whileElementsMounted:(...bo)=>Lj(...bo,{animationFrame:h==="always"}),elements:{reference:x.anchor},middleware:[Yj({mainAxis:n+E,alignmentAxis:i}),d&&Qj({mainAxis:!0,crossAxis:!1,limiter:m==="partial"?Kj():void 0,...K}),d&&Xj({...K}),Jj({...K,apply:({elements:bo,rects:as,availableWidth:pl,availableHeight:ns})=>{const{width:fl,height:$a}=as.reference,Or=bo.floating.style;Or.setProperty("--radix-popper-available-width",`${pl}px`),Or.setProperty("--radix-popper-available-height",`${ns}px`),Or.setProperty("--radix-popper-anchor-width",`${fl}px`),Or.setProperty("--radix-popper-anchor-height",`${$a}px`)}}),k&&eC({element:k,padding:l}),lC({arrowWidth:T,arrowHeight:E}),p&&Zj({strategy:"referenceHidden",...K})]}),[A,M]=Nw($),Y=Ko(v);Xo(()=>{V&&(Y==null||Y())},[V,Y]);const O=(re=W.arrow)==null?void 0:re.x,X=(Ir=W.arrow)==null?void 0:Ir.y,ee=((yo=W.arrow)==null?void 0:yo.centerOffset)!==0,[ve,Pe]=b.useState();return Xo(()=>{g&&Pe(window.getComputedStyle(g).zIndex)},[g]),r.jsx("div",{ref:L.setFloating,"data-radix-popper-content-wrapper":"",style:{...Z,transform:V?Z.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:ve,"--radix-popper-transform-origin":[(sr=W.transformOrigin)==null?void 0:sr.x,(wo=W.transformOrigin)==null?void 0:wo.y].join(" "),...((Hr=W.hide)==null?void 0:Hr.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:r.jsx(aC,{scope:o,placedSide:A,onArrowChange:j,arrowX:O,arrowY:X,shouldHideArrow:ee,children:r.jsx(rt.div,{"data-side":A,"data-align":M,...y,ref:w,style:{...y.style,animation:V?void 0:"none"}})})})});Tw.displayName=Mu;var Bw="PopperArrow",sC={top:"bottom",right:"left",bottom:"top",left:"r
318ight"},Ww=b.forwardRef(function(t,o){const{__scopePopper:a,...n}=t,s=nC(Bw,a),i=sC[s.placedSide];return r.jsx("span",{ref:s.onArrowChange,style:{position:"absolute",left:s.arrowX,top:s.arrowY,[i]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[s.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[s.placedSide],visibility:s.shouldHideArrow?"hidden":void 0},children:r.jsx(oC,{...n,ref:o,style:{...n.style,display:"block"}})})});Ww.displayName=Bw;function iC(e){return e!==null}var lC=e=>({name:"transformOrigin",options:e,fn(t){var x,g,f;const{placement:o,rects:a,middlewareData:n}=t,i=((x=n.arrow)==null?void 0:x.centerOffset)!==0,l=i?0:e.arrowWidth,d=i?0:e.arrowHeight,[c,u]=Nw(o),m={start:"0%",center:"50%",end:"100%"}[u],p=(((g=n.arrow)==null?void 0:g.x)??0)+l/2,h=(((f=n.arrow)==null?void 0:f.y)??0)+d/2;let v="",y="";return c==="bottom"?(v=i?m:`${p}px`,y=`${-d}px`):c==="top"?(v=i?m:`${p}px`,y=`${a.floating.height+d}px`):c==="right"?(v=`${-d}px`,y=i?m:`${h}px`):c==="left"&&(v=`${a.floating.width+d}px`,y=i?m:`${h}px`),{data:{x:v,y}}}});function Nw(e){const[t,o="center"]=e.split("-");return[t,o]}var dC=Cw,cC=Tw,uC=Ww,[ul,aA]=tl("Tooltip",[kw]),Du=kw(),Aw="TooltipProvider",hC=700,lp="tooltip.open",[mC,Ew]=ul(Aw),Fw=e=>{const{__scopeTooltip:t,delayDuration:o=hC,skipDelayDuration:a=300,disableHoverableContent:n=!1,children:s}=e,i=b.useRef(!0),l=b.useRef(!1),d=b.useRef(0);return b.useEffect(()=>{const c=d.current;return()=>window.clearTimeout(c)},[]),r.jsx(mC,{scope:t,isOpenDelayedRef:i,delayDuration:o,onOpen:b.useCallback(()=>{window.clearTimeout(d.current),i.current=!1},[]),onClose:b.useCallback(()=>{window.clearTimeout(d.current),d.current=window.setTimeout(()=>i.current=!0,a)},[a]),isPointerInTransitRef:l,onPointerInTransitChange:b.useCallback(c=>{l.current=c},[]),disableHoverableContent:n,children:s})};Fw.displayName=Aw;var qw="Tooltip",[nA,hl]=ul(qw),bc="TooltipTrigger",pC=b.forwardRef((e,t)=>{const{__scopeTooltip:o,...a}=e,n=hl(bc,o),s=Ew(bc,o),i=Du(o),l=b.useRef(null),d=Mt(t,l,n.onTriggerChange),c=b.useRef(!1),u=b.useRef(!1),m=b.useCallback(()=>c.current=!1,[]);return b.useEffect(()=>()=>document.removeEventListener("pointerup",m),[m]),r.jsx(dC,{asChild:!0,...i,children:r.jsx(rt.button,{"aria-describedby":n.open?n.contentId:void 0,"data-state":n.stateAttribute,...a,ref:d,onPointerMove:Ce(e.onPointerMove,p=>{p.pointerType!=="touch"&&!u.current&&!s.isPointerInTransitRef.current&&(n.onTriggerEnter(),u.current=!0)}),onPointerLeave:Ce(e.onPointerLeave,()=>{n.onTriggerLeave(),u.current=!1}),onPointerDown:Ce(e.onPointerDown,()=>{n.open&&n.onClose(),c.current=!0,document.addEventListener("pointerup",m,{once:!0})}),onFocus:Ce(e.onFocus,()=>{c.current||n.onOpen()}),onBlur:Ce(e.onBlur,n.onClose),onClick:Ce(e.onClick,n.onClose)})})});pC.displayName=bc;var fC="TooltipPortal",[sA,gC]=ul(fC,{forceMount:void 0}),qa="TooltipContent",Pw=b.forwardRef((e,t)=>{const o=gC(qa,e.__scopeTooltip),{forceMount:a=o.forceMount,side:n="top",...s}=e,i=hl(qa,e.__scopeTooltip);return r.jsx(Su,{present:a||i.open,children:i.disableHoverableContent?r.jsx(Rw,{side:n,...s,ref:t}):r.jsx(yC,{side:n,...s,ref:t})})}),yC=b.forwardRef((e,t)=>{const o=hl(qa,e.__scopeTooltip),a=Ew(qa,e.__scopeTooltip),n=b.useRef(null),s=Mt(t,n),[i,l]=b.useState(null),{trigger:d,onClose:c}=o,u=n.current,{onPointerInTransitChange:m}=a,p=b.useCallback(()=>{l(null),m(!1)},[m]),h=b.useCallback((v,y)=>{const x=v.currentTarget,g={x:v.clientX,y:v.clientY},f=kC(g,x.getBoundingClientRect()),w=SC(g,f),k=jC(y.getBoundingClientRect()),j=TC([...w,...k]);l(j),m(!0)},[m]);return b.useEffect(()=>()=>p(),[p]),b.useEffect(()=>{if(d&&u){const v=x=>h(x,u),y=x=>h(x,d);return d.addEventListener("pointerleave",v),u.addEventListener("pointerleave",y),()=>{d.removeEventListener("pointerleave",v),u.removeEventListener("pointerleave",y)}}},[d,u,h,p]),b.useEffect(()=>{if(i){const v=y=>{const x=y.target,g={x:y.clientX,y:y.clientY},f=(d==null?void 0:d.contains(x))||(u==null?void 0:u.contains(x)),w=!CC(g,i);f?p():w&&(p(),c())};return document.addEventListener("pointermove",v),()=>document.removeEventListener("pointermove",v)}},[d,u,i,c,p]),r.jsx(Rw,{...e,ref:s})}),[wC,bC]=ul(qw,{isInside:!1}),vC=K1("TooltipContent"),Rw=b.forwardRef((e,t)=>
318{const{__scopeTooltip:o,children:a,"aria-label":n,onEscapeKeyDown:s,onPointerDownOutside:i,...l}=e,d=hl(qa,o),c=Du(o),{onClose:u}=d;return b.useEffect(()=>(document.addEventListener(lp,u),()=>document.removeEventListener(lp,u)),[u]),b.useEffect(()=>{if(d.trigger){const m=p=>{const h=p.target;h!=null&&h.contains(d.trigger)&&u()};return window.addEventListener("scroll",m,{capture:!0}),()=>window.removeEventListener("scroll",m,{capture:!0})}},[d.trigger,u]),r.jsx(ku,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:s,onPointerDownOutside:i,onFocusOutside:m=>m.preventDefault(),onDismiss:u,children:r.jsxs(cC,{"data-state":d.stateAttribute,...c,...l,ref:t,style:{...l.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[r.jsx(vC,{children:a}),r.jsx(wC,{scope:o,isInside:!0,children:r.jsx(xS,{id:d.contentId,role:"tooltip",children:n||a})})]})})});Pw.displayName=qa;var Lw="TooltipArrow",xC=b.forwardRef((e,t)=>{const{__scopeTooltip:o,...a}=e,n=Du(o);return bC(Lw,o).isInside?null:r.jsx(uC,{...n,...a,ref:t})});xC.displayName=Lw;function kC(e,t){const o=Math.abs(t.top-e.y),a=Math.abs(t.bottom-e.y),n=Math.abs(t.right-e.x),s=Math.abs(t.left-e.x);switch(Math.min(o,a,n,s)){case s:return"left";case n:return"right";case o:return"top";case a:return"bottom";default:throw new Error("unreachable")}}function SC(e,t,o=5){const a=[];switch(t){case"top":a.push({x:e.x-o,y:e.y+o},{x:e.x+o,y:e.y+o});break;case"bottom":a.push({x:e.x-o,y:e.y-o},{x:e.x+o,y:e.y-o});break;case"left":a.push({x:e.x+o,y:e.y-o},{x:e.x+o,y:e.y+o});break;case"right":a.push({x:e.x-o,y:e.y-o},{x:e.x-o,y:e.y+o});break}return a}function jC(e){const{top:t,right:o,bottom:a,left:n}=e;return[{x:n,y:t},{x:o,y:t},{x:o,y:a},{x:n,y:a}]}function CC(e,t){const{x:o,y:a}=e;let n=!1;for(let s=0,i=t.length-1;s<t.length;i=s++){const l=t[s],d=t[i],c=l.x,u=l.y,m=d.x,p=d.y;u>a!=p>a&&o<(m-c)*(a-u)/(p-u)+c&&(n=!n)}return n}function TC(e){const t=e.slice();return t.sort((o,a)=>o.x<a.x?-1:o.x>a.x?1:o.y<a.y?-1:o.y>a.y?1:0),BC(t)}function BC(e){if(e.length<=1)return e.slice();const t=[];for(let a=0;a<e.length;a++){const n=e[a];for(;t.length>=2;){const s=t[t.length-1],i=t[t.length-2];if((s.x-i.x)*(n.y-i.y)>=(s.y-i.y)*(n.x-i.x))t.pop();else break}t.push(n)}t.pop();const o=[];for(let a=e.length-1;a>=0;a--){const n=e[a];for(;o.length>=2;){const s=o[o.length-1],i=o[o.length-2];if((s.x-i.x)*(n.y-i.y)>=(s.y-i.y)*(n.x-i.x))o.pop();else break}o.push(n)}return o.pop(),t.length===1&&o.length===1&&t[0].x===o[0].x&&t[0].y===o[0].y?t:t.concat(o)}var WC=Fw,Mw=Pw;const NC=WC,AC=b.forwardRef(({className:e,sideOffset:t=4,...o},a)=>r.jsx(Mw,{ref:a,sideOffset:t,className:Mr("z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...o}));AC.displayName=Mw.displayName;const EC=()=>{const{pathname:e}=nr();return b.useEffect(()=>{window.scrollTo(0,0)},[e]),null},vc="https://blueskybathrooms.co.uk",FC=`${vc}/logo-512.png`,Se=({title:e,description:t,canonical:o,ogImage:a,noIndex:n,noindex:s,schemaJson:i})=>{const{pathname:l}=nr(),d=o??`${vc}${l==="/"?"":l}`,[c,u]=b.useState(null);b.useEffect(()=>{if(a||(u(null),typeof document>"u"))return;let x=!1;const g=()=>{const k=document.querySelector('main img[src]:not([src=""])'),j=(k==null?void 0:k.currentSrc)||(k==null?void 0:k.src);return j&&!x?(u(j),!0):!1};if(g())return;const f=window.setInterval(()=>{g()&&window.clearInterval(f)},150),w=window.setTimeout(()=>window.clearInterval(f),3e3);return()=>{x=!0,window.clearInterval(f),window.clearTimeout(w)}},[a,l]);const h=(x=>x.startsWith("http")?x:`${vc}${x.startsWith("/")?"":"/"}${x}`)(a??c??FC),v=n??s??!1,y=Array.isArray(i)?i:i?[i]:[];return r.jsxs(xu,{children:[r.jsx("title",{children:e}),r.jsx("meta",{name:"description",content:t}),r.jsx("meta",{name:"robots",content:v?"noindex, follow":"index, follow, max-image-preview:large, max-snippet:-1"}),r.jsx("link",{rel:"canonical",href:d}),r.jsx("meta",{property:"og:title",content:e}),r.jsx("meta",{property:"og:description",content:t}),r.jsx("meta",{property:"og:url",content:d}),r.jsx("meta",{property:"og:type",content:"website"}),r.jsx("meta",{property:"og:locale",content:"en_GB"}),r.jsx("meta",{property:"og:site_name",content:"Blue Sky Luxury Bathrooms"}),r.jsx("meta",{property:"og:image",content:h}),r.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),r.jsx("meta",{name:"twitter:title",content:e}),r.jsx("meta",{name:"twitter:description",content:t}),r.jsx("meta",{name:"twitter:image",content:h}),y.map((x,g)=>r.jsx("script",{type:"application/ld+json",children:JSON.stringify(x)},g))]})},Dw="/assets/logo-Cp-Qnikf.png",dp=[{label:"Bathrooms",items:[{name:"Bathroom Showroom",path:"/services/bathroom-showroom"},{name:"Sunday Showroom Appointments",path:"/bathroom-showroom-open-sunday-tamworth"},{name:"Bathroom Installation",path:"/services/bathroom-installation"},{name:"Bathroom Design & Planning",path:"/services/bathroom-design-planning"},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations"},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments"},{name:"Cloakroom & Ensuite",path:"/services/cloakroom-ensuite"}
318,{name:"Disabled / Accessible Bathrooms",path:"/services/accessible-bathrooms"}]},{label:"Showers & Wet Rooms",items:[{name:"Wet Room Installation",path:"/services/wet-room-installation"},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation"}]},{label:"Heating & Plumbing",items:[{name:"Boiler Replacement",path:"/services/boiler-replacement"},{name:"Plumbing Services",path:"/services/plumbing-services"},{name:"Underfloor Heating",path:"/services/underfloor-heating"}]},{label:"Kitchens & Tiling",items:[{name:"Kitchen Installation",path:"/services/kitchen-installation"},{name:"Tiling & Re-tiling",path:"/services/tiling-services"}]}],cp=["Tamworth","Lichfield","Rugeley","Swadlincote","Burton-on-Trent","Sutton Coldfield","Atherstone","Nuneaton","Birmingham","Cannock","Walsall","Coalville","Hinckley","Derby","West Bromwich"],Be=()=>{const[e,t]=b.useState(!1),[o,a]=b.useState(!1),[n,s]=b.useState(!1),[i,l]=b.useState(!1),[d,c]=b.useState(!1),u=nr(),m=b.useRef(null),p=b.useRef(null);b.useEffect(()=>{t(!1),a(!1),s(!1)},[u.pathname]),b.useEffect(()=>{const v=y=>{m.current&&!m.current.contains(y.target)&&a(!1),p.current&&!p.current.contains(y.target)&&s(!1)};return document.addEventListener("mousedown",v),()=>document.removeEventListener("mousedown",v)},[]);const h="text-sm font-medium tracking-wide text-primary-foreground/90 hover:text-primary-foreground transition-colors";return r.jsxs("header",{className:"fixed top-0 left-0 right-0 z-50 nav-solid",children:[r.jsx("div",{className:"bg-gradient-to-r from-secondary via-steel-light to-secondary text-secondary-foreground",children:r.jsxs("div",{className:"container-narrow px-4 py-2 flex flex-col sm:flex-row items-center justify-center gap-x-4 gap-y-1 text-center text-xs sm:text-[13px] font-medium",children:[r.jsxs("span",{className:"flex items-center gap-1.5",children:[r.jsx(Qy,{className:"h-3.5 w-3.5 shrink-0"}),r.jsxs("span",{children:[r.jsx("strong",{className:"font-bold",children:"Autumn install dates booking up fast"})," â save ",r.jsx("strong",{className:"font-bold",children:"up to 30%"})," off bathroom installations booked by month-end."]})]}),r.jsxs(S,{to:"/services/bathroom-showroom",className:"inline-flex items-center gap-1.5 underline underline-offset-2 hover:no-underline font-semibold whitespace-nowrap",children:[r.jsx(mo,{className:"h-3.5 w-3.5"}),"Visit Our Tamworth Showroom â"]})]})}),r.jsx("div",{className:"border-b border-primary-foreground/10",children:r.jsxs("div",{className:"container-narrow flex items-center justify-between px-4 py-2 text-xs text-primary-foreground/70",children:[r.jsxs(S,{to:"/services/bathroom-showroom",className:"hover:text-primary-foreground transition-colors",children:[r.jsx("span",{className:"hidden sm:inline",children:"Visit Our Showroom · "}),"Unit 7 Cavendish, Tamworth B79 7XH"]}),r.jsxs("div",{className:"hidden md:flex items-center gap-4",children:[r.jsx("span",{children:"MonâFri: 9AMâ5PM | Sat: 9AMâ1PM | Sun: 10AMâ2PM (by appointment)"}),r.jsx("a",{href:"mailto:[email protected]",className:"hover:text-primary-foreground transition-colors",children:"[email protected]"})]})]})}),r.jsxs("div",{className:"container-narrow flex items-center justify-between px-4 py-4",children:[r.jsxs(S,{to:"/",className:"flex items-center gap-3 shrink-0",children:[r.jsx("img",{src:Dw,alt:"Blue Sky Luxury Bathrooms",className:"h-16 w-16 object-contain"}),r.jsxs("div",{className:"hidden sm:block leading-tight",children:[r.jsx("span",{className:"block text-sm font-semibold text-primary-foreground tracking-wide",children:"BLUE SKY"}),r.jsx("span",{className:"block text-[10px] text-primary-foreground/70 tracking-widest uppercase",children:"Luxury Bathrooms"})]})]}),r.jsxs("nav",{className:"hidden lg:flex items-center gap-6",children:[r.jsx(S,{to:"/",className:h,children:"Home"}),r.jsx(S,{to:"/about",className:h,children:"About"}),r.jsxs("div",{ref:m,className:"relative",children:[r.jsxs("button",{onClick:()=>{a(!o),s(!1)},className:`${h} flex items-center gap-1`,children:["Services ",r.jsx(gr,{className:`h-3.5 w-3.5 transition-transform ${o?"rotate-180":""}`})]}),o&&r.jsxs("div",{className:"absolute top-full -left-20 mt-2 bg-card border border-border shadow-xl rounded-sm",children:[r.jsx("div",{className:"px-5 py-3 border-b border-border",children:r.jsx(S,{to:"/services",className:"text-sm font-semibold text-foreground hover:text-secondary transition-colors",children:"View All Services â"})}),r.jsx("div",{className:"grid grid-cols-4 gap-0 p-4",style:{width:"680px"},children:dp.map(v=>r.jsxs("div",{className:"px-2",children:[r.jsx("span",{className:"block pb-2 text-[11px] font-semibold tracking-widest uppercase text-secondary/80",children:v.label}),v.items.map(y=>r.jsx(S,{to:y.path,className:"block py-1.5 text-sm text-foreground
318/80 hover:text-secondary transition-colors leading-snug",children:y.name},y.path))]},v.label))})]})]}),r.jsxs("div",{ref:p,className:"relative",children:[r.jsxs("button",{onClick:()=>{s(!n),a(!1)},className:`${h} flex items-center gap-1`,children:["Areas ",r.jsx(gr,{className:`h-3.5 w-3.5 transition-transform ${n?"rotate-180":""}`})]}),n&&r.jsxs("div",{className:"absolute top-full left-0 mt-2 w-56 bg-card border border-border shadow-xl py-2 rounded-sm",children:[r.jsx(S,{to:"/areas",className:"block px-4 py-2 text-sm font-semibold text-foreground hover:bg-muted transition-colors border-b border-border mb-1",children:"All Areas"}),cp.map(v=>r.jsx(S,{to:`/areas/${v.toLowerCase().replace(/\s+/g,"-")}`,className:"block px-4 py-1.5 text-sm text-foreground/80 hover:bg-muted hover:text-foreground transition-colors",children:v},v))]})]}),r.jsx(S,{to:"/reviews",className:h,children:"Reviews"}),r.jsx(S,{to:"/our-work",className:h,children:"Our Work"}),r.jsx(S,{to:"/specials",className:h,children:"Specials"}),r.jsx(S,{to:"/blog",className:h,children:"Blog"}),r.jsx(S,{to:"/contact",className:h,children:"Contact"})]}),r.jsxs("div",{className:"hidden lg:flex items-center gap-4",children:[r.jsxs("div",{className:"flex flex-col items-end gap-0.5",children:[r.jsxs("a",{href:"tel:03300432234",className:"flex items-center gap-2 text-primary-foreground font-bold text-sm tracking-wide",children:[r.jsx(me,{className:"h-3.5 w-3.5"}),"0330 043 2234"]}),r.jsxs("a",{href:"tel:07450254818",className:"flex items-center gap-2 text-primary-foreground font-bold text-sm tracking-wide",children:[r.jsx(me,{className:"h-3.5 w-3.5"}),"07450 254818"]})]}),r.jsx(S,{to:"/contact",className:"bg-secondary text-secondary-foreground px-5 py-2.5 text-sm font-semibold tracking-wide hover:bg-steel-light transition-colors",children:"Request Estimate"})]}),r.jsxs("div",{className:"flex lg:hidden items-center gap-3",children:[r.jsx("a",{href:"tel:03300432234",className:"text-primary-foreground",children:r.jsx(me,{className:"h-5 w-5"})}),r.jsx("button",{onClick:()=>t(!e),className:"text-primary-foreground p-1",children:e?r.jsx(Xy,{className:"h-6 w-6"}):r.jsx(e2,{className:"h-6 w-6"})})]})]}),e&&r.jsx("div",{className:"lg:hidden nav-solid border-t border-primary-foreground/10 max-h-[80vh] overflow-y-auto",children:r.jsxs("nav",{className:"flex flex-col px-4 py-4 gap-1",children:[r.jsx(S,{to:"/",className:"py-2.5 text-sm font-medium text-primary-foreground",children:"Home"}),r.jsx(S,{to:"/about",className:"py-2.5 text-sm font-medium text-primary-foreground",children:"About"}),r.jsxs("button",{onClick:()=>l(!i),className:"flex items-center justify-between py-2.5 text-sm font-medium text-primary-foreground",children:["Services ",r.jsx(gr,{className:`h-4 w-4 transition-transform ${i?"rotate-180":""}`})]}),i&&r.jsxs("div",{className:"pl-4 flex flex-col gap-1 mt-1 mb-2 border-l border-primary-foreground/10 ml-2",children:[r.jsx(S,{to:"/services",className:"py-2 pl-3 text-sm font-semibold text-primary-foreground/90",children:"All Services"}),dp.map(v=>r.jsxs("div",{className:"mt-2",children:[r.jsx("span",{className:"block pt-2 pb-1.5 pl-3 text-[11px] font-semibold tracking-[0.15em] uppercase text-primary-foreground/50",children:v.label}),v.items.map(y=>r.jsx(S,{to:y.path,className:"block py-2 pl-3 text-sm text-primary-foreground/75 hover:text-primary-foreground leading-snug",children:y.name},y.path))]},v.label))]}),r.jsxs("button",{onClick:()=>c(!d),className:"flex items-center justify-between py-2.5 text-sm font-medium text-primary-foreground",children:["Areas ",r.jsx(gr,{className:`h-4 w-4 transition-transform ${d?"rotate-180":""}`})]}),d&&r.jsxs("div",{className:"pl-4 flex flex-col gap-0.5 mt-1 mb-2 border-l border-primary-foreground/10 ml-2",children:[r.jsx(S,{to:"/areas",className:"py-2 pl-3 text-sm font-semibold text-primary-foreground/90",children:"All Areas"}),cp.map(v=>r.jsx(S,{to:`/areas/${v.toLowerCase().replace(/\s+/g,"-")}`,className:"block py-2 pl-3 text-sm text-primary-foreground/75 hover:text-primary-foreground",children:v},v))]}),r.jsx(S,{to:"/reviews",className:"py-2.5 text-sm font-medium text-primary-foreground",children:"Reviews"}),r.jsx(S,{to:"/our-work",className:"py-2.5 text-sm font-medium text-primary-foreground",children:"Our Work"}),r.jsx(S,{to:"/specials",className:"py-2.5 text-sm font-medium text-primary-foreground",children:"Specials"}),r.jsx(S,{to:"/blog",className:"py-2.5 text-sm font-medium text-primary-foreground",children:"Blog"}),r.jsx(S,{to:"/contact",className:"py-2.5 text-sm font-medium text-primary-foreground",children:"Contact"}),r.jsx(S,{to:"/contact",className:"mt-3 bg-secondary text-secondary-foreground px-5 py-3 text-sm font-semibold tracking-wide text-center hover:bg-steel-light transition-colors",children:"Request Free Estimate"})]})})]})},Iw="/assets/hero-bathroom-5WPRSnRh.jpg",qC=()=>(b.useEffect(()=>{[{src:"https://fast.wistia.com/player.js",type:""},{src:"https://fast.wistia.com/embed/cdng6ypzxm.js",type:"module"}
318].forEach(({src:t,type:o})=>{if(document.querySelector(`script[src="${t}"]`))return;const a=document.createElement("script");a.src=t,a.async=!0,o&&(a.type=o),document.body.appendChild(a)})},[]),r.jsxs("section",{className:"relative min-h-screen xl:min-h-[85vh] flex items-center",children:[r.jsxs("div",{className:"absolute inset-0",children:[r.jsx("img",{src:Iw,alt:"Expert bathroom design and installation by Blue Sky Luxury Bathrooms in Tamworth",className:"h-full w-full object-cover scale-105 animate-[slowZoom_20s_ease-in-out_infinite_alternate]",width:1920,height:1080}),r.jsx("div",{className:"absolute inset-0 hero-scrim"})]}),r.jsx("div",{className:"relative container-narrow px-4 pt-52 pb-14 sm:pt-48 md:pt-52 md:pb-20 xl:pt-44",children:r.jsxs("div",{className:"grid grid-cols-1 xl:grid-cols-2 gap-8 xl:gap-12 items-center",children:[r.jsxs("div",{className:"max-w-2xl",children:[r.jsxs("div",{className:"flex flex-wrap items-center gap-2 mb-5 opacity-0 animate-[fadeInUp_0.6s_0.2s_ease-out_forwards]",children:[r.jsxs("a",{href:"https://share.google/Zbx2mfKU8RQlkBidi",target:"_blank",rel:"noopener noreferrer","aria-label":"Read our 4.9-star reviews on our Google Business Profile",className:"inline-flex items-center gap-2 bg-primary-foreground/10 backdrop-blur-sm border border-primary-foreground/20 px-4 py-1.5 rounded-full hover:bg-primary-foreground/15 hover:border-primary-foreground/40 transition-colors",children:[r.jsx("div",{className:"flex",children:[...Array(5)].map((e,t)=>r.jsx(sl,{className:"h-3.5 w-3.5 fill-yellow-400 text-yellow-400"},t))}),r.jsx("span",{className:"text-xs font-semibold text-primary-foreground",children:"4.9 Rated on Google · 38+ reviews"})]}),r.jsxs("a",{href:"https://www.checkatrade.com/trades/bluesky23ltd411522",target:"_blank",rel:"noopener noreferrer","aria-label":"View our Checkatrade profile â 9.85 out of 10 from 141 reviews",className:"inline-flex items-center gap-2 bg-primary-foreground/10 backdrop-blur-sm border border-primary-foreground/20 px-4 py-1.5 rounded-full hover:bg-primary-foreground/15 hover:border-primary-foreground/40 transition-colors",children:[r.jsx("span",{className:"text-xs font-bold tracking-wide text-gold-light",children:"Checkatrade"}),r.jsx("span",{className:"text-xs font-semibold text-primary-foreground",children:"9.85/10 · 141 reviews"})]})]}),r.jsx("div",{className:"section-divider mb-6 opacity-0 animate-[fadeInUp_0.6s_0.3s_ease-out_forwards]"}),r.jsxs("h1",{className:"font-heading text-3xl sm:text-4xl md:text-5xl lg:text-6xl font-bold leading-tight text-primary-foreground mb-6 text-balance-heading opacity-0 animate-[fadeInUp_0.7s_0.4s_ease-out_forwards]",children:["Luxury Bathroom",r.jsx("span",{className:"block",children:"Design & Installation"}),r.jsx("span",{className:"block text-gold-light",children:"across Tamworth, Staffordshire & the West Midlands"})]}),r.jsxs("p",{className:"text-base sm:text-lg text-primary-foreground/80 mb-8 max-w-lg leading-relaxed opacity-0 animate-[fadeInUp_0.6s_0.6s_ease-out_forwards]",children:["From our ",r.jsx(S,{to:"/services/bathroom-showroom",className:"underline underline-offset-2 hover:text-primary-foreground",children:"Tamworth showroom"})," to your finished room â one dedicated team supplies and installs your entire ",r.jsx(S,{to:"/services/bathroom-installation",className:"underline underline-offset-2 hover:text-primary-foreground",children:"bathroom"}),". No subcontractors, no client-supplied materials, just exceptional craftsmanship backed by a full warranty."]}),r.jsxs("div",{className:"flex flex-col sm:flex-row items-start gap-3 sm:gap-4 opacity-0 animate-[fadeInUp_0.6s_0.7s_ease-out_forwards]",children:[r.jsx(S,{to:"/contact",className:"btn-premium w-full sm:w-auto text-center",children:"Get Your Free Estimate"}),r.jsxs("a",{href:"tel:03300432234",className:"w-full sm:w-auto text-center flex items-center justify-center gap-2 px-8 py-4 border border-primary-foreground/30 text-primary-foreground text-base font-bold hover:border-primary-foreground/60 hover:bg-primary-foreground/5 transition-all duration-300",children:[r.jsx(me,{className:"h-5 w-5"}),"0330 043 2234"]})]}),r.jsxs("div",{className:"mt-8 flex flex-col sm:flex-row sm:flex-wrap items-start gap-y-3 gap-x-6 opacity-0 animate-[fadeInUp_0.6s_0.9s_ease-out_forwards]",children:[r.jsxs("div",{className:"flex items-center gap-2 text-sm text-primary-foreground
318/75",children:[r.jsx(Dt,{className:"h-4 w-4 text-gold shrink-0"}),r.jsx("span",{className:"whitespace-nowrap",children:"20+ Years' Experience"})]}),r.jsxs("div",{className:"flex items-center gap-2 text-sm text-primary-foreground/75",children:[r.jsx(Ky,{className:"h-4 w-4 text-gold shrink-0"}),r.jsx("span",{className:"whitespace-nowrap",children:"1000+ Bathrooms Completed"})]}),r.jsxs("div",{className:"flex items-center gap-2 text-sm text-primary-foreground/75",children:[r.jsx(Ha,{className:"h-4 w-4 text-gold shrink-0"}),r.jsx("span",{className:"whitespace-nowrap",children:"12-Month Workmanship Warranty"})]}),r.jsxs("div",{className:"flex items-center gap-2 text-sm text-primary-foreground/75",children:[r.jsx(Ia,{className:"h-4 w-4 text-gold shrink-0"}),r.jsx("span",{className:"whitespace-nowrap",children:"No Subcontractors"})]})]})]}),r.jsx("div",{className:"flex justify-center xl:justify-end opacity-0 animate-[fadeInRight_0.8s_0.5s_ease-out_forwards]",children:r.jsxs("div",{className:"w-full max-w-md bg-card/95 backdrop-blur-sm rounded-xl shadow-2xl overflow-hidden border border-primary-foreground/10",children:[r.jsx("style",{children:"wistia-player[media-id='cdng6ypzxm']:not(:defined) { background: center / contain no-repeat url('https://fast.wistia.com/embed/medias/cdng6ypzxm/swatch'); display: block; filter: blur(5px); padding-top: 100%; }"}),r.jsx("wistia-player",{"media-id":"cdng6ypzxm",aspect:"1.0"})]})})]})})]})),se=(e={})=>{const{threshold:t=.15,rootMargin:o="0px 0px -60px 0px",once:a=!0}=e,n=b.useRef(null),[s,i]=b.useState(!1);return b.useEffect(()=>{const l=n.current;if(!l)return;const d=new IntersectionObserver(([c])=>{c.isIntersecting?(i(!0),a&&d.unobserve(l)):a||i(!1)},{threshold:t,rootMargin:o});return d.observe(l),()=>d.disconnect()},[t,o,a]),{ref:n,isVisible:s}},PC=[{icon:Dt,label:"20+ Years' Experience",sublabel:"Industry expertise"},{icon:nl,label:"1000+ Bathrooms",sublabel:"Successfully completed"},{icon:Ha,label:"12-Month Workmanship Warranty",sublabel:"Furniture warranties vary by product"},{icon:al,label:"One Team",sublabel:"One warranty, one roof"}],RC=()=>{const{ref:e,isVisible:t}=se();return r.jsx("section",{className:"section-cream border-y border-border",children:r.jsx("div",{ref:e,className:"container-narrow px-4 py-8",children:r.jsx("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-6 lg:gap-8",children:PC.map((o,a)=>r.jsxs("div",{className:`flex items-center gap-3 reveal ${t?"visible":""}`,style:{transitionDelay:`${a*100}ms`},children:[r.jsx("div",{className:"flex items-center justify-center h-10 w-10 bg-primary/10 rounded-sm shrink-0",children:r.jsx(o.icon,{className:"h-5 w-5 text-secondary"})}),r.jsxs("div",{children:[r.jsx("p",{className:"text-sm font-bold text-foreground leading-tight",children:o.label}),r.jsx("p",{className:"text-xs text-muted-foreground",children:o.sublabel})]})]},o.label))})})})},ts="/assets/2023-05-06-Cu_Zab80.jpg",Hw="/assets/2023-05-06_1-lKFEF-Ge.jpg",LC="/assets/2023-05-06_2-BrWR74KD.jpg",MC="/assets/2024-09-23-BPjOxjca.jpg",Ow="/assets/2024-11-22-CJ4FUHsy.jpg",Iu="/assets/2024-11-22_1-C5azAm1_.jpg",DC="/assets/2024-11-23-DRsn4RSy.jpg",Hu="/assets/2024-11-23-DRsn4RSy.jpg",IC="/assets/2024-11-23_1-Crjkge3f.jpg",HC="/assets/2024-11-22-CJ4FUHsy.jpg",_w="/assets/2024-11-23_5-BpV75obw.jpg",Uw="/assets/2024-11-22_1-C5azAm1_.jpg",$w="/assets/2024-11-23_7-Cz5z3bxq.jpg",Ou="/assets/2025-06-29-CbaK1Wff.jpg",OC="/assets/2025-06-29_1-B16Bg41Q.jpg",_u="/assets/2025-06-29_3-C4yYtvX9.jpg",_C="/assets/2025-06-29_4-CURog2dg.jpg",Uu="/assets/2025-06-29_6-DpOoeTdj.jpg",UC="/assets/2025-06-29_7-CqJm7nAq.jpg",$u="/assets/2025-06-29_8-DV6nAjh5.jpg",zw="/assets/2026-02-09-pPQBY45E.jpg",$C="/assets/2026-02-09_4-CxO22TD3.jpg",zC="/assets/2026-02-09_8-TJiONGUK.jpg",ml="/assets/2026-02-09_10-CORlFuTa.jpg",Gw="/assets/2026-02-09_11-DXByhABr.jpg",GC="/assets/2026-02-09_13-B697DrqQ.jpg",VC="/assets/2026-02-09_14-eYdTqjcA.jpg",Wi="/assets/2026-02-09_16-DrkKiioy.jpg",_n="/assets/2026-02-09_17-Bv3OXa56.jpg",YC="/assets/2026-02-09_18-DsK_R8m4.jpg",QC="/assets/2026-02-09_19-ClcuuKkD.jpg",KC="/assets/2026-02-09_20-BMvN1mZA.jpg",Ni="/assets/2026-02-09_21-DY314B60.jpg",Vw="/assets/2026-02-09_22-Dy_qCgp-.jpg",XC="/assets/2026-02-09_23-Cz47O7Pm.jpg",Ai="/assets/2026-02-09_25-DYrsnm3Q.jpg",Fr="/assets/2026-02-09_26-kuC5BtR9.jpg",zu="/assets/2026-02-09_27-B5Y0T0_4.jpg",Yw="/assets/2026-02-09_28-DiswKEld.jpg",Qw="/assets/2026-02-09_29-CuK3zm5c.jpg",JC="/assets/2026-04-15-DrKLhYE-.jpg",ZC="/assets/2026-04-15_4-C4aeeBam.jpg",Gu="/assets/client-2024-11-22-6-geOXiloR.jpg",Vu="/assets/client-2025-06-29-1-DB9-putf.jpg",Yu="/assets/client-2026-02-09-4-CMLiF6xU.jpg",Qu="/assets/client-2026-02-09-5-DFR9qL8-.jpg",eT="/assets/2026-04-15_3-pro-CKsiMlmu.jpg",tT="/assets/2026-04-15_4-pro-CMXcl2wp.jpg",oT="/assets/2026-04-15_6-pro-BmRfTfFf.jpg",rT="/assets/2026-04-15_7-pro-BgdyovIj.jpg",Kw="/assets/showroom-01-entrance-hallway-DSdgsHex.jpg",Xw="/assets/showroom-02-vanity-display-uELFM8bk.jpg",Jw="/assets/showroom-03-tile-rack-bath-CqiTB-1x.jpg",Zw="/assets/showroom-04-tropical-suite-BbTpQ4e2.jpg",eb="/assets/showroom-05-tropical-vanity-shower-BzgsvcjQ.jpg",tb="/assets/showroom-06-reception-desk-0ytvMXkh.jpg",ob="/assets/showroom-07-black-bath-greenwall-lq8sxs0H.jpg",rb="/assets/showroom-08-black-freestanding-bath-Cqm2lAZG.jpg",ab="/assets/showroom-09-vanity-units-display-L-_3nNus.jpg",nb="/assets/showroom-10-radiator-display-UwXBA1NU.jpg",sb="/assets/showroom-11-compact-vanity-towel-rail-CjM3rIOw.jpg",ib="/assets/showroom-12-stairwell-towel-rails-BbaTb4IN.jpg",lb="/assets/showroom-13-gold-towel-rail-vanity-Bw5WRiu2.jpg",db="/assets/showroom-14-three-vanity-mirrors-DooWxxBy.jpg",cb="/assets/showroom-15-gold-quadrant-shower-Dq5NKMc9.jpg",ub="/assets/showroom-16-shower-display-area-blGaJX5v.jpg",hb="/assets/showroom-17-freestanding-bath-window-DpNKvqKx.jpg",mb="/assets/showroom-18-walk-in-shower-marble-DFY54nlW.jpg",pb="/assets/showroom-19-shower-control
318s-marble-CN5GKxpC.jpg",fb="/assets/showroom-20-curved-marble-shower-BKxU-KFt.jpg",gb="/assets/showroom-21-display-runner-shower-Bmy9UQyQ.jpg",yb="/assets/showroom-22-square-shower-enclosure-dXYE_7Mf.jpg",wb="/assets/showroom-23-mirror-vanity-row-BAghUrzn.jpg",Ku="/assets/287743466_395292155956774_1437086033829694780_n-qNcWbD88.jpg",aT="/assets/289314590_395291959290127_1938026918106945640_n-HhfpDK4I.jpg",bb="/assets/289496037_395292045956785_9192326087647445087_n-CBn0bBln.jpg",nT="/assets/service-design-planning-hero-DlvakQ-H.jpg",sT="/assets/service-accessible-bathroom-hero-BWOLT4gL.jpg",iT="/assets/service-plumbing-hero-DjbMOScn.jpg",Xu="/assets/service-boiler-replacement-hero-DlVnMEhT.jpg",lT="/assets/service-underfloor-heating-hero-B650GN-a.jpg",vb="/assets/service-kitchen-hero-CREmhwhm.jpg",dT=1,cT="3422183f-18e3-4853-821b-073f8c8d5d81",uT="05d810c8-8477-408a-b1ff-87fd4ec6ff18",hT="/__l5e/assets-v1/3422183f-18e3-4853-821b-073f8c8d5d81/work-bathroom-patterned-wet-room.png",mT="a/v1/05d810c8-8477-408a-b1ff-87fd4ec6ff18/3422183f-18e3-4853-821b-073f8c8d5d81/work-bathroom-patterned-wet-room.png",pT="work-bathroom-patterned-wet-room.png",fT=2705177,gT="image/png",yT="2026-06-02T14:17:33Z",Ei={version:dT,asset_id:cT,project_id:uT,url:hT,r2_key:mT,original_filename:pT,size:fT,content_type:gT,created_at:yT},wT=1,bT="b358e288-313c-44d6-bd60-064fd19f4369",vT="05d810c8-8477-408a-b1ff-87fd4ec6ff18",xT="/__l5e/assets-v1/b358e288-313c-44d6-bd60-064fd19f4369/work-bathroom-beige-bathscreen.png",kT="a/v1/05d810c8-8477-408a-b1ff-87fd4ec6ff18/b358e288-313c-44d6-bd60-064fd19f4369/work-bathroom-beige-bathscreen.png",ST="work-bathroom-beige-bathscreen.png",jT=3116600,CT="image/png",TT="2026-06-02T14:17:37Z",Fi={version:wT,asset_id:bT,project_id:vT,url:xT,r2_key:kT,original_filename:ST,size:jT,content_type:CT,created_at:TT},BT=1,WT="93c8a95a-6aaa-46d0-9f4e-b477c805f45a",NT="05d810c8-8477-408a-b1ff-87fd4ec6ff18",AT="/__l5e/assets-v1/93c8a95a-6aaa-46d0-9f4e-b477c805f45a/work-cloakroom-patterned-floor.png",ET="a/v1/05d810c8-8477-408a-b1ff-87fd4ec6ff18/93c8a95a-6aaa-46d0-9f4e-b477c805f45a/work-cloakroom-patterned-floor.png",FT="work-cloakroom-patterned-floor.png",qT=2671553,PT="image/png",RT="2026-06-02T14:17:40Z",Ju={version:BT,asset_id:WT,project_id:NT,url:AT,r2_key:ET,original_filename:FT,size:qT,content_type:PT,created_at:RT},LT=1,MT="d300ba5f-170d-46fa-826a-6aafe1eddc12",DT="05d810c8-8477-408a-b1ff-87fd4ec6ff18",IT="/__l5e/assets-v1/d300ba5f-170d-46fa-826a-6aafe1eddc12/showroom-black-bath-display.png",HT="a/v1/05d810c8-8477-408a-b1ff-87fd4ec6ff18/d300ba5f-170d-46fa-826a-6aafe1eddc12/showroom-black-bath-display.png",OT="showroom-black-bath-display.png",_T=479828,UT="image/png",$T="2026-06-02T14:17:43Z",Zu={version:LT,asset_id:MT,project_id:DT,url:IT,r2_key:HT,original_filename:OT,size:_T,content_type:UT,created_at:$T},zT=1,GT="a7cf22d3-f433-43f6-9368-4ae61b617ad1",VT="05d810c8-8477-408a-b1ff-87fd4ec6ff18",YT="/__l5e/assets-v1/a7cf22d3-f433-43f6-9368-4ae61b617ad1/showroom-radiator-staircase.png",QT="a/v1/05d810c8-8477-408a-b1ff-87fd4ec6ff18/a7cf22d3-f433-43f6-9368-4ae61b617ad1/showroom-radiator-staircase.png",KT="showroom-radiator-staircase.png",XT=479824,JT="image/png",ZT="2026-06-02T14:17:46Z",eh={version:zT,asset_id:GT,project_id:VT,url:YT,r2_key:QT,original_filename:KT,size:XT,content_type:JT,created_at:ZT},eB=1,tB="833dab72-c27e-4425-b230-032cf6a60f78",oB="05d810c8-8477-408a-b1ff-87fd4ec6ff18",rB="/__l5e/assets-v1/833dab72-c27e-4425-b230-032cf6a60f78/work-marble-shower-room.png",aB="a/v1/05d810c8-8477-408a-b1ff-87fd4ec6ff18/833dab72-c27e-4425-b230-032cf6a60f78/work-marble-shower-room.png",nB="work-marble-shower-room.png",sB=3079454,iB="image/png",lB="2026-06-02T14:17:49Z",qi={version:eB,asset_id:tB,project_id:oB,url:rB,r2_key:aB,original_filename:nB,size:sB,content_type:iB,created_at:lB},dB={"bathroom-installation":[{src:oT,alt:"Curved grey vanity unit with freestanding bath and feature wallpaper â bathroom installation by Blue Sky in Tamworth",categories:["bathroom","installation","hero"]},{src:Ei.url,alt:"Patterned floor wet room with navy vanity and black walk-in shower tray installed by Blue Sky",categories:["bathroom","installation","wet-room"]},{src:Fi.url,alt:"Beige marble-effect bathroom with bath screen, timber vanity and brushed brass fittings by Blue Sky",categories:["bathroom","installation","refurbishment"]},{src:qi.url,alt:"Compact marble-effect shower room with grey vanity and walk-in tray installed by Blue Sky",categories:["bathroom","installation","shower"]},{src:Fr,alt:"Completed bathroom installation with fitted bath and large-format wall tiling in Tamworth",categories:["bathroom","installation"]},{src:Yu,alt:"Wood-effect vanity with black brassware and rounded mirror in a modern Tamworth bathroom installation",categories:["bathroom","installation"]},{src:Qu,alt:"P-shaped shower bath with curved screen and matt-black brassware in a Tamworth bathroom installation",categories:["bathroom","installation"]},{src:Iu,alt:"Compact bathroom installation with vanity unit and marble-effect wall tiling in Tamworth",categories:["bathroom","installation"]},{src:VC,alt:"Bath and shower installation with grey wall tiling in a Tamworth bathroom",categories:["bathroom","installation"]},{src:zC,alt:"Shower enclosure installation with marble-effect wall tiling and oak flooring in Tamworth",categories:["bathroom","installation"]},{src:Uw,alt:"Vanity basin installation with marble wall tiling beside a frosted window in Tamworth",categories:["bathroom","installation"]},{src:Gw,alt:"Countertop basin vanity unit with storage shelving in a completed Tamworth bathroom",categories:["bathroom","installation"]}],"bathroom-refurbishments":[{src:Ou,alt:"Refurbished bathroom with freestanding bath and dark herringbone floor tiling in Tamworth",categories:["bathroom","refurbishment","hero"]},{src:Fi.url,alt:"Refurbished beige marble-effect bathroom with bath screen and timber vanity by Blue Sky",categories:["bathroom","refurbishment"]},{src:qi.url,alt:"Refurbished marble-effect shower room with grey vanity and WC by Blue Sky",categories:["bathroom","refurbishment","shower"]},{src:Uu,alt:"Freestanding bath with chrome tap and grey wall tiling in a refurbished Tamworth bathroom",categories:["bathroom","refurbishment"]},{src:Vw,alt:"Refurbished bathroom with metro wall tiling and bath shower screen in Tamworth",categories:["bathroom","refurbishment"]},{src:UC,alt:"WC and vanity with dark herringbone floor tiling in a refurbished Tamworth bathroom",categories:["bathroom","refurbishment"]}],"bathroom-design-planning":[{src:nT,alt:"Bathroom design planning mood boards with tile samples, brassware and layout drawings",categories:["design","hero","generated"]},{src:eT,alt:"Blue Sky Luxury Bathrooms showroom in Tamworth â vanity units, WCs and basins on display",categories:["showroom","design","professional"]}
318,{src:tT,alt:"Showroom bath display with navy herringbone feature wall and brushed gold brassware in Tamworth",categories:["showroom","design","professional"]},{src:rT,alt:"Tamworth bathroom showroom design layout with timber herringbone panel and feature lighting",categories:["showroom","design","professional"]}],"wet-room-installation":[{src:_n,alt:"Wet room installation with textured white wall tiling, patterned floor tiles and walk-in shower screen in Tamworth",categories:["wet-room","hero"]},{src:Ei.url,alt:"Patterned floor wet room with navy vanity, linear drain and black shower tray installed by Blue Sky",categories:["wet-room","bathroom"]},{src:$w,alt:"Wet room shower floor detail with tray and contemporary wall tiling in Tamworth",categories:["wet-room","detail"]},{src:zw,alt:"Dark-tiled shower room with level-access tray and full-height wall tiling in Tamworth",categories:["wet-room","shower"]},{src:HC,alt:"Walk-in shower tray with chrome waste and marble-effect floor tiling in a Tamworth wet room",categories:["wet-room","detail"]}],"walk-in-shower-installation":[{src:ml,alt:"Walk-in shower enclosure with marble-effect wall tiling and frameless glass screen in Tamworth",categories:["walk-in-shower","hero"]},{src:Vu,alt:"Iridescent hexagonal glass mosaic feature wall inside a Tamworth walk-in shower enclosure",categories:["walk-in-shower","tiling"]},{src:Ow,alt:"Walk-in shower tray with marble-effect porcelain floor tiling in Tamworth",categories:["walk-in-shower","detail"]},{src:Hu,alt:"Walk-in shower installation with full-height marble-effect wall tiles in Tamworth",categories:["walk-in-shower"]},{src:_u,alt:"Walk-in shower with hexagonal mosaic feature wall and glass screen in Tamworth",categories:["walk-in-shower","tiling"]},{src:MC,alt:"Walk-in shower with white metro and black feature tiles, frameless glass screen in Tamworth",categories:["walk-in-shower"]}],"luxury-bathroom-renovations":[{src:ts,alt:"Luxury bathroom vanity with marble-effect wall tiling and brass towel rail in Tamworth",categories:["luxury","hero"]},{src:Gu,alt:"Designer chrome heated towel rail mounted on Calacatta marble-effect tiling in a luxury Tamworth bathroom",categories:["luxury","detail"]},{src:zu,alt:"Gold shower shelf and accessories against onyx-effect wall tiling in a luxury Tamworth bathroom",categories:["luxury","detail"]},{src:Yw,alt:"Brushed gold heated towel rail in a luxury bathroom renovation in Tamworth",categories:["luxury","detail"]},{src:Qw,alt:"Oak vanity unit with gold basin tap in a luxury Tamworth bathroom",categories:["luxury","vanity"]},{src:$u,alt:"Freestanding bath alongside walk-in shower with hexagonal mosaic feature tiling in Tamworth",categories:["luxury","bathroom"]}],"accessible-bathrooms":[{src:sT,alt:"Accessible bathroom with level-access shower, support rails and spacious layout",categories:["accessible","hero","generated"]},{src:_n,alt:"Level-access wet room with textured tiles and walk-in shower screen suitable for accessibility in Tamworth",categories:["accessible"]},{src:Wi,alt:"Bathroom with WC, heated towel rail and patterned non-slip floor tiles in Tamworth",categories:["accessible"]}],"cloakroom-ensuite":[{src:Ku,alt:"Compact cloakroom installation with illuminated mirror and patterned tile niche in Tamworth",categories:["cloakroom","hero"]},{src:Ju.url,alt:"Compact cloakroom with patterned floor tiles, white vanity and black towel rail installed by Blue Sky",categories:["cloakroom"]},{src:bb,alt:"Cloakroom basin detail with patterned floor tiles in Tamworth",categories:["cloakroom","detail"]}
318,{src:Ai,alt:"Cloakroom vanity and WC combination unit with wood-effect feature wall in Tamworth",categories:["cloakroom"]},{src:Ni,alt:"Traditional cloakroom with shaker vanity, metro wall tiles and patterned floor in Tamworth",categories:["cloakroom"]},{src:XC,alt:"Cream vanity unit with chrome knobs and patterned floor tiling in a Tamworth cloakroom",categories:["cloakroom"]},{src:aT,alt:"Cloakroom WC with decorative tile niche and flush plate detail in Tamworth",categories:["cloakroom","detail"]}],"tiling-services":[{src:YC,alt:"Patterned encaustic-style floor tiling with textured white wall tiles in a Tamworth bathroom",categories:["tiling","hero"]},{src:KC,alt:"Patterned bathroom floor tiling detail in a Tamworth renovation",categories:["tiling"]},{src:DC,alt:"Marble-effect large-format wall tiling above a shower tray in Tamworth",categories:["tiling"]},{src:IC,alt:"Marble-effect wall tiling with mitred window reveal in a Tamworth bathroom",categories:["tiling"]},{src:OC,alt:"Hexagonal glass and metallic mosaic tile detail in a Tamworth bathroom",categories:["tiling","detail"]},{src:Hw,alt:"Marble-effect large-format wall tiling around a fitted bath in Tamworth",categories:["tiling"]}],"plumbing-services":[{src:iT,alt:"Professional plumbing pipework and basin waste installation in a UK home",categories:["plumbing","hero","generated"]},{src:Wi,alt:"Installed WC, heated towel rail and plumbing connections in a Tamworth bathroom",categories:["plumbing"]},{src:_w,alt:"Chrome thermostatic shower riser rail and handset installed in a Tamworth bathroom",categories:["plumbing","shower"]},{src:_C,alt:"Chrome shower riser bar installation in a Tamworth bathroom",categories:["plumbing"]}],"boiler-replacement":[{src:Xu,alt:"Modern domestic boiler installation with copper pipework in a UK home",categories:["boiler","hero","generated"]}],"underfloor-heating":[{src:lT,alt:"Underfloor heating pipework beneath porcelain tiles in a bathroom renovation",categories:["underfloor-heating","hero","generated"]},{src:Fr,alt:"Bathroom floor with large-format tiling suitable for underfloor heating in Tamworth",categories:["underfloor-heating"]}],"kitchen-installation":[{src:vb,alt:"Modern fitted kitchen installation with stone worktops and shaker cabinetry",categories:["kitchen","hero","generated"]}],"bathroom-showroom":[{src:hb,alt:"Freestanding bath beside a marble-effect walk-in shower with bright window lighting at the Blue Sky Tamworth bathroom showroom",categories:["showroom","hero"]},{src:Zu.url,alt:"Matt-black freestanding bath and circular illuminated mirror display inside the Blue Sky showroom",categories:["showroom"]},{src:eh.url,alt:"Designer heated towel rail display on the showroom stairway at Blue Sky",categories:["showroom"]},{src:Zw,alt:"Tropical wallpaper feature wall with grey vanity, freestanding bath and walk-in shower at the Tamworth showroom",categories:["showroom"]},{src:eb,alt:"Grey curved vanity with tropical wallpaper and shower enclosure display at the Tamworth showroom",categories:["showroom"]},{src:ob,alt:"Matt-black freestanding bath with living-green feature wall display at the Blue Sky Tamworth showroom",categories:["showroom"]},{src:rb,alt:"Matt-black freestanding bath with backlit round mirror and chrome towel rail in the Tamworth bathroom showroom",categories:["showroom"]},{src:Xw,alt:"Compact vanity basins with backlit and LED mirrors against marble and herringbone feature walls in the Tamworth showroom",categories:["showroom"]},{src:db,alt:"Three wall-hung vanity units with backlit mirrors above stone-effect flooring at the Tamworth bathroom showroom",categories:["showroom"]},{src:lb,alt:"Brushed-gold heated towel rail with floating vanity and dark marble shower display at the Tamworth showroom",categories:["showroom"]},{src:cb,alt:"Gold-frame quadrant shower enclosure with grey vanity and backlit oval mirror in the Tamworth bathroom showroom",categories:["showroom"]},{src:fb,alt:"Curved gold-trim shower enclosure with onyx-effect marble panels at the Tamworth bathroom showroom",categories:["showroom"]},{src:mb,alt:"Walk-in shower enclosure with full-height marble panelling and chrome controls at the Tamworth bathroom showroom",categories:["showroom"]},{src:pb,alt:"Marble-effect shower wall with rainfall head, handset and digital control display at the Tamworth showroom",categories:["showroom"]},{src:yb,alt:"Square chrome shower enclosure with marble walls and rainfall head at the Tamworth bathroom showroom",categories:["showroom"]},{src:ub,alt:"Showroom shower display area with gold quadrant enclosure, vanity feature wall and timber bench in Tamworth",categories:["showroom"]},{src:gb,alt:"Centre runway of the Tamworth showroom with vanity, WC and walk-in shower displays under bright lighting",categories:["showroom"]},{src:Kw,alt:"Entrance hallway of the Blue Sky Luxury Bathrooms showroom in Tamworth with marble vanity and tile displays",categories:["showroom"]},{src:tb,alt:"Reception desk with calacatta marble worktop and timber slat panelling at the Tamworth bathroom showroom",categories:["showroom"]},{src:ab,alt:"Sage-green and blue vanity units with tall storage at the Tamworth bathroom showroom",categories:["showroom"]},{src:wb,alt:"Row of vanity units with backlit mirrors, dark marble shower and brushed-gold towel rail at the Tamworth showroom",categories:["showroom"]},{src:sb,alt:"Wood-effect floating vanity with white sculpted towel rail and round mirror at the Tamworth bathroom showroom",categories:["showroom"]},{src:nb,alt:"Wall-mounted display of designer heated towel rail
318s in chrome, gold and matt black at the Tamworth showroom",categories:["showroom"]},{src:ib,alt:"Stairwell wall display of designer heated towel rails leading to the upstairs showroom in Tamworth",categories:["showroom"]},{src:Jw,alt:"Tile sample rack and freestanding bath beside a window at the Blue Sky Luxury Bathrooms showroom in Tamworth",categories:["showroom"]}]},os=[{src:ts,alt:"Luxury bathroom vanity with marble-effect wall tiling and brass towel rail in Tamworth",categories:["luxury","bathroom","vanity"]},{src:Hw,alt:"Marble-effect large-format wall tiling around a fitted bath in Tamworth",categories:["bathroom","tiling"]},{src:LC,alt:"Fitted bath with brass tap and marble-effect wall tiling in Tamworth",categories:["bathroom","tiling"]},{src:Ow,alt:"Walk-in shower tray with marble-effect porcelain floor tiling in Tamworth",categories:["walk-in-shower","tiling"]},{src:Iu,alt:"Compact bathroom with vanity unit and marble-effect wall tiling in Tamworth",categories:["bathroom","installation"]},{src:Hu,alt:"Walk-in shower with full-height marble-effect wall tiles in Tamworth",categories:["walk-in-shower"]},{src:Uw,alt:"Vanity basin with marble tiling and frosted window in a Tamworth bathroom",categories:["bathroom","vanity"]},{src:_w,alt:"Chrome thermostatic shower riser rail installed against marble-effect tiles in Tamworth",categories:["shower","plumbing"]},{src:Ou,alt:"Freestanding bath with dark herringbone floor tiling in Tamworth",categories:["bathroom","luxury","refurbishment"]},{src:_u,alt:"Walk-in shower with hexagonal mosaic feature wall and glass enclosure in Tamworth",categories:["walk-in-shower","tiling"]},{src:Uu,alt:"Freestanding bath filled with water alongside chrome freestanding tap in Tamworth",categories:["bathroom","luxury"]},{src:$u,alt:"Walk-in shower with hexagonal mosaic next to freestanding bath in Tamworth",categories:["bathroom","luxury"]},{src:Fr,alt:"Completed bathroom with fitted bath and large-format wall tiling in Tamworth",categories:["bathroom","installation"]},{src:ml,alt:"Walk-in shower enclosure with marble-effect wall tiling in Tamworth",categories:["walk-in-shower"]},{src:$C,alt:"Bathroom vanity with black-framed mirror and modern shower enclosure in Tamworth",categories:["bathroom","vanity"]},{src:Yu,alt:"Wood-effect vanity with black brassware and rounded mirror in a modern Tamworth bathroom",categories:["bathroom","vanity","installation"]},{src:Qu,alt:"P-shaped shower bath with curved screen and matt-black thermostatic shower in a Tamworth bathroom",categories:["bathroom","shower","installation"]},{src:Gu,alt:"Designer chrome heated towel rail mounted on Calacatta marble-effect tiling in Tamworth",categories:["bathroom","detail","luxury"]},{src:Vu,alt:"Iridescent hexagonal glass mosaic feature wall in a Tamworth shower enclosure",categories:["walk-in-shower","tiling","detail"]},{src:_n,alt:"Wet room with textured white wall tiles and patterned floor in Tamworth",categories:["wet-room","tiling"]},{src:QC,alt:"Vanity basin with mirror reflecting shower in a Tamworth bathroom installation",categories:["bathroom","vanity"]},{src:Ni,alt:"Traditional cloakroom with shaker vanity and patterned floor tiles in Tamworth",categories:["cloakroom"]},{src:Ei.url,alt:"Patterned floor wet room with navy vanity and black walk-in shower tray installed by Blue Sky",categories:["bathroom","installation","wet-room"]},{src:Fi.url,alt:"Beige marble-effect bathroom with bath screen, timber vanity and brushed brass fittings by Blue Sky",categories:["bathroom","installation","refurbishment"]},{src:Ju.url,alt:"Compact cloakroom with white metro tiles, patterned floor and black towel rail installed by Blue Sky",categories:["cloakroom","installation"]},{src:qi.url,alt:"Compact marble-effect shower room with grey vanity and walk-in tray installed by Blue Sky",categories:["bathroom","installation","shower"]},{src:zu,alt:"Gold shower shelf and accessories against onyx wall tiling in Tamworth",categories:["luxury"]},{src:Gw,alt:"Countertop basin vanity with storage shelving in Tamworth",categories:["bathroom","vanity"]},{src:Ku,alt:"Compact cloakroom with illuminated mirror and patterned tile niche in Tamworth",categories:["cloakroom"]}
318,{src:Ai,alt:"Cloakroom vanity and WC with wood-effect feature wall in Tamworth",categories:["cloakroom"]},{src:JC,alt:"Blue Sky Luxury Bathrooms showroom with freestanding bath display in Tamworth",categories:["showroom"]},{src:Zu.url,alt:"Matt-black freestanding bath and circular illuminated mirror display inside the Blue Sky showroom",categories:["showroom"]},{src:eh.url,alt:"Designer heated towel rail display on the showroom stairway at Blue Sky",categories:["showroom"]},{src:ZC,alt:"Showroom bath display with navy herringbone tiles and brass brassware in Tamworth",categories:["showroom"]}],xb=e=>dB[e]||[],kb={about:ts,ourWork:Fr,blog:ml,services:Fr},er={src:ts,alt:"Luxury bathroom vanity with marble-effect tiling and brass towel rail in Tamworth"},ct=[{src:hb,alt:"Freestanding bath beside a marble-effect walk-in shower with bright window lighting at the Blue Sky Tamworth bathroom showroom"},{src:Zu.url,alt:"Matt-black freestanding bath and circular illuminated mirror display inside the Blue Sky showroom"},{src:rb,alt:"Matt-black freestanding bath with backlit round mirror and chrome towel rail in the Tamworth bathroom showroom"},{src:db,alt:"Three wall-hung vanity units with backlit mirrors above stone-effect flooring at the Tamworth bathroom showroom"},{src:fb,alt:"Curved gold-trim shower enclosure with onyx-effect marble panels at the Tamworth bathroom showroom"},{src:cb,alt:"Gold-frame quadrant shower enclosure with grey vanity and backlit oval mirror in the Tamworth bathroom showroom"},{src:Zw,alt:"Tropical wallpaper feature wall with grey vanity, freestanding bath and walk-in shower at the Tamworth showroom"},{src:ob,alt:"Matt-black freestanding bath with living-green feature wall display at the Blue Sky Tamworth showroom"},{src:eb,alt:"Grey curved vanity with tropical wallpaper and shower enclosure display at the Tamworth showroom"},{src:Xw,alt:"Compact vanity basins with backlit and LED mirrors against marble and herringbone feature walls in the Tamworth showroom"},{src:lb,alt:"Brushed-gold heated towel rail with floating vanity and dark marble shower display at the Tamworth showroom"},{src:mb,alt:"Walk-in shower enclosure with full-height marble panelling and chrome controls at the Tamworth bathroom showroom"},{src:pb,alt:"Marble-effect shower wall with rainfall head, handset and digital control display at the Tamworth showroom"},{src:yb,alt:"Square chrome shower enclosure with marble walls and rainfall head at the Tamworth bathroom showroom"},{src:ub,alt:"Showroom shower display area with gold quadrant enclosure, vanity feature wall and timber bench in Tamworth"},{src:gb,alt:"Centre runway of the Tamworth showroom with vanity, WC and walk-in shower displays under bright lighting"},{src:Kw,alt:"Entrance hallway of the Blue Sky Luxury Bathrooms showroom in Tamworth with marble vanity and tile displays"},{src:tb,alt:"Reception desk with calacatta marble worktop and timber slat panelling at the Tamworth bathroom showroom"},{src:ab,alt:"Sage-green and blue vanity units with tall storage at the Tamworth bathroom showroom"},{src:wb,alt:"Row of vanity units with backlit mirrors, dark marble shower and brushed-gold towel rail at the Tamworth showroom"},{src:sb,alt:"Wood-effect floating vanity with white sculpted towel rail and round mirror at the Tamworth bathroom showroom"},{src:nb,alt:"Wall-mounted display of designer heated towel rails in chrome, gold and matt black at the Tamworth showroom"},{src:eh.url,alt:"Designer heated towel rail display on the showroom stairway at Blue Sky"},{src:ib,alt:"Stairwell wall display of designer heated towel rails leading to the upstairs showroom in Tamworth"},{src:Jw,alt:"Tile sample rack and freestanding bath beside a window at the Blue Sky Luxury Bathrooms showroom in Tamworth"}],cr={bathroomRenovation:[Fr,Fi.url,qi.url,Yu,Qu,Iu],wetRoom:[_n,Ei.url,$w,zw],accessibleBathroom:[Wi,GC],kitchen:[vb],cloakroomEnsuite:[Ju.url,Ni,Ku,bb,Ai],boiler:[Xu],luxuryBathroom:[ts,Qw,zu,Yw,Gu],walkInShower:[ml,Vu,Hu,_u],freestandingBath:[Ou,Uu,$u],traditionalBathroom:[Vw,Ni,Ai]},tr={"bathroom-renovation-tamworth-guide":Fr,"wet-room-installation-tamworth":_n,"boiler-replacement-tamworth-guide":Xu,"accessible-bathrooms-tamworth-guide":Wi},cB=[{icon:pc,name:"Bathroom Installation",desc:"Complete bathroom fitting from start to finish, handled by one expert team.",path:"/services/bathroom-installation",slug:"bathroom-installation"},{icon:_y,name:"Kitchen Installation",desc:"Full kitchen design and installation with precision craftsmanship.",path:"/services/kitchen-installation",slug:"kitchen-installation"},{icon:Uy,name:"Wet Room Installation",desc:"Bespoke wet rooms designed for style, safety and lasting durability.",path:"/services/wet-room-installation",slug:"wet-room-installation"},{icon:Yy,name:"Walk-In Showers",desc:"Elegant walk-in shower solutions tailored to your space.",path:"/services/walk-in-shower-installation",slug:"walk-in-shower-installation"},{icon:zy,name:"Boiler Replacement",desc:"Reliable boiler installation and upgrades for year-round comfort.",path:"/services/boiler-replacement",slug:"boiler-replacement"}
318,{icon:Oy,name:"Accessible Bathrooms",desc:"Safe, stylish bathroom solutions designed for accessibility needs.",path:"/services/accessible-bathrooms",slug:"accessible-bathrooms"}],uB=()=>{const{ref:e,isVisible:t}=se(),{ref:o,isVisible:a}=se();return r.jsx("section",{className:"section-padding",children:r.jsxs("div",{className:"container-narrow",children:[r.jsxs("div",{ref:e,className:`text-center mb-14 reveal ${t?"visible":""}`,children:[r.jsx("p",{className:"text-sm font-semibold tracking-widest uppercase text-secondary mb-3",children:"What We Do"}),r.jsx("div",{className:"section-divider mx-auto mb-4"}),r.jsxs("h2",{className:"font-heading text-3xl md:text-4xl font-bold text-foreground mb-4 text-balance-heading",children:["Comprehensive Bathroom &",r.jsx("br",{className:"hidden sm:block"}),"Installation Services"]}),r.jsx("p",{className:"text-muted-foreground max-w-xl mx-auto leading-relaxed",children:"From luxury renovations to essential plumbing, we deliver end-to-end solutions with no subcontractors and no compromises."})]}),r.jsx("div",{ref:o,className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6",children:cB.map((n,s)=>{const l=xb(n.slug)[0]??ct[s%ct.length];return r.jsxs(S,{to:n.path,className:`group premium-card reveal ${a?"visible":""}`,style:{transitionDelay:`${s*80}ms`},children:[l&&r.jsx("div",{className:"h-44 overflow-hidden",children:r.jsx("img",{src:l.src,alt:`${n.name} by Blue Sky Luxury Bathrooms in Tamworth`,className:"h-full w-full object-cover group-hover:scale-105 transition-transform duration-700",loading:"lazy",width:400,height:176})}),r.jsxs("div",{className:"p-6",children:[r.jsx("div",{className:"flex items-center justify-center h-11 w-11 bg-primary/5 rounded-sm mb-4 group-hover:bg-secondary/10 transition-colors duration-300",children:r.jsx(n.icon,{className:"h-5 w-5 text-secondary"})}),r.jsx("h3",{className:"font-heading text-lg font-semibold text-foreground mb-2",children:n.name}),r.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed",children:n.desc})]})]},n.path)})}),r.jsx("div",{className:`text-center mt-10 reveal ${a?"visible":""}`,style:{transitionDelay:"500ms"},children:r.jsxs(S,{to:"/services",className:"inline-flex items-center gap-2 text-sm font-semibold text-secondary hover:text-steel-light transition-colors tracking-wide group",children:["View All 14 Services",r.jsx("span",{className:"inline-block group-hover:translate-x-1 transition-transform",children:"â"})]})})]})})},hB=[{title:"One Dedicated Team",desc:"No subcontractors â the same skilled team from design to final fit."},{title:"12-Month Workmanship Warranty",desc:"Every installation backed by our 12-month workmanship guarantee. Furniture and product warranties vary by manufacturer â typically 12 months up to lifetime."},{title:"We Supply & Install",desc:"All materials supplied directly by us â selected from our Tamworth showroom. No client-supplied products."},{title:"20+ Years' Experience",desc:"Over 1,000 bathrooms completed across Tamworth and surrounding areas."},{title:"Transparent Pricing",desc:"Detailed quotes with no hidden costs. You know exactly what you're paying for."},{title:"Tamworth Showroom",desc:"See, touch and compare every product in person before you commit. Open MonâSat."}],mB=()=>{const{ref:e,isVisible:t}=se(),{ref:o,isVisible:a}=se(),n=ct.slice(5,9);return r.jsx("section",{className:"section-dark section-padding",children:r.jsx("div",{className:"container-narrow",children:r.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-12 lg:gap-16 items-center",children:[r.jsxs("div",{ref:e,className:`reveal-left ${t?"visible":""}`,children:[r.jsx("p",{className:"text-sm font-semibold tracking-widest uppercase text-gold mb-3",children:"Why Choose Blue Sky"}),r.jsx("div",{className:"section-divider mb-5"}),r.jsxs("h2",{className:"font-heading text-3xl md:text-4xl font-bold text-primary-foreground mb-6 text-balance-heading",children:["Your Bathroom, Built Right",r.jsx("br",{className:"hidden sm:block"})," the First Time"]}),r.jsx("p",{className:"text-primary-foreground/70 mb-8 leading-relaxed",children:"We don't just fit bathrooms â we deliver complete transformations. From the first consultation to the final tile, one expert team manages everything so you get a flawless result without the stress."}),r.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:hB.map((s,i)=>r.jsxs("div",{className:`flex items-start gap-3 reveal ${t?"visible":""}`,style:{transitionDelay:`${300+i*80}ms`},children:[r.jsx(Ia,{className:"h-5 w-5 text-gold mt-0.5 shrink-0"}),r.jsxs("div",{children:[r.jsx("p",{className:"text-sm font-semibold text-primary-foreground",children:s.title}
318),r.jsx("p",{className:"text-xs text-primary-foreground/60 leading-relaxed",children:s.desc})]})]},s.title))}),r.jsx("div",{className:`mt-8 reveal ${t?"visible":""}`,style:{transitionDelay:"800ms"},children:r.jsx(S,{to:"/contact",className:"btn-premium inline-block",children:"Get Your Free Consultation"})})]}),r.jsxs("div",{ref:o,className:`relative reveal-right ${a?"visible":""}`,children:[r.jsx("div",{className:"grid grid-cols-2 gap-3",children:n.map((s,i)=>r.jsx("div",{className:`overflow-hidden ${i===0?"row-span-2":""} reveal-scale ${a?"visible":""}`,style:{transitionDelay:`${i*120}ms`},children:r.jsx("img",{src:s.src,alt:s.alt,className:"h-full w-full object-cover hover:scale-105 transition-transform duration-700",loading:"lazy",width:400,height:i===0?500:240})},i))}),r.jsx("div",{className:"absolute -bottom-3 -right-3 w-24 h-24 border-2 border-gold/20 -z-10 hidden lg:block"})]})]})})})},pB=[{icon:VS,title:"1. Get in Touch",desc:"Call, email, or send your enquiry online. We'll arrange a time that suits you â usually within 24 hours of your first message."},{icon:n2,title:"2. Free Home Survey & Design",desc:"We visit your home in Tamworth or the surrounding area, take measurements, and translate your ideas into a detailed design and fixed written quote."},{icon:$S,title:"3. Confirm & Book In",desc:"Once you're happy with the design and price, we lock in a start date. You'll know exactly which week your installation begins and how long it will take."},{icon:JS,title:"4. Installation by One Team",desc:"The same Blue Sky team that quoted your job carries out the work â plumbing, tiling, electrics and finishing â typically completed in 5â10 working days."}
318,{icon:Vy,title:"5. Sign-Off & Aftercare",desc:"We walk you through the finished bathroom, register your warranty, and stay on hand if you need anything in the years that follow."}],fB=()=>{const{ref:e,isVisible:t}=se(),{ref:o,isVisible:a}=se();return r.jsx("section",{className:"section-padding bg-muted/30",children:r.jsxs("div",{className:"container-narrow",children:[r.jsxs("div",{ref:e,className:`text-center mb-12 reveal ${t?"visible":""}`,children:[r.jsx("p",{className:"text-sm font-semibold tracking-widest uppercase text-secondary mb-3",children:"How It Works"}),r.jsx("div",{className:"section-divider mx-auto mb-4"}),r.jsx("h2",{className:"font-heading text-3xl md:text-4xl font-bold text-foreground mb-4 text-balance-heading",children:"From First Call to Finished Bathroom"}),r.jsx("p",{className:"text-muted-foreground max-w-xl mx-auto leading-relaxed",children:"A clear, five-step process designed to remove guesswork â so you always know what's happening next."})]}),r.jsx("div",{ref:o,className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-5 gap-5",children:pB.map((n,s)=>r.jsxs("div",{className:`relative bg-card border border-border p-6 rounded-sm reveal ${a?"visible":""}`,style:{transitionDelay:`${s*100}ms`},children:[r.jsx("div",{className:"flex items-center justify-center h-11 w-11 bg-secondary/10 rounded-sm mb-4",children:r.jsx(n.icon,{className:"h-5 w-5 text-secondary"})}),r.jsx("h3",{className:"font-heading text-base font-semibold text-foreground mb-2",children:n.title}),r.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed",children:n.desc})]},n.title))})]})})},gB=()=>{const e=os.filter(s=>!s.categories.includes("showroom")).slice(0,6),{ref:t,isVisible:o}=se(),{ref:a,isVisible:n}=se();return r.jsx("section",{className:"section-padding bg-muted/30",children:r.jsxs("div",{className:"container-narrow",children:[r.jsxs("div",{ref:t,className:`text-center mb-12 reveal ${o?"visible":""}`,children:[r.jsx("p",{className:"text-sm font-semibold tracking-widest uppercase text-secondary mb-3",children:"Real Client Homes"}),r.jsx("div",{className:"section-divider mx-auto mb-4"}),r.jsx("h2",{className:"font-heading text-2xl md:text-3xl font-bold text-foreground mb-3",children:"Recent Installations in Real Homes"}),r.jsx("p",{className:"text-muted-foreground max-w-xl mx-auto leading-relaxed",children:"Every photo below was taken in a genuine client's home after completion â not a studio or showroom set. All materials supplied and installed by our in-house Blue Sky team."})]}),r.jsx("div",{ref:a,className:"grid grid-cols-2 md:grid-cols-3 gap-3 md:gap-4",children:e.map((s,i)=>r.jsx("div",{className:`aspect-square overflow-hidden group reveal-scale ${n?"visible":""}`,style:{transitionDelay:`${i*80}ms`},children:r.jsx("img",{src:s.src,alt:s.alt,className:"h-full w-full object-cover group-hover:scale-105 transition-transform duration-700",loading:"lazy",width:400,height:400})},i))}),r.jsx("div",{className:`text-center mt-10 reveal ${n?"visible":""}`,style:{transitionDelay:"500ms"},children:r.jsxs(S,{to:"/our-work",className:"inline-flex items-center gap-2 bg-primary text-primary-foreground px-7 py-3 text-sm font-semibold tracking-wide hover:bg-navy-light transition-all duration-300 hover:shadow-lg group",children:["View All Projects",r.jsx(Da,{className:"h-4 w-4 group-hover:translate-x-1 transition-transform"})]})})]})})},yB=()=>{const{ref:e,isVisible:t}=se(),{ref:o,isVisible:a}=se(),n=ct[2]??ct[0];return r.jsx("section",{className:"section-padding",children:r.jsx("div",{className:"container-narrow",children:r.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-12 lg:gap-16 items-center",children:[r.jsxs("div",{ref:o,className:`relative reveal-left ${a?"visible":""}`,children:[r.jsx("div",{className:"overflow-hidden",children:r.jsx("img",{src:n.src,alt:"Inside the Blue Sky Luxury Bathrooms showroom in Tamworth",className:"h-full w-full object-cover hover:scale-105 transition-transform duration-700",loading:"lazy",width:800,height:600})}),r.jsx("div",{className:"absolute -bottom-3 -left-3 w-24 h-24 border-2 border-secondary/30 -z-10 hidden lg:block"})]}),r.jsxs("div",{ref:e,className:`reveal-right ${t?"visible":""}`,children:[r.jsx("p",{className:"text-sm font-semibold tracking-widest uppercase text-secondary mb-3",children:"About Blue Sky"}),r.jsx("div",{className:"section-divider mb-5"}),r.jsx("h2",{className:"font-heading text-3xl md:text-4xl font-bold text-foreground mb-5 text-balance-heading",children:"A Tamworth Family-Run Bathroom Specialist"}),r.jsx("p",{className:"text-muted-foreground mb-4 leading-relaxed",children:"Blue Sky Luxury Bathrooms is a Tamworth-based design and installation company built on a single idea: one team should be responsible for every part of your bathroom â from the first sketch to the final silicone bead. We design in our C
318avendish showroom, supply every product ourselves, and install with our own employed fitters. No subcontractor chains, no client-supplied bargains we can't stand behind."}),r.jsx("p",{className:"text-muted-foreground mb-6 leading-relaxed",children:"Over the last 20+ years we've completed more than 1,000 bathrooms across Tamworth, Lichfield, Burton-on-Trent, Sutton Coldfield, Birmingham and the wider West Midlands â earning a 4.9 Google rating (38+ reviews), a 9.85/10 score across 141 verified Checkatrade reviews and 4.99/5 from 13 TrustATrader reviews. Every project is covered by a single Blue Sky warranty on both the products we supply and the workmanship that fits them."}),r.jsxs(S,{to:"/about",className:"inline-flex items-center gap-2 text-sm font-semibold text-secondary hover:text-steel-light transition-colors tracking-wide group",children:["More about our team",r.jsx(Da,{className:"h-4 w-4 group-hover:translate-x-1 transition-transform"})]})]})]})})})},wB=()=>{const{ref:e,isVisible:t}=se(),{ref:o,isVisible:a}=se(),n=ct.slice(9,13),s=[{icon:QS,title:"See & Touch Before You Buy",desc:"Walk through fully built bathroom displays â feel the tiles, test the brassware, and see the finish under real lighting."},{icon:t2,title:"Supply & Install Only",desc:"All materials are supplied directly by us. We don't fit client-supplied products â that's how we guarantee every detail of the finished room."},{icon:Vy,title:"One Warranty Covers Everything",desc:"Because we supply and install, your products and workmanship are protected by a single, comprehensive Blue Sky guarantee."},{icon:Qy,title:"Designer-Led Selections",desc:"Our showroom team curates tiles, sanitaryware, and brassware that genuinely work together â no online guesswork, no costly mistakes."}];return r.jsx("section",{className:"section-padding bg-muted/40",children:r.jsx("div",{className:"container-narrow",children:r.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-12 lg:gap-16 items-center",children:[r.jsxs("div",{ref:o,className:`relative reveal-left ${a?"visible":""}`,children:[r.jsx("div",{className:"grid grid-cols-2 gap-3",children:n.map((i,l)=>r.jsx("div",{className:`overflow-hidden aspect-square reveal-scale ${a?"visible":""}`,style:{transitionDelay:`${l*120}ms`},children:r.jsx("img",{src:i.src,alt:i.alt,className:"h-full w-full object-cover hover:scale-105 transition-transform duration-700",loading:"lazy",width:500,height:500})},l))}),r.jsx("div",{className:"absolute top-3 left-3 bg-primary text-primary-foreground px-3 py-1.5 text-[10px] font-semibold tracking-widest uppercase shadow-lg",children:"Showroom Photography"}),r.jsx("div",{className:"absolute -bottom-3 -left-3 w-24 h-24 border-2 border-secondary/30 -z-10 hidden lg:block"})]}),r.jsxs("div",{ref:e,className:`reveal-right ${t?"visible":""}`,children:[r.jsx("p",{className:"text-sm font-semibold tracking-widest uppercase text-secondary mb-3",children:"Visit Our Tamworth Showroom"}),r.jsx("div",{className:"section-divider mb-5"}),r.jsxs("h2",{className:"font-heading text-3xl md:text-4xl font-bold text-foreground mb-5 text-balance-heading",children:["Experience Your New Bathroom",r.jsx("br",{className:"hidden sm:block"})," Before You Commit"]}),r.jsx("p",{className:"text-muted-foreground mb-8 leading-relaxed",children:"Our Tamworth showroom is more than a display â it's where every project begins. Browse fully built bathroom settings, compare materials in person, and sit down with our designers to plan a room that fits your home, taste, and budget."}),r.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-5 mb-8",children:s.map((i,l)=>r.jsxs("div",{className:`flex items-start gap-3 reveal ${t?"visible":""}`,style:{transitionDelay:`${300+l*100}ms`},children:[r.jsx("div",{className:"flex items-center justify-center h-9 w-9 bg-secondary/10 rounded-sm shrink-0",children:r.jsx(i.icon,{className:"h-4 w-4 text-secondary"})}),r.jsxs("div",{children:[r.jsx("p",{className:"text-sm font-semibold text-foreground mb-1",children:i.title}),r.jsx("p",{className:"text-xs text-muted-foreground leading-relaxed",children:i.desc})]})]},i.title))}),r.jsx("div",{className:"bg-card border border-border p-5 mb-8 rounded-sm",children:r.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center gap-4 sm:gap-8",children:[r.jsxs("div",{className:"flex items-start gap-2",children:[r.jsx(mo,{className:"h-4 w-4 text-secondary mt-0.5 shrink-0"}),r.jsxs("div",{children:[r.jsx("p",{className:"text-xs font-semibold tracking-wider up
318percase text-foreground/60",children:"Find Us"}),r.jsx("p",{className:"text-sm font-semibold text-foreground",children:"Unit 7 Cavendish, Tamworth B79 7XH"})]})]}),r.jsxs("div",{className:"flex items-start gap-2",children:[r.jsx(Dt,{className:"h-4 w-4 text-secondary mt-0.5 shrink-0"}),r.jsxs("div",{children:[r.jsx("p",{className:"text-xs font-semibold tracking-wider uppercase text-foreground/60",children:"Open"}),r.jsx("p",{className:"text-sm font-semibold text-foreground",children:"MonâFri 9â5 · Sat 9â1 · Sun 10â2 (by appointment)"})]})]})]})}),r.jsxs("div",{className:"bg-secondary/5 border-l-4 border-secondary p-5 mb-8 rounded-sm",children:[r.jsx("p",{className:"text-xs font-semibold tracking-widest uppercase text-secondary mb-2",children:"Open Sundays · 10:00am â 2:00pm · By Appointment Only"}),r.jsx("h3",{className:"font-heading text-xl font-bold text-foreground mb-2",children:"Bathroom Showroom Open Sundays in Tamworth"}),r.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed mb-4",children:"Busy during the week? Visit the Blue Sky Bathrooms showroom on Sunday between 10am and 2pm by appointment. Explore our bathroom displays, tiles, furniture, showers and finishes, and discuss your complete bathroom renovation with our team."}),r.jsx(S,{to:"/bathroom-showroom-open-sunday-tamworth",className:"btn-premium inline-block text-center",children:"Book Your Sunday Showroom Appointment"})]}),r.jsxs("div",{className:"flex flex-col sm:flex-row gap-3",children:[r.jsx(S,{to:"/services/bathroom-showroom",className:"btn-premium text-center",children:"Plan Your Showroom Visit"}),r.jsx(S,{to:"/contact",className:"inline-flex items-center justify-center px-7 py-3 border border-foreground
318/20 text-sm font-semibold tracking-wide text-foreground hover:border-secondary hover:text-secondary transition-all duration-300",children:"Book a Design Consultation"})]})]})]})})})},bB=()=>{const{ref:e,isVisible:t}=se(),{ref:o,isVisible:a}=se(),[n,...s]=ct.slice(0,5);return r.jsx("section",{className:"section-padding bg-background",children:r.jsxs("div",{className:"container-narrow",children:[r.jsxs("div",{ref:e,className:`text-center mb-10 reveal ${t?"visible":""}`,children:[r.jsxs("p",{className:"inline-flex items-center gap-2 text-sm font-semibold tracking-widest uppercase text-secondary mb-3",children:[r.jsx(zS,{className:"h-4 w-4"})," Professional Showroom Photography"]}),r.jsx("div",{className:"section-divider mx-auto mb-4"}),r.jsx("h2",{className:"font-heading text-2xl md:text-4xl font-bold text-foreground mb-3 text-balance-heading",children:"Step Inside Our Tamworth Showroom"}),r.jsx("p",{className:"text-muted-foreground max-w-2xl mx-auto leading-relaxed",children:"See, touch, and compare every tile, vanity, bath, and brassware finish before you buy. Every product on display can be supplied and installed by our in-house team â backed by one comprehensive Blue Sky warranty."})]}),r.jsxs("div",{ref:o,className:"grid grid-cols-2 md:grid-cols-4 gap-3 md:gap-4",children:[r.jsx("div",{className:`col-span-2 row-span-2 aspect-square md:aspect-auto overflow-hidden group reveal-scale ${a?"visible":""}`,children:r.jsx("img",{src:n.src,alt:n.alt,className:"h-full w-full object-cover group-hover:scale-105 transition-transform duration-700",loading:"lazy",width:900,height:900})}),s.map((i,l)=>r.jsx("div",{className:`aspect-square overflow-hidden group reveal-scale ${a?"visible":""}`,style:{transitionDelay:`${(l+1)*90}ms`},children:r.jsx("img",{src:i.src,alt:i.alt,className:"h-full w-full object-cover group-hover:scale-105 transition-transform duration-700",loading:"lazy",width:500,height:500})},l))]}),r.jsxs("div",{className:`mt-10 flex flex-col sm:flex-row items-center justify-center gap-4 reveal ${a?"visible":""}`,style:{transitionDelay:"500ms"},children:[r.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[r.jsx(mo,{className:"h-4 w-4 text-secondary"}),r.jsx("span",{children:"Unit 7 Cavendish, Tamworth B79 7XH · MonâFri 9â5 · Sat 9â1 · Sun 10â2 (by appointment)"})]}),r.jsxs(S,{to:"/services/bathroom-showroom",className:"inline-flex items-center gap-2 bg-primary text-primary-foreground px-6 py-3 text-sm font-semibold tracking-wide hover:bg-navy-light transition-all duration-300 hover:shadow-lg group",children:["Plan Your Showroom Visit",r.jsx(Da,{className:"h-4 w-4 group-hover:translate-x-1 transition-transform"})]})]})]})})},vB=["Tamworth","Lichfield","Rugeley","Swadlincote","Burton-on-Trent","Sutton Coldfield","Atherstone","Nuneaton","Birmingham","Cannock","Walsall","Coalville","Hinckley","Derby","West Bromwich"],up=[{name:"Tamworth",slug:"tamworth",blurb:"Our home town. Showroom on Cavendish, B79 â covering Glascote, Wilnecote, Amington and Belgrave with same-week site visits."},{name:"Lichfield",slug:"lichfield",blurb:"From period cottages near the Cathedral to newer estates around Boley Park â bathroom designs that respect the building's character."},{name:"Sutton Coldfield",slug:"sutton-coldfield",blurb:"Larger-format renovations and ensuites across Four Oaks, Mere Green and Boldmere, including freestanding baths and full wet rooms."},{name:"Burton-on-Trent",slug:"burton-on-trent",blurb:"Practical family bathrooms and walk-in showers across Stretton, Branston and the DE13/DE14 postcodes â typically fitted in 5â8 days."},{name:"Birmingham",slug:"birmingham",blurb:"Premium installations across north Birmingham â Sutton, Erdington and Mere Green â managed end-to-end from our Tamworth base."},{name:"Cannock",slug:"cannock",blurb:"Bathroom replacements and accessible adaptations across Cannock, Hednesford and Rugeley, with hard-water-rated fittings as standard."}],xB=()=>{const{ref:e,isVisible:t}=se(),{ref:o,isVisible:a}=se();return r.jsx("section",{className:"section-padding",children:r.jsx("div",{className:"container-narrow",children:r.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-12 items-start",children:[r.jsxs("div",{ref:e,className:`reveal-left ${t?"visible":""}`,children:[r.jsx("p",{className:"text-sm font-semibold tracking-widest uppercase text-secondary mb-3",children:"Areas We Serve"}),r.jsx("div",{className:"section-divider mb-5"}),r.jsxs("h2",{className:"font-heading text-3xl md:text-4xl font-bold text-foreground mb-4 text-balance-heading",children:["Areas We Cover Across",r.jsx("br",{className:"hidden sm:block"})," Staffordshire & the West Midlands"]}),r.jsx("p",{className:"text-muted-foreground mb-8 leading-relaxed",children:"Based in Tamworth, we install bathrooms across Staffordshire, the West Midlands and north Warwickshire. Most enquiries get a free home survey within the same week, and our installation team is rarely more than 30 minutes from your door."}),r.jsx("div",{className:"space-y-4 mb-8",children:up.map((n,s)=>r.jsx(S,{to:`/areas/${n.slug}`,className:`block group reveal ${t?"visible":""}`,style:{transitionDelay:`${200+s*60}ms`},children:r.jsxs("div",{className:"flex items-start gap-3",children:[r.jsx(mo,{className:"h-4 w-4 text-secondary mt-1 shrink-0"}),r.jsxs("div",{children:[r.jsx("p",{className:"text-sm font-semibold text-foreground group-hover:text-secondary transition-colors",children:n.name}),r.jsx("p",{className:"text-xs text-muted-foreground leading-relaxed",children:n.blurb})]})]})},n.slug))}
318),r.jsx("p",{className:"text-xs font-semibold tracking-wider uppercase text-foreground/60 mb-3",children:"Also covering"}),r.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-x-3 gap-y-1.5",children:vB.filter(n=>!up.some(s=>s.name===n)).map((n,s)=>r.jsxs(S,{to:`/areas/${n.toLowerCase().replace(/\s+/g,"-")}`,className:`flex items-center gap-2 px-2 py-2 text-sm text-foreground/80 hover:text-foreground hover:bg-muted transition-all duration-200 rounded-sm whitespace-nowrap reveal ${t?"visible":""}`,style:{transitionDelay:`${600+s*30}ms`},children:[r.jsx(mo,{className:"h-3.5 w-3.5 text-secondary shrink-0"}),r.jsx("span",{className:"truncate",children:n})]},n))}),r.jsx("div",{className:`mt-6 reveal ${t?"visible":""}`,style:{transitionDelay:"900ms"},children:r.jsxs(S,{to:"/areas",className:"inline-flex items-center gap-2 text-sm font-semibold text-secondary hover:text-steel-light transition-colors tracking-wide group",children:["View all service areas",r.jsx("span",{className:"inline-block group-hover:translate-x-1 transition-transform",children:"â"})]})})]}),r.jsx("div",{ref:o,className:`rounded-sm overflow-hidden border border-border reveal-right ${a?"visible":""}`,children:r.jsx("iframe",{src:"https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d2420.9095893536673!2d-1.7185287229644588!3d52.643546427074774!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x2f153fb8ea7e1387%3A0x2b5658124f721582!2sBlue%20Sky%2023%20Bathrooms!5e0!3m2!1sen!2sph!4v1776317582484!5m2!1sen!2sph",width:"100%",height:"450",style:{border:0},allowFullScreen:!0,loading:"lazy",referrerPolicy:"no-referrer-when-downgrade",title:"Blue Sky Luxury Bathrooms Location"})})]})})})},Sb=()=>{const e=b.useRef(null);return b.useEffect(()=>{const t=document.createElement("script");return t.src="https://reputationhub.site/reputation/assets/review-widget.js",t.type="text/javascript",t.async=!0,document.body.appendChild(t),()=>{try{document.body.removeChild(t)}catch{}}},[]),r.jsx("div",{ref:e,children:r.jsx("iframe",{className:"lc_reviews_widget",src:"https://reputationhub.site/reputation/widgets/review_widget/pPf95m0ye5gBGV4hqXxe",frameBorder:"0",scrolling:"no",style:{minWidth:"100%",width:"100%"},title:"Customer Reviews"})})},th=()=>{const{ref:e,isVisible:t}=se();return r.jsx("section",{className:"section-cream section-padding",children:r.jsxs("div",{className:"container-narrow",children:[r.jsxs("div",{ref:e,className:`text-center mb-12 reveal ${t?"visible":""}`,children:[r.jsx("p",{className:"text-sm font-semibold tracking-widest uppercase text-secondary mb-3",children:"Client Testimonials"}),r.jsx("div",{className:"section-divider mx-auto mb-4"}),r.jsxs("h2",{className:"font-heading text-3xl md:text-4xl font-bold text-foreground mb-4 text-balance-heading",children:["Trusted by Homeowners",r.jsx("br",{className:"hidden sm:block"})," Across the Midlands"]})]}),r.jsx("div",{className:`reveal ${t?"visible":""}`,style:{transitionDelay:"200ms"},children:r.jsx(Sb,{})}),r.jsxs("div",{className:`mt-10 flex flex-wrap items-center justify-center gap-4 reveal ${t?"visible":""}`,style:{transitionDelay:"300ms"},children:[r.jsxs("a",{href:"https://www.facebook.com/BlueSky23uk?rdid=rxl6EOVPb1D0xmnh&share_url=https%3A%2F%2Fwww.facebook.com%2Fshare%2F1MMLdf7mf8%2F",target:"_blank",rel:"noopener noreferrer","aria-label":"Read our reviews on Facebook",className:"inline-flex items-center gap-3 bg-card border border-border px-5 py-3 hover:border-secondary transition-colors group",children:[r.jsx("svg",{viewBox:"0 0 24 24",className:"h-6 w-6 text-[#1877F2] shrink-0",fill:"currentColor","aria-hidden":"true",children:r.jsx("path",{d:"M24 12.073C24 5.405 18.627 0 12 0S0 5.405 0 12.073C0 18.1 4.388 23.094 10.125 24v-8.437H7.078v-3.49h3.047V9.412c0-3.017 1.792-4.683 4.533-4.683 1.312 0 2.686.235 2.686.235v2.971h-1.513c-1.49 0-1.956.93-1.956 1.886v2.262h3.328l-.532 3.49h-2.796V24C19.612 23.094 24 18.1 24 12.073z"})}),r.jsxs("div",{className:"text-left",children:[r.jsx("div",{className:"text-xs uppercase tracking-wider text-muted-foreground",children:"See us on"}),r.jsxs("div",{className:"text-sm font-semibold text-foreground group-hover:text-secondary transition-colors flex items-center gap-1",children:["Facebook Reviews ",r.jsx(Qs,{className:"h-3 w-3"})]})]})]}),r.jsxs("a",{href:"https://www.yell.com/biz/blue-sky-23-ltd-tamworth-8947818/",target:"_blank",rel:"noopener noreferrer","aria-label":"Read our 20 reviews on Yell, rated 4.8 out of 5",className:"inline-flex items-center gap-3 bg-card border border-border px-5 py-3 hover:border-secondary transition-colors group",children:[r.jsx("div",{className:"flex flex-col items-center justify-center bg-[#ffd200] text-[#1a1a1a] font-bold px-3 py-1.5 leading-none",children:r.jsx("span",{className:"text-[10px] tracking-widest",children:"YELL"})}),r.jsxs("div",{className:"text-left",children:[r.jsxs("div",{className:"flex items-center gap-1 text-[#f5a623]",children:[[0,1,2,3,4].map(o=>r.jsx(sl,{className:"h-3.5 w-3.5 fill-current"},o)),r.jsx("span",{className:"ml-1 text-sm font-bold text-foreground",children:"4.8"})]}),r.jsxs("div",{className:"text-xs text-muted-foreground flex items-center gap-1",children:["20 reviews on Yell ",r.jsx(Qs,{className:"h-3 w-3"})]})]})]})]}),r.jsx("div",{className:`text-center mt-8 reveal ${t?"visible":""}`,style:{transitionDelay:"400ms"},children:r.jsxs("a",{href:"https://search.google.com/local/writereview?placeid=ChIJhxN-6rg_FS8RghVyTxJYVis",target:"_blank",rel:"noopener noreferrer",className:"btn-premium inline-flex items-center gap-2",children:["Leave Us a Review ",r.jsx(Qs,{className:"h-4 w-4"})]})})]})})},kB="https://fast.wistia.com/player.js",SB="https://fast.wistia.com/embed/kaitrd2gff.js",jB="https://fast.wistia.com/embed/medias/kaitrd2gff/swatch",CB="https://fast.wistia.com/embed/4wuhqxie54.js",TB="https://fast.wistia.com/embed/medias/4wuhqxie54/swatch",rd=(e,t)=>{if(document.querySelector(`script[src="${e}"]`))return;const o=document.createElement("script");o.src=e,o.async=!0,t&&(o.type=t),document.body.appendChild(o)},jb=()=>{const{ref:e,isVisible:t}=se();return b.useEffect(()=>{rd(kB),rd(SB,"module"),rd(CB,"module")},[]),r.jsx("section",{className:"section-cream section-padding",children:r.jsxs("div",{className:"container-narrow max-w-6xl",children:[r.jsxs("div",{ref:e,className:`text-center mb-10 reveal ${t?"visible":""}`,children:[r.jsx("p",{className:"text-sm font-semibold tracking-widest uppercase text-secondary mb-3",children:"Client Story"}),r.jsx("div",{className:"section-divider mx-auto mb-4"}),r.jsxs("h2",{className:"font-heading text-3xl md:text-4xl font-bold text-foreground mb-4 text-balance-heading",children:["Hear From Recent",r.jsx("br",{className:"hidden sm:block"})," Blue Sky Customers"]}),r.jsx("p",{className:"text-muted-foreground max-w-2xl mx-auto",children:"Real homeowners share what it was like working with our team â from showroom visit to the finished bathroom."})]}),r.jsxs("div",{className:"grid gap-6 md:grid-cols-2",children:[r.jsxs("div",{className:`relative overflow-hidden shadow-2xl border border-border bg-card reveal ${t?"visible":""}`,style:{transitionDelay:"200ms"},children:[r.jsx("style",{children:`wistia-player[media-id='kaitrd2gff']:not(:defined) { background: center / contain no-repeat url('${jB}'); display: block; filter: blur(5px); padding-top: 56.25%; }`}
318),r.jsx("wistia-player",{"media-id":"kaitrd2gff",aspect:"1.7777777777777777"})]}),r.jsxs("div",{className:`relative overflow-hidden shadow-2xl border border-border bg-card reveal ${t?"visible":""}`,style:{transitionDelay:"300ms"},children:[r.jsx("style",{children:`wistia-player[media-id='4wuhqxie54']:not(:defined) { background: center / contain no-repeat url('${TB}'); display: block; filter: blur(5px); padding-top: 56.56%; }`}),r.jsx("wistia-player",{"media-id":"4wuhqxie54",aspect:"1.7679558011049723"})]})]})]})})},BB=()=>{const{ref:e,isVisible:t}=se();return r.jsx("section",{className:"section-padding",children:r.jsx("div",{className:"container-narrow",children:r.jsxs("div",{ref:e,className:`border border-secondary/20 bg-card p-8 md:p-12 flex flex-col md:flex-row items-center gap-8 reveal-scale ${t?"visible":""}`,children:[r.jsx("div",{className:"flex items-center justify-center h-16 w-16 bg-secondary/10 rounded-sm shrink-0",children:r.jsx(KS,{className:"h-8 w-8 text-secondary"})}),r.jsxs("div",{className:"flex-1 text-center md:text-left",children:[r.jsx("p",{className:"text-sm font-semibold tracking-widest uppercase text-secondary mb-1",children:"Limited Offer"}),r.jsx("h2",{className:"font-heading text-2xl md:text-3xl font-bold text-foreground mb-2",children:"Free Design Consultation"}),r.jsx("p",{className:"text-muted-foreground max-w-lg",children:"Book your complimentary design consultation and discover how we can transform your bathroom. Our experts will visit your home, discuss your vision, and provide a detailed, no-obligation estimate."})]}),r.jsx(S,{to:"/contact",className:"btn-premium shrink-0",children:"Book Your Consultation"})]})})})},WB=()=>{const{ref:e,isVisible:t}=se();return r.jsx("section",{className:"section-padding",children:r.jsx("div",{className:"container-narrow max-w-3xl",children:r.jsxs("div",{ref:e,className:`reveal ${t?"visible":""}`,children:[r.jsx("p",{className:"text-sm font-semibold tracking-widest uppercase text-secondary mb-3 text-center",children:"Local Knowledge"}),r.jsx("div",{className:"section-divider mx-auto mb-5"}),r.jsx("h2",{className:"font-heading text-3xl md:text-4xl font-bold text-foreground mb-6 text-balance-heading text-center",children:"Bathroom Installation in Tamworth & the West Midlands: What Local Homeowners Should Know"}),r.jsxs("div",{className:"space-y-5 text-muted-foreground leading-relaxed",children:[r.jsx("p",{children:"Tamworth and the surrounding West Midlands have a real mix of housing stock â from Victorian and Edwardian terraces around the town centre, to 1930s semis in Glascote and Wilnecote, to newer developments in Amington, Belgrave and the villages bordering Staffordshire. Each comes with its own quirks: lath-and-plaster walls that hide nothing flat, soil stacks routed in awkward places, low water pressure on hard-water mains, and joist runs that dictate where a wet room or freestanding bath can realistically sit. After 20+ years of installing bathrooms locally, we plan around these realities from day one rather than discovering them on a fitting morning."}),r.jsx("p",{children:"Hard water is the single biggest factor most Tamworth homeowners underestimate. The supply across south Staffordshire and north Warwickshire is consistently hard, and limescale will quietly destroy the wrong brassware, shower valves and concealed cisterns within a few years. We specify products built to handle it â and we'll tell you when a cheaper alternative simply isn't worth fitting in this region. The same applies to underfloor heating, wet-room formers and tiling: the right combination for a sandstone-floor cottage in Lichfield is not the same as for a new-build townhouse in Sutton Coldfield, and a local installer who has worked across both knows where the corners are."}),r.jsx("p",{children:"Local expertise also matters when things go beyond the bathroom door. We coordinate with reliable Tamworth-area trades when scope creeps into a knocked-through ensuite, a re-routed boiler flue, or a structural opening. Materials come from our Tamworth showroom, deliveries are managed by us, and waste is removed on completion â which means no skip clogging up a Glascote driveway for three weeks. For homeowners across Tamworth, Lichfield, Burton-on-Trent, Sutton Coldfield, Cannock, Birmingham and the wider region, choosing a genuinely local Blue Sky team means fewer surprises, faster decisions when the unexpected happens, and a finished bathroom that actually suits the building it sits in."})]})]})})})},hp=[{q:"How long does a full bathroom installation take?",a:"A typical bathroom installation takes between 5 and 10 working days, depending on the scope of work. We'll provide a clear timeline during your free consultation so you know exactly what to expect."},{q:"How much does a new bathroom cost in Tamworth?",a:"Most full bathroom installations we complete in Tamworth and the surrounding area fall between £8,000 and £20,000+ supplied and fitted, depending on the size of the room, the specification of tiles and brassware, and any structural changes such as moving a soil stack or knocking through to create an ensuite. Every quote is fixed in writing after a free home survey â no day-rate surprises."},{q:"Do you use subcontractors?",a:"No. Every installation is completed by our own skilled team â plumbing, tiling, electrics and finishing. This means consistent quality and a single point of contact throughout your project."},{q:"What areas do you cover?",a:"We're based in Tamworth and serve the wider West Midlands, Staffordshire and Warwickshire â including Lichfield, Sutton Coldfield, Burton-on-Trent, Nuneaton, Birmingham, Cannock, Walsall and Derby. Check our Areas page for the full list."},{q:"How quickly can you respond to a new enquiry?",a:"We aim to reply to every enquiry within 24 hours on a working day, and most home surveys across Tamworth, Lichfield and Sutton Coldfield are booked in the same week. Lead times for the installation itself vary by season â typically 4 to 8 weeks from quote acceptance to start date."},{q:"What accreditations and reviews do you have?",a:"Blue Sky Luxury Bathrooms is independently rated 9.85/10 from 141 verified reviews on Checkatrade, 4.99/5 from 13 reviews on TrustATrader, and 4.9 on Google (38+ reviews). We're a registered UK limited company (Company No. 16079781) and our installation team works to current Building Regulations for plumbing, electrics and ventilation."},{q:"Do you offer a warranty on your work?",a:"Yes. Every installation is covered by our 12-month workmanship warranty. Furniture and product warranties vary by manufacturer â typically 12 months and ranging up to a lifetime guarantee on selected ranges. We stand behind the quality of our work and are always available if you need anything after completion."},{q:"Can you help with the design and planning?",a:"Absolutely. Our team includes experienced designers who will work with you to plan every detail â from layout and materials to fixtures and finishes â ensuring your vision becomes reality."},{q:"How much does a new bathroom cost?",a:"Costs vary depending on the size, specification and complexity of your project. We provide detailed, transparent quotes with no hidden charges. Book a free consultation to get your personalised estimate."}],NB=()=>{const[e,t]=b.useState(null),{ref:o,isVisible:a}=se(),{ref:n,isVisible:s}=se(),i={"@context":"https://schema.org","@type":"FAQPage",mainEntity:hp.map(l
318=>({"@type":"Question",name:l.q,acceptedAnswer:{"@type":"Answer",text:l.a}}))};return r.jsxs(r.Fragment,{children:[r.jsx(xu,{children:r.jsx("script",{type:"application/ld+json",children:JSON.stringify(i)})}),r.jsx("section",{className:"section-dark section-padding",children:r.jsxs("div",{className:"container-narrow max-w-3xl",children:[r.jsxs("div",{ref:o,className:`text-center mb-10 reveal ${a?"visible":""}`,children:[r.jsx("p",{className:"text-sm font-semibold tracking-widest uppercase text-gold mb-3",children:"Frequently Asked Questions"}),r.jsx("div",{className:"section-divider mx-auto mb-4"}),r.jsx("h2",{className:"font-heading text-3xl md:text-4xl font-bold text-primary-foreground text-balance-heading",children:"Common Questions Answered"})]}),r.jsx("div",{ref:n,className:"space-y-2",children:hp.map((l,d)=>r.jsxs("div",{className:`border border-primary-foreground/10 hover:border-primary-foreground/20 transition-colors reveal ${s?"visible":""}`,style:{transitionDelay:`${d*80}ms`},children:[r.jsxs("button",{onClick:()=>t(e===d?null:d),className:"w-full flex items-center justify-between px-5 py-4 text-left text-sm font-medium text-primary-foreground hover:text-primary-foreground/80 transition-colors",children:[l.q,r.jsx(gr,{className:`h-4 w-4 shrink-0 ml-4 transition-transform duration-300 ${e===d?"rotate-180":""}`})]}),r.jsx("div",{className:"overflow-hidden transition-all duration-300",style:{maxHeight:e===d?"500px":"0",opacity:e===d?1:0},children:r.jsx("div",{className:"px-5 pb-4 text-sm text-primary-foreground/70 leading-relaxed",children:l.a})})]},d))})]})})]})},rs=()=>{const{ref:e,isVisible:t}=se();return r.jsxs("section",{className:"relative section-padding bg-secondary overflow-hidden",children:[r.jsxs("div",{className:"absolute inset-0",children:[r.jsx("img",{src:er.src,alt:er.alt,className:"h-full w-full object-cover opacity-30",loading:"lazy",width:1600,height:900}),r.jsx("div",{className:"absolute inset-0 bg-secondary/90"})]}),r.jsxs("div",{ref:e,className:"relative container-narrow text-center",children:[r.jsxs("div",{className:`reveal ${t?"visible":""}`,children:[r.jsx("div",{className:"section-divider mx-auto mb-5",style:{background:"hsl(38 70% 55%)"}}),r.jsxs("h2",{className:"font-heading text-3xl md:text-4xl font-bold text-secondary-foreground mb-4 text-balance-heading",children:["Ready to Transform",r.jsx("br",{className:"hidden sm:block"})," Your Bathroom?"]}),r.jsx("p",{className:"text-secondary-foreground/80 mb-8 max-w-lg mx-auto leading-relaxed",children:"Get in touch today for your free, no-obligation design consultation. One call is all it takes to start your project."})]}),r.jsxs("div",{className:`flex flex-col sm:flex-row items-center justify-center gap-4 reveal ${t?"visible":""}`,style:{transitionDelay:"200ms"},children:[r.jsx(S,{to:"/contact",className:"bg-primary text-primary-foreground px-8 py-4 text-base font-semibold tracking-wide hover:bg-navy-light transition-all duration-300 hover:shadow-lg",children:"Request Your Free Estimate"}),r.jsxs("a",{href:"tel:03300432234",className:"flex items-center gap-2 px-8 py-4 border border-secondary-foreground/30 text-secondary-foreground text-base font-bold hover:border-secondary-foreground/60 hover:bg-secondary-foreground/5 transition-all duration-300",children:[r.jsx(me,{className:"h-5 w-5"}),"0330 043 2234"]})]})]})]})},We=()=>r.jsx("footer",{className:"section-dark",children:r.jsxs("div",{className:"container-narrow
318section-padding pb-8",children:[r.jsx("div",{className:"section-divider mx-auto mb-12"}),r.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-10 lg:gap-8",children:[r.jsxs("div",{children:[r.jsx(S,{to:"/",className:"flex items-center gap-3 mb-4",children:r.jsx("img",{src:Dw,alt:"Blue Sky Luxury Bathrooms logo",className:"h-16 w-16 object-contain"})}),r.jsxs("p",{className:"text-sm text-primary-foreground/70 leading-relaxed mb-4",children:["Tamworth's premier ",r.jsx(S,{to:"/services/bathroom-installation",className:"underline underline-offset-2 hover:text-primary-foreground transition-colors",children:"bathroom installation"})," specialists. Visit our ",r.jsx(S,{to:"/services/bathroom-showroom",className:"underline underline-offset-2 hover:text-primary-foreground transition-colors",children:"Tamworth showroom"})," â we supply and install everything ourselves, backed by 20+ years' experience across the Midlands."]}),r.jsx("p",{className:"text-xs text-gold/80 font-semibold tracking-wider mb-4",children:"Supply & Install · One Team · One Warranty"}),r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx("a",{href:"https://www.facebook.com/BlueSky23uk?rdid=rxl6EOVPb1D0xmnh&share_url=https%3A%2F%2Fwww.facebook.com%2Fshare%2F1MMLdf7mf8%2F",target:"_blank",rel:"noopener noreferrer",className:"flex items-center justify-center h-9 w-9 bg-primary-foreground/10 hover:bg-secondary/30 transition-all duration-300 rounded-sm","aria-label":"Follow Blue Sky Luxury Bathrooms on Facebook",children:r.jsx($y,{className:"h-4 w-4 text-primary-foreground"})}),r.jsx("a",{href:"https://www.instagram.com/bluesky23bathrooms/",target:"_blank",rel:"noopener noreferrer",className:"flex items-center justify-center h-9 w-9 bg-primary-foreground/10 hover:bg-secondary/30 transition-all duration-300 rounded-sm","aria-label":"Follow Blue Sky Luxury Bathrooms on Instagram",children:r.jsx(ZS,{className:"h-4 w-4 text-primary-foreground"})})]})]}),r.jsxs("div",{children:[r.jsx("h3",{className:"text-sm font-semibold tracking-wider uppercase mb-4 text-primary-foreground",children:"Our Services"}),r.jsxs("ul",{className:"space-y-2 text-sm text-primary-foreground/70",children:[[["Bathroom Installation","/services/bathroom-installation"],["Kitchen Installation","/services/kitchen-installation"],["Wet Room Installation","/services/wet-room-installation"],["Walk-In Showers","/services/walk-in-shower-installation"],["Boiler Replacement","/services/boiler-replacement"],["Plumbing Services","/services/plumbing-services"],["Tiling Services","/services/tiling-services"],["Underfloor Heating","/services/underfloor-heating"],["Accessible Bathrooms","/services/accessible-bathrooms"],["Bathroom Showroom","/services/bathroom-showroom"],["Sunday Showroom Appointments","/bathroom-showroom-open-sunday-tamworth"]].map(([e,t])=>r.jsx("li",{children:r.jsx(S,{to:t,className:"hover:text-primary-foreground transition-colors",children:e})},t)),r.jsx("li",{children:r.jsx(S,{to:"/services",className:"text-secondary hover:text-steel-light transition-colors font-semibold",children:"View All Services â"})})]})]}),r.jsxs("div",{children:[r.jsx("h3",{className:"text-sm font-semibold tracking-wider uppercase mb-4 text-primary-foreground",children:"Areas We Serve"}),r.jsx("ul",{className:"space-y-2 text-sm text-primary-foreground/70 columns-2",children:["Tamworth","Lichfield","Rugeley","Swadlincote","Burton-on-Trent","Sutton Coldfield","Atherstone","Nuneaton","Birmingham","Cannock","Walsall","Derby","Staffordshire","Warwickshire","West Midlands"].map(e=>r.jsx("li",{children:r.jsx(S,{to:`/areas/${e.toLowerCase().replace(/\s+/g,"-")}`,className:"hover:text-primary-foreground transition-colors",children:e})},e))}),r.jsx(S,{to:"/areas",className:"text-secondary hover:text-steel-light transition-colors font-semibold text-sm mt-2 inline-block",children:"All Areas â"})]}),r.jsxs("div",{children:[r.jsx("h3",{className:"text-sm font-semibold tracking-wider uppercase mb-4 text-primary-foreground",children:"Contact Us"}),r.jsxs("ul",{className:"space-y-3 text-sm text-primary-foreground
318/70",children:[r.jsxs("li",{className:"flex items-start gap-2",children:[r.jsx(mo,{className:"h-4 w-4 mt-0.5 shrink-0"}),r.jsxs("span",{children:["Unit 7 Cavendish,",r.jsx("br",{}),"Tamworth B79 7XH"]})]}),r.jsx("li",{children:r.jsxs("a",{href:"tel:03300432234",className:"flex items-center gap-2 hover:text-primary-foreground transition-colors font-semibold",children:[r.jsx(me,{className:"h-4 w-4 shrink-0"}),"0330 043 2234"]})}),r.jsx("li",{children:r.jsxs("a",{href:"tel:07450254818",className:"flex items-center gap-2 hover:text-primary-foreground transition-colors font-semibold",children:[r.jsx(me,{className:"h-4 w-4 shrink-0"}),"07450 254818"]})}),r.jsx("li",{children:r.jsxs("a",{href:"mailto:[email protected]",className:"flex items-center gap-2 hover:text-primary-foreground transition-colors",children:[r.jsx(Gy,{className:"h-4 w-4 shrink-0"}),"[email protected]"]})}),r.jsxs("li",{className:"flex items-start gap-2",children:[r.jsx(Dt,{className:"h-4 w-4 mt-0.5 shrink-0"}),r.jsxs("span",{children:["MonâFri: 9 AM â 5 PM",r.jsx("br",{}),"Sat: 9 AM â 1 PM",r.jsx("br",{}),"Sun: 10 AM â 2 PM (by appointment only)"]})]})]})]})]}),r.jsxs("div",{className:"mt-12 pt-6 border-t border-primary-foreground/10",children:[r.jsxs("div",{className:"flex flex-wrap items-center gap-x-6 gap-y-2 text-xs text-primary-foreground/60 mb-6",children:[r.jsx("span",{className:"font-semibold tracking-wider uppercase text-primary-foreground/80",children:"Reviewed on"}),r.jsx("a",{href:"https://www.trustatrader.com/traders/blue-sky-23-ltd-bathroom-fitters-tamworth",target:"_blank",rel:"noopener noreferrer",className:"hover:text-primary-foreground transition-colors",children:"TrustATrader â 4.99/5 · 13 reviews"}),r.jsx("a",{href:"https://www.yell.com/biz/blue-sky-23-ltd-tamworth-8947818/",target:"_blank",rel:"noopener noreferrer",className:"hover:text-primary-foreground transition-colors",children:"Yell â 4.8/5 · 20 reviews"}),r.jsx("a",{href:"https://www.facebook.com/BlueSky23uk?rdid=rxl6EOVPb1D0xmnh&share_url=https%3A%2F%2Fwww.facebook.com%2Fshare%2F1MMLdf7mf8%2F",target:"_blank",rel:"noopener noreferrer",className:"hover:text-primary-foreground transition-colors",children:"Facebook Reviews"})]}),r.jsxs("div",{className:"flex flex-col md:flex-row items-center justify-between gap-4 text-xs text-primary-foreground/50",children:[r.jsxs("p",{children:["© ",new Date().getFullYear()," Blue Sky Luxury Bathrooms. All rights reserved. Company No. 16079781"]}),r.jsxs("div",{className:"flex flex-wrap justify-center gap-4 md:gap-6",children:[r.jsx(S,{to:"/about",className:"hover:text-primary-foreground transition-colors",children:"About"}),r.jsx(S,{to:"/contact",className:"hover:text-primary-foreground transition-colors",children:"Contact"}),r.jsx(S,{to:"/reviews",className:"hover:text-primary-foreground transition-colors",children:"Reviews"}),r.jsx(S,{to:"/our-work",className:"hover:text-primary-foreground transition-colors",children:"Our Work"}),r.jsx(S,{to:"/blog",className:"hover:text-primary-foreground transition-colors",children:"Blog"}),r.jsx(S,{to:"/privacy-policy",className:"hover:text-primary-foreground transition-colors",children:"Privacy Policy"}),r.jsx(S,{to:"/cookie-policy",className:"hover:text-primary-foreground transition-colors",children:"Cookie Policy"}),r.jsx("button",{type:"button",onClick:()=>window.dispatchEvent(new Event("bsb-open-cookie-settings")),className:"hover:text-primary-foreground transition-colors",children:"Cookie Settings"}),r.jsx(S,{to:"/terms-conditions",className:"hover:text-primary-foreground transition-colors",children:"Terms"})]})]})]})]})}),Ve=()=>r.jsxs("div",{className:"fixed bottom-0 left-0 right-0 z-50 lg:hidden flex border-t border-border shadow-lg",children:[r.jsxs("a",{href:"tel:03300432234",className:"flex-1 flex items-center justify-center gap-2 bg-primary text-primary-foreground py-3.5 text-sm font-semibold",children:[r.jsx(me,{className:"h-4 w-4"}),"Call Now"]}),r.jsx(S,{to:"/contact",className:"flex-1 flex items-center justify-center gap-2 bg-secondary text-secondary-foreground py-3.5 text-sm font-semibold",children:"Request Estimate"})]}),AB=()=>r.jsxs("div",{className:"min-h-screen",children:[r.jsx(Se,{title:"Luxury Bathroom Fitters Tamworth | Blue Sky Bathrooms",description:"Luxury bathroom fitters in Tamworth. 20+ years' experience,
3181000+ bathrooms installed, one dedicated team, full warranty. Free design consultation.",ogImage:Iw}),r.jsx(Be,{}),r.jsxs("main",{children:[r.jsx(qC,{}),r.jsx(RC,{}),r.jsx(jb,{}),r.jsx(uB,{}),r.jsx(mB,{}),r.jsx(fB,{}),r.jsx(wB,{}),r.jsx(bB,{}),r.jsx(gB,{}),r.jsx(yB,{}),r.jsx(xB,{}),r.jsx(th,{}),r.jsx(BB,{}),r.jsx(WB,{}),r.jsx(NB,{}),r.jsx(rs,{})]}),r.jsx(We,{}),r.jsx(Ve,{}),r.jsx("div",{className:"h-14 lg:hidden"})]}),Dr=({items:e,className:t=""})=>{const o=[{label:"Home",path:"/"},...e],a={"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:o.map((n,s)=>({"@type":"ListItem",position:s+1,name:n.label,...n.path?{item:`https://blueskybathrooms.co.uk${n.path}`}:{}}))};return r.jsxs(r.Fragment,{children:[r.jsx(xu,{children:r.jsx("script",{type:"application/ld+json",children:JSON.stringify(a)})}),r.jsx("nav",{"aria-label":"Breadcrumb",className:`text-xs ${t}`,children:r.jsx("ol",{className:"flex items-center flex-wrap gap-1",children:o.map((n,s)=>r.jsxs("li",{className:"flex items-center gap-1",children:[s>0&&r.jsx(GS,{className:"h-3 w-3 opacity-50"}),n.path&&s<o.length-1?r.jsxs(S,{to:n.path,className:"hover:text-secondary transition-colors flex items-center gap-1",children:[s===0&&r.jsx(nl,{className:"h-3 w-3"}),n.label]}):r.jsx("span",{className:"opacity-70",children:n.label})]},s))})})]})},EB=()=>{var o,a;const e=[{icon:al,label:"20+ Years' Experience",description:"Two decades of bathroom and plumbing expertise"},{icon:Ky,label:"1000+ Projects Completed",description:"Across Tamworth, Lichfield, and the wider Midlands"},{icon:Dt,label:"Same-Week Response",description:"Fast consultations for every enquiry"},{icon:Ha,label:"Fully Insured & Guaranteed",description:"Every installation backed by written guarantee"},{icon:il,label:"One Team, One Warranty",description:"No subcontractors â our team handles everything"}],t=os.filter(n=>n.categories.includes("luxury")).slice(0,3);return r.jsxs(r.Fragment,{children:[r.jsx(Se,{title:"About Us | Tamworth Bathroom Specialists | Blue Sky",description:"20+ years installing premium bathrooms across Tamworth and the Midlands. One team, one warranty, one point of contact. Trusted by 1000+ homeowners."}),r.jsx(Be,{}),r.jsxs("main",{className:"pt-28 md:pt-32",children:[r.jsxs("section",{className:"relative section-dark section-padding overflow-hidden",children:[r.jsxs("div",{className:"absolute inset-0",children:[r.jsx("img",{src:kb.about,alt:"Blue Sky Luxury Bathrooms team completing a bathroom installation in Tamworth",className:"h-full w-full object-cover opacity-20",width:1920,height:800}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-primary/80 to-primary"})]}),r.jsxs("div",{className:"relative container-narrow text-center",children:[r.jsx(Dr,{items:[{label:"About"}],className:"text-primary-foreground/60 mb-6 justify-center"}),r.jsx("p",{className:"text-sm font-semibold tracking-widest uppercase text-secondary mb-3",children:"About Us"}),r.jsxs("h1",{className:"font-heading text-3xl md:text-5xl font-bold text-primary-foreground mb-4 text-balance-heading",children:["Tamworth's Most Trusted",r.jsx("br",{className:"hidden sm:block"})," Bathroom Specialists"]}),r.jsxs("p",{className:"text-lg text-primary-foreground/80 max-w-2xl mx-auto mb-8",children:["Over 20 years of transforming bathrooms across the Midlands. One team handles your entire project â from ",r.jsx(S,{to:"/services/bathroom-design-planning",className:"underline underline-offset-2 hover:text-primary-foreground",children:"design"})," through to final sign-off â so you get a stunning result without the stress."]}),r.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 justify-center",children:[r.jsx(S,{to:"/contact",className:"bg-secondary text-secondary-foreground px-7 py-3 text-sm font-semibold tracking-wide hover:bg-steel-light transition-colors",children:"Request Free Estimate"}),r.jsxs("a",{href:"tel:03300432234",className:"flex items-center justify-center gap-2 text-primary-foreground font-bold",children:[r.jsx(me,{className:"h-4 w-4"})," 0330 043 2234"]})]})]})]}),r.jsx("section",{className:"section-padding",children:r.jsx("div",{className:"container-narrow",children:r.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-12 items-center",children:[r.jsxs("div",{children:[r.jsx("p",{className:"text-sm font-semibold tracking-widest uppercase text-secondary mb-2",children:"Our Story"}),r.jsx("h2",{className:"font-heading text-2xl md:text-3xl font-bold text-foreground mb-6",children:"Built on Craftsmanship, Driven by Results"}),r.jsxs("div",{className:"space-y-4 text-muted-foreground leading-relaxed",children:[r.jsx("p",{children:"Blue Sky Luxury Bathrooms was founded with a straightforward belief: homeowners deserve a single, accountable team that handles every element of their bathroom project â plumbing, tiling, electrics, and finishing â under one roof and one warranty."}),r.jsxs("p",{children:["Based in Tamworth and serving 15 areas across the Midlands, we operate a full ",r.jsx(S,{to:"/services/bathroom-showroom",className:"text-secondary hover:underline font-semibold",children:"bathroom showroom"})," alongside our installation team â covering ",r.jsx(S,{to:"/services/bathroom-installation",className:"text-secondary hover:underline font-semibold",children:"bathroom installations"}),", ",r.jsx(S,{to:"/services/wet-room-installation",className:"text-secondary hover:underline font-semibold",children:"wet rooms"}),", ",r.jsx(S,{to:"/services/walk-in-shower-installation",className:"text-secondary hover:underline font-semibold",children:"walk-in showers"}),", ",r.jsx(S,{to:"/services/accessible-bathrooms",className:"text-secondary hover:underline font-semibold",children:"accessible bathrooms"}),", ",r.jsx(S,{to:"/services/kitchen-installation",className:"text-secondary hover:underline font-semibold",children:"kitchen fitting"}),", and ",r.jsx(S,{to:"/services/boiler-replacement",className:"text-secondary hover:underline font-semibold",children:"boiler replacements"}),"."]}),r.jsxs("p",{children:["We work on a ",r.jsx("strong",{className:"text-foreground",children:"supply-and-install basis only"})," â every tile, fixture, and fitting is sourced through our showroom from trusted UK and European manufacturers. We don't fit client-supplied products. This is how we guarantee the quality of every component and back the entire room with a single Blue Sky warranty."]}),r.jsxs("p",{children:["Over two decades, we've completed more than 1,000 residential projects â from compact ",r.jsx(S,{to:"/services/cloakroom-ensuite",className:"text-secondary hover:underline",children:"cloakroom refurbishments"})," in ",r.jsx(S,{to:"/areas/lichfield",className:"text-secondary hover:underline",children:"Lichfield"})," to complete ",r.jsx(S,{to:"/services/luxury-bathroom-renovations",className:"text-secondary hover:underline",children:"luxury bathroom renovations"})," in ",r.jsx(S,{to:"/areas/sutton-coldfield",className:"text-secondary hover:underline",children:"Sutton Coldfield"}),"."]}),r.jsx("p",{children:"We serve homeowners who value precision, reliability, and a finished bathroom they're genuinely proud of. If that sounds like you, we'd welcome the chance to discu
318ss your project."})]})]}),r.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[r.jsx("div",{className:"row-span-2 overflow-hidden",children:r.jsx("img",{src:(o=t[0])==null?void 0:o.src,alt:((a=t[0])==null?void 0:a.alt)||"Blue Sky Luxury Bathrooms completed project",className:"h-full w-full object-cover",loading:"lazy",width:400,height:500})}),t.slice(1,3).map((n,s)=>r.jsx("div",{className:"overflow-hidden",children:r.jsx("img",{src:n.src,alt:n.alt,className:"h-full w-full object-cover",loading:"lazy",width:400,height:240})},s))]})]})})}),r.jsx("section",{className:"section-cream section-padding",children:r.jsx("div",{className:"container-narrow",children:r.jsxs("div",{className:"max-w-3xl mx-auto",children:[r.jsx("p",{className:"text-sm font-semibold tracking-widest uppercase text-secondary mb-2",children:"Our Standards"}),r.jsx("h2",{className:"font-heading text-2xl md:text-3xl font-bold text-foreground mb-6",children:"What Sets Us Apart"}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[{title:"Single-Team Accountability",text:"Your project is handled entirely by our in-house tradespeople. No subcontractors, no finger-pointing, no gaps in responsibility."},{title:"Written Guarantee on Every Job",text:"Every installation comes with a written guarantee covering workmanship and materials. You're protected long after we leave."},{title:"Transparent Pricing",text:"We provide detailed, itemised estimates before work begins. No hidden charges, no surprise invoices, no ambiguity."},{title:"Premium Materials Only",text:"We source from trusted UK and European suppliers. Visit our Tamworth showroom to see and feel the products."}].map(n=>r.jsxs("div",{className:"bg-card border border-border p-6",children:[r.jsx("h3",{className:"font-heading text-lg font-semibold text-foreground mb-2",children:n.title}),r.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed",children:n.text})]},n.title))})]})})}),r.jsx("section",{className:"section-padding",children:r.jsxs("div",{className:"container-narrow max-w-4xl",children:[r.jsx("p",{className:"text-sm font-semibold tracking-widest uppercase text-secondary mb-2",children:"Who Leads the Work"}),r.jsx("h2",{className:"font-heading text-2xl md:text-3xl font-bold text-foreground mb-6 text-balance-heading",children:"Florin Vescan and the Blue Sky Team"}),r.jsxs("div",{className:"space-y-4 text-muted-foreground leading-relaxed mb-8",children:[r.jsx("p",{children:"Blue Sky Luxury Bathrooms is led by Florin Vescan, who brings more than two decades of hands-on bathroom and plumbing experience to every project the company takes on. Florin is involved from the first home survey through to the final walk-round, so the person who prices your bathroom is the same person accountable for how it turns out."}),r.jsx("p",{children:"Behind him is a directly employed team of plumbers, electricians, tilers and joiners â not a rotating list of subcontractors. That is the single biggest reason our installations run to schedule: one team, one sequence, one point of contact, and one warranty covering the whole room."}),r.jsx("p",{children:"All gas work is carried out by Gas Safe registered engineers, and registration details are available on request before any work starts. Our workmanship carries a 12-month warranty; furniture and product warranties vary by manufacturer, typically running from 12 months up to a lifetime guarantee."})]}),r.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4",children:[{label:"Led by",value:"Florin Vescan",note:"Hands-on from survey to handover"},{label:"Experience",value:"20+ years",note:"Bathroom and plumbing installation"},{label:"Gas work",value:"Gas Safe registered",note:"Details available on request"},{label:"Workmanship warranty",value:"12 months",note:"Product cover varies by manufacturer"}].map(n=>r.jsxs("div",{className:"border border-border bg-card p-5",children:[r.jsx("p",{className:"text-xs font-semibold tracking-widest uppercase text-secondary mb-2",children:n.label}),r.jsx("p",{className:"font-heading text-lg font-bold text-foreground leading-tight",children:n.value}),r.jsx("p",{className:"text-xs text-muted-foreground mt-1.5 leading-snug",children:n.note})]},n.label))})]})}),r.jsx("section",{className:"section-padding",children:r.jsxs("div",{className:"container-narrow",children:[r.jsx("p",{className:"text-sm font-semibold tracking-widest uppercase text-secondary mb-2 text-center",children:"Why Homeowners Trust Us"}),r.jsx("h2",{className:"font-heading text-2xl md:text-3xl font-bold text-foreground mb-10 text-center text-balance-heading",children:"Measurable Proof, Not Empty Promises"}),r.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-5 ga
318p-6",children:e.map(n=>r.jsxs("div",{className:"text-center p-6 border border-border bg-card",children:[r.jsx(n.icon,{className:"h-8 w-8 text-secondary mx-auto mb-3"}),r.jsx("p",{className:"font-semibold text-foreground text-sm mb-1",children:n.label}),r.jsx("p",{className:"text-xs text-muted-foreground",children:n.description})]},n.label))})]})}),r.jsx("section",{className:"section-padding bg-muted/30",children:r.jsxs("div",{className:"container-narrow",children:[r.jsxs("div",{className:"text-center mb-10",children:[r.jsx("p",{className:"text-sm font-semibold tracking-widest uppercase text-secondary mb-2",children:"Visit In Person"}),r.jsx("div",{className:"section-divider mx-auto mb-4"}),r.jsx("h2",{className:"font-heading text-2xl md:text-3xl font-bold text-foreground mb-3 text-balance-heading",children:"Inside Our Tamworth Showroom"}),r.jsx("p",{className:"text-muted-foreground max-w-2xl mx-auto leading-relaxed",children:"Every product on display can be supplied and installed by our in-house team. Walk through complete bathroom settings, compare materials in real lighting, and design your project with the people who'll build it."})]}),r.jsx("div",{className:"grid grid-cols-2 md:grid-cols-3 gap-3 md:gap-4",children:ct.slice(0,6).map((n,s)=>r.jsx("div",{className:"aspect-[4/5] overflow-hidden group",children:r.jsx("img",{src:n.src,alt:n.alt,className:"h-full w-full object-cover group-hover:scale-105 transition-transform duration-700",loading:"lazy",width:500,height:625})},s))}),r.jsx("div",{className:"text-center mt-8",children:r.jsx(S,{to:"/services/bathroom-showroom",className:"inline-flex items-center gap-2 bg-primary text-primary-foreground px-7 py-3 text-sm font-semibold tracking-wide hover:bg-navy-light transition-all duration-300",children:"Plan Your Showroom Visit"})})]})}),r.jsx("section",{className:"section-dark section-padding",children:r.jsxs("div",{className:"container-narrow text-center",children:[r.jsx("h2",{className:"font-heading text-2xl md:text-3xl font-bold text-primary-foreground mb-4",children:"Ready to Start Your Bathroom Project?"}),r.jsxs("p",{className:"text-primary-foreground/80 max-w-xl mx-auto mb-8",children:["Book your free, no-obligation ",r.jsx(S,{to:"/services/bathroom-design-planning",className:"underline underline-offset-2 hover:text-primary-foreground",children:"design consultation"}),". We'll visit your home, discuss your vision, and provide a detailed estimate â all at no cost."]}),r.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 justify-center",children:[r.jsx(S,{to:"/contact",className:"bg-secondary text-secondary-foreground px-7 py-3 text-sm font-semibold tracking-wide hover:bg-steel-light transition-colors",children:"Request Free Estimate"}),r.jsxs("a",{href:"tel:03300432234",className:"flex items-center justify-center gap-2 text-primary-foreground font-bold",children:[r.jsx(me,{className:"h-4 w-4"})," 0330 043 2234"]})]})]})})]}),r.jsx(We,{}),r.jsx(Ve,{})]})},mp=[{slug:"bathroom-renovation-tamworth-guide",title:"The Complete Guide to Bathroom Renovation in Tamworth",excerpt:"Planning a bathroom renovation in Tamworth? Discover expert tips on design, costs, timelines and how to choose the right installer for a stress-free transformation.",date:"16 April 2026",category:"Bathrooms",readTime:"6 min read"},{slug:"wet-room-installation-tamworth",title:"Wet Room Installation in Tamworth: Is It Right for Your Home?",excerpt:"Considering a wet room? Discover the benefits, suitability for different property types, and what's involved in a professional wet room installation in Tamworth.",date:"10 April 2026",category:"Wet Rooms",readTime:"5 min read"},{slug:"boiler-replacement-tamworth-guide",title:"When Should You Replace Your Boiler? A Tamworth Homeowner's Guide",excerpt:"Is your boiler on its last legs? Learn the warning signs, understand the benefits of a modern replacement and find out why acting early saves money.",date:"3 April 2026",category:"Heating",readTime:"5 min read"},{slug:"accessible-bathrooms-tamworth-guide",title:"Accessible Bathrooms in Tamworth: A Guide to Safe, Stylish Design",excerpt:"An accessible bathroom doesn't mean compromising on style. Learn about walk-in showers, wet rooms, grab rails and more â designed for safety and luxury.",date:"27 March 2026",category:"Accessible",readTime:"6 min read"}],FB=()=>{const e=mp[0],t=mp.slice(1),o=tr[e.slug];return r.jsxs("div",{className:"min-h-screen",children:[r.jsx(Se,{title:"Bathroom Tips & Expert Guides | Blue Sky Blog",description:"Expert bathroom renovation tips, wet room guides, boiler replacement advice and accessible bathroom design from Tamworth's trusted specialists."}),r.jsx(Be,{}),r.jsxs("main",{children:[r.jsx("section",{className:"section-dark pt-36 pb-16 md:pt-44 md:pb-20",children:r.jsxs("div",{className:"container-narrow px-4",children:[r.jsx(Dr,{items:[{label:"Blog"}
318],className:"text-primary-foreground/60 mb-6"}),r.jsxs("div",{className:"max-w-3xl",children:[r.jsx("p",{className:"text-sm font-semibold tracking-widest uppercase text-steel-light mb-4",children:"Expert Insights"}),r.jsx("h1",{className:"font-heading text-4xl md:text-5xl lg:text-6xl font-bold leading-tight text-primary-foreground mb-6 text-balance-heading",children:"Tips, Guides & Advice"}),r.jsx("p",{className:"text-lg text-primary-foreground/80 max-w-xl leading-relaxed",children:"Practical insights from over 20 years of bathroom design and installation experience across Tamworth and the West Midlands."})]})]})}),r.jsx("section",{className:"section-padding",children:r.jsx("div",{className:"container-narrow px-4",children:r.jsxs(S,{to:`/blog/${e.slug}`,className:"group grid grid-cols-1 lg:grid-cols-2 gap-0 border border-border bg-card overflow-hidden hover:border-secondary/40 hover:shadow-lg transition-all",children:[o&&r.jsx("div",{className:"h-64 lg:h-full overflow-hidden",children:r.jsx("img",{src:o,alt:`${e.title} â Blue Sky Luxury Bathrooms`,className:"h-full w-full object-cover group-hover:scale-105 transition-transform duration-700",loading:"eager",width:700,height:400})}),r.jsxs("div",{className:"p-8 md:p-10 lg:p-12 flex flex-col justify-center",children:[r.jsxs("span",{className:"inline-block text-[11px] font-semibold tracking-widest uppercase text-secondary mb-4",children:[e.category," · Featured"]}),r.jsx("h2",{className:"font-heading text-2xl md:text-3xl font-bold text-foreground mb-4 group-hover:text-secondary transition-colors leading-tight",children:e.title}),r.jsx("p",{className:"text-muted-foreground leading-relaxed mb-6",children:e.excerpt}),r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{className:"flex items-center gap-4 text-xs text-muted-foreground",children:[r.jsxs("span",{className:"flex items-center gap-1",children:[r.jsx(Ea,{className:"h-3.5 w-3.5"})," ",e.date]}),r.jsxs("span",{className:"flex items-center gap-1",children:[r.jsx(Dt,{className:"h-3.5 w-3.5"})," ",e.readTime]})]}),r.jsxs("span",{className:"text-sm font-semibold text-secondary flex items-center gap-1 group-hover:gap-2 transition-all",children:["Read ",r.jsx(Da,{className:"h-4 w-4"})]})]})]})]})})}),r.jsx("section",{className:"pb-20 md:pb-28",children:r.jsx("div",{className:"container-narrow px-4",children:r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6",children:t.map(a=>{const n=tr[a.slug];return r.jsxs(S,{to:`/blog/${a.slug}`,className:"group border border-border bg-card overflow-hidden hover:border-secondary/40 hover:shadow-md transition-all",children:[n&&r.jsx("div",{className:"h-44 overflow-hidden",children:r.jsx("img",{src:n,alt:`${a.title} â Blue Sky Luxury Bathrooms`,className:"h-full w-full object-cover group-hover:scale-105 transition-transform duration-500",loading:"lazy",width:400,height:176})}),r.jsxs("div",{className:"p-6",children:[r.jsx("span",{className:"inline-block text-[10px] font-semibold tracking-widest uppercase text-secondary mb-3",children:a.category}),r.jsx("h2",{className:"font-heading text-lg font-bold text-foreground mb-3 group-hover:text-secondary transition-colors leading-snug",children:a.title}),r.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed mb-4 line-clamp-2",children:a.excerpt}),r.jsxs("div",{className:"flex items-center justify-between text-xs text-muted-foreground",children:[r.jsxs("span",{className:"flex items-center gap-1",children:[r.jsx(Ea,{className:"h-3 w-3"})," ",a.date]}),r.jsxs("span",{className:"flex items-center gap-1",children:[r.jsx(Dt,{className:"h-3 w-3"})," ",a.readTime]})]})]})]},a.slug)})})})})]}),r.jsx(We,{}),r.jsx(Ve,{}),r.jsx("div",{className:"h-14 lg:hidden"})]})},qB=()=>r.jsxs("div",{className:"min-h-screen",children:[r.jsx(Se,{title:"Bathroom Renovation in Tamworth: Complete Guide",description:"Planning a bathroom renovation in Tamworth? Expert tips on design, costs, timelines and choosing the right installer. Free design consultation available.",schemaJson:{"@context":"https://schema.org","@type":"BlogPosting",headline:"The Complete Guide to Bathroom Renovation in Tamworth",description:"Planning a bathroom renovation in Tamworth? Expert tips on design, costs, timelines and choosing the right installer.",author:{"@type":"Organization",name:"Blue Sky Luxury Bathrooms"},publisher:{"@type":"Organization",name:"Blue Sky Luxury Bathrooms"},datePublished:"2026-04-16",mainEntityOfPage:"https://blueskybathrooms.co.uk/blog/bathroom-renovation-tamworth-guide"}}),r.jsx(Be,{}),r.jsxs("main",{children:[r.jsx("section",{className:"pt-36 pb-16 md:pt-44 md:pb-20 section-dark",children:r.jsxs("div",{className:"container-narrow px-4 max-w-3xl mx-auto",children:[r.jsx(Dr,{items:[{label:"Blog",path:"/blog"},{label:"Bathroom Renovation Guide"}
318],className:"text-primary-foreground/60 mb-6"}),r.jsx("span",{className:"inline-block text-[11px] font-semibold tracking-widest uppercase text-secondary mb-4",children:"Bathrooms · 6 min read"}),r.jsxs("h1",{className:"font-heading text-3xl md:text-4xl lg:text-5xl font-bold text-primary-foreground leading-tight mb-4",children:["The Complete Guide to",r.jsx("br",{className:"hidden sm:block"})," Bathroom Renovation in Tamworth"]}),r.jsxs("div",{className:"flex items-center gap-4 text-sm text-primary-foreground/60",children:[r.jsxs("span",{className:"flex items-center gap-1.5",children:[r.jsx(Ea,{className:"h-3.5 w-3.5"})," 16 April 2026"]}),r.jsx("span",{children:"Blue Sky Luxury Bathrooms"})]})]})}),r.jsx("article",{className:"section-padding",children:r.jsxs("div",{className:"container-narrow px-4 max-w-3xl mx-auto prose-custom",children:[r.jsxs("p",{className:"text-lg text-muted-foreground leading-relaxed mb-8",children:["If you're considering a ",r.jsx("strong",{children:"bathroom renovation in Tamworth"}),", you're making one of the smartest investments in your home. A well-designed bathroom doesn't just look stunning â it adds real value to your property, improves your daily routine and transforms a purely functional space into something you genuinely enjoy using. But where do you start? And how do you ensure the finished result lives up to your expectations?"]}),r.jsxs("p",{className:"text-muted-foreground leading-relaxed mb-8",children:["At ",r.jsx(S,{to:"/",className:"text-secondary hover:underline font-semibold",children:"Blue Sky Luxury Bathrooms"}),", we've been helping homeowners across Tamworth, Lichfield, Sutton Coldfield and the wider West Midlands create beautiful bathrooms for over 20 years. With more than 1,000 completed projects behind us, we've seen every challenge â and solved every one. This guide shares what we've learned, so you can approach your renovation with confidence."]}),r.jsx("h2",{className:"font-heading text-2xl font-bold text-foreground mt-12 mb-4",children:"Why Renovate Your Bathroom?"}),r.jsx("p",{className:"text-muted-foreground leading-relaxed mb-4",children:"Most homeowners renovate for one of three reasons: the bathroom is dated, it no longer meets their needs, or they're preparing to sell. Whatever your motivation, a quality renovation delivers on all fronts."}),r.jsxs("ul",{className:"list-disc pl-6 text-muted-foreground space-y-2 mb-8",children:[r.jsxs("li",{children:[r.jsx("strong",{children:"Increased property value"})," â a modern bathroom is one of the first things buyers notice"]}),r.jsxs("li",{children:[r.jsx("strong",{children:"Better energy efficiency"})," â newer fixtures and a modern ",r.jsx(S,{to:"/services/boiler-replacement",className:"text-secondary hover:underline",children:"boiler"})," can significantly reduce utility bills"]}),r.jsxs("li",{children:[r.jsx("strong",{children:"Improved accessibility"})," â future-proofing your home with features like ",r.jsx(S,{to:"/services/walk-in-shower-installation",className:"text-secondary hover:underline",children:"walk-in showers"})," or ",r.jsx(S,{to:"/services/accessible-bathrooms",className:"text-secondary hover:underline",children:"accessible bathroom solutions"})]}),r.jsxs("li",{children:[r.jsx("strong",{children:"Daily comfort"})," â starting and ending your day in a space that feels luxurious rather than neglected"]})]}),r.jsx("h2",{className:"font-heading text-2xl font-bold text-foreground mt-12 mb-4",children:"Planning Your Bathroom Renovation in Tamworth"}),r.jsx("p",{className:"text-muted-foreground leading-relaxed mb-4",children:"A successful renovation starts long before anyone picks up a tool. Here's how we recommend approaching the planning stage:"}),r.jsx("h3",{className:"font-heading text-xl font-semibold text-foreground mt-8 mb-3",children:"1. Define Your Budget and Priorities"}),r.jsxs("p",{className:"text-muted-foreground leading-relaxed mb-4",children:["Be honest about what matters most. Do you want a complete transformation, or would a ",r.jsx(S,{to:"/services/bathroom-refurbishments",className:"text-secondary hover:underline",children:"bathroom refurbishment"})," â updating key elements whilst keeping the existing layout â be a better fit? Understanding your priorities helps your installer recommend the right approach and avoids costly changes mid-project."]}),r.jsx("h3",{className:"font-heading text-xl font-semibold text-foreground mt-8 mb-3",children:"2. Consider Your Space Carefully"}),r.jsxs("p",{className:"text-muted-foreground leading-relaxed mb-4",children:["Not every bathroom needs to be large to feel luxuri
318ous. A well-designed ",r.jsx(S,{to:"/services/cloakroom-ensuite",className:"text-secondary hover:underline",children:"cloakroom or ensuite"})," can be just as impressive as a full-sized family bathroom. Similarly, if you have a compact space, a ",r.jsx(S,{to:"/services/wet-room-installation",className:"text-secondary hover:underline",children:"wet room installation"})," can create the illusion of a much larger room whilst adding a real touch of modern luxury."]}),r.jsx("h3",{className:"font-heading text-xl font-semibold text-foreground mt-8 mb-3",children:"3. Think About the Details That Matter"}),r.jsxs("p",{className:"text-muted-foreground leading-relaxed mb-4",children:[r.jsx(S,{to:"/services/underfloor-heating",className:"text-secondary hover:underline",children:"Underfloor heating"})," beneath quality ",r.jsx(S,{to:"/services/tiling-services",className:"text-secondary hover:underline",children:"tiling"})," turns a cold bathroom floor into a genuine pleasure. Good lighting design makes even a modest bathroom feel spacious. These are the details that separate a renovation from a genuine transformation."]}),r.jsx("h2",{className:"font-heading text-2xl font-bold text-foreground mt-12 mb-4",children:"How to Choose the Right Bathroom Installer"}),r.jsx("p",{className:"text-muted-foreground leading-relaxed mb-4",children:"This is where most homeowners feel uncertain â and rightly so. The quality of your installer determines the quality of the finished result. Here's what to look for:"}),r.jsxs("ul",{className:"list-disc pl-6 text-muted-foreground space-y-2 mb-4",children:[r.jsxs("li",{children:[r.jsx("strong",{children:"One team, not multiple subcontractors"})," â when plumbing, tiling, electrics and carpentry are handled by one cohesive team, the result is seamless and accountability is clear"]}),r.jsxs("li",{children:[r.jsx("strong",{children:"Proven local experience"})," â a company with deep roots in Tamworth and surrounding areas like Burton-on-Trent, Nuneaton, Cannock and Derby understands local building styles, property types and regulations"]}),r.jsxs("li",{children:[r.jsx("strong",{children:"A showroom you can visit"})," â seeing materials and finishes in person gives you far more confidence than browsing online catalogues"]}),r.jsxs("li",{children:[r.jsx("strong",{children:"A proper warranty"})," â one warranty covering the entire project, not separate guarantees from different tradespeople"]})]}),r.jsxs("p",{className:"text-muted-foreground leading-relaxed mb-8",children:["At Blue Sky Luxury Bathrooms, we operate on a simple principle: ",r.jsx("strong",{children:"One Team · One Warranty · One Roof"}),". Every aspect of your project is managed by our in-house team, from the initial ",r.jsx(S,{to:"/services/bathroom-design-planning",className:"text-secondary hover:underline",children:"design and planning"})," through to the final finishing touches. You deal with one company, one point of contact and one warranty."]}),r.jsx("h2",{className:"font-heading text-2xl font-bold text-foreground mt-12 mb-4",children:"What Does a Bathroom Renovation Involve?"}),r.jsxs("p",{className:"text-muted-foreground leading-relaxed mb-4",children:["A typical ",r.jsx(S,{to:"/services/bathroom-installation",className:"text-secondary hover:underline",children:"bathroom installation"})," follows a clear process:"]}),r.jsxs("ol",{className:"list-decimal pl-6 text-muted-foreground space-y-2 mb-8",children:[r.jsxs("li",{children:[r.jsx("strong",{children:"Consultation and design"})," â we visit your home, discuss your vision and present options that suit your space and budget"]}),r.jsxs("li",{children:[r.jsx("strong",{children:"Material selection"})," â visit our ",r.jsx(S,{to:"/services/bathroom-showroom",className:"text-secondary hover:underline",children:"Tamworth showroom"})," to see and feel the products before committing"]}),r.jsxs("li",{children:[r.jsx("strong",{children:"Preparation"})," â stripping out the existing bathroom, addressing any ",r.jsx(S,{to:"/services/plumbing-services",className:"text-secondary hover:underline",children:"plumbing"})," or structural issues"]}),r.jsxs("li",{children:[r.jsx("strong",{children:"Installation"})," â fitting everything from sanitaryware and tiling to electrics and heating"]}),r.jsxs("li",{children:[r.jsx("strong",{children:"Final inspection and handover"})," â we walk you through the completed project and ensure everything meets our standards and yours"]})]}),r.jsx("h2",{className:"font-heading text-2xl font-bold text-foreground mt-12 mb-4",children:"How Long Does a Bathroom Renovation Take?"}),r.jsxs("p",{className:"text-muted-foreground leading-relaxed mb-8",children:["Most standard bathroom renovations take between 5 and 10 working days, depending on complexity. ",r.jsx(S,{to:"/services/luxury-bathroom-renovations",className:"text-secondary hover:underline",children:"Luxury bathroom renovations"})," or projects involving structural changes may take a little longer. We always provide a clear timeline before work begins â and we stick to it."]}),r.jsx("h2",{className:"font-heading text-2xl font-bold text-foreground mt-12 mb-4",children:"Serving Tamworth and Beyond"}),r.jsxs("p",{className:"text-muted-foreground leading-relaxed mb-8",children:["Based at Unit 7 Cavendish in Tamworth, we provide expert ",r.jsx(S,{to:"/services/bathroom-installation",className:"text-secondary hover:underline",children:"bathroom installation"})," and ",r.jsx(S,{to:"/services/kitchen-installation",className:"text-secondary hover:underline",children:"kitchen installation"})," services across the West Midlands and Staffordshire. Whether you're in Lichfield, Rugeley, Swadlincote, Atherstone, Birmingham, Walsall, C
318oalville, Hinckley, West Bromwich or anywhere in between â we're within easy reach."]}),r.jsxs("div",{className:"bg-muted/50 border border-border p-6 md:p-8 mt-12 rounded-sm",children:[r.jsx("h2",{className:"font-heading text-2xl font-bold text-foreground mb-3",children:"Ready to Start Your Renovation?"}),r.jsxs("p",{className:"text-muted-foreground leading-relaxed mb-6",children:["We offer a ",r.jsx("strong",{children:"free design consultation"})," â no obligation, no pressure. Just honest, expert advice on transforming your bathroom into something remarkable. With over 20 years' experience and more than 1,000 completed projects, we'll help you understand your options, plan your budget and visualise the result before any work begins."]}),r.jsxs("div",{className:"flex flex-col sm:flex-row gap-4",children:[r.jsx(S,{to:"/contact",className:"inline-flex items-center justify-center bg-secondary text-secondary-foreground px-6 py-3 text-sm font-semibold tracking-wide hover:bg-steel-light transition-colors",children:"Request Your Free Consultation"}),r.jsxs("a",{href:"tel:03300432234",className:"inline-flex items-center justify-center gap-2 border border-border px-6 py-3 text-sm font-semibold text-foreground hover:bg-muted transition-colors",children:[r.jsx(me,{className:"h-4 w-4"})," 0330 043 2234"]})]})]})]})})]}),r.jsx(rs,{}),r.jsx(We,{}),r.jsx(Ve,{}),r.jsx("div",{className:"h-14 lg:hidden"})]}),PB=()=>r.jsxs("div",{className:"min-h-screen",children:[r.jsx(Se,{title:"Wet Room Ideas & Costs Guide (Tamworth Homes)",description:"Buyer's guide to wet rooms in Tamworth homes: pros, cons, typical costs, design ideas and what to ask your installer. Independent advice, no sales pitch.",ogImage:tr["wet-room-installation-tamworth"],schemaJson:{"@context":"https://schema.org","@type":"BlogPosting",headline:"Wet Room Installation in Tamworth: Is It Right for Your Home?",description:"Considering a wet room installation in Tamworth? Learn the benefits, costs and design options.",author:{"@type":"Organization",name:"Blue Sky Luxury Bathrooms"},publisher:{"@type":"Organization",name:"Blue Sky Luxury Bathrooms"},datePublished:"2026-04-10",mainEntityOfPage:"https://blueskybathrooms.co.uk/blog/wet-room-installation-tamworth"}}),r.jsx(Be,{}),r.jsxs("main",{children:[r.jsx("section",{className:"pt-32 pb-16 section-dark",children:r.jsxs("div",{className:"container-narrow px-4 max-w-3xl mx-auto",children:[r.jsxs(S,{to:"/blog",className:"inline-flex items-center gap-1 text-sm text-primary-foreground/60 hover:text-primary-foreground mb-6 transition-colors",children:[r.jsx(Bu,{className:"h-4 w-4"})," Back to Blog"]}),r.jsxs("div",{className:"flex items-center gap-4 text-xs text-primary-foreground/60 mb-4",children:[r.jsxs("span",{className:"flex items-center gap-1",children:[r.jsx(Ea,{className:"h-3.5 w-3.5"})," 10 April 2026"]}),r.jsxs("span",{className:"flex items-center gap-1",children:[r.jsx(Wu,{className:"h-3.5 w-3.5"})," Blue Sky Luxury Bathrooms"]}),r.jsx("span",{children:"5 min read"})]}),r.jsxs("h1",{className:"font-heading text-3xl md:text-4xl font-bold text-primary-foreground leading-tight",children:["Wet Room Installation in Tamworth:",r.jsx("br",{className:"hidden sm:block"})," Is It Right for Your Home?"]})]})}),r.jsx("div",{className:"container-narrow px-4 max-w-3xl mx-auto -mt-4 mb-8",children:r.jsx("div",{className:"overflow-hidden",children:r.jsx("img",{src:tr["wet-room-installation-tamworth"],alt:"Completed wet room installation with linear drain and glass panel by Blue Sky Luxury Bathrooms",className:"w-full h-64 md:h-80 object-cover",width:800,height:320})})}),r.jsx("article",{className:"section-padding pt-0",children:r.jsxs("div",{className:"container-narrow px-4 max-w-3xl mx-auto prose-custom",children:[r.jsxs("p",{className:"text-lg text-muted-foreground leading-relaxed mb-8",children:[r.jsx("strong",{children:"Wet room installation in Tamworth"})," has surged in popularity over the past few years â and it's easy to see why. A wet room transforms a standard bathroom into a sleek, open-plan showering space that feels more like a boutique hotel than a typical family home. But is it the right choice for your property? Let's break it down."]}),r.jsx("h2",{className:"font-heading text-2xl font-bold text-foreground mt-12 mb-4",children:"What E
318xactly Is a Wet Room?"}),r.jsx("p",{className:"text-muted-foreground leading-relaxed mb-4",children:"A wet room is a fully waterproofed bathroom where the shower area is open â there's no tray or enclosure. The entire floor is tanked (sealed) and gently sloped towards a drain, allowing water to flow away naturally. The result is a clean, barrier-free space that feels spacious and modern."}),r.jsxs("p",{className:"text-muted-foreground leading-relaxed mb-8",children:["At ",r.jsx(S,{to:"/",className:"text-secondary hover:underline font-semibold",children:"Blue Sky Luxury Bathrooms"}),", we've installed wet rooms in everything from compact Tamworth terraces to larger family homes in Lichfield, Sutton Coldfield and Burton-on-Trent. The versatility of the design makes it suitable for almost any property."]}),r.jsx("h2",{className:"font-heading text-2xl font-bold text-foreground mt-12 mb-4",children:"Benefits of a Wet Room Installation"}),r.jsxs("ul",{className:"list-disc pl-6 text-muted-foreground space-y-2 mb-8",children:[r.jsxs("li",{children:[r.jsx("strong",{children:"Maximises space"})," â without a shower tray or enclosure, even a small bathroom feels significantly larger"]}),r.jsxs("li",{children:[r.jsx("strong",{children:"Accessibility"})," â a level-access shower is ideal for those with mobility challenges, making it a popular choice for ",r.jsx(S,{to:"/services/accessible-bathrooms",className:"text-secondary hover:underline",children:"accessible bathroom installations"})]}),r.jsxs("li",{children:[r.jsx("strong",{children:"Adds property value"})," â wet rooms are seen as a luxury feature and can increase your home's appeal to buyers"]}),r.jsxs("li",{children:[r.jsx("strong",{children:"Easy to clean"})," â fewer joints, edges and enclosures means less scrubbing and less mould"]}),r.jsxs("li",{children:[r.jsx("strong",{children:"Design freedom"})," â with quality ",r.jsx(S,{to:"/services/tiling-services",className:"text-secondary hover:underline",children:"tiling"})," and contemporary fixtures, a wet room can be truly stunning"]})]}),r.jsx("h2",{className:"font-heading text-2xl font-bold text-foreground mt-12 mb-4",children:"Is a Wet Room Suitable for Your Home?"}),r.jsx("p",{className:"text-muted-foreground leading-relaxed mb-4",children:"The short answer is: almost certainly yes. The key requirement is proper waterproofing â known as tanking â which must be done correctly to prevent leaks. This is where choosing an experienced installer makes all the difference."}),r.jsx("p",{className:"text-muted-foreground leading-relaxed mb-4",children:"Wet rooms work brilliantly in:"}),r.jsxs("ul",{className:"list-disc pl-6 text-muted-foreground space-y-2 mb-8",children:[r.jsxs("li",{children:[r.jsx("strong",{children:"Small bathrooms"})," â they create the illusion of more space"]}),r.jsxs("li",{children:[r.jsx("strong",{children:"Loft conversions and ensuites"})," â where a ",r.jsx(S,{to:"/services/cloakroom-ensuite",className:"text-secondary hover:underline",children:"compact ensuite"})," needs to feel premium"]}),r.jsxs("li",{children:[r.jsx("strong",{children:"Accessible homes"})," â level access removes trip hazards and supports wheelchair access"]}),r.jsxs("li",{children:[r.jsx("strong",{children:"Luxury renovations"})," â as part of a wider ",r.jsx(S,{to:"/services/luxury-bathroom-renovations",className:"text-secondary hover:underline",children:"luxury bathroom renovation"})]})]}),r.jsx("h2",{className:"font-heading text-2xl font-bold text-foreground mt-12 mb-4",children:"What's Involved in the Installation?"}),r.jsxs("p",{className:"text-muted-foreground leading-relaxed mb-4",children:["A professional ",r.jsx(S,{to:"/services/wet-room-installation",className:"text-secondary hover:underline",children:"wet room installation"})," typically involves:"]}),r.jsxs("ol",{className:"list-decimal pl-6 text-muted-foreground space-y-2 mb-8",children:[r.jsxs("li",{children:[r.jsx("strong",{children:"Design consultation"})," â understanding your space, style preferences and practical needs"]}),r.jsxs("li",{children:[r.jsx("strong",{children:"Floor preparation"})," â creating the correct gradient for drainage"]}),r.jsxs("li",{children:[r.jsx("strong",{children:"Full tanking"})," â waterproofing walls and floors to prevent any moisture penetration"]}),r.jsxs("li",{children:[r.jsx("strong",{children:"Drainage installation"})," â fitting a linear or point drain to suit the design"]}),r.jsxs("li",{children:[r.jsxs("strong",{children:[r.jsx(S,{to:"/services/plumbing-services",className:"text-secondary hover:underline",children:"Plumbing"})," and electrical work"]})," â connecting the shower valve, any ",r.jsx(S,{to:"/services/underfloor-heating",className:"text-secondary hover:underline",children:"underfloor heating"})," and ventilation"]}),r.jsxs("li",{children:[r.jsx("strong",{children:"Tiling and finishing"})," â the final layer that brings the design to life"]})]}),r.jsxs("p",{className:"text-muted-foreground leading-relaxed mb-8",children:["The entire process typically takes 7 to 10 working days. Because we handle everything in-house â ",r.jsx("strong",{children:"One Team · One Warranty · One Roof"})," â there's no waiting for separate tradespeople and no gaps between stages."]}),r.jsx("h2",{className:"font-heading text-2xl font-bold text-foreground mt-12 mb-4",children:"Wet Rooms Across Tamworth and the West Midlands"}),r.jsxs("p",{className:"text-muted-foreground leading-relaxed mb-8",children:["We've completed wet room installations across Tamworth, Lichfield, Rugeley, Cannock, Nuneaton, Atherstone, Birmingham, Walsall, Derby and beyond. Wherever you are in the West Midlands, our team is within easy reach â and your free ",r.jsx(S,{to:"/services/bathroom-design-planning",className:"text-secondary hover:underline",children:"design consultation"})," is just a phone call away."]}),r.jsx("div",{className:"flex flex-wrap gap-2 mb-8",children:[{name:"Tamworth",path:"/areas/tamworth"},{name:"Lichfield",path:"/areas/lichfield"},{name:"Sutton Coldfield",path:"/areas/sutton-coldfield"},{name:"Burton-on-Trent",path:"/areas/burton-on-trent"},{name:"Birmingham",path:"/areas/birmingham"},{name:"Cannock",path:"/areas/cannock"},{name:"Nuneaton",path:"/areas/nuneaton"},{name:"All service areas",path:"/areas"}].map(e=>r.jsx(S,{to:e.path,className:"text-xs bg-muted/60 border border-border px-3 py-1.5 hover:bg-secondary/10 hover:border-secondary/30 transition-colors text-foreground",children:e.name},e.path))}),r.jsxs("p",{className:"text-muted-foreground leading-relaxed mb-8",children:["Related reading: our guide to ",r.jsx(S,{to:"/blog/accessible-bathrooms-tamworth-guide",className:"text-secondary hover:underline",children:"accessible bathroom design"}),", plus services for ",r.jsx(S,{to:"/services/bathroom-installation",className:"text-secondary hover:underline",children:"full bathroom installation"}),", ",r.jsx(S,{to:"/services/bathroom-refurbishments",className:"text-secondary hover:underline",children:"bathroom refurbishments"})," and our ",r.jsx(S,{to:"/services/bathroom-showroom",className:"text-secondary hover:underline",children:"Tamworth showroom"}),". See finished projects on ",r.jsx(S,{to:"/our-work",className:"text-secondary hover:underline",children:"Our Work"})," or read genuine ",r.jsx(S,{to:"/reviews",className:"text-secondary hover:underline",children:"customer reviews"}),"."]}),r.jsxs("div",{className:"bg-muted/50 border border-border p-6 md:p-8 mt-12 rounded-sm",children:[r.jsx("h2",{className:"font-heading text-2xl font-bold text-foreground mb-3",children:"Considering a Wet Room?"}),r.jsxs("p",{className:"text-muted-foreground leading-relaxed mb-6",children:["Book your ",r.jsx("strong",{children:"free design consultation"})," and let us show you what's possible. With over 20 years' experience and more than 1,000 bathrooms completed, we'll guide you through every option â from layout and materials to budget and timelines."]}),r.jsxs("div",{className:"flex flex-col sm:flex-row gap-4",children:[r.jsx(S,{to:"/contact",className:"inline-flex items-center justify-center bg-secondary text-secondary-foreground px-6 py-3 text-sm font-semibold tracking-wide hover:bg-steel-light transition-colors",children:"Request Your Free Consultation"}),r.jsxs("a",{href:"tel:03300432234",className:"inline-flex items-center justify-center gap-2 border border-border px-6 py-3 text-sm font-semibold text-foreground hover:bg-muted transition-colors",children:[r.jsx(me,{className:"h-4 w-4"})," 0330 043 2234"]})]})]})]})})]}),r.jsx(rs,{}),r.jsx(We,{}),r.jsx(Ve,{}),r.jsx("div",{className:"h-14 lg:hidden"})]}),RB=()=>r.jsxs("div",{className:"min-h-screen",children:[r.jsx(Se,{title:"When to Replace Your Boiler: Tamworth Guide",description:"Wondering when to replace your boiler? Learn the warning signs, costs and benefits of boiler replacement in Tamworth. Expert advice from Blue Sky.",ogImage:tr["boiler-replacement-tamworth-guide"],schemaJson:{"@context":"https://schema.org","@type":"BlogPosting",headline:"When Should You Replace Your Boiler? A Tamworth Homeowner's Guide",description:"Wondering when to replace your boiler? Learn the warning signs, costs and benefits of a boiler replacement in Tamworth.",author:{"@type":"Organization",name:"Blue Sky Luxury Bathrooms"},publisher:{"@type":"Organization",name:"Blue Sky Luxury Bathrooms"},datePublished:"2026-04-03",mainEntityOfPage:"https://blueskybathrooms.co.uk/blog/boiler-replacement-tamworth-guide"}}),r.jsx(Be,{}),r.jsxs("main",{children:[r.jsx("section",{className:"pt-32 pb-16 section-dark",children:r.jsxs("div",{className:"container-narrow px-4 max-w-3xl mx-auto",children:[r.jsxs(S,{to:"/blog",className:"inline-flex items-center gap-1 text-sm text-primary-foreground
318/60 hover:text-primary-foreground mb-6 transition-colors",children:[r.jsx(Bu,{className:"h-4 w-4"})," Back to Blog"]}),r.jsxs("div",{className:"flex items-center gap-4 text-xs text-primary-foreground/60 mb-4",children:[r.jsxs("span",{className:"flex items-center gap-1",children:[r.jsx(Ea,{className:"h-3.5 w-3.5"})," 3 April 2026"]}),r.jsxs("span",{className:"flex items-center gap-1",children:[r.jsx(Wu,{className:"h-3.5 w-3.5"})," Blue Sky Luxury Bathrooms"]}),r.jsx("span",{children:"5 min read"})]}),r.jsxs("h1",{className:"font-heading text-3xl md:text-4xl font-bold text-primary-foreground leading-tight",children:["When Should You Replace",r.jsx("br",{className:"hidden sm:block"})," Your Boiler? A Tamworth Guide"]})]})}),r.jsx("div",{className:"container-narrow px-4 max-w-3xl mx-auto -mt-4 mb-8",children:r.jsx("div",{className:"overflow-hidden",children:r.jsx("img",{src:tr["boiler-replacement-tamworth-guide"],alt:"Professional plumbing installation by Blue Sky Luxury Bathrooms in Tamworth",className:"w-full h-64 md:h-80 object-cover",width:800,height:320})})}),r.jsx("article",{className:"section-padding pt-0",children:r.jsxs("div",{className:"container-narrow px-4 max-w-3xl mx-auto prose-custom",children:[r.jsxs("p",{className:"text-lg text-muted-foreground leading-relaxed mb-8",children:["Your boiler is one of those things you rarely think about â until it stops working. For homeowners across Tamworth, Lichfield and the wider West Midlands, a ",r.jsx("strong",{children:"boiler replacement"})," is often prompted by an emergency breakdown. But it doesn't have to be that way. Knowing the warning signs can save you money, stress and several cold showers."]}),r.jsx("h2",{className:"font-heading text-2xl font-bold text-foreground mt-12 mb-4",children:"Signs Your Boiler Needs Replacing"}),r.jsxs("p",{className:"text-muted-foreground leading-relaxed mb-4",children:["Boilers don't last forever. Most have a lifespan of 10 to 15 years. If yours is showing any of these symptoms, it may be time to consider a ",r.jsx(S,{to:"/services/boiler-replacement",className:"text-secondary hover:underline",children:"boiler replacement"}),":"]}),r.jsxs("ul",{className:"list-disc pl-6 text-muted-foreground space-y-2 mb-8",children:[r.jsxs("li",{children:[r.jsx("strong",{children:"Frequent breakdowns"})," â if you're calling for repairs more than once a year, the costs add up quickly"]}),r.jsxs("li",{children:[r.jsx("strong",{children:"Rising energy bills"})," â older boilers lose efficiency, meaning you pay more for less heat"]}),r.jsxs("li",{children:[r.jsx("strong",{children:"Inconsistent heating"})," â radiators taking too long to warm up or hot water running out mid-shower"]}),r.jsxs("li",{children:[r.jsx("strong",{children:"Strange noises"})," â banging, whistling or gurgling sounds often indicate internal wear"]}),r.jsxs("li",{children:[r.jsx("strong",{children:"Yellow flame"})," â a healthy boiler burns blue. A yellow or orange flame can indicate a carbon monoxide risk and requires immediate attention"]}),r.jsxs("li",{children:[r.jsx("strong",{children:"Age"})," â if your boiler is over 12 years old, modern replacements are dramatically more efficient"]})]}),r.jsx("h2",{className:"font-heading text-2xl font-bold text-foreground mt-12 mb-4",children:"The Benefits of a New Boiler"}),r.jsx("p",{className:"text-muted-foreground leading-relaxed mb-4",children:"A new boiler isn't just about avoiding breakdowns â it's a genuine home improvement:"}),r.jsxs("ul",{className:"list-disc pl-6 text-muted-foreground space-y-2 mb-8",children:[r.jsxs("li",{children:[r.jsx("strong",{children:"Lower energy bills"})," â modern condensing boilers operate at 90%+ efficiency compared to 60â70% for older models"]}),r.jsxs("li",{children:[r.jsx("strong",{children:"Reliable heating and hot water"})," â consistent performance you can depend on"]}),r.jsxs("li",{children:[r.jsx("strong",{children:"Increased property value"})," â a new, well-maintained boiler is a genuine selling point"]}),r.jsxs("li",{children:[r.jsx("strong",{children:"Peace of mind"})," â a manufacturer warranty (typically 5â10 years) plus our installation guarantee"]}),r.jsxs("li",{children:[r.jsx("strong",{children:"Reduced carbon footprint"})," â better for the environment and increasingly important for EPC ratings"]})]}),r.jsx("h2",{className:"font-heading text-2xl font-bold text-foreground mt-12 mb-4",children:"When to Replace Your Boiler"}),r.jsx("p",{className:"text-muted-foreground leading-relaxed mb-4",children:"As a general rule, replacement makes sense when:"}),r.jsxs("ul",{className:"list-disc pl-6 text-muted-foreground space-y-2 mb-8",children:[r.jsx("li",{children:"The boiler is over 12 years old"}),r.jsx("li",{children:"Breakdowns are becoming frequent"}),r.jsx("li",{children:"Energy bills are noticeably increasing"}),r.jsx("li",{children:"Replacement parts are no longer readily available"})]}),r.jsx("p",{className:"text-muted-foreground leading-relaxed mb-8",children:"We'll always give you honest advice. If your existing boiler still has plenty of life in it, we'll say so â we're not in the business of replacing boilers that have years of life left."}),r.jsx("h2",{className:"font-heading text-2xl font-bold text-foreground mt-12 mb-4",children:"Why Choose Blue Sky for Your Boiler Replacement?"}),r.jsxs("p",{className:"text-muted-foreground leading-relaxed mb-4",children:["At ",r.jsx(S,{to:"/",className:"text-secondary hover:underline font-semibold",children:"Blue Sky Luxury Bathrooms"}),", boiler replacements are a core part of our service. Because we also handle ",r.jsx(S,{to:"/services/bathroom-installation",className:"text-secondary hover:underline",children:"bathroom installations"}),", ",r.jsx(S,{to:"/services/plumbing-services",className:"text-secondary hover:underline",children:"plumbing"})," and ",r.jsx(S,{to:"/services/underfloor-heating",className:"text-secondary hover:underline",children:"underfloor heating"}),", we understand how your heating system connects to the wider picture of your home's comfort."]}),r.jsxs("ul",{className:"list-disc pl-6 text-muted-foreground space-y-2 mb-8",children:[r.jsx("li",{children:"Over 20 years' experience across Tamworth, Burton-on-Trent, Cannock, Nuneaton, Swadlincote, Derby and beyond"}),r.jsx("li",{children:"Gas Safe registered engineers"}),r.jsx("li",{children:"One Team · One Warranty · One Roof â no subcontractors"}),r.jsx("li",{children:"Clear, upfront pricing with no hidden costs"})]}),r.jsx("h2",{className:"font-heading text-2xl font-bold text-foreground mt-12 mb-4",children:"Serving Tamworth and the West Midlands"}),r.jsx("p",{className:"text-muted-foreground leading-relaxed mb-8",children:"We install and service boilers across Tamworth, Lichfield, Rugeley, Sutton Coldfield, Atherstone, Birmingham, Walsall, C
318oalville, Hinckley, West Bromwich and surrounding areas. Wherever you are, we're within easy reach."}),r.jsxs("div",{className:"bg-muted/50 border border-border p-6 md:p-8 mt-12 rounded-sm",children:[r.jsx("h2",{className:"font-heading text-2xl font-bold text-foreground mb-3",children:"Need a Boiler Quote?"}),r.jsxs("p",{className:"text-muted-foreground leading-relaxed mb-6",children:["Get in touch for a ",r.jsx("strong",{children:"free, no-obligation assessment"}),". We'll inspect your current system, explain your options and provide a clear quote â all before you commit to anything."]}),r.jsxs("div",{className:"flex flex-col sm:flex-row gap-4",children:[r.jsx(S,{to:"/contact",className:"inline-flex items-center justify-center bg-secondary text-secondary-foreground px-6 py-3 text-sm font-semibold tracking-wide hover:bg-steel-light transition-colors",children:"Request a Free Quote"}),r.jsxs("a",{href:"tel:03300432234",className:"inline-flex items-center justify-center gap-2 border border-border px-6 py-3 text-sm font-semibold text-foreground hover:bg-muted transition-colors",children:[r.jsx(me,{className:"h-4 w-4"})," 0330 043 2234"]})]})]})]})})]}),r.jsx(rs,{}),r.jsx(We,{}),r.jsx(Ve,{}),r.jsx("div",{className:"h-14 lg:hidden"})]}),LB=()=>r.jsxs("div",{className:"min-h-screen",children:[r.jsx(Se,{title:"Accessible Bathroom Design Ideas & Grants Guide",description:"Homeowner's guide to designing an accessible bathroom: layout ideas, grab rail placement, DFG funding routes and how to plan for ageing in place.",ogImage:tr["accessible-bathrooms-tamworth-guide"],schemaJson:{"@context":"https://schema.org","@type":"BlogPosting",headline:"Accessible Bathrooms in Tamworth: A Guide to Safe, Stylish Design",description:"Planning an accessible bathroom in Tamworth? Expert advice on walk-in showers, grab rails, wet rooms and more.",author:{"@type":"Organization",name:"Blue Sky Luxury Bathrooms"},publisher:{"@type":"Organization",name:"Blue Sky Luxury Bathrooms"},datePublished:"2026-03-27",mainEntityOfPage:"https://blueskybathrooms.co.uk/blog/accessible-bathrooms-tamworth-guide"}}),r.jsx(Be,{}),r.jsxs("main",{children:[r.jsx("section",{className:"pt-32 pb-16 section-dark",children:r.jsxs("div",{className:"container-narrow px-4 max-w-3xl mx-auto",children:[r.jsxs(S,{to:"/blog",className:"inline-flex items-center gap-1 text-sm text-primary-foreground/60 hover:text-primary-foreground mb-6 transition-colors",children:[r.jsx(Bu,{className:"h-4 w-4"})," Back to Blog"]}),r.jsxs("div",{className:"flex items-center gap-4 text-xs text-primary-foreground/60 mb-4",children:[r.jsxs("span",{className:"flex items-center gap-1",children:[r.jsx(Ea,{className:"h-3.5 w-3.5"})," 27 March 2026"]}),r.jsxs("span",{className:"flex items-center gap-1",children:[r.jsx(Wu,{className:"h-3.5 w-3.5"})," Blue Sky Luxury Bathrooms"]}),r.jsx("span",{children:"6 min read"})]}),r.jsxs("h1",{className:"font-heading text-3xl md:text-4xl font-bold text-primary-foreground leading-tight",children:["Accessible Bathrooms in Tamworth:",r.jsx("br",{className:"hidden sm:block"})," Safe, Stylish Design That Works"]})]})}),r.jsx("div",{className:"container-narrow px-4 max-w-3xl mx-auto -mt-4 mb-8",children:r.jsx("div",{className:"overflow-hidden",children:r.jsx("img",{src:tr["accessible-bathrooms-tamworth-guide"],alt:"Walk-in shower installation with storage niche â accessible bathroom by Blue Sky Luxury Bathrooms",className:"w-full h-64 md:h-80 object-cover",width:800,height:320})})}),r.jsx("article",{className:"section-padding pt-0",children:r.jsxs("div",{className:"container-narrow px-4 max-w-3xl mx-auto prose-custom",children:[r.jsxs("p",{className:"text-lg text-muted-foreground leading-relaxed mb-8",children:["An ",r.jsx("strong",{children:"accessible bathroom"})," shouldn't mean compromising on style. Whether you're adapting a bathroom for an elderly family member, planning ahead for the future or accommodating a disability, a well-designed accessible bathroom can be every bit as beautiful as a standard one â and far more practical. Here's what homeowners in Tamworth and the West Midlands need to know."]}),r.jsx("h2",{className:"font-heading text-2xl font-bold text-foreground mt-12 mb-4",children:"Why Accessible Bathroom Design Matters"}),r.jsx("p",{className:"text-muted-foreground leading-relaxed mb-4",children:"The bathroom is statistically the most dangerous room in the house. Wet surfaces, confined spaces and the need to step over bath edges all contribute to falls â the leading cause of injury-related hospital admissions for people over
31865 in the UK."}),r.jsxs("p",{className:"text-muted-foreground leading-relaxed mb-8",children:["A purpose-designed ",r.jsx(S,{to:"/services/accessible-bathrooms",className:"text-secondary hover:underline",children:"accessible bathroom"})," eliminates these risks whilst creating a space that's comfortable, dignified and genuinely enjoyable to use. And with the right approach, no one would ever know it was designed with accessibility in mind."]}),r.jsx("h2",{className:"font-heading text-2xl font-bold text-foreground mt-12 mb-4",children:"Key Features of an Accessible Bathroom"}),r.jsx("h3",{className:"font-heading text-xl font-semibold text-foreground mt-8 mb-3",children:"Level-Access Showers and Wet Rooms"}),r.jsxs("p",{className:"text-muted-foreground leading-relaxed mb-4",children:["Removing the step into a shower tray is one of the most impactful changes you can make. A ",r.jsx(S,{to:"/services/walk-in-shower-installation",className:"text-secondary hover:underline",children:"walk-in shower"})," or ",r.jsx(S,{to:"/services/wet-room-installation",className:"text-secondary hover:underline",children:"wet room"})," provides step-free access, reduces trip hazards and looks contemporary and premium."]}),r.jsx("h3",{className:"font-heading text-xl font-semibold text-foreground mt-8 mb-3",children:"Grab Rails and Support"}),r.jsx("p",{className:"text-muted-foreground leading-relaxed mb-4",children:"Modern grab rails are a world away from the clinical-looking bars of the past. Today's options come in brushed brass, matt black and chrome finishes that complement your bathroom's design rather than detract from it. Positioned correctly, they provide essential support without dominating the space."}),r.jsx("h3",{className:"font-heading text-xl font-semibold text-foreground mt-8 mb-3",children:"Non-Slip Flooring"}),r.jsxs("p",{className:"text-muted-foreground leading-relaxed mb-4",children:["Quality ",r.jsx(S,{to:"/services/tiling-services",className:"text-secondary hover:underline",children:"tiling"})," with appropriate slip resistance is essential. We use tiles rated R10 or above for wet areas, ensuring safety without sacrificing the look you want. Paired with ",r.jsx(S,{to:"/services/underfloor-heating",className:"text-secondary hover:underline",children:"underfloor heating"}),", the floor stays warm and dries quickly."]}),r.jsx("h3",{className:"font-heading text-xl font-semibold text-foreground mt-8 mb-3",children:"Comfort-Height Toilets and Basins"}),r.jsx("p",{className:"text-muted-foreground leading-relaxed mb-8",children:"Raised-height toilets and wall-hung basins at the right level make a significant difference to comfort and independence. These are standard options in modern bathrooms and blend seamlessly with any design scheme."}),r.jsx("h2",{className:"font-heading text-2xl font-bold text-foreground mt-12 mb-4",children:"Accessible Doesn't Mean Clinical"}),r.jsxs("p",{className:"text-muted-foreground leading-relaxed mb-8",children:["This is something we feel strongly about at ",r.jsx(S,{to:"/",className:"text-secondary hover:underline font-semibold",children:"Blue Sky Luxury Bathrooms"}),". Too many accessible bathrooms look like they belong in a hospital, not a home. Our ",r.jsx(S,{to:"/services/bathroom-design-planning",className:"text-secondary hover:underline",children:"design and planning"})," process ensures that every accessible feature is integrated thoughtfully â so the finished bathroom feels like a ",r.jsx(S,{to:"/services/luxury-bathroom-renovations",className:"text-secondary hover:underline",children:"luxury renovation"}),", not a medical adaptation."]}),r.jsx("h2",{className:"font-heading text-2xl font-bold text-foreground mt-12 mb-4",children:"Planning an Accessible Bathroom in Tamworth"}),r.jsx("p",{className:"text-muted-foreground leading-relaxed mb-4",children:"Every accessible bathroom is unique because every person's needs are different. Our process begins with a thorough consultation to understand:"}),r.jsxs("ul",{className:"list-disc pl-6 text-muted-foreground space-y-2 mb-4",children:[r.jsx("li",{children:"Current and anticipated mobility requirements"}),r.jsx("li",{children:"The physical layout and constraints of the existing space"}),r.jsxs("li",{children:["Any ",r.jsx(S,{to:"/services/plumbing-services",className:"text-secondary hover:underline",children:"plumbing"})," or structural considerations"]}),r.jsx("li",{children:"Style preferences â because accessibility and aesthetics go hand in hand"})]}),r.jsxs("p",{className:"text-muted-foreground leading-relaxed mb-8",children:["We then design a solution that addresses every need whilst looking exceptional. Visit our ",r.jsx(S,{to:"/services/bathroom-showroom",className:"text-secondary hover:underline",children:"Tamworth showroom"})," to see accessible options in person."]}),r.jsx("h2",{className:"font-heading text-2xl font-bold text-foreground mt-12 mb-4",children:"Funding and Grants"}),r.jsx("p",{className:"text-muted-foreground leading-relaxed mb-8",children:"Many homeowners don't realise that local authority Disabled Facilities Grants (DFGs) may be available to help fund accessible bathroom adaptations. These are means-tested and administered by your local council. We're happy to provide quotes and documentation to support your application."}),r.jsx("h2",{className:"font-heading text-2xl font-bold text-foreground mt-12 mb-4",children:"Serving Tamworth and Beyond"}),r.jsx("p",{className:"text-muted-foreground leading-relaxed mb-8",children:"We install accessible bathrooms across Tamworth, Lichfield, Rugeley, Sutton Coldfield, Burton-on-Trent, Atherstone, Nuneaton, Birmingham, Cannock, Walsall, C
318oalville, Hinckley, Derby and West Bromwich. With over 20 years' experience and more than 1,000 completed projects, our team understands the sensitivity and precision these installations require."}),r.jsx("div",{className:"flex flex-wrap gap-2 mb-8",children:[{name:"Tamworth",path:"/areas/tamworth"},{name:"Lichfield",path:"/areas/lichfield"},{name:"Sutton Coldfield",path:"/areas/sutton-coldfield"},{name:"Burton-on-Trent",path:"/areas/burton-on-trent"},{name:"Birmingham",path:"/areas/birmingham"},{name:"Cannock",path:"/areas/cannock"},{name:"Nuneaton",path:"/areas/nuneaton"},{name:"All service areas",path:"/areas"}].map(e=>r.jsx(S,{to:e.path,className:"text-xs bg-muted/60 border border-border px-3 py-1.5 hover:bg-secondary/10 hover:border-secondary/30 transition-colors text-foreground",children:e.name},e.path))}),r.jsxs("p",{className:"text-muted-foreground leading-relaxed mb-8",children:["Related reading: our ",r.jsx(S,{to:"/blog/wet-room-installation-tamworth",className:"text-secondary hover:underline",children:"wet room installation guide"}),", plus services including ",r.jsx(S,{to:"/services/bathroom-refurbishments",className:"text-secondary hover:underline",children:"bathroom refurbishments"}),", ",r.jsx(S,{to:"/services/cloakroom-ensuite",className:"text-secondary hover:underline",children:"cloakrooms & ensuites"})," and our ",r.jsx(S,{to:"/services/bathroom-installation",className:"text-secondary hover:underline",children:"complete bathroom installation"})," service. Browse ",r.jsx(S,{to:"/our-work",className:"text-secondary hover:underline",children:"Our Work"})," or check ",r.jsx(S,{to:"/reviews",className:"text-secondary hover:underline",children:"customer reviews"}),"."]}),r.jsxs("div",{className:"bg-muted/50 border border-border p-6 md:p-8 mt-12 rounded-sm",children:[r.jsx("h2",{className:"font-heading text-2xl font-bold text-foreground mb-3",children:"Let's Design Your Accessible Bathroom"}),r.jsxs("p",{className:"text-muted-foreground leading-relaxed mb-6",children:["Book your ",r.jsx("strong",{children:"free design consultation"})," and we'll visit your home to assess the space, discuss your needs and present options that combine safety, comfort and style. No obligation, no pressure â just expert advice from a team that genuinely cares about getting it right."]}),r.jsxs("div",{className:"flex flex-col sm:flex-row gap-4",children:[r.jsx(S,{to:"/contact",className:"inline-flex items-center justify-center bg-secondary text-secondary-foreground px-6 py-3 text-sm font-semibold tracking-wide hover:bg-steel-light transition-colors",children:"Request Your Free Consultation"}),r.jsxs("a",{href:"tel:03300432234",className:"inline-flex items-center justify-center gap-2 border border-border px-6 py-3 text-sm font-semibold text-foreground hover:bg-muted transition-colors",children:[r.jsx(me,{className:"h-4 w-4"})," 0330 043 2234"]})]})]})]})})]}),r.jsx(rs,{}),r.jsx(We,{}),r.jsx(Ve,{}),r.jsx("div",{className:"h-14 lg:hidden"})]}),MB=()=>{const e=nr();return b.useEffect(()=>{console.error("404 Error: User attempted to access non-existent route:",e.pathname)},[e.pathname]),r.jsxs("div",{className:"flex min-h-screen items-center justify-center bg-muted",children:[r.jsx(Se,{title:"Page Not Found | Blue Sky Luxury Bathrooms",description:"The page you're looking for doesn't exist. Return to Blue Sky Luxury Bathrooms to explore our bathroom installation services in Tamworth and the Midlands.",noIndex:!0}),r.jsxs("div",{className:"text-center",children:[r.jsx("h1",{className:"mb-4 text-4xl font-bold",children:"404"}),r.jsx("p",{className:"mb-4 text-xl text-muted-foreground",children:"Oops! Page not found"}),r.jsx("a",{href:"/",className:"text-primary underline hover:text-primary/90",children:"Return to Home"})]})]})},DB=[{label:"Bathrooms",services:[{icon:s2,name:"Bathroom Showroom",desc:"Explore complete bathroom displays in our Tamworth showroom. See products in person before you commit.",path:"/services/bathroom-showroom"},{icon:pc,name:"Bathroom Installation",desc:"Complete bathroom fitting from demolition to final polish. One team, full warranty, no subcontractors.",path:"/services/bathroom-installation"},{icon:r2,name:"Bathroom Design & Planning",desc:"Bespoke bathroom designs that maximise your space and match your style.",path:"/services/bathroom-design-planning"},{icon:pc,name:"Luxury Bathroom Renovations",desc:"Premium materials, precision craftsmanship, and bespoke design for exceptional bathrooms.",path:"/services/luxury-bathroom-renovations"},{icon:a2,name:"Bathroom Refurbishments",desc:"Cost-effective bathroom refreshes â new tiles, fixtures, and finishes without a full rebuild.",path:"/services/bathroom-refurbishments"},{icon:YS,name:"Cloakroom & Ensuite",desc:"Smart, space-maximising designs for compact bathrooms that add convenience and value.",path:"/services/cloakroom-ensuite"}
318,{icon:Oy,name:"Accessible Bathrooms",desc:"Dignity-first accessible designs with level-access showers, grab rails, and adapted layouts.",path:"/services/accessible-bathrooms"}]},{label:"Showers & Wet Rooms",services:[{icon:Uy,name:"Wet Room Installation",desc:"Fully tanked, level-access wet rooms with specialist waterproofing systems.",path:"/services/wet-room-installation"},{icon:Yy,name:"Walk-In Shower Installation",desc:"Frameless glass walk-in showers that create open, contemporary bathing spaces.",path:"/services/walk-in-shower-installation"}]},{label:"Heating & Plumbing",services:[{icon:zy,name:"Boiler Replacement",desc:"Energy-efficient boiler installation by Gas Safe registered engineers with full manufacturer warranty.",path:"/services/boiler-replacement"},{icon:il,name:"Plumbing Services",desc:"Reliable repairs and installations. No call-out fees, transparent pricing, experienced plumbers.",path:"/services/plumbing-services"},{icon:i2,name:"Underfloor Heating",desc:"Electric and water-fed systems that eliminate cold floors and free wall space.",path:"/services/underfloor-heating"}]},{label:"Kitchens & Tiling",services:[{icon:_y,name:"Kitchen Installation",desc:"Professional kitchen fitting with certified electrics and Gas Safe connections.",path:"/services/kitchen-installation"},{icon:XS,name:"Tiling & Re-tiling",desc:"Expert wall and floor tiling with large-format capability and waterproof systems.",path:"/services/tiling-services"}]}],IB=({cat:e})=>{const{ref:t,isVisible:o}=se();return r.jsx("section",{className:"section-padding first:pt-12",children:r.jsxs("div",{ref:t,className:"container-narrow",children:[r.jsxs("div",{className:`reveal ${o?"visible":""}`,children:[r.jsx("h2",{className:"font-heading text-2xl md:text-3xl font-bold text-foreground mb-2",children:e.label}),r.jsx("div",{className:"section-divider mb-6"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6",children:e.services.map((a,n)=>r.jsxs(S,{to:a.path,className:`group premium-card p-6 reveal ${o?"visible":""}`,style:{transitionDelay:`${200+n*80}ms`},children:[r.jsx("div",{className:"flex items-center justify-center h-11 w-11 bg-primary/5 rounded-sm mb-4 group-hover:bg-secondary/10 transition-colors duration-300",children:r.jsx(a.icon,{className:"h-5 w-5 text-secondary"})}),r.jsx("h3",{className:"font-heading text-lg font-semibold text-foreground mb-2",children:a.name}),r.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed",children:a.desc})]},a.path))})]})})},HB=()=>r.jsxs("div",{className:"min-h-screen",children:[r.jsx(Se,{title:"Bathroom & Plumbing Services Tamworth | Blue Sky",description:"14 expert services: bathroom installation, wet rooms, walk-in showers, kitchen fitting, boiler replacement, plumbing & more. Tamworth's one-team specialists."}),r.jsx(Be,{}),r.jsxs("main",{children:[r.jsx("section",{className:"section-dark pt-36 pb-16 md:pt-44 md:pb-20",children:r.jsxs("div",{className:"container-narrow px-4",children:[r.jsx(Dr,{items:[{label:"Services"}],className:"text-primary-foreground/60 mb-6"}),r.jsxs("div",{className:"max-w-3xl",children:[r.jsx("p",{className:"text-sm font-semibold tracking-widest uppercase text-steel-light mb-4 opacity-0 animate-[fadeInUp_0.6s_0.1s_ease-out_forwards]",children:"Blue Sky Luxury Bathrooms · Tamworth"}),r.jsx("div",{className:"section-divider mb-5 opacity-0 animate-[fadeInUp_0.6s_0.2s_ease-out_forwards]"}),r.jsx("h1",{className:"font-heading text-4xl md:text-5xl lg:text-6xl font-bold leading-tight text-primary-foreground mb-6 text-balance-heading opacity-0 animate-[fadeInUp_0.7s_0.3s_ease-out_forwards]",children:r.jsx("span",{className:"block",children:"Our Services"})}),r.jsx("p",{className:"text-lg text-primary-foreground/80 max-w-xl leading-relaxed opacity-0 animate-[fadeInUp_0.6s_0.5s_ease-out_forwards]",children:"From complete bathroom and kitchen installations to boiler replacement â every service delivered by one dedicated team with a full warranty. No subcontractors, no compromises."})]})]})}),DB.map(e=>r.jsx(IB,{cat:e},e.label))]}),r.jsx(We,{}),r.jsx(Ve,{}),r.jsx("div",{className:"h-14 lg:hidden"})]}),Qe=({children:e,className:t="",animation:o="reveal"})=>{const{ref:a,isVisible:n}=se();return r.jsx("div",{ref:a,className:`${o} ${n?"visible":""} ${t}`,children:e})},Ye=({data:e})=>
318{const[t,o]=b.useState(null),a=xb(e.slug),n=e.slug.length%ct.length,s=ct[n],i={"@context":"https://schema.org","@type":"FAQPage",mainEntity:e.faqs.map(d=>({"@type":"Question",name:d.q,acceptedAnswer:{"@type":"Answer",text:d.a}}))},l={"@context":"https://schema.org","@type":"Service",serviceType:e.schemaType,provider:{"@type":"LocalBusiness",name:"Blue Sky Luxury Bathrooms",telephone:"+44 330 043 2234",address:{"@type":"PostalAddress",streetAddress:"Unit 7 Cavendish",addressLocality:"Tamworth",postalCode:"B79 7XH",addressCountry:"GB"}},areaServed:["Tamworth","Lichfield","Rugeley","Swadlincote","Burton-on-Trent","Sutton Coldfield","Atherstone","Nuneaton","Birmingham","Cannock","Walsall","Coalville","Hinckley","Derby","West Bromwich"].map(d=>({"@type":"Place",name:d})),description:e.metaDescription};return r.jsxs("div",{className:"min-h-screen",children:[r.jsx(Se,{title:e.title,description:e.metaDescription,ogImage:s==null?void 0:s.src,schemaJson:[l,i]}),r.jsx(Be,{}),r.jsxs("main",{children:[r.jsxs("section",{className:"relative section-dark pt-36 pb-16 md:pt-44 md:pb-20 overflow-hidden",children:[r.jsxs("div",{className:"absolute inset-0",children:[r.jsx("img",{src:s.src,alt:s.alt,className:"h-full w-full object-cover opacity-40",width:1920,height:800}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-r from-primary via-primary/95 to-primary/70"})]}),r.jsxs("div",{className:"relative container-narrow px-4",children:[r.jsx(Dr,{items:[{label:"Services",path:"/services"},{label:e.heroLine1+(e.heroLine2?` ${e.heroLine2}`:"")}],className:"text-primary-foreground/60 mb-6"}),r.jsxs("div",{className:"max-w-3xl",children:[r.jsx("p",{className:"text-sm font-semibold tracking-widest uppercase text-steel-light mb-4 opacity-0 animate-[fadeInUp_0.6s_0.1s_ease-out_forwards]",children:"Blue Sky Luxury Bathrooms · Tamworth"}),r.jsx("div",{className:"section-divider mb-5 opacity-0 animate-[fadeInUp_0.6s_0.2s_ease-out_forwards]"}),r.jsxs("h1",{className:"font-heading text-4xl md:text-5xl lg:text-6xl font-bold leading-tight text-primary-foreground mb-6 text-balance-heading opacity-0 animate-[fadeInUp_0.7s_0.3s_ease-out_forwards]",children:[r.jsx("span",{className:"block",children:e.heroLine1}),r.jsx("span",{className:"block",children:e.heroLine2}),e.heroLine3&&r.jsx("span",{className:"block",children:e.heroLine3})]}),r.jsx("p",{className:"text-lg text-primary-foreground/80 mb-8 max-w-xl leading-relaxed opacity-0 animate-[fadeInUp_0.6s_0.5s_ease-out_forwards]",children:e.heroSubheadline}),r.jsxs("div",{className:"flex flex-col sm:flex-row items-start gap-4 mb-6 opacity-0 animate-[fadeInUp_0.6s_0.6s_ease-out_forwards]",children:[r.jsx(S,{to:"/contact",className:"btn-premium",children:"Request Your Free Estimate"}),r.jsxs("a",{href:"tel:03300432234",className:"flex items-center gap-2 px-8 py-4 border border-primary-foreground/30 text-primary-foreground text-base font-bold hover:border-primary-foreground/60 hover:bg-primary-foreground/5 transition-all duration-300",children:[r.jsx(me,{className:"h-5 w-5"}),"0330 043 2234"]})]}),r.jsx("p",{className:"text-sm text-primary-foreground/60 opacity-0 animate-[fadeInUp_0.6s_0.7s_ease-out_forwards]",children:e.trustMicro}),r.jsxs("div",{className:"flex flex-wrap items-center gap-2 mt-6 opacity-0 animate-[fadeInUp_0.6s_0.8s_ease-out_forwards]",children:[r.jsxs("a",{href:"https://share.google/Zbx2mfKU8RQlkBidi",target:"_blank",rel:"noopener noreferrer","aria-label":"Read our 4.9-star reviews on Google",className:"inline-flex items-center gap-2 bg-primary-foreground/10 backdrop-blur-sm border border-primary-foreground/20 px-4 py-1.5 rounded-full hover:bg-primary-foreground/15 hover:border-primary-foreground/40 transition-colors",children:[r.jsx("div",{className:"flex",children:[...Array(5)].map((d,c)=>r.jsx(sl,{className:"h-3.5 w-3.5 fill-yellow-400 text-yellow-400"},c))}),r.jsx("span",{className:"text-xs font-semibold text-primary-foreground",children:"4.9 Google · 38+ reviews"})]}),r.jsxs("a",{href:"https://www.checkatrade.com/trades/bluesky23ltd411522",target:"_blank",rel:"noopener noreferrer","aria-label":"View our Checkatrade profile â 9.85 out of 10 from 141 reviews",className:"inline-flex items-center gap-2 bg-primary-foreground
318/10 backdrop-blur-sm border border-primary-foreground/20 px-4 py-1.5 rounded-full hover:bg-primary-foreground/15 hover:border-primary-foreground/40 transition-colors",children:[r.jsx("span",{className:"text-xs font-bold tracking-wide text-gold-light",children:"Checkatrade"}),r.jsx("span",{className:"text-xs font-semibold text-primary-foreground",children:"9.85/10 · 141 reviews"})]}),r.jsxs("a",{href:"https://www.trustatrader.com/traders/blue-sky-23-ltd-bathroom-fitters-tamworth",target:"_blank",rel:"noopener noreferrer","aria-label":"View our TrustATrader profile â 4.99 out of 5 from 13 reviews",className:"inline-flex items-center gap-2 bg-primary-foreground/10 backdrop-blur-sm border border-primary-foreground/20 px-4 py-1.5 rounded-full hover:bg-primary-foreground/15 hover:border-primary-foreground/40 transition-colors",children:[r.jsx("span",{className:"text-xs font-bold tracking-wide text-gold-light",children:"TrustATrader"}),r.jsx("span",{className:"text-xs font-semibold text-primary-foreground",children:"4.99/5 · 13 reviews"})]})]})]})]})]}),r.jsx("section",{className:"section-cream border-y border-border",children:r.jsx("div",{className:"container-narrow px-4 py-8",children:r.jsx(Qe,{children:r.jsx("div",{className:"grid grid-cols-2 lg:grid-cols-5 gap-6",children:[{icon:Dt,label:"20+ Years' Experience",sub:"Industry expertise"},{icon:nl,label:"1000+ Projects",sub:"Successfully completed"},{icon:Ha,label:"Full Warranty",sub:"On every installation"},{icon:al,label:"No Subcontractors",sub:"One dedicated team"},{icon:Ia,label:"Free Consultations",sub:"No obligation quotes"}].map(d=>r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx("div",{className:"flex items-center justify-center h-10 w-10 bg-primary/10 rounded-sm shrink-0",children:r.jsx(d.icon,{className:"h-5 w-5 text-secondary"})}),r.jsxs("div",{children:[r.jsx("p",{className:"text-sm font-bold text-foreground leading-tight",children:d.label}),r.jsx("p",{className:"text-xs text-muted-foreground",children:d.sub})]})]},d.label))})})})}),r.jsx("section",{className:"section-padding",children:r.jsx("div",{className:"container-narrow max-w-4xl",children:r.jsxs(Qe,{children:[e.quickFacts&&e.quickFacts.length>0&&r.jsx("div",{className:"mb-10 border border-border bg-card",children:r.jsx("div",{className:"grid grid-cols-2 lg:grid-cols-4 divide-x divide-y lg:divide-y-0 divide-border",children:e.quickFacts.map(d=>r.jsxs("div",{className:"p-5",children:[r.jsx("p",{className:"text-xs font-semibold tracking-widest uppercase text-secondary mb-2",children:d.label}),r.jsx("p",{className:"font-heading text-xl md:text-2xl font-bold text-foreground leading-tight",children:d.value}),d.note&&r.jsx("p",{className:"text-xs text-muted-foreground mt-1.5 leading-snug",children:d.note})]},d.label))})}),r.jsx("h2",{className:"font-heading text-3xl md:text-4xl font-bold text-foreground mb-8 text-balance-heading",children:e.overviewHeading}),r.jsx("div",{className:"space-y-4 text-muted-foreground leading-relaxed",children:e.overviewContent.map((d,c)=>r.jsx("p",{children:d},c))})]})})}),a.length>1&&r.jsx("section",{className:"py-10 bg-muted/30",children:r.jsx("div",{className:"container-narrow",children:r.jsxs(Qe,{children:[r.jsxs("div",{className:"text-center mb-8",children:[r.jsx("p",{className:"text-sm font-semibold tracking-widest uppercase text-secondary mb-3",children:"Real Client Homes"}),r.jsx("div",{className:"section-divider mx-auto mb-4"}),r.jsxs("h2",{className:"font-heading text-2xl md:text-3xl font-bold text-foreground mb-3",children:["Recent ",e.primaryKeyword," Projects"]}),r.jsx("p",{className:"text-muted-foreground max-w-xl mx-auto leading-relaxed",children:"Every photo below was taken in a genuine client's home after completion â supplied and installed by our in-house Blue Sky team."})]}),r.jsx("div",{className:"grid grid-cols-2 md:grid-cols-3 gap-3",children:a.slice(0,6).map((d,c)=>r.jsx("div",{className:"aspect-[4/3] overflow-hidden group",children:r.jsx("img",{src:d.src,alt:d.alt,className:"h-full w-full object-cover group-hover:scale-105 transition-transform duration-700",loading:"lazy",width:400,height:300})},c))}),r.jsx("div",{className:"text-center mt-10",children:r.jsxs(S,{to:"/our-work",className:"inline-flex items-center gap-2 bg-primary text-primary-foreground px-7 py-3 text-sm font-semibold tracking-wide hover:bg-navy-light transition-all duration-300 hover:shadow-lg group",children:["View All Projects",r.jsx(Da,{className:"h-4 w-4 group-hover:translate-x-1 transition-transform"})]})})]})})}),r.jsx("section",{className:"section-dark section-padding",children:r.jsx("div",{className:"container-narrow max-w-4xl",children:r.jsxs(Qe,{children:[r.jsxs("div",{className:"flex items-start gap-4 mb-6",children:[r.jsx(l2,{className:"h-8 w-8 text-gold shrink-0 mt-1"}),r.jsx("h2",{className:"font-heading text-3xl md:text-4xl font-bold text-primary-foreground text-balance-heading",children:e.problemHeading})]}
318),r.jsx("div",{className:"space-y-4 text-primary-foreground/80 leading-relaxed",children:e.problemContent.map((d,c)=>r.jsx("p",{children:d},c))})]})})}),r.jsx("section",{className:"section-padding",children:r.jsxs("div",{className:"container-narrow max-w-4xl",children:[r.jsxs(Qe,{children:[r.jsx("p",{className:"text-sm font-semibold tracking-widest uppercase text-secondary mb-3",children:"Our Process"}),r.jsx("div",{className:"section-divider mb-5"}),r.jsxs("h2",{className:"font-heading text-3xl md:text-4xl font-bold text-foreground mb-10 text-balance-heading",children:["How We Deliver Results,",r.jsx("br",{className:"hidden sm:block"})," Step by Step"]})]}),r.jsx("div",{className:"space-y-6",children:e.processSteps.map((d,c)=>r.jsx(Qe,{children:r.jsxs("div",{className:"flex gap-5 items-start",children:[r.jsx("div",{className:"flex items-center justify-center h-10 w-10 bg-secondary text-secondary-foreground rounded-sm shrink-0 text-sm font-bold",children:c+1}),r.jsxs("div",{children:[r.jsx("h3",{className:"font-heading text-lg font-semibold text-foreground mb-1",children:d.title}),r.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed",children:d.description})]})]})},c))})]})}),r.jsx("section",{className:"section-cream section-padding",children:r.jsxs("div",{className:"container-narrow max-w-4xl",children:[r.jsxs(Qe,{children:[r.jsx("p",{className:"text-sm font-semibold tracking-widest uppercase text-secondary mb-3",children:"Why It Matters"}),r.jsx("div",{className:"section-divider mb-5"}),r.jsxs("h2",{className:"font-heading text-3xl md:text-4xl font-bold text-foreground mb-10 text-balance-heading",children:["What You Gain When You",r.jsx("br",{className:"hidden sm:block"})," Work With Us"]})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:e.benefits.map((d,c)=>r.jsx(Qe,{children:r.jsxs("div",{className:"premium-card p-6",children:[r.jsx("h3",{className:"font-heading text-lg font-semibold text-foreground mb-2",children:d.title}),r.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed",children:d.description})]})},c))})]})}),r.jsx("section",{className:"section-padding",children:r.jsx("div",{className:"container-narrow max-w-4xl",children:r.jsxs(Qe,{children:[r.jsx("h2",{className:"font-heading text-3xl md:text-4xl font-bold text-foreground mb-8 text-balance-heading",children:e.deepDetailHeading}),r.jsx("div",{className:"space-y-4 text-muted-foreground leading-relaxed",children:e.deepDetailContent.map((d,c)=>r.jsx("p",{children:d},c))}),r.jsxs("div",{className:"mt-10 pt-6 border-t border-border",children:[r.jsx("h3",{className:"font-heading text-lg font-semibold text-foreground mb-4",children:"Related Services"}),r.jsx("div",{className:"flex flex-wrap gap-3",children:e.relatedServices.map(d=>r.jsx(S,{to:d.path,className:"text-sm bg-primary/5 border border-border px-4 py-2 hover:bg-secondary/10 hover:border-secondary/30 transition-all duration-200 text-foreground",children:d.name},d.path))})]}),e.relatedAreas&&e.relatedAreas.length>0&&r.jsxs("div",{className:"mt-8 pt-6 border-t border-border",children:[r.jsx("h3",{className:"font-heading text-lg font-semibold text-foreground mb-4",children:"Areas We Serve"}),r.jsx("div",{className:"flex flex-wrap gap-3",children:e.relatedAreas.map(d=>r.jsx(S,{to:d.path,className:"text-sm bg-primary/5 border border-border px-4 py-2 hover:bg-secondary/10 hover:border-secondary/30 transition-all duration-200 text-foreground",children:d.name},d.path))})]})]})})}),e.showroomMap&&r.jsx("section",{className:"section-padding bg-muted/30",children:r.jsxs("div",{className:"container-narrow",children:[r.jsx(Qe,{children:r.jsxs("div",{className:"text-center mb-10",children:[r.jsx("p",{className:"text-sm font-semibold tracking-widest uppercase text-gold mb-3",children:"Find Us"}),r.jsx("div",{className:"section-divider mx-auto mb-4"}),r.jsx("h2",{className:"font-heading text-3xl md:text-4xl font-bold text-foreground text-balance-heading",children:e.showroomMap.heading??"Visit Our Tamworth Showroom"}),e.showroomMap.subheading&&r.jsx("p",{className:"text-muted-foreground mt-3 max-w-2xl mx-auto",children:e.showroomMap.subheading}
318),r.jsx("p",{className:"text-foreground/80 mt-4 font-medium",children:e.showroomMap.address})]})}),r.jsx(Qe,{children:r.jsx("div",{className:"bg-card border border-border overflow-hidden shadow-sm",children:r.jsx("iframe",{src:e.showroomMap.embedUrl,width:"100%",height:"450",style:{border:0},allowFullScreen:!0,loading:"lazy",referrerPolicy:"no-referrer-when-downgrade",title:"Blue Sky Luxury Bathrooms showroom location"})})})]})}),r.jsx("section",{className:"section-dark section-padding",children:r.jsxs("div",{className:"container-narrow max-w-3xl",children:[r.jsx(Qe,{children:r.jsxs("div",{className:"text-center mb-10",children:[r.jsx("p",{className:"text-sm font-semibold tracking-widest uppercase text-gold mb-3",children:"Frequently Asked Questions"}),r.jsx("div",{className:"section-divider mx-auto mb-4"}),r.jsxs("h2",{className:"font-heading text-3xl md:text-4xl font-bold text-primary-foreground text-balance-heading",children:[e.primaryKeyword," â Your Questions Answered"]})]})}),r.jsx("div",{className:"space-y-2",children:e.faqs.map((d,c
318)=>r.jsx(Qe,{children:r.jsxs("div",{className:"border border-primary-foreground/10 hover:border-primary-foreground/20 transition-colors",children:[r.jsxs("button",{onClick:()=>o(t===c?null:c),className:"w-full flex items-center justify-between px-5 py-4 text-left text-sm font-medium text-primary-foreground hover:text-primary-foreground/80 transition-colors",children:[d.q,r.jsx(gr,{className:`h-4 w-4 shrink-0 ml-4 transition-transform duration-300 ${t===c?"rotate-180":""}`})]}),r.jsx("div",{className:"overflow-hidden transition-all duration-300",style:{maxHeight:t===c?"200px":"0",opacity:t===c?1:0},children:r.jsx("div",{className:"px-5 pb-4 text-sm text-primary-foreground/70 leading-relaxed",children:d.a})})]})},c))})]})}),r.jsx(th,{}),r.jsxs("section",{className:"relative section-padding bg-secondary overflow-hidden",children:[r.jsxs("div",{className:"absolute inset-0",children:[r.jsx("img",{src:er.src,alt:er.alt,className:"h-full w-full object-cover opacity-30",loading:"lazy",width:1600,height:900}),r.jsx("div",{className:"absolute inset-0 bg-secondary/90"})]}),r.jsx("div",{className:"relative container-narrow text-center",children:r.jsxs(Qe,{children:[r.jsx("div",{className:"section-divider mx-auto mb-5",style:{background:"hsl(38 70% 55%)"}}),r.jsx("h2",{className:"font-heading text-3xl md:text-4xl font-bold text-secondary-foreground mb-4 text-balance-heading",children:e.ctaHeading}),r.jsx("p",{className:"text-secondary-foreground/80 mb-8 max-w-lg mx-auto",children:e.ctaSubtext}),r.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-center gap-4",children:[r.jsx(S,{to:"/contact",className:"bg-primary text-primary-foreground px-8 py-4 text-base font-semibold tracking-wide hover:bg-navy-light transition-all duration-300 hover:shadow-lg",children:"Request Your Free Estimate"}),r.jsxs("a",{href:"tel:03300432234",className:"flex items-center gap-2 px-8 py-4 border border-secondary-foreground/30 text-secondary-foreground text-base font-bold hover:border-secondary-foreground/60 hover:bg-secondary-foreground/5 transition-all duration-300",children:[r.jsx(me,{className:"h-5 w-5"}),"0330 043 2234"]})]})]})})]})]}),r.jsx(We,{}),r.jsx(Ve,{}),r.jsx("div",{className:"h-14 lg:hidden"})]})},OB={slug:"bathroom-showroom",title:"Bathroom Showroom Tamworth | Open MonâSat, Free Design",metaDescription:"Walk into our Tamworth bathroom showroom on Cavendish B79 7XH. Full displays, walk-in baths and tiles to see in person. Free design consultation. 4.9â
, 38+ Google reviews.",heroLine1:"Visit Our Bathroom",heroLine2:"Showroom in Tamworth",heroLine3:"See It Before You Build It",heroSubheadline:"Touch the tiles, feel the fixtures, and explore complete bathroom displays â so you can make confident decisions before a single tool hits the wall.",trustMicro:"â
Over 1,000 bathrooms completed · Free design consultations · Open Monday to Saturday",overviewHeading:"Why Visit a Bathroom Showroom Before You Renovate?",overviewContent:["Choosing a new bathroom from a screen is like buying shoes without trying them on. Colours shift, textures vanish, and proportions deceive. Our Tamworth showroom eliminates that guesswork entirely. Walk through fully built displays, run your hand across worktops, test tap mechanisms, and compare tile finishes under real lighting.","Our showroom is not a warehouse stacked with boxed products. Every display is a finished bathroom â plumbed, tiled, and lit â so you experience exactly what your completed room will look and feel like. We stock products from leading UK and European manufacturers, carefully selected for durability, aesthetics, and long-term value.","Whether you are planning a compact ensuite, a full family bathroom, or a luxury wet room, our design team is on hand to walk you through options that match your space, taste, and budget. There is no pressure to buy on the day. We want you to leave with clarity and confidence.","Based at Unit 7 Cavendish in Tamworth, we serve homeowners across Lichfield, Sutton Coldfield, Burton-on-Trent, Nuneaton, and the wider West Midlands. If you cannot visit in person, we also offer virtual consultations to get your project started."],problemHeading:"What Goes Wrong When You Skip the Showroom",problemContent:["Ordering online based on photographs leads to the most common â and costly â bathroom renovation mistakes. Tiles that looked warm on screen arr
318ive cold and grey. A basin that seemed generous turns out too shallow for daily use. Taps that photographed beautifully feel cheap in the hand.","Returns are expensive, delay timelines, and often incur restocking fees. Worse, some products cannot be returned once opened. The disruption of removing and replacing incorrectly specified items mid-installation can add weeks and hundreds of pounds to your project.","Colour matching is another frequent pitfall. A white suite, white tiles, and white grout can produce three visibly different shades of white unless viewed together under the same light. Our showroom lets you place products side by side and see exactly how they interact before you commit.","Many homeowners also underestimate the importance of ergonomics â the height of a vanity unit, the reach to a shower valve, or the entry width of a walk-in enclosure. These details are impossible to judge from a product listing but immediately obvious when you stand in front of a working display."],processSteps:[{title:"Book Your Visit",description:"Call us or book online. Walk-ins are welcome, but a booked appointment guarantees dedicated time with a designer."},{title:"Explore the Displays",description:"Walk through fully installed bathroom settings. Compare suites, tiles, taps, and accessories in real lighting and real proportions."},{title:"Design Consultation",description:"Sit down with our team to discuss your space, preferences, and budget. We create a preliminary design and product specification tailored to your home."},{title:"Receive Your Quote",description:"We provide a detailed, transparent quote covering products, labour, and timeline â no hidden costs, no surprises."},{title:"Installation Begins",description:"Once approved, our in-house team handles every aspect of your installation from demolition to final polish."}],benefits:[{title:"See Before You Spend",description:"Eliminate guesswork by viewing finished bathroom displays. Touch materials, test fixtures, and compare finishes in person before committing."},{title:"Expert Design Guidance",description:"Our showroom designers help you select products that match your vision, space, and budget â avoiding costly specification errors."},{title:"Trade-Quality Products",description:"We stock products from trusted manufacturers that are not available on the high street, offering superior durability and finish."},{title:"One Team from Start to Finish",description:"Everything from product selection through installation is handled by Blue Sky â one point of contact, one warranty, one team."},{title:"No Obligation",description:"Browse freely, ask questions, and take samples home. There is no pressure to commit on the day of your visit."},{title:"Local Convenience",description:"Based in Tamworth with easy access from Lichfield, Sutton Coldfield, Burton-on-Trent, and surrounding areas."}],deepDetailHeading:"What You Will Find in Our Tamworth Showroom",deepDetailContent:["Our showroom features a curated selection of complete bathroom suites ranging from contemporary minimalist designs to classic period-inspired collections. Each display is fully plumbed and tiled, allowing you to open drawers, turn taps, and assess build quality first-hand.","Tile displays include porcelain, ceramic, natural stone, and large-format options in a wide range of colours and textures. We display tiles in full panel sections â not just small swatches â so you can see how grout lines, patterns, and finishes work at scale.","Sanitaryware on display includes close-coupled and wall-hung WCs, freestanding and built-in baths, single and double vanity units, and a range of shower enclosures from frameless glass to quadrant designs. Every product is sourced for its comb
318ination of aesthetics, durability, and value.","Brassware and accessories are displayed in chrome, brushed nickel, matt black, and brushed brass finishes. You can compare tap styles â from traditional crosshead designs to modern single-lever and wall-mounted options â and see how they pair with different basin and bath styles.","For wet rooms and walk-in showers, we have working drainage displays and waterproofing system samples so you can understand the technical requirements before your project begins. Our team can explain tanking methods, gradient requirements, and suitable tile specifications.","We also display underfloor heating systems, heated towel rails, LED mirror cabinets, and ventilation solutions â the details that elevate a bathroom from functional to exceptional.","Homeowners from across the region visit our showroom, including those from Lichfield, Rugeley, Atherstone, Cannock, Walsall, Swadlincote, Coalville, Hinckley, Derby, West Bromwich, and Birmingham. We are open Monday to Friday 9amâ5pm, Saturday 9amâ1pm, and Sunday 10amâ2pm by appointment only.","If weekdays are difficult, our Sunday appointments give you a private, unhurried visit between 10:00am and 2:00pm â ideal for couples who need to decide together. You can read more on our Sunday showroom page and book a slot in advance."],faqs:[{q:"Where is your bathroom showroom located?",a:"We are based at Unit 7 Cavendish, Tamworth B79 7XH. Easy to reach from Lichfield, Sutton Coldfield, Burton-on-Trent, and the wider West Midlands."},{q:"Do I need to book an appointment to visit?",a:"Walk-ins are welcome Monday to Saturday. Sunday visits are by appointment only. Booking any day guarantees dedicated time with one of our designers."},{q:"Are you open on Sundays?",a:"Yes â Sunday 10:00amâ2:00pm, by appointment only. Call 0330 043 2234 or WhatsApp 07450 254818 to reserve a slot."},{q:"What are your opening hours?",a:"Monday to Friday 9amâ5pm, Saturday 9amâ1pm, and Sunday 10amâ2pm by appointment only."},{q:"Can I take tile samples home?",a:"Yes. We encourage you to take samples home so you can see how materials look in your own lighting and alongside your existing décor."},{q:"Do you offer a design service?",a:"Absolutely. Our in-house designers create bespoke bathroom plans tailored to your space, style, and budget. This service is included free with every installation project."},{q:"Are your products available to buy separately?",a:"Yes, we supply products on a standalone basis as well as part of our full design-and-install service."},{q:"Do you install the bathrooms you sell?",a:"Yes. We are a full-service company. Our in-house team handles every aspect of installation â plumbing, electrics, tiling, and finishing â with no subcontractors."},{q:"How much does a bathroom installation cost?",a:"Costs depend on the scope, size, and specification of your project. We provide detailed, transparent quotes after your consultation. There are no hidden charges."}],ctaHeading:"Ready to See Your New Bathroom in Person?",ctaSubtext:"Book your free showroom visit today. No obligation, no pressure â just expert guidance and inspiration for your next project.",relatedServices:[{name:"Sunday Showroom Appointments, Tamworth",path:"/bathroom-showroom-open-sunday-tamworth"},{name:"Bathroom Installation",path:"/services/bathroom-installation"},{name:"Bathroom Design & Planning",path:"/services/bathroom-design-planning"},{name:"Wet Room Installation",path:"/services/wet-room-installation"},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations"},{name:"Tiling & Re-tiling",path:"/services/tiling-services"}],schemaType:"Bathroom Showroom",primaryKeyword:"Bathroom Showroom Tamworth",showroomMap:{heading:"Find Our Tamworth Showroom",subheading:"Easy to reach from Lichfield, Sutton Coldfield, Burton-on-Trent, Nuneaton and the wider West Midlands. Free parking on site.",address:"Unit 7 Cavendish, Tamworth B79 7XH",embedUrl:"https://www.google.com/maps?q=Blue+Sky+Luxury+Bathrooms,+Unit+7+Cavendish,+Tamworth+B79+7XH&output=embed"}},_B=()=>r.jsx(Ye,{data:OB}),UB={slug:"bathroom-showroom-open-sunday-tamworth",title:"Bathroom Showroom Open Sunday in Tamworth | Blue Sky",metaDescription:"Looking for a bathroom showroom open Sunday in Tamworth? Blue Sky Bathrooms opens Sundays 10amâ2pm by appointment. Displays, tiles, showers and full renovations.",heroLine1:"Bathroom Showroom",heroLine2:"Open Sundays in Tamworth",heroLine3:"10amâ2pm, By Appointment",heroSubheadline:"Busy during the week? Visit our Tamworth showroom on a Sunday between 10:00am and 2:00pm. Private appointments only, so the time is entirely yours.",trustMicro:"â
4.9 on Google · 38+ reviews · Unit 7 Cavendish, Tamworth B79 7XH · Free parking on site",quickFacts:[{label:"Sunday Hours",value:"10am â 2pm",note:"By appointment only"},{label:"Location",value:"Tamworth B79 7XH",note:"Unit 7 Cavendish, Lichfield Road Ind. Est."},{label:"Appointment Length",value:"45â90 mins",note:"One designer, one project"},{label:"Cost",value:"Free",note:"No obligation to buy"}],overviewHeading:"Sunday Bathroom Showroom Appointments in Tamworth",overviewContent:["Looking for a bathroom showroom open on Sunday in Tamworth? Blue Sky Bathrooms offers Sunday showroom appointments from 10:00am to 2:00pm, giving you the chance to visit at a time that suits you rather than squeezing it into a working week.","Sunday visits are by appointment only. That is deliberate: instead of a busy shop floor, you get a designer to yourself, the showroom is quiet, and there is time to talk through your home, your measurements and your budget properly.","Our showroom is at Unit 7 Cavendish, Lichfield Road Industrial Estate, Tamworth B79 7XH â a few minutes from the A5 and the A38, with free parking directly outside. Couples and families often find Sunday the only realistic time to make a decision together, which is exactly why we opened it up.","To book, call 0330 043 2234 or message us on WhatsApp on 07450 254818. Sunday slots are limited, so we recommend booking a few days ahead."],problemHeading:"Why a Weekend Appointment Makes a Difference",problemContent:["Most bathroom showrooms close on Sundays, which leaves homeowners choosing between a rushed weekday lunch hour or a crowded Saturday morning. Neither gives you the headspace for a decision you will live with for fifteen years.","A bathroom is rarely decided by one person. Partners work different shifts, and getting both of you in the same room, in front of the same tiles, at the same time is often the real bottleneck. A Sunday slot removes that problem.","Choosing from a screen is the other trap. Tile colours shift under different lighting, basins look bigger in photographs than they measure in reality, and brassware that photographs beautifully can feel hollow in the hand. Standing in a finished, plumbed display settles all of it in minutes.","Because Sunday appointments are one-to-one, we can also bring your measurements, photographs or floor plan into the conversation and sketch an outline layout while you are with us â something that simply is not possible during a busy walk-in day."],processSteps:[{title:"Book Your Sunday Slot",description:"Call 0330 043 2234, WhatsApp 07450 254818 or send an enquiry. We confirm a time between 10:00am and 2:00pm."},{title:"Bring What You Have",description:"Rough measurements, photographs of the existing room, or saved images. Nothing is essential â it just speeds things up."},{title:"Walk the Displays",description:"See complete bathrooms plumbed, tiled and lit. Compare tiles, baths, enclosures, furniture and brassware side by side."},{title:"Talk Through Your Project",description:"Your designer discusses layout options, realistic budget ranges and what is achievable in your space."},{title:"Home Survey & Quote",description:"If you would like to go further, we arrange a home survey and provide a detailed written quote â no pressure on the day."}
318],benefits:[{title:"Open on Sunday",description:"10:00am to 2:00pm every Sunday by appointment â one of the few bathroom showrooms in the Tamworth area open at the weekend's quietest time."},{title:"Private, Unrushed Time",description:"Appointment-only means one designer focused on your project, not split across a busy shop floor."},{title:"Everything Under One Roof",description:"Furniture, showers, baths, sanitaryware, tiles, wall panels, brassware, LED mirrors and flooring, all viewable in one visit."},{title:"Supply and Install",description:"We design, supply and fit the whole bathroom with our own team â one point of contact and one warranty."},{title:"Easy to Reach",description:"Unit 7 Cavendish, Tamworth B79 7XH, with free on-site parking and quick access from the A5 and A38."},{title:"No Obligation",description:"Browse, ask questions and take samples home. There is nothing to sign and no pressure to commit on the day."}],deepDetailHeading:"What You Can See on a Sunday Visit",deepDetailContent:["During your appointment you can explore bathroom furniture and vanity units, showers and shower enclosures, baths and sanitaryware, wall and floor tiles, bathroom wall panels, taps and brassware, LED mirrors and lighting, and flooring and finishing options.","Every display in our showroom is a finished room rather than a boxed product on a shelf. You can open drawers, turn taps, step into enclosures and judge proportions properly, which is the fastest way to work out what will genuinely suit your home.","Our team's job on the day is to help you put the different elements together â matching tile format to room size, choosing a vanity depth that still lets the door swing, and making sure finishes on the brassware, radiator and mirror actually agree with each other.","Blue Sky Bathrooms specialises in complete supply-and-install bathroom renovations. From the initial home survey and design through to supplying the products and completing the installation, we manage the whole project: plumbing, electrical work, wall and floor finishes, and removal of your old bathroom and waste where required. One roof, one team, one warranty.","Our Tamworth showroom is well placed for homeowners across Lichfield, Sutton Coldfield, Atherstone, Nuneaton, Burton upon Trent, Swadlincote, Cannock and the surrounding Staffordshire and Warwickshire areas â most within a half-hour drive, which makes a Sunday morning visit straightforward.","If weekdays are difficult because of work or family commitments, book a private Sunday appointment and visit us between 10:00am and 2:00pm. We can discuss your project, show you the options in person and explain the next steps towards your new bathroom."],faqs:[{q:"Is your bathroom showroom open on Sunday?",a:"Yes. Our Tamworth showroom is open on Sundays from 10:00am to 2:00pm, by appointment only. Booking ahead guarantees a designer is free for your visit."},{q:"How do I book a Sunday showroom appointment?",a:"Call 0330 043 2234, message us on WhatsApp on 07450 254818, or send an enquiry through the website. We will confirm a slot between 10:00am and 2:00pm."},{q:"Where is the showroom?",a:"Blue Sky Bathrooms, Unit 7 Cavendish, Lichfield Road Industrial Estate, Tamworth B79 7XH. There is free parking directly outside."},{q:"Can I just turn up on a Sunday?",a:"No â Sundays are appointment only, so please book first. Monday to Friday 9amâ5pm and Saturday 9amâ1pm are open for walk-ins."},{q:"How long does a Sunday appointment take?",a:"Most last between 45 and 90 minutes. If you are planning a full renovation, allow the longer end so there is time to go through layout and materials."},{q:"Do I need to bring anything?",a:"Nothing is essential, but rough measurements and a few photographs of your existing bathroom make the conversation far more productive."},{q:"Is there any cost or obligation?",a:"None. Showroom appointments and design consultations are free, and there is no pressure to buy on the day."},{q:"Do you cover areas outside Tamworth?",a:"Yes. We install across Lichfield, Sutton Coldfield, Atherstone, Nuneaton, Burton upon Trent, Swadlincote, Cannock and the wider Staffordshire, Warwickshire and West Midlands area."}
318,{q:"What are your full opening hours?",a:"Monday to Friday 9:00amâ5:00pm, Saturday 9:00amâ1:00pm, and Sunday 10:00amâ2:00pm by appointment only."}],ctaHeading:"Book Your Sunday Showroom Appointment",ctaSubtext:"Sunday 10:00amâ2:00pm, by appointment only. Call 0330 043 2234, WhatsApp 07450 254818, or send us your details and we will confirm a time.",relatedServices:[{name:"Bathroom Showroom Tamworth",path:"/services/bathroom-showroom"},{name:"Bathroom Design & Planning",path:"/services/bathroom-design-planning"},{name:"Bathroom Installation",path:"/services/bathroom-installation"},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations"},{name:"Wet Room Installation",path:"/services/wet-room-installation"}],relatedAreas:[{name:"Tamworth",path:"/areas/tamworth"},{name:"Lichfield",path:"/areas/lichfield"},{name:"Sutton Coldfield",path:"/areas/sutton-coldfield"},{name:"Atherstone",path:"/areas/atherstone"},{name:"Nuneaton",path:"/areas/nuneaton"},{name:"Burton-on-Trent",path:"/areas/burton-on-trent"},{name:"Swadlincote",path:"/areas/swadlincote"},{name:"Cannock",path:"/areas/cannock"}],schemaType:"Bathroom Showroom Appointment",primaryKeyword:"Bathroom Showroom Open Sunday Tamworth",showroomMap:{heading:"Find Our Tamworth Showroom",subheading:"Unit 7 Cavendish, Lichfield Road Industrial Estate, Tamworth B79 7XH. Free parking on site, minutes from the A5 and A38.",address:"Unit 7 Cavendish, Tamworth B79 7XH",embedUrl:"https://www.google.com/maps?q=Blue+Sky+Luxury+Bathrooms,+Unit+7+Cavendish,+Tamworth+B79+7XH&output=embed"}},$B=()=>r.jsx(Ye,{data:UB}),zB={slug:"bathroom-installation",title:"Bathroom Installation Tamworth | Expert Fitters | Blue Sky",metaDescription:"Professional bathroom installation in Tamworth and the West Midlands. One team, full warranty, no subcontractors. Free design consultation. Call 0330 043 2234.",heroLine1:"Complete Bathroom",heroLine2:"Installation in Tamworth",heroLine3:"Done Right, First Time",heroSubheadline:"From demolition to final polish, one dedicated team handles your entire bathroom installation â no subcontractors, no delays, and a full workmanship warranty on every project.",trustMicro:"â
1000+ bathrooms installed · 20+ years' combined experience · Full warranty included",overviewHeading:"What Does a Full Bathroom Installation Actually Involve?",overviewContent:["A bathroom installation is not a single trade job â it is a coordinated sequence of plumbing, electrical work, carpentry, tiling, and finishing that must happen in the correct order, to precise tolerances, in a confined space. Get one step wrong and the entire project suffers.","At Blue Sky Luxury Bathrooms, we manage every element under one roof. Our in-house team includes plumbers, electricians, tilers, and joiners who work together daily. This means seamless coordination, consistent quality standards, and a single point of contact for you throughout your project.","We install everything from compact ensuites and cloakrooms to large family bathrooms and luxury wet rooms. Whether you are updating a tired bathroom or stripping a room back to bare walls for a complete transformation, we handle the full scope â including waste removal, making good of adjoining rooms, and final deep cleaning.","Serving Tamworth, Lichfield, Sutton Coldfield, Burton-on-Trent, Nuneaton, Birmingham, and surrounding areas, we have completed over 1,000 installations across the West Midlands. Every project begins with a free, no-obligation consultation at your home or at our Tamworth showroom."],problemHeading:"The Real Cost of a Poor Bathroom Installation",problemContent:["A badly installed bathroom does not just look wrong â it causes structural damage. Incorrectly sealed shower trays leak into floor joists. Poor tiling allows moisture behind walls, creating hidden mould that damages plasterwork and timber framing over months.","Plumbing errors cause slow drains, persistent leaks, and premature failure of fixtures. Electrical work done without proper certification creates genuine safety hazards and can invali
318date your home insurance.","Many homeowners try to save money by hiring multiple individual tradespeople â a plumber for first fix, a tiler, a separate electrician. Without a project manager coordinating their schedules and standards, the result is delays, disputes about whose responsibility problems are, and a finished bathroom that no single person is accountable for.","The most expensive bathroom installation is the one you have to do twice. Cutting corners on materials, waterproofing, or installation quality always costs more in the long run through remedial work, water damage repairs, and premature replacements."],processSteps:[{title:"Free Home Survey & Design",description:"We visit your home, measure your space, discuss your vision, and create a detailed design with full product specifications."},{title:"Transparent Quotation",description:"You receive an itemised quote covering every product, material, and labour cost. No hidden extras, no vague allowances."},{title:"Strip-Out & Preparation",description:"We remove your existing bathroom, dispose of waste responsibly, and prepare walls, floors, and services for the new installation."},{title:"Plumbing & Electrical First Fix",description:"All pipework, waste runs, and electrical circuits are installed to current regulations before any finishing work begins."},{title:"Tiling, Fitting & Finishing",description:"Walls and floors are tiled, sanitaryware is fitted, and all fixtures, accessories, and fittings are installed to a meticulous standard."},{title:"Final Inspection & Handover",description:"We conduct a thorough quality check, demonstrate all fixtures, deep clean the room, and hand over your completed bathroom with full warranty documentation."}],benefits:[{title:"One Team, Zero Coordination Hassle",description:"Plumbing, electrics, tiling, and joinery â all handled by our in-house team. You deal with one company, one schedule, and one warranty."},{title:"Certified Electrical Work",description:"All electrical installations comply with Part P Building Regulations and are completed by qualified electricians within our team."},{title:"No Hidden Costs",description:"Your quote is your final price. We do not add charges for waste removal, making good, or unforeseen works without discussing them with you first."},{title:"Premium Materials, Lasting Results",description:"We use trade-grade waterproofing systems, adhesives, and sealants â not consumer products â ensuring your bathroom withstands years of daily use."},{title:"Minimal Disruption",description:"Most standard bathroom installations are completed within 5â10 working days. We work clean, protect your home, and leave each day tidy."},{title:"Full Workmanship Warranty",description:"Every installation is backed by our comprehensive warranty. If anything is not right, we return and resolve it â no quibbles, no charges."}],deepDetailHeading:"Bathroom Installation: Materials, Methods & What to Expect",deepDetailContent:["Every bathroom installation begins with a thorough assessment of the existing space. We check floor and wall conditions, confirm joist directions and loading capacity, verify drainage fall, and assess ventilation. This groundwork prevents problems that surface weeks or months after completion.","For waterproofing, we use tanking systems on all shower areas and wet rooms â not just silicone sealant. This includes liquid-applied membranes on walls and floors, pre-formed corner seals, and pipe collar seals at all penetration points. The tanking layer is the single most critical element in any bathroom and one that is most frequently skipped by less experienced installer
318s.","Our tiling methods include full-bed adhesive application for walls and floors, ensuring complete coverage behind every tile. We use flexible, water-resistant adhesives and grouts in all wet areas. Large-format tiles are levelled with clip-and-wedge systems to eliminate lippage and produce a perfectly flat finish.","Plumbing installations use push-fit and compression fittings on copper and plastic pipework, pressure-tested before concealment. We install full-bore isolation valves on every fixture for future serviceability. Waste systems are configured with correct fall gradients and accessible rodding points.","Electrical work includes extractor fan installation, LED downlight circuits, heated mirror connections, underfloor heating wiring, and shaver socket fitting â all installed to BS 7671 wiring regulations with appropriate IP-rated fittings for bathroom zones.","We install a complete range of sanitaryware including close-coupled WCs, wall-hung WCs with concealed cisterns, back-to-wall units, freestanding baths, built-in baths, shower enclosures, wet room configurations, and walk-in shower panels. All products are sourced from established manufacturers with proven durability records.","For flooring, options include porcelain tiles, luxury vinyl tile (LVT), and natural stone. We advise on slip ratings (R10/R11 for wet areas), underfloor heating compatibility, and maintenance requirements so you choose a floor that performs as well as it looks.","Our service area covers Tamworth, Lichfield, Rugeley, Swadlincote, Burton-on-Trent, Sutton Coldfield, Atherstone, Nuneaton, Birmingham, Cannock, Walsall, Coalville, Hinckley, Derby, and West Bromwich."],quickFacts:[{label:"Typical cost",value:"£7,000 â £15,000",note:"Complete supply-and-fit, most Tamworth homes"},{label:"Install time",value:"7 â 10 working days",note:"Strip-out to snag-list handover"},{label:"Workmanship warranty",value:"12 months",note:"Furniture warranties vary: 12 months to lifetime"},{label:"Who does the work",value:"Our employed team",note:"Plumbers, electricians, tilers â no subcontractors"}],faqs:[{q:"How much is a full bathroom installation in Tamworth?",a:"A complete supply-and-fit bathroom in Tamworth typically costs £7,000 to £15,000. Compact cloakrooms and simple like-for-like replacements start nearer £5,000; larger rooms with bespoke tiling, underfloor heating and freestanding baths run £16,000 to £25,000+. Every quote is fixed and itemised before work begins."},{q:"How long does a full bathroom installation take?",a:"Most full bathroom installations take 7 to 10 working days from strip-out to handover. Day one is removal and first-fix plumbing, days two to four cover boarding, tanking and electrics, days five to eight are tiling and second fix, then we snag and hand over."},{q:"Do I need to move out during the installation?",a:"No. Almost every customer stays in their home throughout. We use dust sheets and floor protection, clean down daily, and where the property has a second WC we keep it available. If it's your only bathroom, we discuss temporary arrangements at survey stage."},{q:"What is included in your bathroom installation quote?",a:"Every product, every labour day, waste removal, making good and any contingencies are listed line by line. There is no separate charge for design or the home survey, and the price does not change unless you change the specification."},{q:"How long does a full bathroom installation take?",a:"Most standard bathroom installations are completed within 5â10 working days. Larger or more complex projects, such as wet rooms or structural alterations, may take 10â15 days. We provide a clear timeline before work begins."},{q:"How much does a bathroom installation cost in Tamworth?",a:"A complete bathroom installation starts from £7,000. Final pricing depends on room size, product specification, and complexity â every quote is detailed and itemised after your free consultation. All materials are supplied by us through our Tamworth showroom."},{q:"Do I need to supply my own products?",a:"No â Blue Sky operates on a supply-and-install basis only. Every tile, fixture, and fitting is sourced through our Tamworth showroom from trusted UK and European manufacturers. This guarantees consistent quality, full manufacturer warranties, and a single point of accountability for the finished room. Visit our showroom to choose your suite in person."},{q:"Will you move or re-route plumbing?",a:"Yes. We regularly relocate radiators, reposition waste pipes, move soil stacks, and reconfigure water supplies as part of bathroom redesigns."},{q:"Do you handle all the trades?",a:"Yes. Our team includes plumbers, electricians, tilers, and joiners. We do not use subcontractors. This gives you a single point of accountability and consistent quality throughout."},{q:"Is electrical work included?",a:"Yes. All electrical installations â from extractor fans and lighting to heated mirrors and towel rail
318s â are completed by our in-house electricians to current Part P regulations."},{q:"Do you offer a guarantee?",a:"Every installation comes with a full workmanship warranty. Product warranties from manufacturers apply in addition to our own guarantee."},{q:"Can you work with my existing layout?",a:"Absolutely. We can refresh an existing layout with new products and finishes, or we can redesign the entire space â whichever delivers the best result for your home."},{q:"What areas do you cover?",a:"We serve Tamworth and the wider West Midlands including Lichfield, Sutton Coldfield, Burton-on-Trent, Nuneaton, Birmingham, Cannock, Walsall, and more."},{q:"How do I get started?",a:"Call us on 0330 043 2234 or use our contact form to book your free, no-obligation home survey and design consultation."}],ctaHeading:"Your New Bathroom Starts Here",ctaSubtext:"Book your free home survey and design consultation. One call, one team, one exceptional result.",relatedServices:[{name:"Bathroom Design & Planning",path:"/services/bathroom-design-planning"},{name:"Wet Room Installation",path:"/services/wet-room-installation"},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation"},{name:"Tiling & Re-tiling",path:"/services/tiling-services"},{name:"Plumbing Services",path:"/services/plumbing-services"},{name:"Bathroom Showroom",path:"/services/bathroom-showroom"}],relatedAreas:[{name:"Tamworth",path:"/areas/tamworth"},{name:"Lichfield",path:"/areas/lichfield"},{name:"Sutton Coldfield",path:"/areas/sutton-coldfield"},{name:"Burton-on-Trent",path:"/areas/burton-on-trent"},{name:"Birmingham",path:"/areas/birmingham"},{name:"Cannock",path:"/areas/cannock"},{name:"Nuneaton",path:"/areas/nuneaton"},{name:"Walsall",path:"/areas/walsall"}],schemaType:"Bathroom Installation",primaryKeyword:"Bathroom Installation Tamworth"},GB=()=>r.jsx(Ye,{data:zB}),VB={slug:"kitchen-installation",title:"Kitchen Installation Tamworth | Expert Fitters",metaDescription:"Professional kitchen installation in Tamworth. Full project management, no subcontractors, complete warranty. Free consultation. Call 0330 043 2234.",heroLine1:"Expert Kitchen",heroLine2:"Installation in Tamworth",heroLine3:"Built to Last a Lifetime",heroSubheadline:"From flat-pack to fully fitted â our dedicated team installs your kitchen with precision joinery, certified electrics, and plumbing under one warranty.",trustMicro:"â
20+ years' experience · Fully insured · No subcontractors · Free estimates",overviewHeading:"What Does Professional Kitchen Installation Include?",overviewContent:["A kitchen installation involves far more than assembling cabinets. It requires precise coordination of joinery, plumbing, electrical work, gas fitting, tiling, and worktop templating â all within a room your household relies on daily. Poor sequencing or unqualified tradespeople turn what should be a straightforward project into weeks of disruption.","At Blue Sky, we manage every stage of your kitchen installation from initial strip-out to final snagging. Our in-house team includes joiners, plumbers, electricians, and tilers who work together as a coordinated unit â not as separate contractors arriving on different days with different standards.","We operate on a supply-and-install basis: every cabinet, worktop, appliance and accessory is sourced by our team from trusted UK and European manufacturers. Choosing your kitchen through Blue Sky gives you trade-direct pricing, fully managed delivery, manufacturer-backed product warranties, and a single point of accountability â the same team that designs and supplies your kitchen also installs it.","We serve homeowners across Tamworth, Lichfield, Sutton Coldfield, Burton-on-Trent, Nuneaton, Birmingham, Cannock, and the wider West Midlands. Every project starts with a free home survey to assess your space, discuss your requirements, and provide a transparent quotation."],problemHeading:"What Goes Wrong With DIY or Budget Kitchen Fitting",problemContent:["Poorly fitted kitchens create daily frustration. Doors that do not align, drawers that catch, worktops with visible joins, and silicone that peels within months are hallmarks of rushed or unskilled installation. These issues worsen over time as settling and daily use expose underlying problems.","Plumbing errors cause slow-draining sinks, leaking waste connections, and dishwasher flooding. Incorrect electrical work â particularly around cooker circuits, extractor fans, and lighting â creates safety hazards and fails Part P compliance.","Many homeowners hire a general handyman or attempt self-installation to save money. The result is often units that are not level, worktops that do not meet walls cleanly, and appliances that are incorrectly connected. Remedial work to fix these issues typically costs more than professional installation would have in the first place.","Gas appliance connection by unregistered fitters is illegal and dangerous. Cooker and hob installations must be carried out by a Gas Safe registered engineer â a requirement we meet through our qualified team."],processSteps:[{title:"Home Survey & Planning",description:"We measure your kitchen, discuss layout options, and assess plumbing, electrical, and ventilation requirements."},{title:"Detailed Quotation",description:"You receive an itemised quote covering removal, installation, electrics, plumbing, tiling, and any structural modifications."}
318,{title:"Strip-Out & Preparation",description:"We remove your existing kitchen, cap services, and prepare walls and floors for the new installation."},{title:"First Fix Services",description:"Plumbing, electrical circuits, and gas runs are installed or modified to suit your new layout before units go in."},{title:"Unit & Worktop Installation",description:"Cabinets are fitted level and square, worktops are templated and installed, and all appliances are connected and tested."},{title:"Finishing & Handover",description:"Tiling, splashbacks, lighting, and final adjustments are completed. We conduct a walkthrough, demonstrate appliances, and hand over your completed kitchen."}],benefits:[{title:"Precision Joinery",description:"Every cabinet is installed level, plumb, and square. Doors align, drawers glide, and worktop joints are seamless â the details that separate professional work from amateur fitting."},{title:"Certified Electrics & Gas",description:"All electrical and gas connections are completed by qualified, registered engineers within our team. Full compliance documentation is provided."},{title:"Minimal Downtime",description:"Most kitchen installations are completed within 5â8 working days. We plan around your household routine to minimise disruption."},{title:"Single Point of Contact",description:"One project manager coordinates every trade. You never chase separate contractors or mediate between different teams."},{title:"Full Warranty",description:"Our workmanship warranty covers every element of the installation. If something is not right, we fix it â included in the price."},{title:"Clean, Respectful Work",description:"We protect floors and surfaces, contain dust, and leave your home tidy at the end of every working day."}],deepDetailHeading:"Kitchen Installation: Specifications, Materials & Considerations",deepDetailContent:["Kitchen units are available in a wide range of constructions â from flat-pack melamine-faced chipboard to solid timber and painted MDF. We install all types but advise clients on the durability differences between construction methods. Soft-close hinges, drawer runners, and pull-out storage systems are fitted as standard where specified.","Worktop materials include laminate, solid timber, quartz composite, granite, and Corian. Each has different requirements for templating, cutting, joining, and edge finishing. Stone and composite worktops require precise measurement with no margin for error â our templating process uses physical templates taken after units are fully installed to guarantee perfect fit.","Plumbing scope includes sink and tap installation, dishwasher connections, washing machine plumbing, waste disposal units, and boiling water tap systems. We install using compression and push-fit fittings with isolation valves for every appliance connection.","Electrical installations cover under-cabinet lighting, pendant and downlight circuits, socket repositioning, extractor fan connections, oven and hob circuits (typically 6mm twin-and-earth on a dedicated 32A breaker), and smart home integrations where required.","Tiling and splashback installation includes ceramic, porcelain, glass, and natural stone options. We ensure all tiling is completed after units and worktops are fitted to guarantee clean, precise edge lines.","For homeowners upgrading kitchen layouts, we handle structural modifications including removal of non-load-bearing walls, installation of breakfast bars, and relocation of radiators and boilers. Any structural work is assessed and, where required, supported by calculations from a structural engineer.","We serve clients across Tamworth, Lichfield, Rugeley, Swadlincote, Burton-on-Trent, Sutton Coldfield, Atherstone, Nuneaton, Birmingham, Cannock, Walsall, Coalville, Hinckley, Derby, and West Bromwich."],faqs:[{q:"How long does a kitchen installation take?",a:"Most installations are completed within 5â8 working days. Projects involving structural changes, bespoke worktops, or extensive electrical work may take 8â12 days."},{q:"Can you install a kitchen I have already purchased?",a:"Yes. We install kitchens from any supplier â including Howdens, Wren, IKEA, and bespoke manufacturers."},{q:"Do you handle gas and electrical connections?",a:"Yes. Gas appliances are connected by Gas Safe registered engineers and all electrical work complies with Part P Building Regulations."},{q:"Do you remove the old kitchen?",a:"Yes. Full strip-out and responsible disposal of your existing kitchen is included in our service."},{q:"Can you modify my kitchen layout?",a:"Absolutely. We regularly relocate plumbing, move electrical points, and modify layouts to improve functionality and flow."},{q:"How much does kitchen installation cost in Tamworth?",a:"Installation costs typically range from £2,500 to £8,000 depending on kitchen size, complexity, and scope of electrical and plumbing work. We provide a detailed quote after your home survey."},{q:"Do you tile as well?",a:"Yes. Splashback and floor tiling is part of our full installation service. We work with ceramic, porcelain, glass, and natural stone tiles."},{q:"What warranty do you provide?",a:"Every kitchen installation is covered by our comprehensive workmanship warranty, in addition to manufacturer product warranties."}],ctaHeading:"Ready for a Kitchen That Works as Hard as You Do?",ctaSubtext:"Book your free home survey. We will measure your space, discuss your vision, and provide a clear, no-obligation quote.",relatedServices:[{name:"Bathroom Installation",path:"/services/bathroom-installation"},{name:"Plumbing Services",path:"/services/plumbing-services"},{name:"Tiling & Re-tiling",path:"/services/tiling-services"},{name:"Underfloor Heating",path:"/services/underfloor-heating"},{name:"Boiler Replacement",path:"/services/boiler-replacement"}],schemaType:"Kitchen Installation",primaryKeyword:"Kitchen Installation Tamworth"},YB=()=>r.jsx(Ye,{data:VB}),QB={slug:"boiler-replacement",title:"Boiler Replacement Tamworth | Gas Safe Engineers | Blue Sky",metaDescription:"Boiler replacement in Tamworth by Gas Safe registered engineers. Reliable installations, full warranty, transparent pricing. Free quotes. Call 0330 043 2234.",heroLine1:"Boiler Replacement",heroLine2:"in Tamworth",heroLine3:"Warmth You Can Rely On",heroSubheadline:"A new, energy-efficient boiler installed by Gas Safe registered engineers â reducing your energy bills, eliminating breakdowns, and keeping your home warm year-round.",trustMicro:"â
Gas Safe registered · 20+ years' experience · Full manufacturer warranty · Free quotes",overviewHeading:"When Does Your Boiler Need Replacing?",overviewContent:["Boilers do not last forever. Most manufacturers rate their products for 10â15 years of reliable service. Beyond that, efficiency drops, parts become harder to source, and the risk of carbon monoxide leaks increases. If your boiler is over 10 years old, breaks down frequently, or your energy bills have risen without a change in usage, replacement is likely more cost-effective than continued repairs.","Modern condensing boilers operate at 90%+ efficie
318ncy compared to 60â75% for older non-condensing models. That difference translates directly into lower gas bills â often saving homeowners £200â£400 per year depending on property size and usage patterns.","At Blue Sky Luxury Bathrooms, boiler replacement is a core part of our plumbing and heating service. Our Gas Safe registered engineers assess your current system, recommend the right boiler type and output for your property, and install it to manufacturer specifications with full warranty coverage.","We serve homeowners across Tamworth, Lichfield, Sutton Coldfield, Burton-on-Trent, Nuneaton, Birmingham, Cannock, and the wider West Midlands."],problemHeading:"The Hidden Dangers of Delaying Boiler Replacement",problemContent:["An ageing boiler is not just inefficient â it can be dangerous. Cracked heat exchangers and deteriorating seals can release carbon monoxide, an odourless, colourless gas that kills over 30 people in the UK every year. Even low-level CO exposure causes persistent headaches, nausea, and fatigue.","Older boilers also suffer from limescale build-up, corroded pipework, and failing components that cause intermittent heating loss â typically at the worst possible time. Emergency callout fees and replacement parts for obsolete models quickly exceed the cost of planned replacement.","Many homeowners delay replacement because they are unsure about costs or worried about disruption. In reality, a straightforward boiler swap can be completed in a single day, and the energy savings begin immediately.","Running an inefficient boiler also increases your carbon footprint unnecessarily. With government incentives increasingly focused on energy efficiency, upgrading now puts you ahead of future regulatory requirements."],processSteps:[{title:"Free Home Assessment",description:"We inspect your current system, assess your property's heating demands, and discuss hot water requirements."},{title:"Boiler Recommendation",description:"Based on your property size, number of bathrooms, and usage patterns, we recommend the right boiler type and output â combi, system, or regular."},{title:"Transparent Quote",description:"You receive a fixed-price quote covering the boiler, all materials, installation labour, and system flushing. No hidden extras."},{title:"Professional Installation",description:"Our Gas Safe engineers remove your old boiler, install the new unit, connect controls, and flush your system to remove sludge and debris."},{title:"Commissioning & Registration",description:"We commission the boiler to manufacturer specifications, register the warranty on your behalf, and provide all compliance documentation."}],benefits:[{title:"Lower Energy Bills",description:"Modern A-rated condensing boilers operate at 90%+ efficiency, typically saving £200â£400 per year compared to boilers over 15 years old."},{title:"Reliable Heating & Hot Water",description:"A new boiler eliminates the breakdowns, cold mornings, and intermittent hot water that come with ageing systems."},{title:"Full Manufacturer Warranty",description:"We install boilers from leading manufacturers with warranties of up to 10 years, registered on your behalf at installation."},{title:"Gas Safe Certified",description:"All work is carried out by Gas Safe registered engineers. You receive full compliance documentation for your records and insurance."},{title:"Single-Day Installation",description:"Most like-for-like boiler replacements are completed in a single working day, minimising disruption to your household."},{title:"System Flush Included",description:"Every installation includes a full system powerflush to remove sludge, rust, and debris â extending the life of your new boiler and radiators."}],deepDetailHeading:"Boiler Types, Brands & Technical Specifications",deepDetailContent:["We install three types of boilers depending on your property requirements. Combi boilers provide instant hot water without a separate cylinder, making them ideal for smaller homes with one bathroom. System boilers work with a hot water cylinder, suitable for larger homes with multiple bathrooms. Regular (conventional) boilers pair with both a cylinder and header tank, typically found in older properties with gravity-fed systems.","Boiler output is measured in kilowatts (kW). A small flat may require a 24â28kW combi, while a large detached house with multiple bathrooms may need a 35â40kW system boiler. We calculate the correct output based on your property's heat loss, number of radiators, and hot water demand â never guessing or oversizing.","We install boilers from established manufacturers including Worcester Bosch, Vaillant, Ideal, and Baxi. Each brand offers different warranty lengths, efficiency ratings, and control integration options. We advise on the best match for your budget and requirements.","Every installation includes a magnetic system filter (such as an Adey MagnaClean) to trap cir
318culating debris and protect your new boiler's heat exchanger. Combined with a full powerflush at installation, this significantly extends system life and maintains peak efficiency.","Controls and thermostats are upgraded as part of the installation where required. Options include programmable room thermostats, smart controls (Nest, Hive, Worcester Wave), TRVs on individual radiators, and weather compensation controls for maximum efficiency.","For homeowners with combi boilers experiencing poor shower pressure, we also install unvented hot water systems that provide mains-pressure hot water to multiple outlets simultaneously â a significant upgrade for properties with two or more bathrooms.","Our service area includes Tamworth, Lichfield, Rugeley, Swadlincote, Burton-on-Trent, Sutton Coldfield, Atherstone, Nuneaton, Birmingham, Cannock, Walsall, Coalville, Hinckley, Derby, and West Bromwich."],quickFacts:[{label:"Typical cost",value:"£2,200 â £4,500",note:"Combi swap to full system upgrade, supply and fit"},{label:"Install time",value:"1 â 3 working days",note:"Most straight combi swaps completed in a day"},{label:"Workmanship warranty",value:"12 months",note:"Boiler warranties run 5 â 12 years by manufacturer"},{label:"Engineers",value:"Gas Safe registered",note:"Registration details available on request"}],faqs:[{q:"How much does a boiler replacement cost in Tamworth?",a:"A straight combi-for-combi swap in Tamworth typically costs £2,200 to £3,200 supplied and fitted. Converting from a conventional system to a combi, or relocating the boiler, usually lands between £3,200 and £4,500."},{q:"How long does a boiler replacement take?",a:"Most like-for-like combi swaps are completed in a single working day. System conversions, flue relocations or a move to a different room take two to three days."},{q:"Are your engineers Gas Safe registered?",a:"Yes. All gas work is carried out by Gas Safe registered engineers and registration details are available on request before work starts."},{q:"What warranty comes with a new boiler?",a:"Our workmanship carries a 12-month warranty. The boiler itself carries the manufacturer's own warranty, which typically runs from 5 to 12 years depending on the brand and model you choose."},{q:"How long does a boiler replacement take?",a:"A straightforward like-for-like replacement is typically completed in one day. If the boiler is being relocated or the system type is changing, installation may take 2â3 days."},{q:"How much does a new boiler cost in Tamworth?",a:"Boiler replacement costs typically range from £2,000 to £4,500 depending on boiler type, brand, and any additional work required. We provide a fixed-price quote after a free home assessment."},{q:"What brand of boiler do you recommend?",a:"We install Worcester Bosch, Vaillant, Ideal, and Baxi. Our recommendation depends on your property, budget, and hot water requirements."},{q:"Are you Gas Safe registered?",a:"Yes. All our heating engineers are Gas Safe registered. You can verify our registration on the Gas Safe Register website."},{q:"Do I need a powerflush with a new boiler?",a:"We strongly recommend it. A powerflush removes sludge, rust, and debris from your system, protecting your new boiler and ensuring optimal efficiency from day one."},{q:"Will a new boiler reduce my energy bills?",a:"Yes. Upgrading from an old G-rated boiler to a modern A-rated condensing model typically saves £200â£400 per year on gas bills."},{q:"What warranty comes with a new boiler?",a:"Warranties range from 5 to 10 years depending on manufacturer and model. We register the warranty on your behalf at installation."},{q:"Can you relocate my boiler?",a:"Yes. We regularly move boilers to different locations within the property â for example, from a kitchen to a utility room or loft."},{q:"Do you offer finance?",a:"Please contact us to discuss payment options for your boiler replacement."},{q:"What areas do you cover for boiler replacement?",a:"We cover Tamworth, Lichfield, Sutton Coldfield, Burton-on-Trent, Nuneaton, Birmingham, and the wider West Midlands."}],ctaHeading:"Ready for a Boiler That Actually Works?",ctaSubtext:"Book your free home assessment. We will recommend the right boiler for your property and provide a fixed-price, no-obligation quote.",relatedServices:[{name:"Plumbing Services",path:"/services/plumbing-services"},{name:"Underfloor Heating",path:"/services/underfloor-heating"},{name:"Bathroom Installation",path:"/services/bathroom-installation"}],schemaType:"Boiler Replacement",primaryKeyword:"Boiler Replacement Tamworth"},KB=()=>r.jsx(Ye,{data:QB}),XB={slug:"bathroom-design-planning",title:"Bathroom Design & Planning Tamworth | Blue Sky",metaDescription:"Expert bathroom design & planning in Tamworth. Free consultations, 3D visualisations and bespoke layouts. Visit our showroom or book a home visit.",heroLine1:"Bathroom Design",heroLine2:"& Planning in Tamworth",heroLine3:"Your Vision, Expertly Planned",heroSubheadline:"From first sketch to final specification â our designers create bespoke bathroom plans that maximise your space, match your style, and deliver on budget.",trustMicro:"â
Free design consultations · 1000+ bathrooms designed · Tamworth showroom open MonâSat",overviewHeading:"Why Professional Bathroom Design Matters More Than You Think",overviewContent:["A bathroom renovation without a proper design is like building a house without blueprints. You might get lucky, but more often you end up with a basin that blocks the door swing, a toilet positioned awkwardly close to the bath, or a shower enclosure that wastes valuable floor space.","Professional bathroom design goe
318s beyond aesthetics. It is about understanding water flow, drainage fall, ventilation requirements, electrical zoning, and structural loading â then combining those technical constraints with your personal style to create a room that works flawlessly every day.","At Blue Sky Luxury Bathrooms, design is not an add-on â it is the foundation of every project. Our design team creates detailed layout plans with full product specifications before any installation work begins. You see exactly what your bathroom will look like, what it will cost, and how long it will take.","Visit our Tamworth showroom to explore bathroom displays in person, or book a free home visit where we measure your space and discuss your vision in detail. We serve homeowners across Lichfield, Sutton Coldfield, Burton-on-Trent, Nuneaton, Birmingham, and the wider West Midlands."],problemHeading:"The Costly Consequences of Poor Bathroom Planning",problemContent:["Poor planning is the root cause of most bathroom renovation failures. Products ordered without precise measurements result in returns, delays, and restocking fees. Layouts designed without checking drainage routes require expensive pipe modifications mid-project.","Ventilation is one of the most overlooked elements. Without adequate extraction, moisture builds up and causes mould, peeling paint, and deteriorating sealant within months of installation. Correct fan sizing and ducting must be planned before walls are tiled, not after.","Electrical planning is equally critical. Bathroom zones dictate where sockets, switches, and lighting can be placed relative to water sources. Getting this wrong means failed inspections, non-compliant installations, and expensive remedial work.","Many homeowners also discover too late that their dream freestanding bath does not fit through the doorframe, their chosen tiles create an overwhelming pattern in a small space, or their selected vanity unit prevents the door from opening fully. All of these issues are preventable with proper design."],processSteps:[{title:"Initial Consultation",description:"We discuss your requirements, preferences, budget, and timeline â either at our showroom or during a home visit."},{title:"Site Survey & Measurement",description:"We take precise measurements of your bathroom including service positions, structural elements, and access constraints."},{title:"Design Development",description:"Our team creates a detailed layout plan with product specifications, material selections, and technical notes."},{title:"Design Review",description:"We present the design to you, walk through every detail, and refine until you are completely satisfied."},{title:"Specification & Quotation",description:"You receive a complete product specification and an itemised quote covering every element of your project."},{title:"Seamless Handover to Installation",description:"Your approved design is handed directly to our installation team â the same company, the same standards, no information lost in translation."}],benefits:[{title:"Maximised Space",description:"Professional layout planning ensures every centimetre of your bathroom is used effectively â particularly important in ensuites, cloakrooms, and compact bathrooms."},{title:"No Costly Surprises",description:"Complete specifications and detailed quotes mean you know exactly what you are getting and what it will cost before work begins."},{title:"Material Confidence",description:"See and touch products in our showroom before committing. Compare tiles, fixtures, and finishes in real lighting and real proportions."},{title:"Technical Compliance",description:"Our designs account for electrical zoning, ventilation requirements, waterproofing specifications, and Building Regulations from the outset."},{title:"Stress-Free Process",description:"A clear design eliminates decision fatigue during installation. Every product, colour, and fitting is pre-selected and approved."},{title:"Design-to-Install Continuity",description:"Unlike standalone designers, our team also installs. This eliminates the gap between design intent and construction reality."}],deepDetailHeading:"The Bathroom Design Process: What We Consider",deepDetailContent:["Every design begins with understanding how you use your bathroom. A family bathroom has different requirements to a master ensuite or a ground-floor cloakroom. We ask about daily routines, storage needs, accessibility requirements, and personal style preferences before drawing a single line.","Layout planning involves positioning every fixture for optimal flow and comfort. We follow established ergonomic guidelines â minimum clearances around WCs, comfortable shower widths, accessible basin heights, and door swing clearances â while maximising the feeling of space.","Product selection covers sanitaryware (baths, basins, WCs, bidets), brassware (taps, showers, valves), tiles (walls and floors), storage solutions, lighting, mirrors, and accessories. We specify products from trusted manufacturers that balance aesthetics, durability, and value.","For wet rooms and walk-in showers, design includes gradient calculations for floor falls, waterproofing specifications, drain positioning, and glass panel c
318onfigurations. These elements must be resolved at the design stage â not improvised during installation.","Lighting design considers ambient, task, and accent layers. Recessed downlights provide general illumination, backlit mirrors deliver task lighting at the vanity, and LED strip details add warmth and character. All fittings are specified with correct IP ratings for their bathroom zone location.","Ventilation planning includes fan sizing (calculated from room volume and usage frequency), ducting routes, and control methods â from simple pull-cord switches to humidity-sensing automatic units that activate when moisture levels rise.","Heating options include traditional radiators, heated towel rails, underfloor heating, and infrared panels. Each has different installation requirements that must be planned into the design from the start.","We design bathrooms for homeowners across Tamworth, Lichfield, Rugeley, Swadlincote, Burton-on-Trent, Sutton Coldfield, Atherstone, Nuneaton, Birmingham, Cannock, Walsall, Coalville, Hinckley, Derby, and West Bromwich."],faqs:[{q:"Is the design consultation free?",a:"Yes. Your initial consultation â whether at our showroom or during a home visit â is completely free and carries no obligation."},{q:"Do I have to use your installation team?",a:"Our design service is included free when combined with installation. Standalone design services are available for a separate fee."},{q:"How long does the design process take?",a:"Initial designs are typically ready within 5â7 working days of your site survey. Revisions and refinements are included at no extra cost."},{q:"Can you work with a small bathroom?",a:"Absolutely. Small bathrooms benefit most from professional design. We specialise in maximising functionality and perceived space in compact rooms."},{q:"Do you provide 3D visualisations?",a:"We provide detailed layout plans and product visualisations so you can see exactly how your bathroom will look before work begins."},{q:"Can I visit your showroom to see products?",a:"Yes. Our Tamworth showroom at Unit 7 Cavendish is open Monday to Friday 9amâ5pm, Saturday 9amâ1pm, and Sunday 10amâ2pm by appointment."},{q:"What if I change my mind about products?",a:"We encourage decisions to be finalised before installation begins. However, we accommodate changes wherever practically possible within the project timeline."},{q:"Do you design wet rooms and walk-in showers?",a:"Yes. Wet rooms and walk-in showers require specialist design consideration for drainage, waterproofing, and glass configurations â all of which we handle in-house."}],ctaHeading:"Let Us Design Your Perfect Bathroom",ctaSubtext:"Book your free consultation today. We will listen to your ideas, measure your space, and create a design that brings your vision to life.",relatedServices:[{name:"Bathroom Installation",path:"/services/bathroom-installation"},{name:"Bathroom Showroom",path:"/services/bathroom-showroom"},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations"},{name:"Wet Room Installation",path:"/services/wet-room-installation"},{name:"Cloakroom & Ensuite",path:"/services/cloakroom-ensuite"}],schemaType:"Bathroom Design and Planning",primaryKeyword:"Bathroom Design Tamworth"},JB=()=>r.jsx(Ye,{data:XB}),ZB={slug:"wet-room-installation",title:"Wet Room Installation Tamworth | Waterproofing Pros",metaDescription:"Expert wet room installation in Tamworth. Fully tanked, level-access shower rooms with lifetime waterproofing. Free consultation. Call 0330 043 2234.",heroLine1:"Wet Room Installation",heroLine2:"in Tamworth",heroLine3:"Seamless, Waterproof, Built to Last",heroSubheadline:"A fully tanked, level-access wet room installed by specialists who understand gradients, drainage, and waterproofing â not guesswork.",trustMicro:"â
Specialist waterproofing systems · 20+ years' experience · Full warranty on every installation",overviewHeading:"What Is a Wet Room and Who Benefits Most?",overviewContent:["A wet room is a fully waterproofed bathroom where the shower area is open and level with the rest of the floor â no tray, no step, no enclosure. Water drains through a linear or point drain set into a gently sloped floor, with the entire room tanked to prevent moisture reaching the structure beneath.","Wet rooms are ideal for homeowners who want a contemporary, minimalist aesthetic, those with mobility concerns who need step-free access, or anyone looking to maximise usable space in a smaller bathroom. They are also increasingly popular in master ensuites where the open-plan shower adds a sense of luxury.","At Blue Sky Luxury Bathrooms, wet room installation is one of our specialist services. Unlike a standard shower installation, a wet room requires precise gradient calculations, professional-grade waterproofing, and careful material selection to function correctly and remain watertight for decades.","We install wet rooms across Tamworth, Lichfield, Sutton Coldfield, Burton-on-Trent, Nuneaton, Birmingham, and the wider West Midlands. Every project begins with a detailed survey to assess your floor structure, drainage options, and design preferences."],problemHeading:"What Happens When a Wet Room Is Installed Incorrectly",problemContent:["A wet room that leaks is one of the most destructive failures in domestic construction. Water penetrating through an inadequately tanked floor saturates joists, degrades plasterboard on ceilings below, and creates conditions for extensive mould growth â often invisible until structural damage is advanced.","The most common installation errors include insufficient floor gradient (water pools instead of draining), incomplete tanking (corners and pipe penetrations left unsealed), incorrect tile adhesive (standard adhesive fails in permanently wet conditions), and poorly positioned drains (too far from the shower to capture runoff effectively).","Many general bathroom fitters attempt wet rooms without the specialist knowledge required. They apply basic silicone sealant instead of full membrane tanking, use standard floor tiles without adequate slip resistance, and skip the gradient-forming boards that create the necessary fall to drain.","Remedial work on a failed wet room typically costs more than the original installation. The entire floor must be stripped, dried, inspected for structural damage, and rebuilt with correct waterproofing. In severe cases, ceiling replacement and joist treatment in the room below are also required."],processSteps:[{title:"Survey & Assessment",description:"We assess your floor structure (timber or concrete), drainage routes, and room dimensions to confirm wet room suitability and design options."},{title:"Design & Specification",description:"We create a detailed layout including drain position, gradient direction, glass panel c
318onfiguration, and product selections."},{title:"Floor Preparation",description:"Gradient-forming boards are installed to create the precise fall to drain. On timber floors, structural reinforcement is added where required."},{title:"Full Tanking",description:"The entire wet room is waterproofed using a liquid-applied membrane system with reinforced tape at joints, corners, and pipe penetrations."},{title:"Tiling & Fitting",description:"Anti-slip tiles are laid with flexible, waterproof adhesive and grout. The drain, shower fittings, glass panels, and all fixtures are installed."},{title:"Testing & Handover",description:"We flood-test the completed wet room, verify drainage performance, and hand over with full warranty documentation."}],benefits:[{title:"Level-Access Showering",description:"No step, no tray, no barrier. Walk straight in â ideal for all ages and essential for wheelchair users or those with reduced mobility."},{title:"Maximised Floor Space",description:"Without a shower enclosure taking up room, the entire bathroom feels larger and more open â particularly valuable in compact ensuites."},{title:"Lifetime Waterproofing",description:"Professional tanking systems create a continuous waterproof membrane across the entire room â not just the shower area. This protects your home's structure indefinitely."},{title:"Easy Maintenance",description:"Fewer joints, no shower tray to discolour, and no enclosure frames to clean. A wet room is simpler to maintain than a traditional shower."},{title:"Increased Property Value",description:"Wet rooms are a sought-after feature in modern homes. A well-installed wet room adds genuine appeal and value to your property."},{title:"Design Flexibility",description:"From large-format porcelain to natural stone mosaics, a wet room gives you freedom to create a continuous visual flow across floors and walls."}],deepDetailHeading:"Wet Room Construction: Materials, Methods & Specifications",deepDetailContent:["Wet room construction begins with the subfloor. On concrete floors, the surface is prepared and levelled before gradient-forming screeds or pre-formed boards are laid. On timber floors, we assess joist spacing, depth, and condition, then install reinforcement boards (typically 22mm moisture-resistant plywood) to eliminate flex before applying gradient formers.","The gradient is critical. Building Regulations require a minimum 1:80 fall (12.5mm per metre) to the drain point. We use pre-formed polystyrene gradient boards that provide a consistent, factory-accurate fall â far superior to hand-screeded gradients that can develop low spots and pooling.","Tanking (waterproofing) uses liquid-applied polyurethane or acrylic membranes painted onto all surfaces in multiple coats. Every corner, pipe penetration, and drain connection is sealed with pre-formed membrane components â bandage tape for corners, pipe collars for supply and waste connections, and drain flanges that bond directly to the membrane layer.","Drains for wet rooms are available in two main types: linear (channel) drains and point (centre) drains. Linear drains allow a single-direction gradient and create a clean, contemporary appearance. Point drains require a four-way fall but work well in smaller rooms. We install both types with adjustable-height frames for precise alignment with the finished tile surface.","Tile selection for wet rooms must account for slip resistance. We recommend tiles rated R10 or R11 on the DIN 51130 scale for wet room floors. Smaller tiles (such as mosaics) provide more grout lines and therefore more grip, but large-format tiles can also be used with appropriate surface textures.","Adhesives and grouts in wet rooms must be flexible and permanently waterproof. We use C2 TE S1/S2 rated adhesives (flexible, non-slip, extended working time) and epoxy or polymer-modified grouts that resist water penetration and mould growth.","Glass panels and screens in wet rooms are typically 8mm or 10mm toughened safety glass, fixed with stainless steel or chrome-plated brackets. We install frameless panels for a minimal aesthetic or partially framed options for additional stability in larger openings.","We install wet rooms for homeowners across Tamworth, Lichfield, Rugeley, Swadlincote, Burton-on-Trent, Sutton Coldfield, Atherstone, Nuneaton, Birmingham, Cannock, Walsall, C
318oalville, Hinckley, Derby, and West Bromwich."],quickFacts:[{label:"Typical cost",value:"£6,500 â £13,000",note:"Fully tanked, level-access, supply and fit"},{label:"Install time",value:"8 â 12 working days",note:"Extra days cover tanking and fall grading"},{label:"Workmanship warranty",value:"12 months",note:"Tanking systems carry their own manufacturer cover"},{label:"Building regs",value:"Fall-graded & tanked",note:"Drainage and waterproofing to current standards"}],faqs:[{q:"How much does a wet room cost in Tamworth?",a:"A fully tanked, level-access wet room in Tamworth typically costs £6,500 to £13,000 supplied and fitted. The tanking membrane, floor former and fall grading are the main cost difference against a standard shower room."},{q:"How long does a wet room installation take?",a:"Eight to twelve working days. Tanking has to cure before tiling starts, and the floor fall has to be formed accurately, so a wet room takes longer than a like-for-like bathroom swap."},{q:"Will a wet room leak into the rest of the house?",a:"Not when it is tanked correctly. The whole floor and the lower walls are sealed with a continuous waterproof membrane before any tile goes down, and the fall is graded so water runs to the drain rather than the doorway."},{q:"Can any bathroom be converted to a wet room?",a:"Most bathrooms can be converted, but suitability depends on floor structure, drainage access, and room dimensions. We assess this during your free survey."},{q:"How much does a wet room cost in Tamworth?",a:"Wet room installations typically range from £6,000 to £15,000 depending on room size, specification, and structural requirements. We provide a detailed quote after survey."},{q:"Will a wet room leak into the room below?",a:"Not when installed correctly. Our professional tanking system creates a continuous waterproof membrane that prevents any moisture reaching the structure beneath."},{q:"How long does wet room installation take?",a:"Most wet room installations take 8â12 working days, including floor preparation, tanking, tiling, and fitting."},{q:"Are wet rooms suitable for upstairs bathrooms?",a:"Yes. We reinforce timber floors to support the additional weight and tanking requirements. Structural assessment is included in our survey."},{q:"What tiles work best in a wet room?",a:"We recommend tiles with a minimum R10 slip rating for wet room floors. Porcelain, natural stone, and mosaic tiles all work well with correct specification."},{q:"Do I need a glass screen in a wet room?",a:"A glass screen is not mandatory but is recommended to contain spray and protect fixtures outside the shower zone."},{q:"Can a wet room be wheelchair accessible?",a:"Absolutely. Level-access entry is one of the primary advantages of wet rooms, making them ideal for wheelchair users and those with limited mobility."},{q:"How do you waterproof a wet room?",a:"We use a multi-coat liquid-applied membrane system with reinforced tape at all joints, corners, and penetrations â creating a continuous, tested waterproof barrier."},{q:"What warranty do you offer on wet room installations?",a:"Every wet room installation is covered by our comprehensive workmanship warranty, in addition to manufacturer warranties on products and waterproofing systems."}],ctaHeading:"Ready for a Wet Room That Stays Watertight for Life?",ctaSubtext:"Book your free survey and design consultation. We will assess your space, discuss your options, and provide a clear, no-obligation quote.",relatedServices:[{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation"}
318,{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms"},{name:"Bathroom Installation",path:"/services/bathroom-installation"},{name:"Tiling & Re-tiling",path:"/services/tiling-services"},{name:"Underfloor Heating",path:"/services/underfloor-heating"}],relatedAreas:[{name:"Tamworth",path:"/areas/tamworth"},{name:"Lichfield",path:"/areas/lichfield"},{name:"Sutton Coldfield",path:"/areas/sutton-coldfield"},{name:"Burton-on-Trent",path:"/areas/burton-on-trent"},{name:"Birmingham",path:"/areas/birmingham"},{name:"Cannock",path:"/areas/cannock"},{name:"Nuneaton",path:"/areas/nuneaton"}],schemaType:"Wet Room Installation",primaryKeyword:"Wet Room Installation Tamworth"},eW=()=>r.jsx(Ye,{data:ZB}),tW={slug:"walk-in-shower-installation",title:"Walk-In Shower Installation Tamworth | Blue Sky",metaDescription:"Walk-in shower installation in Tamworth. Frameless glass, low-profile trays, and bespoke designs. No subcontractors, full warranty. Call 0330 043 2234.",heroLine1:"Walk-In Shower",heroLine2:"Installation in Tamworth",heroLine3:"Step In, Stand Out",heroSubheadline:"A beautifully crafted walk-in shower that transforms your bathroom into a contemporary retreat â fitted by one team with a full warranty.",trustMicro:"â
Over 1,000 installations · Frameless glass specialists · Free design consultations",overviewHeading:"Why Walk-In Showers Are the Most Requested Bathroom Upgrade",overviewContent:["Walk-in showers have become the most popular bathroom upgrade in the UK for good reason. They create an open, spacious feel, eliminate the hassle of shower curtains and sliding doors, and provide a safer, more accessible showering experience for all ages.","Unlike a standard shower enclosure, a walk-in shower uses fixed glass panels â typically frameless â to create an open entry point. Combined with a low-profile or flush-fit tray, the result is a clean, contemporary aesthetic that makes any bathroom feel larger.","At Blue Sky Luxury Bathrooms, we design and install walk-in showers tailored to your space. Whether you are converting a bath into a shower, replacing an existing enclosure, or building into a
318new extension, we handle every element â plumbing, tiling, glass, and fixtures.","We serve homeowners across Tamworth, Lichfield, Sutton Coldfield, Burton-on-Trent, Nuneaton, Birmingham, and the wider West Midlands. Book a free consultation at our showroom or request a home visit."],problemHeading:"Common Walk-In Shower Mistakes That Cost Homeowners",problemContent:["The most frequent mistake is underestimating water containment. A walk-in shower without proper drainage gradient, sufficient glass coverage, or correct floor levels results in water escaping onto the bathroom floor â damaging flooring, skirting boards, and potentially the room below.","Cheap glass panels flex, leak at brackets, and develop water stains that cannot be removed. Budget shower valves lose temperature regulation within months, creating scalding risks. Low-quality trays flex underfoot, crack seals, and develop leaks at waste connections.","Poor tiling in the shower zone â particularly around niches, valve cutouts, and panel fixings â allows moisture behind tiles, causing adhesive failure, mould growth, and eventual tile debonding. These issues are invisible until tiles start moving or grout turns black.","Many fitters also neglect adequate drainage. A walk-in shower with a rainfall showerhead and body jets delivers 15â20 litres per minute. If the waste system cannot handle that flow rate, water backs up and floods the bathroom floor every time you shower."],processSteps:[{title:"Consultation & Measurement",description:"We assess your bathroom, discuss glass configurations, and measure for precise panel sizing and tray dimensions."},{title:"Design & Product Selection",description:"We create a layout showing glass positions, tray type, valve placement, and tile selections â approved before work begins."},{title:"Preparation & Plumbing",description:"Existing fittings are removed, pipework is modified or installed, and the floor is prepared for the new tray or wet floor system."},{title:"Tray & Tiling Installation",description:"The shower tray is levelled and sealed, walls and floors are tiled with waterproof adhesive and grout, and niches or shelving are built."},{title:"Glass & Fixture Fitting",description:"Frameless glass panels are measured, templated on-site, and fixed with precision brackets. Shower valves, heads, and accessories are installed."},{title:"Testing & Handover",description:"We run the shower system at full pressure, check drainage, verify glass seal points, and hand over your completed walk-in shower."}],benefits:[{title:"Open, Spacious Design",description:"Fixed glass panels and an open entry create a sense of space that enclosed shower cubicles cannot match â even in smaller bathrooms."},{title:"Easy to Clean",description:"No tracks, no frames, no sliding doors. Frameless glass wipes clean in seconds and eliminates the mould traps found in framed enclosures."},{title:"Safe for All Ages",description:"Low-profile trays and open access make walk-in showers safer for older adults and children â no high step, no door to navigate."},{title:"Thermostatic Control",description:"We install thermostatic shower valves that maintain constant temperature regardless of pressure changes â preventing scalding and cold surges."},{title:"Premium Glass Panels",description:"We use 8mm and 10mm toughened safety glass with anti-limescale coatings, fixed with high-grade stainless steel or chrome brackets."},{title:"Full Warranty Protection",description:"Every walk-in shower installation is backed by our workmanship warranty covering plumbing, tiling, glass, and all fixtures."}],deepDetailHeading:"Walk-In Shower Options: Trays, Glass, Valves & Finishes",deepDetailContent:["Shower trays for walk-in installations are available in low-profile (25mm), ultra-slim (typically 40â90mm), and flush-fit (tiled-over) configurations. Low-profile trays provide the cleanest look with minimal step height. Flush-fit trays require gradient formers similar to wet room construction. We advise on the best option based on your floor structure and drainage position.","Glass panels are the defining feature of a walk-in shower. We install single fixed panels, return panels (L-shaped configurations), and flipper panels that swing inward to reduce spray. Standard glass thickness is 8mm; 10mm is recommended for panels over 1200mm wide. All glass is toughened to BS EN 12150 and available with easy-clean nano-coatings.","Shower valve options include concealed thermostatic mixers (for a clean wall finish), exposed bar valves (for retrofit installations), and digital shower systems (for precise temperature and flow control). We install one-outlet, two-outlet, and three-outlet systems to accommodate fixed heads, hand showers, and body jets.","Rainfall showerheads range from 200mm to 500mm diameter and can be ceiling-mounted, wall-arm-mounted, or fixed to a riser rail. We calculate water pressure requirements and recommend suitable pump or unvented cylinder upgrades where existing pressure is insufficient.","Tile options for walk-in shower walls include large-format porcelain (reduced grout lines for a cleaner look), feature mosaics for accent walls, and textured natural stone. For shower floors, we use tiles with minimum R10 slip resistance. Recessed niches for shampoo and accessories are built into the wall structure during tiling.","Brassware finishes include chrome, brushed nickel, matt black, brushed brass, and gunmetal. We ensure all c
318omponents within the shower zone â valves, heads, grab rails, and accessories â match in finish and style.","We install walk-in showers for clients across Tamworth, Lichfield, Rugeley, Swadlincote, Burton-on-Trent, Sutton Coldfield, Atherstone, Nuneaton, Birmingham, Cannock, Walsall, Coalville, Hinckley, Derby, and West Bromwich."],quickFacts:[{label:"Typical cost",value:"£4,500 â £9,000",note:"Bath-to-shower conversion, supply and fit"},{label:"Install time",value:"5 â 7 working days",note:"Including tiling and making good"},{label:"Workmanship warranty",value:"12 months",note:"Enclosure warranties vary by manufacturer"},{label:"Free home survey",value:"Within 48 hours",note:"Fixed itemised written quote to follow"}],faqs:[{q:"How much does a walk-in shower cost in Tamworth?",a:"A bath-to-walk-in-shower conversion in Tamworth typically costs £4,500 to £9,000 supplied and fitted, depending on tray size, screen specification and how much tiling and making good the room needs."},{q:"How long does it take to replace a bath with a walk-in shower?",a:"Five to seven working days for most homes. That covers removing the bath, adjusting the waste and supply pipework, boarding and tiling, fitting the tray and screen, and making good the surrounding decoration."},{q:"What is the difference between a walk-in shower and a wet room?",a:"A walk-in shower uses a low-profile tray and a glass screen inside an otherwise conventional bathroom. A wet room removes the tray entirely â the whole floor is tanked and graded to a drain, giving true level access. Wet rooms cost more and take longer."},{q:"How much does a walk-in shower cost?",a:"Walk-in shower installations typically range from £3,000 to £8,000 depending on glass configuration, tray type, valve system, and tiling scope. We provide a detailed quote after consultation."},{q:"Can I replace a bath with a walk-in shower?",a:"Yes. Bath-to-shower conversions are one of our most popular services. We adapt plumbing, waterproofing, and flooring to suit the new layout."},{q:"Will water escape from a walk-in shower?",a:"When properly designed and installed with correct glass coverage, drainage gradient, and floor levels, a walk-in shower contains water effectively."},{q:"What size glass panel do I need?",a:"Panel size depends on your shower area width, ceiling height, and desired coverage. We measure and specify glass to suit your specific layout."},{q:"Do you install frameless glass?",a:"Yes. Frameless toughened glass panels are our standard specification. We use 8mm or 10mm glass with high-grade stainless steel fixings."},{q:"How long does installation take?",a:"Most walk-in shower installations are completed within 4â7 working days, depending on tiling scope and plumbing modifications."},{q:"Is a walk-in shower suitable for a small bathroom?",a:"Absolutely. Walk-in showers actually make small bathrooms feel larger by eliminating bulky enclosure frames and creating visual openness."},{q:"What shower valve do you recommend?",a:"We recommend concealed thermostatic valves for the cleanest look and safest temperature control. We advise on the best option during consultation."}],ctaHeading:"Ready for a Walk-In Shower That Transforms Your Bathroom?",ctaSubtext:"Book your free design consultation. We will create a walk-in shower solution tailored to your space, style, and budget.",relatedServices:[{name:"Wet Room Installation",path:"/services/wet-room-installation"},{name:"Bathroom Installation",path:"/services/bathroom-installation"},{name:"Tiling & Re-tiling",path:"/services/tiling-services"}
318,{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms"},{name:"Bathroom Design & Planning",path:"/services/bathroom-design-planning"}],schemaType:"Walk-In Shower Installation",primaryKeyword:"Walk-In Shower Installation Tamworth"},oW=()=>r.jsx(Ye,{data:tW}),rW={slug:"luxury-bathroom-renovations",title:"Luxury Bathroom Renovations Tamworth | Blue Sky",metaDescription:"Luxury bathroom renovations in Tamworth. Premium materials, bespoke design, flawless installation. One team, full warranty. Call 0330 043 2234.",heroLine1:"Luxury Bathroom",heroLine2:"Renovations in Tamworth",heroLine3:"Where Detail Defines Quality",heroSubheadline:"A meticulously crafted bathroom renovation using premium materials, precision installation, and design expertise â creating a space that feels exceptional every single day.",trustMicro:"â
Premium-grade installations · 20+ years' craftsmanship · Tamworth showroom · Full warranty",overviewHeading:"What Separates a Luxury Bathroom From a Standard One?",overviewContent:["A luxury bathroom is not defined by price alone. It is defined by the precision of the installation, the quality of the materials, the intelligence of the design, and the way every element works together without a single jarring detail. It is the difference between a bathroom that functions and one that feels like a private sanctuary.","Luxury means freestanding stone-resin baths with seamless overflow channels. It means wall-hung vanities with soft-close drawers mounted on concealed steel frames. It means underfloor heating that warms natural stone tiles to exactly the right temperature. It means lighting that shifts between bright task illumination and warm ambient glow at the touch of a button.","At Blue Sky Luxury Bathrooms, luxury is our foundation â not an afterthought. We source products from European manufacturers known for engineering excellence, and our installation team has the skill to realise complex designs without compromise.","We deliver luxury bathroom renovations across Tamworth, Lichfield, Sutton Coldfield, Burton-on-Trent, Nuneaton, Birmingham, and the wider West Midlands. Visit our Tamworth showroom to explore luxury displays or book a private design consultation."],problemHeading:"When 'High End' Products Meet Low-Quality Installation",problemContent:["The most common disappointment in bathroom renovations is spending significantly on premium products only to have them installed by fitters who lack the skill to do them justice. Expensive tiles cut poorly and grouted unevenly. Designer taps mounted off-centre. Freestanding baths with visible pipework that should have been concealed.","Luxury materials are less forgiving of installation errors. Large-format porcelain tiles require perfectly flat substrates and clip-levelling systems. Natural stone needs sealing, careful adhesive selection, and movement joint planning. Frameless glass demands precise wall preparation and exact bracket positioning.","Wall-hung sanitaryware â WCs, basins, and vanity units â requires concealed steel mounting frames built into the wall structure before tiling. Fitters unfamiliar with these systems either install them incorrectly (causing movement and cracking) or refuse to fit them altogether, limiting your design choices.","A luxury bathroom renovation is only as good as its weakest detail. One misaligned tile line, one poorly positioned spotlight, or one visible sealant joint can undermine the entire effect. Precision at every stage is not optional â it is the definition of luxury."],processSteps:[{title:"Private Design Consultation",description:"We meet at our showroom or your home to understand your vision, explore material options, and discuss the experience you want from your bathroom."},{title:"Detailed Site Survey",description:"We conduct a thorough survey of your space, including structural assessment, service mapping, and precise measurement for bespoke elements."},{title:"Bespoke Design Development",description:"Our design team creates a comprehensive plan covering layout, products, materials, lighting, heating, and accessories â refined to your exact specification."},{title:"Precision Installation",description:"Our craftsmen execute the design with meticulous attention to detail â from structural preparation through to final finishing touches."},{title:"Quality Assurance",description:"Every element is inspected against the approved design. Tile lines, grout joints, fixture alignment, and finish quality are verified before handover."}
318,{title:"Handover & Aftercare",description:"We walk you through your completed bathroom, demonstrate all fixtures and controls, and provide care instructions for premium materials."}],benefits:[{title:"Uncompromising Craftsmanship",description:"Our installation team specialises in precision work â perfect tile lines, seamless joints, concealed services, and flawless finishing."},{title:"Premium Material Knowledge",description:"We understand natural stone, large-format tiles, engineered surfaces, and specialist finishes â and how to install each one correctly."},{title:"Bespoke Design Capability",description:"Every luxury renovation is unique. We design around your specific space, lifestyle, and aesthetic preferences â no template solutions."},{title:"Integrated Technology",description:"From digital shower systems and smart mirrors to underfloor heating and automated ventilation â we integrate technology seamlessly."},{title:"Showroom Experience",description:"See and touch luxury products in our Tamworth showroom. Compare finishes, test fixtures, and make confident decisions before committing."},{title:"Single-Source Accountability",description:"Design, procurement, and installation under one roof. One team, one warranty, one point of contact throughout your project."}],deepDetailHeading:"Luxury Bathroom Materials, Finishes & Technologies",deepDetailContent:["Natural stone â including marble, travertine, limestone, and slate â brings unmatched depth and character to a luxury bathroom. Each slab is unique, requiring careful selection and book-matching for visual continuity. We seal all natural stone with impregnating sealers that protect against staining without altering the surface appearance.","Large-format porcelain tiles (600x1200mm and above) create a seamless, hotel-quality aesthetic. These tiles require perfectly prepared substrates, full-bed adhesive application, and clip-and-wedge levelling systems to eliminate lippage. The result is a continuous surface with minimal grout lines.","Freestanding baths in stone resin, cast mineral, or copper are statement pieces that anchor a luxury bathroom design. We conceal all pipework beneath floor level, position waste connections for maximum concealment, and ensure structural support beneath the bath meets load requirements.","Wall-hung sanitaryware (WCs, bidets, and basin units) provides a floating, clean-line aesthetic that defines contemporary luxury. We install Geberit Duofix and similar concealed frame systems, pre-plumbed and tested before any tiling work begins.","Brassware in brushed brass, brushed nickel, matt black, or polished chrome creates the accent layer of a luxury bathroom. We source from manufacturers like Crosswater, Hansgrohe, and Vado â brands that combine aesthetic refinement with engineering reliability.","Lighting design in luxury bathrooms uses layered illumination: recessed IP65-rated downlights for general light, backlit mirrors for task lighting, LED strip profiles for accent and mood lighting, and dimming controls for adjustable atmosphere. All fittings are specified for correct bathroom zone ratings.","Underfloor heating is essential beneath stone and porcelain floors. We install electric mat systems for single rooms and water-fed systems where connected to the central heating. Temperature is controlled independently via programmable or smart thermostats.","We deliver luxury bathroom renovations for discerning homeowners across Tamworth, Lichfield, Rugeley, Swadlincote, Burton-on-Trent, Sutton Coldfield, Atherstone, Nuneaton, Birmingham, Cannock, Walsall, Coalville, Hinckley, Derby, and West Bromwich."],faqs:[{q:"How much does a luxury bathroom renovation cost?",a:"Luxury renovations typically range from £10,000 to £30,000+ depending on room size, material specification, and design complexity. We provide detailed quotations after consultation."},{q:"How long does a luxury bathroom renovation take?",a:"Most luxury projects take 10â20 working days depending on scope, material lead times, and design complexity."},{q:"Can you source specific brands or products?",a:"Yes. We work with a wide network of suppliers and can source specific products, finishes, and custom items to match your vision."},{q:"Do you install underfloor heating?",a:"Yes. Underfloor heating is a standard element of our luxury installations, providing comfort beneath stone and tile floors."},{q:"Can you work with my architect or interior designer?",a:"Absolutely. We collaborate with architects and designers to ensure their vision is executed to the highest standard."},{q:"Do you install natural stone?",a:"Yes. We have extensive experience with marble, travertine, limestone, and other natural stones â including sealing, book-matching, and specialist adhesive requirements."},{q:"What warranty do you provide?",a:"Every luxury renovation is backed by our comprehensive workmanship warranty, alongside manufacturer product warranties."},{q:"Can I visit your showroom?",a:"Yes. Our Tamworth showroom features luxury bathroom displays. Open Monday to Frid
318ay 9amâ5pm, Saturday 9amâ1pm, and Sunday 10amâ2pm by appointment."}],ctaHeading:"Ready for a Bathroom That Exceeds Expectations?",ctaSubtext:"Book your private design consultation. We will create a luxury bathroom that reflects your taste, fits your space, and is built to last.",relatedServices:[{name:"Bathroom Design & Planning",path:"/services/bathroom-design-planning"},{name:"Wet Room Installation",path:"/services/wet-room-installation"},{name:"Bathroom Showroom",path:"/services/bathroom-showroom"},{name:"Underfloor Heating",path:"/services/underfloor-heating"},{name:"Tiling & Re-tiling",path:"/services/tiling-services"}],schemaType:"Luxury Bathroom Renovation",primaryKeyword:"Luxury Bathroom Renovations Tamworth"},aW=()=>r.jsx(Ye,{data:rW}),nW={slug:"accessible-bathrooms",title:"Accessible Bathrooms Tamworth | Disabled Specialists",metaDescription:"Accessible and disabled bathroom installations in Tamworth. Level-access showers, grab rails, and adapted layouts. Dignity-first design. Call 0330 043 2234.",heroLine1:"Accessible Bathroom",heroLine2:"Installations in Tamworth",heroLine3:"Independence Without Compromise",heroSubheadline:"Bathrooms designed for accessibility that look every bit as good as they perform â because adapting your home should never mean sacrificing style.",trustMicro:"â
Specialist accessible designs · Level-access shower experts · DDA-compliant installations · Free home assessments",overviewHeading:"Who Needs an Accessible Bathroom â and Why It Matters",overviewContent:["An accessible bathroom is not just for wheelchair users. It is for anyone whose mobility, balance, strength, or dexterity makes a standard bathroom difficult or dangerous to use. That includes older adults, people recovering from surgery, those living with arthritis or neurological conditions, and families planning for long-term aging in place.","Falls in the bathroom are the single most common cause of injury-related hospital admissions among over-65s in the UK. A wet, slippery floor combined with a high bath step and no support creates a genuinely dangerous environment. An accessible bathroom eliminates these risks with level-access entry, non-slip surfaces, and strategically positioned support.","At Blue Sky Luxury Bathrooms, we design accessible bathrooms that prioritise safety and independence without institutional aesthetics. Grab rails do not have to look clinical. Level-access showers can be beautiful. Comfort-height toilets come in modern, stylish designs. Our approach is dignity-first â every adaptation is integrated into a cohesive, attractive bathroom design.","We serve homeowners and their families across Tamworth, Lichfield, Sutton Coldfield, Burton-on-Trent, Nuneaton, Birmingham, and the wider West Midlands."],problemHeading:"What Happens When Bathroom Accessibility Is Ignored",problemContent:["Every year, thousands of older adults in the UK suffer preventable falls in their bathrooms. A single fall can result in hip fractures, head injuries, and extended hospital stays â often triggering a permanent loss of independence and confidence.","Many families delay bathroom adaptations because they associate accessibility with unattractive, clinical-looking products. They tolerate unsafe conditions â stepping over high bath edges, gripping towel rail
318s for balance, or using unstable shower chairs â until an accident forces urgent action.","Emergency adaptations after a fall are invariably more expensive, more disruptive, and less thoughtfully designed than planned modifications. They are also emotionally harder â carried out under stress rather than as a considered improvement.","Failing to adapt a bathroom also impacts carers. Assisting someone in and out of a standard bath or into a small shower enclosure is physically demanding and risks injury to both parties. A properly designed accessible bathroom reduces carer burden significantly."],processSteps:[{title:"Free Home Assessment",description:"We visit your home to assess the existing bathroom, discuss mobility requirements, and identify the adaptations that will make the greatest difference."},{title:"Personalised Design",description:"We create a design that addresses specific accessibility needs while maintaining an attractive, contemporary look. Every element is positioned for optimal safety and comfort."},{title:"Product Specification",description:"We specify products purpose-designed for accessibility â comfort-height WCs, thermostatic valves, anti-scald devices, non-slip tiles, and support rails in finishes that complement your design."},{title:"Professional Installation",description:"Our team installs everything â structural reinfor
318cement for grab rails, level-access shower formations, wider doorways where needed, and all plumbing and electrical work."},{title:"Testing & Demonstration",description:"We test every element with the end user, ensure everything is comfortable and accessible, and make fine adjustments as needed."},{title:"Aftercare & Support",description:"We remain available for adjustments, additional adaptations, or maintenance as needs change over time."}],benefits:[{title:"Level-Access Showering",description:"Step-free wet rooms and walk-in showers with non-slip floors eliminate the most dangerous element of standard bathrooms â the step."},{title:"Dignity-First Design",description:"Adaptations are integrated seamlessly into attractive bathroom designs. Nothing looks institutional or afterthought."},{title:"Thermostatic Safety",description:"All shower and bath valves include thermostatic control and anti-scald technology, preventing burns from sudden temperature changes."},{title:"Strategic Support",description:"Grab rails, drop-down rails, and shower seats are positioned based on the user's specific needs and movement patterns â not generic guidelines."},{title:"Future-Proofed Design",description:"We design with progression in mind. Reinforced walls allow rails to be added later, and layouts accommodate future equipment without complete redesign."},{title:"Reduced Carer Burden",description:"Wider access, appropriate heights, and thoughtful layouts make assisting easier and safer for family members and professional carers."}],deepDetailHeading:"Accessible Bathroom Features, Products & Specifications",deepDetailContent:["Level-access showers are the foundation of most accessible bathroom designs. We construct these using gradient-forming boards with integrated drainage, fully tanked with liquid-applied membranes, and tiled with R11-rated anti-slip tiles. Options include open wet room designs and semi-enclosed walk-in configurations with folding glass screens.","Comfort-height WCs (typically 450â480mm seat height compared to the standard 400mm) reduce the effort required to sit and stand. Wall-hung models allow height adjustment to suit the user precisely. We install concealed cistern frames rated to support users up to 400kg.","Grab rails and support systems are available in stainless steel, chrome, matt black, and white finishes. We install fixed horizontal and angled rails, hinged drop-down rails beside WCs, and integrated shower seat rails. Every rail is fixed into reinforced mounting points rated for the required load â never into plasterboard alone.","Thermostatic mixing valves (TMVs) are essential in accessible bathrooms. We install TMV2 and TMV3 rated valves that limit maximum water temperature to 41â44°C, preventing scalding in users with reduced sensation or slower reaction times.","Non-slip flooring uses tiles rated R11 or above on the DIN 51130 scale, or alternatively, safety vinyl flooring with integrated slip resistance. We advise on the most appropriate option based on the user's mobility aids and the level of water exposure.","Wider doorways (minimum 800mm clear opening) accommodate wheelchairs and walking frames. Where structural modification is required, we handle lintel installation and frame widening as part of the project.","Additional accessible features include lever-operated taps (easier to use than twist mechanisms), illuminated pull-cord switches, contrasting colour schemes for visually impaired users, and recessed shelving at accessible heights.","We install accessible bathrooms across Tamworth, Lichfield, Rugeley, Swadlincote, Burton-on-Trent, Sutton Coldfield, Atherstone, Nuneaton, Birmingham, Cannock, Walsall, Coalville, Hinckley, Derby, and West Bromwich."],quickFacts:[{label:"Typical cost",value:"£5,500 â £12,000",
318note:"Walk-in bath, walk-in shower or level-access wet room"},{label:"Install time",value:"5 â 12 working days",note:"Depends on whether tanking is required"},{label:"Workmanship warranty",value:"12 months",note:"Product warranties vary: 12 months to lifetime"},{label:"Home assessment",value:"Free, no obligation",note:"Resident, family and carers all welcome"}],faqs:[{q:"How much does an accessible bathroom cost in Tamworth?",a:"Accessible bathroom installations in Tamworth typically cost £5,500 to £12,000 supplied and fitted. Walk-in bath swaps sit at the lower end; fully tanked, wheelchair-accessible level-access wet rooms sit at the top."},{q:"Can I get council funding for an accessible bathroom?",a:"A Disabled Facilities Grant is available through your local council following an occupational therapist assessment. Eligibility and award amounts are decided by the council, not by us, but we are happy to provide a written itemised quote for your application."},{q:"How long does an accessible bathroom installation take?",a:"Five to twelve working days. A walk-in bath or bath-to-shower swap is usually five to seven days; a fully tanked level-access wet room is eight to twelve because of tanking and drainage."},{q:"Do you install grab rails and comfort-height WCs on their own?",a:"Yes. Not every adaptation needs a full refit. Grab rails, drop-down rails, comfort-height WCs, lever taps and anti-slip flooring can all be fitted as standalone jobs, usually in a day."},{q:"How much does an accessible bathroom cost?",a:"Accessible bathroom installations typically range from £5,000 to £15,000 depending on the scope of adaptations, room size, and product specification. We provide a detailed quote after your free home assessment."},{q:"Can I get a grant for an accessible bathroom?",a:"The Disabled Facilities Grant (DFG) is available through your local council for eligible residents. We can advise on the process and provide documentation to support your application."},{q:"Do accessible bathrooms look clinical?",a:"Not when we design them. Our accessible bathrooms are contemporary, attractive spaces where every adaptation is integrated into a cohesive design."},{q:"Can you convert a bath into a level-access shower?",a:"Yes. Bath-to-shower conversions are one of our most common accessible adaptations. We create a level-access showering area in the space previously occupied by the bath."},{q:"How long does installation take?",a:"Most accessible bathroom installations take 7â12 working days, depending on structural modifications and the scope of adaptations required."},{q:"Can you widen the bathroom doorway?",a:"Yes. We handle structural modifications including doorway widening, lintel installation, and frame replacement as part of the project."},{q:"Do you install shower seats and grab rails?",a:"Yes. We install wall-mounted folding seats, free-standing shower stools, fixed and hinged grab rails, and integrated support systems â all fixed to reinforced mounting points."},{q:"Can the bathroom be adapted further in the future?",a:"Yes. We future-proof our installations by reinforcing walls and planning layouts that accommodate additional equipment or modifications as needs evolve."},{q:"Do you work with occupational therapists?",a:"Yes. We collaborate with occupational therapists and healthcare professionals to ensure adaptations meet specific clinical recommendations."},{q:"What areas do you cover?",a:"We serve Tamworth, Lichfield, Sutton Coldfield, Burton-on-Trent, Nuneaton, Birmingham, and the wider West Midlands."}],ctaHeading:"Make Your Bathroom Safe, Accessible & Beautiful",ctaSubtext:"Book your free home assessment. We will design an accessible bathroom that protects independence without compromising on style.",relatedServices:[{name:"Wet Room Installation",path:"/services/wet-room-installation"},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation"},{name:"Bathroom Installation",path:"/services/bathroom-installation"},{name:"Bathroom Design & Planning",path:"/services/bathroom-design-planning"},{name:"Plumbing Services",path:"/services/plumbing-services"}],relatedAreas:[{name:"Tamworth",path:"/areas/tamworth"},{name:"Lichfield",path:"/areas/lichfield"},{name:"Sutton Coldfield",path:"/areas/sutton-coldfield"},{name:"Burton-on-Trent",path:"/areas/burton-on-trent"},{name:"Birmingham",path:"/areas/birmingham"},{name:"Cannock",path:"/areas/cannock"},{name:"Nuneaton",path:"/areas/nuneaton"}],schemaType:"Accessible Bathroom Installation",primaryKeyword:"Accessible Bathrooms Tamworth"},sW=()=>r.jsx(Ye,{data:nW}),iW={slug:"plumbing-services",title:"Plumbing Services Tamworth | Reliable Plumbers | Blue Sky",metaDescription:"Professional plumbing services in Tamworth. Repairs, installations, and maintenance by experienced plumbers. No call-out fees. Call 0330 043 2234.",heroLine1:"Professional Plumbing",heroLine2:"Services in Tamworth",heroLine3:"Fixed Properly, First Time",heroSubheadline:"From dripping taps to full system installations â experienced plumbers who diagnose accurately, fix permanently, and charge transparently.",trustMicro:"â
20+ years' experience · No call-out fees · Gas Safe registered · Transparent pricing",overviewHeading:"Plumbing Services That Go Beyond the Quick Fix",overviewContent:["Plumbing problems rarely fix themselves â and amateur repairs almost always make them worse. A dripping tap wastes over 5,000 litres of water per year. A slow leak behind a wall can cause thousands of pounds in structural damage before it becomes visible. A poorly connected appliance can flood your kitchen overnight.","At Blue Sky Luxury Bathrooms, our plumbing service covers everything from straightforward repairs and replacements to complete system installations. Our plumbers have over 20 years' experience working in domestic properties across the West Midlands, and every job is completed to a standard that lasts.","We do not charge call-out fees. You pay for the work done, quoted upfront and confirmed before we start. No surprises, no escalating costs, and no pressure to approve work you have not asked for.","We serve homeowners across Tamworth, Lichfield, Sutton Coldfield, Burton-on-Trent, Nuneaton, Birmingham, Cannock, and the wider West Midlands."],problemHeading:"Why Delaying Plumbing Repairs Costs You More",problemContent:["Water damage escalates exponentially. A small leak that costs £100 to repair today can cause £5,000 in floor, ceiling, and wall damage if left for six months. Moisture in wall cavities promotes mould growth that affects air quality and can trigger respiratory issues.","Blocked drains that are ignored lead to sewage backflow, foul odours, and potential health hazards. Slow-draining sinks and showers often indicate partial blockages that will eventually become complete â typically at the most inconvenient moment.","Running toilets, dripping taps, and faulty stopcocks waste water and money. A continuously running toilet can waste over 200 litres per day, adding significantly to metered water bills.","Perhaps most critically, undiagnosed plumbing issues can mask more serious problems. Persistent damp, unex
318plained water pressure drops, and discoloured water can indicate failing pipework, corroded cylinders, or compromised mains connections that require professional assessment."],processSteps:[{title:"Contact & Assessment",description:"Call us or request a callback. Describe the issue and we will arrange a visit at a time that suits you."},{title:"Diagnosis",description:"Our plumber inspects the problem, identifies the root cause, and explains what needs to be done â in plain language, not trade jargon."},{title:"Upfront Quote",description:"You receive a clear price for the repair or installation before any work begins. No hidden costs, no surprises."},{title:"Professional Repair",description:"We complete the work using quality materials and correct techniques â fixing the problem permanently, not temporarily."},{title:"Testing & Verification",description:"Every repair is tested under operating conditions. We check for leaks, verify flow rates, and confirm the issue is fully resolved."}],benefits:[{title:"Accurate Diagnosis",description:"20+ years' experience means we identify the actual cause â not just the symptom. This prevents repeat call-outs and unnecessary part replacements."},{title:"No Call-Out Fees",description:"You pay for the work, not for us turning up. Transparent pricing with no hidden charges."},{title:"Permanent Repairs",description:"We use quality fittings and proven techniques to fix problems once â not patch them until they fail again."},{title:"Gas Safe Registered",description:"Our team includes Gas Safe registered engineers for any gas-related plumbing work including boiler connections and gas cooker installations."},{title:"Full Range of Services",description:"From tap washers to full heating system installations â we cover everything so you deal with one trusted company."},{title:"Local to Tamworth",description:"Based at Unit 7 Cavendish, Tamworth â we respond quickly across Tamworth, Lichfield, Sutton Coldfield, and surrounding areas."}],deepDetailHeading:"Our Plumbing Services: What We Cover",deepDetailContent:["Tap repairs and replacements â including washer replacement, cartridge fitting, and complete tap changeovers. We work with mixer taps, monobloc taps, bath fillers, and shower valves in all configurations.","Toilet repairs cover running cisterns, faulty flush mechanisms, leaking base seals, blocked drains, and complete WC replacements including concealed cistern systems. We diagnose the issue accurately to avoid unnecessary full replacements.","Leak detection and repair â from visible drips to hidden leaks within wall cavities and beneath floors. We use pressure testing and systematic isolation to locate leaks without unnecessary disruption.","Radiator and heating system work includes radiator replacement, balancing, bleeding, TRV fitting, powerflush services, and system modifications. We work on both pressurised and open-vented heating systems.","Appliance connections â dishwashers, washing machines, water softeners, water filters, and waste disposal units. We ensure correct isolation valves, check valves, and waste connections are fitted for every appliance.","Bathroom and kitchen plumbing â complete first-fix and second-fix plumbing for new installations and refurbishments. We work closely with our tiling and fitting teams to ensure coordinated, efficient project delivery.","Hot water systems â repairs and installations for unvented cylinders, vented cylinders, thermal stores, and combination boilers. We size and specify systems based on property demands and user requirements.","We provide plumbing services across Tamworth, Lichfield, Rugeley, Swadlincote, Burton-on-Trent, Sutton Coldfield, Atherstone, Nuneaton, Birmingham, Cannock, Walsall, Coalville, Hinckley, Derby, and West Bromwich."],quickFacts:[{label:"Engineers",value:"Gas Safe registered",note:"Registration details available on request"},{label:"Experience",value:"20+ years",note:"Led by Florin Vescan and our employed team"},{label:"Typical call-out",value:"Same or next day",note:"Across Tamworth and surrounding areas"},{label:"Workmanship warranty",value:"12 months",note:"Parts covered by manufacturer warranty"}],faqs:[{q:"Do you charge a call-out fee?",a:"No. We do not charge call-out fees. You pay for the work completed, quoted and agreed before we start."},{q:"How quickly can you respond?",a:"We aim to attend within 24â48 hours for standard appointments. For urgent issues, contact us to discu
318ss priority scheduling."},{q:"Are you Gas Safe registered?",a:"Yes. Our team includes Gas Safe registered engineers for gas-related plumbing including boiler work and gas appliance connections."},{q:"Can you fix a leaking pipe behind a wall?",a:"Yes. We locate hidden leaks using systematic isolation and pressure testing, then access and repair with minimal disruption to your walls and floors."},{q:"Do you install bathrooms and kitchens?",a:"Yes. Plumbing is a core element of our bathroom and kitchen installation service. We handle complete projects from start to finish."},{q:"What areas do you cover?",a:"We cover Tamworth, Lichfield, Sutton Coldfield, Burton-on-Trent, Nuneaton, Birmingham, Cannock, Walsall, and the wider West Midlands."},{q:"Can you fit a new radiator?",a:"Yes. We install, replace, and relocate radiators, including fitting thermostatic radiator valves and balancing systems."},{q:"Do you provide written quotes?",a:"Yes. Every job receives a clear, written quote before work begins. No verbal estimates, no ambiguity."}],ctaHeading:"Need a Plumber You Can Trust?",ctaSubtext:"Call us or request a callback. No call-out fees, no hidden charges â just experienced plumbers who fix it right.",relatedServices:[{name:"Boiler Replacement",path:"/services/boiler-replacement"},{name:"Bathroom Installation",path:"/services/bathroom-installation"},{name:"Kitchen Installation",path:"/services/kitchen-installation"},{name:"Underfloor Heating",path:"/services/underfloor-heating"}],schemaType:"Plumbing Service",primaryKeyword:"Plumbing Services Tamworth"},lW=()=>r.jsx(Ye,{data:iW}),dW={slug:"tiling-services",title:"Tiling Services Tamworth | Expert Tilers | Blue Sky",metaDescription:"Professional tiling and re-tiling in Tamworth. Walls, floors, splashbacks, and wet areas. Large-format specialists. Free quotes. Call 0330 043 2234.",heroLine1:"Expert Tiling &",heroLine2:"Re-Tiling in Tamworth",heroLine3:"Precision That Shows",heroSubheadline:"Flawless tile installation that transforms bathrooms, kitchens, and living spaces â using specialist techniques that deliver level, lasting, and beautiful results.",trustMicro:"â
Large-format tile specialists · 20+ years' experience · Full warranty · Free estimates",overviewHeading:"Why Professional Tiling Makes All the Difference",overviewContent:["Tiling is the most visible element of any bathroom or kitchen project. Every line, every joint, and every cut is permanently on display. Poor tiling cannot be hidden â it defines the room for years to come. Professional tiling, by contrast, creates surfaces that look effortless and last decades.","At Blue Sky Luxury Bathrooms, our tilers specialise in bathroom and kitchen environments where precision is critical. Wet areas demand waterproof adhesives, flexible grouts, and correct substrate preparation. Shower niches require precise mitre cuts. Large-format tiles need perfectly flat walls and clip-levelling systems to eliminate lippage.","We tile walls, floors, splashbacks, shower enclosures, wet rooms, and feature walls using porcelain, ceramic, natural stone, glass, and mosaic tiles. Whether you need a single splashback or a complete re-tile of a large bathroom, we deliver the same standard of precision on every project.","We serve homeowners across Tamworth, Lichfield, Sutton Coldfield, Burton-on-Trent, Nuneaton, Birmingham, and the wider West Midlands."],problemHeading:"The Signs of Poor Tiling â and Why They Get Worse",problemContent:["The most common tiling failure is hollow tiles â tiles that are not fully adhered to the substrate. They sound hollow when tapped, crack under foot traffic, and eventually debond from the wall. This happens when tilers use spot-fixing (adhesive in the corners only) instead of full-bed application.","Lippage â uneven edges between adjacent tiles â creates visible shadow lines, catches bare feet, and collects dirt in the steps. This is preventable with clip-and-wedge levelling systems but skipped by fitters in a hurry or lacking the tools.","In wet areas, non-waterproof adhesive and standard grout allow moisture behind tiles. Over months, this causes adhesive breakdown, black mould growth, and eventual tile detachment. The repair requires stripping all tiles, treating the substrate, and re-tiling from scratch.","Poor cutting â visible chips at edges, uneven lines around fixtures, and misaligned pattern joints â cheapens the entire bathroom regardless of how expensive the tiles are. Precision cutting with diamond blades and wet saws is not optional; it is fundamental to professional tiling."],processSteps:[{title:"Surface Assessment",description:"We check wall and floor conditions â flatness, stability, and moisture levels â to determine if preparation work is needed before tiling."},{title:"Substrate Preparation",description:"Walls are plastered, boarded, or skimmed to achieve flat, stable surfaces. Floors are levelled with self-levelling compound where required."},{title:"Layout Planning",description:"We plan tile layouts to ensure symmetrical cuts, balanced patterns, and correct positioning around fixtures and features."},{title:"Waterproofing (Wet Areas)",description:"Shower zones, wet rooms, and splash areas receive liquid-applied waterproof membrane before tiling begins."},{title:"Tile Installation",description:"Tiles are fixed using full-bed adhesive application with clip-and-wedge levelling systems for large-format tiles. All cut
318s use diamond blades."},{title:"Grouting & Finishing",description:"Joints are grouted with flexible, mould-resistant grout. Edges are sealed with colour-matched silicone. All surfaces are cleaned and inspected."}],benefits:[{title:"Full-Bed Adhesive Application",description:"Every tile is fully adhered to the substrate â no shortcuts, no hollow tiles, no future failures."},{title:"Large-Format Expertise",description:"We specialise in 600x1200mm and larger tiles that require perfectly prepared surfaces and precision levelling systems."},{title:"Waterproof Systems",description:"All wet area tiling includes proper waterproofing â liquid membranes, corner seals, and pipe collars â not just silicone."},{title:"Precision Cutting",description:"Diamond wet saws and manual cutters produce clean, chip-free edges around fixtures, niches, and borders."},{title:"Natural Stone Knowledge",description:"We understand the specific requirements of marble, travertine, slate, and limestone â including sealing, adhesive compatibility, and joint sizing."},{title:"Clean, Efficient Work",description:"We contain dust, protect surfaces, and leave your home clean at the end of every working day."}],deepDetailHeading:"Tile Types, Techniques & Technical Specifications",deepDetailContent:["Porcelain tiles are the most popular choice for bathrooms and kitchens. They offer excellent water resistance (absorption below 0.5%), high durability, and a wide range of finishes including matt, polished, and textured. We cut porcelain with diamond blades on wet-cutting tile saws for clean, precise edges.","Ceramic tiles are lighter and easier to cut than porcelain, making them suitable for wall applications in dry and splash areas. They are available in a vast range of colours, patterns, and sizes. We advise on the appropriate tile type for each application based on water exposure and traffic levels.","Natural stone tiles â marble, travertine, limestone, granite, and slate â bring unique character to any space. Each stone has different porosity, hardness, and movement characteristics that affect adhesive selection, grout type, joint width, and sealing requirements. We apply impregnating sealers before grouting to prevent staining.","Mosaic tiles (typically 25x25mm to 50x50mm on mesh sheets) are used for feature walls, shower floors, and decorative borders. Their smaller size provides additional grip in wet areas and allows them to conform to curved or sloped surfaces such as wet room floors.","Large-format tiles (600x600mm, 600x1200mm, 800x800mm, and above) create a seamless, contemporary look with fewer grout lines. They require flat substrates (tolerance of ±3mm over 2m), C2 TE rated adhesive for extended working time, and clip-and-wedge levelling systems to prevent lippage.","Wall preparation for tiling may include removing old tiles, applying tile backer boards (such as Wedi or Marmox), plastering, or skimming. We assess each surface and carry out whatever preparation is needed to ensure tiles are fixed to a stable, flat, and compatible substrate.","Grout selection depends on the application. Cement-based flexible grouts suit most wall and floor applications. Epoxy grouts are used in high-traffic or hygienic environments. Silicone sealant is applied at all change-of-plane junctions (wall-to-floor, wall-to-wall, around fixtures) to accommodate building movement.","We provide tiling services across Tamworth, Lichfield, Rugeley, Swadlincote, Burton-on-Trent, Sutton Coldfield, Atherstone, Nuneaton, Birmingham, Cannock, Walsall, Coalville, Hinckley, Derby, and West Bromwich."],faqs:[{q:"How much does bathroom tiling cost?",a:"Costs depend on room size, tile type, and preparation required. A typical bathroom re-tile ranges from £1,500 to £4,000 including labour and materials. We provide a detailed quote after assessment."},{q:"Can you tile over existing tiles?",a:"In some cases, yes â provided existing tiles are firmly adhered, flat, and the additional thickness is acceptable. We assess suitability on a case-by-case basis."},{q:"Do you supply tiles?",a:"Yes â we supply all tiles for projects we install. We work on a
318supply-and-install basis only, sourcing tiles directly through our Tamworth showroom from trusted UK and European manufacturers. Visit our showroom to compare formats, finishes, and patterns in person before deciding."},{q:"Can you tile a wet room?",a:"Yes. Wet room tiling is one of our specialist services, including waterproof membrane application, anti-slip floor tiles, and precision drainage integration."},{q:"How long does re-tiling take?",a:"A standard bathroom re-tile takes 3â5 working days including preparation, tiling, grouting, and finishing."},{q:"Do you install underfloor heating beneath tiles?",a:"Yes. We install electric mat heating systems beneath tiled floors, including required insulation boards and thermostat connections."},{q:"What grout do you use?",a:"We use flexible, mould-resistant grouts in wet areas and standard flexible grouts for dry areas. Colour matching is discussed during specification."},{q:"Can you tile large-format tiles on walls?",a:"Yes. We have the equipment and experience to handle large-format tiles on walls, including the adhesive, levelling, and support systems required."}],ctaHeading:"Ready for Tiling That Looks Flawless for Years?",ctaSubtext:"Book your free assessment. We will inspect your surfaces, discuss your tile choices, and provide a clear, no-obligation quote.",relatedServices:[{name:"Bathroom Installation",path:"/services/bathroom-installation"},{name:"Wet Room Installation",path:"/services/wet-room-installation"},{name:"Kitchen Installation",path:"/services/kitchen-installation"},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments"},{name:"Underfloor Heating",path:"/services/underfloor-heating"}],schemaType:"Tiling Service",primaryKeyword:"Tiling Services Tamworth"},cW=()=>r.jsx(Ye,{data:dW}),uW={slug:"underfloor-heating",title:"Underfloor Heating Installation Tamworth | Blue Sky",metaDescription:"Underfloor heating installation in Tamworth. Electric and water-fed systems for bathrooms and kitchens. Expert fitting, full warranty. Call 0330 043 2234.",heroLine1:"Underfloor Heating",heroLine2:"Installation in Tamworth",heroLine3:"Warmth From the Ground Up",heroSubheadline:"Step onto warm tiles every morning â professionally installed underfloor heating that eliminates cold floors and frees your walls from bulky radiators.",trustMicro:"â
Electric & water-fed systems · 20+ years' experience · Full warranty · Free consultations",overviewHeading:"Why Underfloor Heating Transforms Your Bathroom Experience",overviewContent:["Cold bathroom tiles are one of the most common complaints homeowners have â especially during winter months. Underfloor heating eliminates this entirely, turning your floor into a gentle, even heat source that warms the room from below without the hot spots and cold drafts associated with radiators.","Beyond comfort, underfloor heating frees wall space previously occupied by radiators and towel rails, giving you more design flexibility and a cleaner aesthetic. In bathrooms, it also helps reduce condensation and moisture, keeping surfaces drier and inhibiting mould growth.","At Blue Sky Luxury Bathrooms, we install both electric mat systems (ideal for individual rooms and retrofits) and water-fed systems (connected to your central heating for whole-house efficiency). Each system is specified based on your room size, floor construction, and heating requirements.","We install underfloor heating across Tamworth, Lichfield, Sutton Coldfield, Burton-on-Trent, Nuneaton, Birmingham, and the wider West Midlands â typically as part of a bathroom or kitchen renovation."],problemHeading:"What Happens When Underfloor Heating Is Installed Incorrectly",problemContent:["Incorrectly installed underfloor heating creates uneven hot spots that damage tiles and adhesive, or cold patches where heating elements are spaced too far apart. Both issues are invisible once tiled over and extremely expensive to rectify â requiring complete floor removal.","Missing or inadequate insulation beneath heating elements means heat radiates downward into the subfloor instead of upward into the room. This wastes energy, increases running costs, and produces disappointing warmth levels.","Electrical heating mats damaged during tiling â cut cables, pierced insulation â create dead zones or complete system failure. Locating and repairing a severed cable beneath tiles requires specialist fault-finding equipment and tile removal.","Thermostat and sensor placement errors result in inaccurate temperature readings, causing the system to overheat or underperform. Floor sensors must be positioned correctly between heating elements, not on top of them, and connected to compatible thermostats."],processSteps:[{title:"Assessment & Specification",description:"We assess your floor construction, calculate heat output requirements, and recommend the right system type â electric or water-fed."},{title:"Insulation Installation",description:"Thermal insulation boards are laid to direct heat upward into the room, maximising efficiency and reducing running costs."},{title:"Heating Element Installation",description:"Electric mats or water pipes are laid according to manufacturer spacing guidelines, avoiding furniture positions and fixture points."},{title:"Electrical Connection",description:"The system is connected to a dedicated circuit with a programmable or smart thermostat and floor temperature sensor."},{title:"Testing & Commissioning",description:"The system is electrically tested and resistance-checked before tiling. After tiling, it is commissioned and temperature-calibrated."}
318],benefits:[{title:"Warm Floors Every Morning",description:"Programmable thermostats heat your floor before you wake up â step onto warm tiles instead of cold ceramic."},{title:"Even, Comfortable Heat",description:"Heat rises evenly across the entire floor surface, eliminating the cold zones and hot spots created by radiators."},{title:"Free Wall Space",description:"Remove radiators and reclaim wall space for storage, design features, or simply a cleaner look."},{title:"Reduced Condensation",description:"Gentle floor warmth keeps bathroom surfaces drier, reducing condensation on mirrors and windows and inhibiting mould growth."},{title:"Energy Efficient",description:"Underfloor heating operates at lower temperatures than radiators while achieving the same comfort level â reducing energy consumption."},{title:"Compatible With All Floor Tiles",description:"Porcelain, ceramic, natural stone, and LVT all work excellently with underfloor heating. We advise on compatibility during specification."}],deepDetailHeading:"Underfloor Heating Systems: Types, Specifications & Compatibility",deepDetailContent:["Electric underfloor heating uses thin heating mats or loose cable laid directly beneath tiles. Mat systems are pre-spaced on a mesh backing for quick installation in regular-shaped rooms. Loose cable systems allow variable spacing for irregular layouts or rooms requiring higher heat output. Both operate on standard 230V circuits.","Water-fed (hydronic) underfloor heating uses warm water circulated through PEX or PERT pipes embedded in screed or mounted in low-profile panel systems. Connected to your boiler or heat pump, water-fed systems are more efficient for heating larger areas or multiple rooms but require more installation depth.","Insulation is critical for both system types. We install rigid foam insulation boards (typically 6mmâ20mm XPS or EPS) beneath heating elements to prevent downward heat loss. In bathrooms above unheated spaces, thicker insulation is specified to maintain efficiency.","Floor build-up for electric systems is minimal â typically 3â5mm including adhesive â making them ideal for retrofitting without significantly raising floor levels. Water-fed systems require 15â50mm additional depth depending on whether screed-embedded or low-profile panels are used.","Thermostat options include basic programmable units, touchscreen controllers, and smart thermostats (compatible with Nest, Hive, and similar platforms). All include floor temperature sensors to prevent overheating and protect floor coverings.","Tile compatibility: porcelain and ceramic tiles are ideal â they conduct heat efficiently and tolerate temperature cycling without degradation. Natural stone works well but requires flexible adhesive to accommodate thermal movement. LVT is compatible but requires maximum temperature limits (typically 27°C) to prevent material damage.","We install underfloor heating across Tamworth, Lichfield, Rugeley, Swadlincote, Burton-on-Trent, Sutton Coldfield, Atherstone, Nuneaton, Birmingham, Cannock, Walsall, Coalville, Hinckley, Derby, and West Bromwich."],faqs:[{q:"How much does underfloor heating cost?",a:"Electric systems typically cost £50â£80 per square metre installed. Water-fed systems cost more due to additional pipework and manifold requirements. We provide a detailed quote after assessment."},{q:"Can underfloor heating be installed in an existing bathroom?",a:"Yes. Electric mat systems add minimal floor height (3â5mm) and can be retrofitted during a bathroom renovation."},{q:"How long does it take to heat up?",a:"Electric systems reach operating temperature within 20â30 minutes. Water-fed systems take longer initially but maintain heat more efficiently."},{q:"Is underfloor heating expensive to run?",a:"A typical bathroom electric system costs approximately 2â4p per hour to run. Programmable thermostats reduce costs further by heating only when needed."},{q:"Can I use underfloor heating with natural stone?",a:"Yes. Natural stone conducts heat well. We use flexible adhesive to accommodate thermal exp
318ansion and ensure long-term performance."},{q:"Does it work with LVT flooring?",a:"Yes, with temperature limitations. We set maximum floor temperature to 27°C to protect vinyl flooring from heat damage."},{q:"Do I still need a towel rail?",a:"Underfloor heating warms the room but does not dry towels. We recommend a separate heated towel rail for towel drying."},{q:"What warranty is provided?",a:"Heating element manufacturers typically offer 15â25 year warranties. Our workmanship warranty covers the installation itself."}],ctaHeading:"Ready to Step Onto Warm Floors Every Day?",ctaSubtext:"Book your free consultation. We will recommend the right system for your space and provide a clear, no-obligation quote.",relatedServices:[{name:"Bathroom Installation",path:"/services/bathroom-installation"},{name:"Tiling & Re-tiling",path:"/services/tiling-services"},{name:"Wet Room Installation",path:"/services/wet-room-installation"},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations"},{name:"Boiler Replacement",path:"/services/boiler-replacement"}],schemaType:"Underfloor Heating Installation",primaryKeyword:"Underfloor Heating Tamworth"},hW=()=>r.jsx(Ye,{data:uW}),mW={slug:"bathroom-refurbishments",title:"Bathroom Refurbishments Tamworth | Blue Sky Luxury Bathrooms",metaDescription:"Bathroom refurbishment in Tamworth. Refresh your existing bathroom with new tiles, fixtures, and fittings. One team, full warranty. Call 0330 043 2234.",heroLine1:"Bathroom Refurbishment",heroLine2:"in Tamworth",heroLine3:"Refresh Without the Full Rebuild",heroSubheadline:"Transform the look and feel of your bathroom without stripping it back to bare walls â targeted upgrades that deliver maximum impact for your budget.",trustMicro:"â
1000+ bathrooms completed · Cost-effective upgrades · No subcontractors · Free estimates",overviewHeading:"Refurbishment vs Full Installation: What Is Right for You?",overviewContent:["Not every tired bathroom needs a complete strip-out and rebuild. If your layout works, your plumbing is sound, and your walls and floors are in good condition, a refurbishment can deliver a dramatic transformation at a fraction of the cost and time of a full installation.","A bathroom refurbishment typically involves replacing visible elements â tiles, sanitaryware, taps, accessories, lighting, and decorative finishes â while retaining the existing layout and service positions. It is the most cost-effective way to modernise a dated bathroom.","At Blue Sky Luxury Bathrooms, we assess your existing bathroom honestly. If a refurbishment will deliver the result you want, we recommend it. If underlying issues mean a full installation is the better long-term investment, we explain why. Our goal is the right solution, not the most expensive one.","We carry out bathroom refurbishments across Tamworth, Lichfield, Sutton Coldfield, Burton-on-Trent, Nuneaton, Birmingham, and the wider West Midlands."],problemHeading:"When a Refurbishment Is Not Enough â and How to Tell",problemContent:["A refurbishment works when the underlying structure is sound. But if your walls are damp, your floor is uneven or spongy, your plumbing is corroded, or your drainage is sluggish, replacing surface finishes will only mask problems that continue to worsen beneath new tiles.","Signs that a full installation may be necessary include persistent mould that returns after cleaning, tiles that are loose or hollow-sounding, water stains on ceilings below, soft or flexing floors, and low water pressure that has deteriorated over time.","Many homeowners make the expensive mistake of re-tiling over compromised substrates. New tiles look excellent for months â then grout cracks, tiles shift, and moisture finds its way through exactly the same weak points as before.","Our free assessment identifies whether a refurbishment is appropriate for your bathroom or whether underlying issues need addressing first. This honest appraisal saves you money and prevents disappointment."],processSteps:[{title:"Assessment & Recommendation",description:"We inspect your bathroom, check wall and floor conditions, assess plumbing and drainage, and recommend refurbishment or installation."},{title:"Design & Product Selection",description:"We help you choose new tiles, sanitaryware, taps, and accessories that work with your existing layout and services."},{title:"Careful Removal",description:"Old tiles, fixtures, and fittings are removed carefully to preserve underlying surfaces where possible."},{title:"Surface Preparation",description:"Walls and floors are assessed, repaired, or re-boarded as needed to provide stable, flat surfaces for new finishes."},{title:"Installation & Finishing",description:"New tiles, sanitaryware, taps, accessories, and lighting are installed to the same standard as a full bathroom installation."},{title:"Handover",description:"We inspect, clean, and hand over your refreshed bathroom with warranty documentation."}
318],benefits:[{title:"Lower Cost",description:"Refurbishment retains your existing layout and services, significantly reducing labour and material costs compared to a full rebuild."},{title:"Faster Completion",description:"Most refurbishments are completed within 3â5 working days â less than half the time of a full installation."},{title:"Dramatic Visual Impact",description:"New tiles, modern fixtures, and updated lighting transform the appearance of a bathroom completely."},{title:"Less Disruption",description:"Retaining existing plumbing and layout means less noise, less dust, and less time without a usable bathroom."},{title:"Honest Assessment",description:"We tell you upfront whether a refurbishment will deliver lasting results or if deeper work is needed."},{title:"Same Quality Standards",description:"Every refurbishment uses the same materials, techniques, and quality standards as our full installations."}],deepDetailHeading:"What a Bathroom Refurbishment Typically Includes",deepDetailContent:["Tile replacement is the most impactful element of a refurbishment. We remove old wall and floor tiles, assess and prepare the substrate, and install new tiles with waterproof adhesive and flexible grout. This alone transforms the entire look and feel of the room.","Sanitaryware replacement includes swapping old basins, WCs, baths, and shower trays for modern equivalents in the same positions. Using existing waste and supply connections keeps costs down while delivering a fresh, contemporary appearance.","Tap and brassware upgrades â replacing dated chrome mixer taps with modern designs in brushed nickel, matt black, or brushed brass â make a significant visual difference at relatively low cost.","Shower upgrades can include new shower valves, heads, and hoses fitted to existing pipework, or replacement of a tired shower enclosure with a modern frameless glass panel.","Lighting upgrades â replacing outdated fittings with IP-rated LED downlights and backlit mirrors â improve both aesthetics and functionality.","Accessories and finishing touches â new towel rails, robe hooks, toilet roll holders, shower shelves, and bath panels â complete the refreshed look.","Silicone and sealant renewal is included in every refurbishment. Old, discoloured, or mouldy sealant is removed and replaced with fresh, mould-resistant silicone in a colour-matched finish.","We carry out refurbishments across Tamworth, Lichfield, Rugeley, Swadlincote, Burton-on-Trent, Sutton Coldfield, Atherstone, Nuneaton, Birmingham, Cannock, Walsall, Coalville, Hinckley, Derby, and West Bromwich."],faqs:[{q:"How much does a bathroom refurbishment cost?",a:"Refurbishments typically range from £2,500 to £6,000 depending on room size and specification. Significantly less than a full installation."},{q:"How long does a refurbishment take?",a:"Most bathroom refurbishments are completed within 3â5 working days."},{q:"Can I keep my existing layout?",a:"Yes. That is the core advantage of a refurbishment â refreshing finishes and fixtures while retaining your current layout and services."},{q:"Will you tell me if I need a full installation instead?",a:"Absolutely. Our free assessment is honest. If underlying issues make refurbishment inadvisable, we will explain why and what the alternatives are."},{q:"Can I change my taps without changing the basin?",a:"In most cases, yes â provided the new taps are compatible with your existing basin's tap holes."},{q:"Do you re-tile over existing tiles?",a:"Only when the existing tiles are firmly adhered, flat, and the additional height is acceptable. Otherwise, we remove and start fresh."},{q:"Is a refurbishment covered by warranty?",a:"Yes. Every refurbishment receives the same workmanship warranty as our full installations."},{q:"What areas do you cover?",a:"We cover Tamworth, Lichfield, Sutton Coldfield, Burton-on-Trent, Nuneaton, Birmingham, and the wider West Midlands."}],ctaHeading:"Ready to Refresh Your Bathroom Without the Full Rebuild?",ctaSubtext:"Book your free assessment. We will tell you honestly whether a refurbishment will deliver the result you want â and provide a clear quote.",relatedServices:[{name:"Bathroom Installation",path:"/services/bathroom-installation"},{name:"Tiling & Re-tiling",path:"/services/tiling-services"},{name:"Bathroom Design & Planning",path:"/services/bathroom-design-planning"},{name:"Plumbing Services",path:"/services/plumbing-services"},{name:"Cloakroom & Ensuite",path:"/services/cloakroom-ensuite"}],schemaType:"Bathroom Refurbishment",primaryKeyword:"Bathroom Refurbishment Tamworth"},pW=()=>r.jsx(Ye,{data:mW}),fW={slug:"cloakroom-ensuite",title:"Cloakroom & Ensuite Installation Tamworth | Blue Sky",metaDescription:"Cloakroom and ensuite installation in Tamworth. Space-maximising designs, expert fitting, full warranty. Free consultation. Call 0330 043 2234.",heroLine1:"Cloakroom & Ensuite",heroLine2:"Installation in Tamworth",heroLine3:"Small Rooms, Smart Design",heroSubheadline:"Compact bathrooms that feel spacious, function brilliantly, and add genuine value to your home â designed and installed by specialists who understand small spaces.",trustMicro:"â
Small-space specialists · 1000+ installations · Full warranty · Free design consultations",overviewHeading:"Why Cloakrooms and Ensuites Deserve Expert Attention",overviewContent:["Small bathrooms are harder to design well than large ones. Every centimetre matters. A basin that is 50mm too wide blocks movement. A toilet positioned without adequate clearance feels cramped. A poorly chosen tile pattern makes the room feel smaller than it is.","At Blue Sky Luxury Bathrooms, we specialise in making compact space
318s work beautifully. Our designers select compact sanitaryware, wall-hung fixtures, and space-saving storage that maximise usable floor area without sacrificing functionality or style.","Cloakrooms (typically containing a WC and basin) add convenience and value to any home. Ensuites provide private bathroom facilities attached to bedrooms. Both benefit enormously from professional design that accounts for plumbing routes, ventilation, and lighting in confined spaces.","We design and install cloakrooms and ensuites across Tamworth, Lichfield, Sutton Coldfield, Burton-on-Trent, Nuneaton, Birmingham, and the wider West Midlands."],problemHeading:"Common Mistakes That Ruin Small Bathroom Projects",problemContent:["The most frequent error in small bathroom projects is choosing standard-sized fixtures designed for larger rooms. A 550mm basin in a cloakroom dominates the space. A standard-projection WC in a narrow ensuite leaves inadequate legroom. Scale must be considered from the outset.","Poor ventilation is amplified in small spaces. Without adequate extraction, a tiny ensuite with a shower becomes a moisture trap â steamed mirrors, damp towels, and mould on grout within months.","Lighting mistakes are also common. A single ceiling light casts harsh shadows in a small room. Layered lighting â combining downlights with a backlit mirror â creates depth and makes the space feel larger.","Many homeowners attempt to tile small bathrooms themselves, underestimating the difficulty of cutting around compact fixtures and maintaining level lines in confined spaces. The result is often uneven cuts, misaligned patterns, and visible errors that a larger room would forgive but a small room exposes."],processSteps:[{title:"Space Assessment",description:"We measure your room precisely and assess plumbing access, ventilation options, and structural constraints."},{title:"Smart Design",description:"We create a layout using compact fixtures and space-maximising techniques â wall-hung units, corner solutions, and sliding doors where appropriate."},{title:"Product Specification",description:"We select compact sanitaryware, slim-profile storage, and appropriate tiles that work with your room's proportions."},{title:"Installation",description:"Our team fits everything â plumbing, electrics, tiling, and fixtures â with the precision that small spaces demand."},{title:"Finishing & Handover",description:"We complete all finishing touches, accessories, and sealant work, then hand over your new cloakroom or ensuite."}],benefits:[{title:"Space-Maximising Design",description:"Wall-hung fixtures, compact sanitaryware, and clever storage solutions make small rooms feel and function larger."},{title:"Added Property Value",description:"An additional WC or ensuite is one of the most value-adding home improvements â often recouping 50â70% of the investment at sale."},{title:"Precision Installation",description:"Small spaces demand exact fitting. Our team has the skills and patience to deliver flawless results in confined environments."},{title:"Integrated Ventilation",description:"We install correctly sized extractor fans with appropriate ducting â essential in small rooms where moisture builds quickly."},{title:"Thoughtful Lighting",description:"Layered lighting design makes small rooms feel open and inviting, avoiding the harsh, flat illumination that makes them feel cramped."},{title:"Full Warranty",description:"Every cloakroom and ensuite installation is backed by our comprehensive workmanship warranty."}],deepDetailHeading:"Cloakroom & Ensuite Design: Products, Layouts & Specifications",deepDetailContent:["Compact sanitaryware is specifically designed for small spaces. Short-projection WCs (600â650mm vs standard 700mm+) save crucial centimetres. Wall-hung WCs with concealed cisterns eliminate the visual bulk of a close-coupled toilet. Narrow basin units (350â450mm depth) provide storage without obstructing movement.","Wall-hung fixtures are essential in small bathrooms. Floating above the floor, they create visible floor space that makes the room feel larger. They also simplify cleaning â no awkward gaps between pedestals and walls. We install on concealed steel frames rated for the required load.","Corner solutions â including corner basins, quadrant shower enclosures, and angled vanity units â utilise otherwise dead space effectively. We specify these where room geometry makes them advantageous.","Tile selection in small rooms follows specific principles. Larger tiles (300x600mm minimum) reduce grout lines and create a less busy visual field, making the room feel larger. Light, neutral colours reflect light and enhance openness. Feature walls or accent strips add character without overwhelming.","Sliding pocket doors or bi-fold doors save the swing space required by standard hinged doors â reclaiming up to 0.5 square metres of usable floor area in a small room.","Shower solutions for ensuites include compact quadrant enclosures (800x800mm), bi-fold door enclosures, and walk-in panels with low-profile trays. For very small spaces, wet room configurations eliminate the tray entirely.","Storage in small bathrooms requires creative solutions â recessed niches, mirror cabinets, slim tower units, and wall-mounted shelving maximise storage without occupying floor space.","We install cloakrooms and ensuites across Tamworth, Lichfield, Rugeley, Swadlincote, Burton-on-Trent, Sutton Coldfield, Atherstone, Nuneaton, Birmingham, Cannock, Walsall, C
318oalville, Hinckley, Derby, and West Bromwich."],faqs:[{q:"How much does a cloakroom installation cost?",a:"Cloakroom installations typically range from £2,000 to £5,000 depending on specification and the extent of plumbing and tiling work required."},{q:"How much does an ensuite installation cost?",a:"Ensuite installations typically range from £4,000 to £10,000 depending on size, specification, and whether a shower or wet room is included."},{q:"Can you create a cloakroom where one does not exist?",a:"Yes. We regularly convert understairs spaces, utility areas, and other rooms into functional cloakrooms â including all plumbing and drainage connections."},{q:"How long does installation take?",a:"Cloakrooms typically take 3â5 working days. Ensuites with showers take 5â8 working days."},{q:"Can you fit a shower in a small ensuite?",a:"Yes. Compact shower enclosures, bi-fold doors, and wet room configurations allow showering in very small spaces."},{q:"Do you handle plumbing for new installations?",a:"Yes. We manage all plumbing â supply, waste, and drainage â including connections to existing systems."},{q:"What ventilation is needed?",a:"All ensuites and internal cloakrooms require mechanical ventilation. We install correctly sized extractor fans with appropriate ducting."},{q:"Will adding an ensuite add value to my home?",a:"Yes. An ensuite is consistently ranked among the most value-adding home improvements by estate agents and property experts."}],ctaHeading:"Ready to Add a Cloakroom or Ensuite?",ctaSubtext:"Book your free design consultation. We will assess your space, create a smart layout, and provide a clear, no-obligation quote.",relatedServices:[{name:"Bathroom Installation",path:"/services/bathroom-installation"},{name:"Bathroom Design & Planning",path:"/services/bathroom-design-planning"},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation"},{name:"Tiling & Re-tiling",path:"/services/tiling-services"},{name:"Plumbing Services",path:"/services/plumbing-services"}],schemaType:"Cloakroom and Ensuite Installation",primaryKeyword:"Cloakroom Ensuite Installation Tamworth"},gW=()=>r.jsx(Ye,{data:fW}),yW=[{name:"Staffordshire",slug:"staffordshire",county:"County · Region overview"},{name:"Warwickshire",slug:"warwickshire",county:"County · Region overview"},{name:"West Midlands",slug:"west-midlands",county:"County · Region overview"},{name:"Tamworth",slug:"tamworth",county:"Staffordshire"},{name:"Lichfield",slug:"lichfield",county:"Staffordshire"},{name:"Rugeley",slug:"rugeley",county:"Staffordshire"},{name:"Swadlincote",slug:"swadlincote",county:"Derbyshire"},{name:"Burton-on-Trent",slug:"burton-on-trent",county:"Staffordshire"},{name:"Sutton Coldfield",slug:"sutton-coldfield",county:"West Midlands"},{name:"Atherstone",slug:"atherstone",county:"Warwickshire"},{name:"Nuneaton",slug:"nuneaton",county:"Warwickshire"},{name:"Birmingham",slug:"birmingham",county:"West Midlands"},{name:"Cannock",slug:"cannock",county:"Staffordshire"},{name:"Walsall",slug:"walsall",county:"West Midlands"},{name:"Coalville",slug:"coalville",county:"Leicestershire"},{name:"Hinckley",slug:"hinckley",county:"Leicestershire"},{name:"Derby",slug:"derby",county:"Derbyshire"},{name:"West Bromwich",slug:"west-bromwich",county:"West Midlands"}],wW=[{name:"Tamworth",slug:"tamworth"},{name:"Lichfield",slug:"lichfield"},{name:"Sutton Coldfield",slug:"sutton-coldfield"},{name:"Burton-on-Trent",slug:"burton-on-trent"},{name:"Cannock",slug:"cannock"},{name:"Rugeley",slug:"rugeley"},{name:"Atherstone",slug:"atherstone"},{name:"Nuneaton",slug:"nuneaton"},{name:"Hinckley",slug:"hinckley"},{name:"Coalville",slug:"coalville"},{name:"Ashby-de-la-Zouch",slug:"ashby-de-la-zouch"},{name:"Measham",slug:"measham"},{name:"Swadlincote",slug:"swadlincote"},{name:"Derby",slug:"derby"},{name:"Uttoxeter",slug:"uttoxeter"},{name:"Walsall",slug:"walsall"},{name:"West Bromwich",slug:"west-bromwich"},{name:"Birmingham",slug:"birmingham"},{name:"Four Oaks",slug:"four-oaks"},{name:"Mere Green",slug:"mere-green"},{name:"Shenstone",slug:"shenstone"},{name:"Fazeley",slug:"fazeley"},{name:"Polesworth",slug:"polesworth"}],bW=[{name:"Tamworth",slug:"tamworth"},{name:"Lichfield",slug:"lichfield"},{name:"Sutton Coldfield",slug:"sutton-coldfield"},{name:"Burton-on-Trent",slug:"burton-on-trent"},{name:"Atherstone",slug:"atherstone"},{name:"Nuneaton",slug:"nuneaton"},{name:"Cannock",slug:"cannock"}],vW=()=>r.jsxs("div",{className:"min-h-screen",children:[r.jsx(Se,{title:"Areas We Serve | Tamworth & Midlands | Blue Sky",description:"Blue Sky Luxury Bathrooms serves Tamworth, Lichfield, Birmingham, Sutton Coldfield, Derby and 15 Midlands locations. Expert bathrooms, free estimates."}),r.jsx(Be,{}),r.jsxs("main",{children:[r.jsx("section",{className:"section-dark pt-36 pb-16 md:pt-44 md:pb-20",children:r.jsxs("div",{className:"container-narrow px-4",children:[r.jsx(Dr,{items:[{label:"Areas"}
318],className:"text-primary-foreground/60 mb-6"}),r.jsxs("div",{className:"max-w-3xl",children:[r.jsx("p",{className:"text-sm font-semibold tracking-widest uppercase text-steel-light mb-4",children:"Service Areas"}),r.jsxs("h1",{className:"font-heading text-4xl md:text-5xl lg:text-6xl font-bold leading-tight text-primary-foreground mb-6 text-balance-heading",children:[r.jsx("span",{className:"block",children:"Bathroom & Plumbing"}),r.jsx("span",{className:"block",children:"Experts Across the Midlands"})]}),r.jsx("p",{className:"text-lg text-primary-foreground/80 mb-8 max-w-xl leading-relaxed",children:"Based in Tamworth with over 20 years' experience, we deliver expert bathroom installations, boiler replacements, and plumbing services to homes across Staffordshire, the West Midlands, Warwickshire, Derbyshire, and Leicestershire."})]})]})}),r.jsx("section",{className:"section-padding",children:r.jsx("div",{className:"container-narrow",children:r.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4",children:yW.map(e=>r.jsx(S,{to:`/areas/${e.slug}`,className:"bg-card border border-border p-6 hover:border-secondary/40 transition-colors group",children:r.jsxs("div",{className:"flex items-start gap-3",children:[r.jsx(mo,{className:"h-5 w-5 text-secondary shrink-0 mt-0.5"}),r.jsxs("div",{children:[r.jsx("h2",{className:"text-lg font-bold text-foreground group-hover:text-secondary transition-colors",children:e.name}),r.jsx("p",{className:"text-sm text-muted-foreground",children:e.county})]})]})},e.slug))})})}),r.jsx("section",{className:"section-padding bg-muted/30",children:r.jsxs("div",{className:"container-narrow",children:[r.jsx("h2",{className:"font-heading text-3xl md:text-4xl font-bold text-foreground mb-3 text-balance-heading",children:"Bathroom Fitters by Town"}),r.jsx("p",{className:"text-muted-foreground mb-8 max-w-2xl",children:"Each town has its own page covering local pricing, property types and recent installations."}),r.jsx("ul",{className:"grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 gap-3 mb-14",children:wW.map(e=>r.jsx("li",{children:r.jsxs(S,{to:`/${e.slug}/bathroom-fitters`,className:"block text-sm text-foreground hover:text-secondary transition-colors underline-offset-4 hover:underline",children:["Bathroom fitters in ",e.name]})},e.slug))}),r.jsx("h2",{className:"font-heading text-3xl md:text-4xl font-bold text-foreground mb-3 text-balance-heading",children:"Accessible & Mobility Bathrooms by Town"}),r.jsx("p",{className:"text-muted-foreground mb-8 max-w-2xl",children:"Walk-in showers, level-access wet rooms and grab rails, with local guidance on grants and adaptations."}),r.jsx("ul",{className:"grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 gap-3",children:bW.map(e=>r.jsx("li",{children:r.jsxs(S,{to:`/${e.slug}/accessible-bathrooms`,className:"block text-sm text-foreground hover:text-secondary transition-colors underline-offset-4 hover:underline",children:["Accessible bathrooms in ",e.name]})},e.slug))}),r.jsx("h2",{className:"font-heading text-3xl md:text-4xl font-bold text-foreground mb-3 mt-14 text-balance-heading",children:"Bathroom Extensions by Town"}),r.jsx("p",{className:"text-muted-foreground mb-8 max-w-2xl",children:"Ground-floor bathroom extensions, side-return infills and rear extensions â shell built and bathroom fitted by one employed team."}),r.jsx("ul",{className:"grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 gap-3",children:[{name:"Cannock",slug:"cannock"},{name:"Walsall",slug:"walsall"},{name:"West Bromwich",slug:"west-bromwich"}].map(e=>r.jsx("li",{children:r.jsxs(S,{to:`/${e.slug}/bathroom-extensions`,className:"block text-sm text-foreground hover:text-secondary transition-colors underline-offset-4 hover:underline",children:["Bathroom extensions in ",e.name]})},e.slug))})]})}),r.jsx("section",{className:"section-padding bg-secondary",children:r.jsxs("div",{className:"container-narrow text-center",children:[r.jsx("h2",{className:"font-heading text-3xl md:text-4xl font-bold text-secondary-foreground mb-4 text-balance-heading",children:"Don't See Your Area? We Likely Cover It"}
318),r.jsx("p",{className:"text-secondary-foreground/80 mb-8 max-w-lg mx-auto",children:"We regularly work beyond these locations. Call us to check availability in your area â there's no obligation."}),r.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-center gap-4",children:[r.jsx(S,{to:"/contact",className:"bg-primary text-primary-foreground px-8 py-4 text-base font-semibold tracking-wide hover:bg-navy-light transition-colors",children:"Request Your Free Estimate"}),r.jsxs("a",{href:"tel:03300432234",className:"flex items-center gap-2 px-8 py-4 border border-secondary-foreground/30 text-secondary-foreground text-base font-bold hover:border-secondary-foreground/60 transition-colors",children:[r.jsx(me,{className:"h-5 w-5"}),"0330 043 2234"]})]})]})})]}),r.jsx(We,{}),r.jsx(Ve,{}),r.jsx("div",{className:"h-14 lg:hidden"})]}),xW="https://fast.wistia.com/player.js",kW="https://fast.wistia.com/embed/cdng6ypzxm.js",SW="https://fast.wistia.com/embed/medias/cdng6ypzxm/swatch",pp=(e,t)=>{if(document.querySelector(`script[src="${e}"]`))return;const o=document.createElement("script");o.src=e,o.async=!0,t&&(o.type=t),document.body.appendChild(o)},jW=()=>(b.useEffect(()=>{pp(xW),pp(kW,"module")},[]),r.jsxs("div",{className:"relative overflow-hidden shadow-2xl border border-primary-foreground/20 bg-primary/40 w-full aspect-square",children:[r.jsx("style",{children:`wistia-player[media-id='cdng6ypzxm']:not(:defined) { background: center / contain no-repeat url('${SW}'); display: block; filter: blur(5px); padding-top: 100%; }`}),r.jsx("wistia-player",{"media-id":"cdng6ypzxm",aspect:"1.0"})]})),CW=1,TW="475dd707-473c-45e0-a432-cf806c7d0c7d",BW="05d810c8-8477-408a-b1ff-87fd4ec6ff18",WW="/__l5e/assets-v1/475dd707-473c-45e0-a432-cf806c7d0c7d/client-0a41bc66.webp",NW="a/v1/05d810c8-8477-408a-b1ff-87fd4ec6ff18/475dd707-473c-45e0-a432-cf806c7d0c7d/client-0a41bc66.webp",AW="client-0a41bc66.webp",EW=2081880,FW="image/webp",qW="2026-06-02T14:58:24Z",PW={version:CW,asset_id:TW,project_id:BW,url:WW,r2_key:NW,original_filename:AW,size:EW,content_type:FW,created_at:qW},RW=1,LW="d1b86671-b678-4dd4-bf12-1be882d5e7df",MW="05d810c8-8477-408a-b1ff-87fd4ec6ff18",DW="/__l5e/assets-v1/d1b86671-b678-4dd4-bf12-1be882d5e7df/client-d6d6de8d.webp",IW="a/v1/05d810c8-8477-408a-b1ff-87fd4ec6ff18/d1b86671-b678-4dd4-bf12-1be882d5e7df/client-d6d6de8d.webp",HW="client-d6d6de8d.webp",OW=1531584,_W="image/webp",UW="2026-06-02T14:58:29Z",$W={version:RW,asset_id:LW,project_id:MW,url:DW,r2_key:IW,original_filename:HW,size:OW,content_type:_W,created_at:UW},zW=1,GW="491f4b22-1922-4180-ae0a-34be7621c5cf",VW="05d810c8-8477-408a-b1ff-87fd4ec6ff18",YW="/__l5e/assets-v1/491f4b22-1922-4180-ae0a-34be7621c5cf/client-831fd130.webp",QW="a/v1/05d810c8-8477-408a-b1ff-87fd4ec6ff18/491f4b22-1922-4180-ae0a-34be7621c5cf/client-831fd130.webp",KW="client-831fd130.webp",XW=2212324,JW="image/webp",ZW="2026-06-02T14:58:33Z",eN={version:zW,asset_id:GW,project_id:VW,url:YW,r2_key:QW,original_filename:KW,size:XW,content_type:JW,created_at:ZW},tN=1,oN="780746d9-a6a8-4e1c-93bb-3dafc8506161",rN="05d810c8-8477-408a-b1ff-87fd4ec6ff18",aN="/__l5e/assets-v1/780746d9-a6a8-4e1c-93bb-3dafc8506161/client-bf96f9f0.avif",nN="a/v1/05d810c8-8477-408a-b1ff-87fd4ec6ff18/780746d9-a6a8-4e1c-93bb-3dafc8506161/client-bf96f9f0.avif",sN="client-bf96f9f0.avif",iN=33005,lN="image/avif",dN="2026-06-02T14:58:36Z",cN={version:tN,asset_id:oN,project_id:rN,url:aN,r2_key:nN,original_filename:sN,size:iN,content_type:lN,created_at:dN},uN=1,hN="7d61ac66-7a0c-4a6e-81f8-4b2d6c28a66e",mN="05d810c8-8477-408a-b1ff-87fd4ec6ff18",pN="/__l5e/assets-v1/7d61ac66-7a0c-4a6e-81f8-4b2d6c28a66e/client-a4dceef4.webp",fN="a/v1/05d810c8-8477-408a-b1ff-87fd4ec6ff18/7d61ac66-7a0c-4a6e-81f8-4b2d6c28a66e/client-a4dceef4.webp",gN="client-a4dceef4.webp",yN=2181288,wN="image/webp",bN="2026-06-02T14:58:41Z",vN={version:uN,asset_id:hN,project_id:mN,url:pN,r2_key:fN,original_filename:gN,size:yN,content_type:wN,created_at:bN},xN=1,kN="63ccb695-1640-40d5-971b-324f225a2242",SN="05d810c8-8477-408a-b1ff-87fd4ec6ff18",jN="/__l5e/assets-v1/63ccb695-1640-40d5-971b-324f225a2242/client-883653f3.avif",CN="a/v1/05d810c8-8477-408a-b1ff-87fd4ec6ff18/63ccb695-1640-40d5-971b-324f225a2242/client-883653f3.avif",TN="client-883653f3.avif",BN=38224,WN="image/avif",NN="2026-06-02T14:58:44Z",AN={version:xN,asset_id:kN,project_id:SN,url:jN,r2_key:CN,original_filename:TN,size:BN,
318content_type:WN,created_at:NN},EN=[{src:PW.url,alt:"Patterned floor wet room with navy vanity â real Blue Sky client home"},{src:$W.url,alt:"Beige marble-effect family bathroom with brass fixtures â real Blue Sky client home"},{src:eN.url,alt:"Metro tile bathroom with patterned floor and black heated towel rail â real Blue Sky client home"},{src:cN.url,alt:"Contemporary fitted bathroom â real Blue Sky client home"},{src:vN.url,alt:"Calacatta marble walk-in shower room with grey vanity â real Blue Sky client home"},{src:AN.url,alt:"Recent bathroom installation â real Blue Sky client home"}],Ke=({children:e,className:t="",animation:o="reveal"})=>{const{ref:a,isVisible:n}=se();return r.jsx("div",{ref:a,className:`${o} ${n?"visible":""} ${t}`,children:e})};os.filter(e=>!e.categories.includes("showroom")).slice(0,4);const H=({data:e})=>{const[t,o]=b.useState(null);os.filter(l=>!l.categories.includes("showroom"));const a=e.slug.length%ct.length,n=ct[a],s={"@context":"https://schema.org","@type":"FAQPage",mainEntity:e.faqs.map(l=>({"@type":"Question",name:l.q,acceptedAnswer:{"@type":"Answer",text:l.a}}))},i={"@context":"https://schema.org","@type":"LocalBusiness",name:"Blue Sky Luxury Bathrooms",telephone:"03300432234",url:"https://blueskybathrooms.co.uk",address:{"@type":"PostalAddress",streetAddress:"Unit 7 Cavendish",addressLocality:"Tamworth",postalCode:"B79 7XH",addressCountry:"GB"},areaServed:{"@type":"Place",name:e.name},description:e.metaDescription};return r.jsxs("div",{className:"min-h-screen",children:[r.jsx(Se,{title:e.title,description:e.metaDescription,ogImage:n==null?void 0:n.src,schemaJson:[i,s]}),r.jsx(Be,{}),r.jsxs("main",{children:[r.jsxs("section",{className:"relative section-dark pt-36 pb-16 md:pt-44 md:pb-20 overflow-hidden",children:[n&&r.jsxs("div",{className:"absolute inset-0",children:[r.jsx("img",{src:n.src,alt:`Blue Sky Luxury Bathrooms Tamworth showroom â serving ${e.name}`,className:"h-full w-full object-cover opacity-40",width:1920,height:800}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-r from-primary via-primary/95 to-primary/70"})]}),r.jsxs("div",{className:"relative container-narrow px-4",children:[r.jsx(Dr,{items:[{label:"Areas",path:"/areas"},{label:e.name}],className:"text-primary-foreground/60 mb-6"}),r.jsxs("div",{className:"grid lg:grid-cols-[1fr_360px] xl:grid-cols-[1fr_420px] gap-10 items-center",children:[r.jsxs("div",{className:"max-w-3xl",children:[r.jsxs("p",{className:"text-sm font-semibold tracking-widest uppercase text-steel-light mb-4 opacity-0 animate-[fadeInUp_0.6s_0.1s_ease-out_forwards]",children:[r.jsx(mo,{className:"inline h-4 w-4 mr-1 -mt-0.5"}),"Blue Sky Luxury Bathrooms · ",e.name]}),r.jsx("div",{className:"section-divider mb-5 opacity-0 animate-[fadeInUp_0.6s_0.2s_ease-out_forwards]"}),r.jsx("h1",{className:"font-heading text-4xl md:text-5xl lg:text-6xl font-bold leading-tight text-primary-foreground mb-6 text-balance-heading opacity-0 animate-[fadeInUp_0.7s_0.3s_ease-out_forwards]",children:e.heroHeadline}),r.jsx("p",{className:"text-lg text-primary-foreground/80 mb-8 max-w-xl leading-relaxed opacity-0 animate-[fadeInUp_0.6s_0.5s_ease-out_forwards]",children:e.heroSubheadline}),r.jsxs("div",{className:"flex flex-col sm:flex-row items-start gap-4 mb-6 opacity-0 animate-[fadeInUp_0.6s_0.6s_ease-out_forwards]",children:[r.jsx(S,{to:"/contact",className:"btn-premium",children:"Request Your Free Estimate"}),r.jsxs("a",{href:"tel:03300432234",className:"flex items-center gap-2 px-8 py-4 border border-primary-foreground/30 text-primary-foreground text-base font-bold hover:border-primary-foreground/60 hover:bg-primary-foreground/5 transition-all duration-300",children:[r.jsx(me,{className:"h-5 w-5"}),"0330 043 2234"]})]}),r.jsx("p",{className:"text-sm text-primary-foreground/60 opacity-0 animate-[fadeInUp_0.6s_0.7s_ease-out_forwards]",children:e.trustMicro}),r.jsxs("div",{className:"flex flex-wrap items-center gap-2 mt-6 opacity-0 animate-[fadeInUp_0.6s_0.8s_ease-out_forwards]",children:[r.jsxs("a",{href:"https://share.google/Zbx2mfKU8RQlkBidi",target:"_blank",rel:"noopener noreferrer","aria-label":"Read our 4.9-star reviews on Google",className:"inline-flex items-center gap-2 bg-primary-foreground
318/10 backdrop-blur-sm border border-primary-foreground/20 px-4 py-1.5 rounded-full hover:bg-primary-foreground/15 hover:border-primary-foreground/40 transition-colors",children:[r.jsx("div",{className:"flex",children:[...Array(5)].map((l,d)=>r.jsx(sl,{className:"h-3.5 w-3.5 fill-yellow-400 text-yellow-400"},d))}),r.jsx("span",{className:"text-xs font-semibold text-primary-foreground",children:"4.9 Google · 38+ reviews"})]}),r.jsxs("a",{href:"https://www.checkatrade.com/trades/bluesky23ltd411522",target:"_blank",rel:"noopener noreferrer","aria-label":"View our Checkatrade profile â 9.85 out of 10 from 141 reviews",className:"inline-flex items-center gap-2 bg-primary-foreground/10 backdrop-blur-sm border border-primary-foreground/20 px-4 py-1.5 rounded-full hover:bg-primary-foreground/15 hover:border-primary-foreground/40 transition-colors",children:[r.jsx("span",{className:"text-xs font-bold tracking-wide text-gold-light",children:"Checkatrade"}),r.jsx("span",{className:"text-xs font-semibold text-primary-foreground",children:"9.85/10 · 141 reviews"})]}),r.jsxs("a",{href:"https://www.trustatrader.com/traders/blue-sky-23-ltd-bathroom-fitters-tamworth",target:"_blank",rel:"noopener noreferrer","aria-label":"View our TrustATrader profile â 4.99 out of 5 from 13 reviews",className:"inline-flex items-center gap-2 bg-primary-foreground/10 backdrop-blur-sm border border-primary-foreground/20 px-4 py-1.5 rounded-full hover:bg-primary-foreground/15 hover:border-primary-foreground/40 transition-colors",children:[r.jsx("span",{className:"text-xs font-bold tracking-wide text-gold-light",children:"TrustATrader"}),r.jsx("span",{className:"text-xs font-semibold text-primary-foreground",children:"4.99/5 · 13 reviews"})]})]})]}),r.jsx("div",{className:"opacity-0 animate-[fadeInUp_0.6s_0.4s_ease-out_forwards] w-full max-w-md mx-auto lg:mx-0",children:r.jsx(jW,{})})]})]})]}),r.jsx("section",{className:"section-cream border-y border-border",children:r.jsx("div",{className:"container-narrow px-4 py-8",children:r.jsx(Ke,{children:r.jsx("div",{className:"grid grid-cols-2 lg:grid-cols-5 gap-6",children:[{icon:Dt,label:"20+ Years' Experience",sub:"Industry expertise"},{icon:nl,label:"1000+ Projects",sub:"Successfully completed"},{icon:Ha,label:"Full Warranty",sub:"On every installation"},{icon:al,label:"No Subcontractors",sub:"One dedicated team"},{icon:Ia,label:"Free Consultations",sub:"No obligation quotes"}].map(l=>r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx("div",{className:"flex items-center justify-center h-10 w-10 bg-primary/10 rounded-sm shrink-0",children:r.jsx(l.icon,{className:"h-5 w-5 text-secondary"})}),r.jsxs("div",{children:[r.jsx("p",{className:"text-sm font-bold text-foreground leading-tight",children:l.label}),r.jsx("p",{className:"text-xs text-muted-foreground",children:l.sub})]})]},l.label))})})})}),r.jsx(jb,{}),r.jsx("section",{className:"section-padding bg-muted/30",children:r.jsx("div",{className:"container-narrow",children:r.jsxs(Ke,{children:[r.jsxs("div",{className:"text-center mb-10",children:[r.jsx("p",{className:"text-sm font-semibold tracking-widest uppercase text-secondary mb-3",children:"Real Client Homes"}),r.jsx("div",{className:"section-divider mx-auto mb-4"}),r.jsxs("h2",{className:"font-heading text-2xl md:text-3xl font-bold text-foreground mb-3",children:["Recent Installations Near ",e.name]}),r.jsx("p",{className:"text-muted-foreground max-w-xl mx-auto leading-relaxed",children:"Every photo was taken in a genuine client's home after completion â supplied and installed by our in-house Blue Sky team."})]}),r.jsx("div",{className:"grid grid-cols-2 md:grid-cols-3 gap-3 md:gap-4",children:EN.map((l,d)=>r.jsx("div",{className:"aspect-square overflow-hidden group",children:r.jsx("img",{src:l.src,alt:l.alt,className:"h-full w-full object-cover group-hover:scale-105 transition-transform duration-700",loading:"lazy",width:400,height:400})},d))}),r.jsx("div",{className:"text-center mt-10",children:r.jsxs(S,{to:"/our-work",className:"inline-flex items-center gap-2 bg-primary text-primary-foreground px-7 py-3 text-sm font-semibold tracking-wide hover:bg-navy-light transition-all duration-300 hover:shadow-lg group",children:["View All Projects",r.jsx(Da,{className:"h-4 w-4 group-hover:translate-x-1 transition-transform"})]})})]})})}),r.jsx("section",{className:"section-padding",children:r.jsxs("div",{className:"container-narrow max-w-4xl",children:[r.jsxs(Ke,{children:[r.jsx("p",{className:"text-sm font-semibold tracking-widest uppercase text-secondary mb-3",children:"Local Expertise"}),r.jsx("div",{className:"section-divider mb-5"}),r.jsxs("h2",{className:"font-heading text-3xl md:text-4xl font-bold text-foreground mb-8 text-balance-heading",children:["Bathroom & Plumbing Specialists Serving ",e.name]}),r.jsx("div",{className:"space-y-4 text-muted-foreground leading-relaxed",children:e.localRelevanceContent.map((l,d)=>r.jsx("p",{children:l},d))})]}),r.jsx(Ke,{className:"mt-8",children:r.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[r.jsxs("div",{className:"premium-card p-5",children:[r.jsx("p",{className:"text-sm font-bold text-foreground mb-1",children:"Response Time"}),r.jsx("p",{className:"text-sm text-muted-foreground",children:e.responseTime})]}),r.jsxs("div",{className:"premium-card p-5",children:[r.jsx("p",{className:"text-sm font-bold text-foreground mb-1",children:"Property Types"}),r.jsx("p",{className:"text-sm text-muted-foreground",children:e.propertyTypes})]}),r.jsxs("div",{className:"premium-card p-5",children:[r.jsx("p",{className:"text-sm font-bold text-foreground mb-1",children:"Common Needs"}),r.jsx("p",{className:"text-sm text-muted-foreground",children:e.commonNeeds})]})]})})]})}),r.jsx("section",{className:"section-cream section-padding",children:r.jsxs("div",{className:"container-narrow max-w-4xl",children:[r.jsxs(Ke,{children:[r.jsx("p",{className:"text-sm font-semibold tracking-widest uppercase text-secondary mb-3",children:"Our Services"}),r.jsx("div",{className:"section-divider mb-5"}),r.jsxs("h2",{className:"font-heading text-3xl md:text-4xl font-bold text-foreground mb-10 text-balance-heading",children:["Services Available in ",e.name]})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:e.services.map((l,d)=>r.jsx(Ke,{children:r.jsx(S,{to:l.path,className:"premium-card p-5 block group",children:r.jsxs("div",{className:"flex items-start gap-3",children:[r.jsx(il,{className:"h-5 w-5 text-secondary shrink-0 mt-0.5"}),r.jsxs("div",{children:[r.jsx("h3",{className:"text-sm font-bold text-foreground group-hover:text-secondary transition-colors mb-1",children:l.name}),r.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed",children:l.description})]})]})})},l.path))})]})}),r.jsx("section",{className:"section-dark section-padding",children:r.jsx("div",{className:"container-narrow max-w-4xl",children:r.jsxs(Ke,{children:[r.jsx("p",{className:"text-sm font-semibold tracking-widest uppercase text-gold mb-3",children:"Why Us"}),r.jsx("div",{className:"section-divider mb-5"}),r.jsxs("h2",{className:"font-heading text-3xl md:text-4xl font-bold text-primary-foreground mb-8 text-balance-heading",children:["Why ",e.name," Residents Choose Blue Sky"]}
318),r.jsx("div",{className:"space-y-4 text-primary-foreground/80 leading-relaxed",children:e.whyChooseUsContent.map((l,d)=>r.jsx("p",{children:l},d))})]})})}),r.jsx("section",{className:"section-padding",children:r.jsx("div",{className:"container-narrow max-w-4xl",children:r.jsxs(Ke,{children:[r.jsx("h2",{className:"font-heading text-3xl md:text-4xl font-bold text-foreground mb-8 text-balance-heading",children:e.localProblemsHeading}),r.jsx("div",{className:"space-y-4 text-muted-foreground leading-relaxed",children:e.localProblemsContent.map((l,d)=>r.jsx("p",{children:l},d))})]})})}),r.jsx("section",{className:"section-cream section-padding",children:r.jsxs("div",{className:"container-narrow max-w-4xl",children:[r.jsxs(Ke,{children:[r.jsx("p",{className:"text-sm font-semibold tracking-widest uppercase text-secondary mb-3",children:"Our Process"}),r.jsx("div",{className:"section-divider mb-5"}),r.jsxs("h2",{className:"font-heading text-3xl md:text-4xl font-bold text-foreground mb-10 text-balance-heading",children:["How We Work in ",e.name]})]}),r.jsx("div",{className:"space-y-6",children:e.processSteps.map((l,d)=>r.jsx(Ke,{children:r.jsxs("div",{className:"flex gap-5 items-start",children:[r.jsx("div",{className:"flex items-center justify-center h-10 w-10 bg-secondary text-secondary-foreground rounded-sm shrink-0 text-sm font-bold",children:d+1}),r.jsxs("div",{children:[r.jsx("h3",{className:"font-heading text-lg font-semibold text-foreground mb-1",children:l.title}),r.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed",children:l.description})]})]})},d))})]})}),r.jsx("section",{className:"section-dark section-padding",children:r.jsxs("div",{className:"container-narrow max-w-3xl",children:[r.jsx(Ke,{children:r.jsxs("div",{className:"text-center mb-10",children:[r.jsx("p",{className:"text-sm font-semibold tracking-widest uppercase text-gold mb-3",children:"Frequently Asked Questions"}),r.jsx("div",{className:"section-divider mx-auto mb-4"}),r.jsxs("h2",{className:"font-heading text-3xl md:text-4xl font-bold text-primary-foreground text-balance-heading",children:["Bathroom Services in ",e.name," â Your Questions Answered"]})]})}),r.jsx("div",{className:"space-y-2",children:e.faqs.map((l,d)=>r.jsx(Ke,{children:r.jsxs("div",{className:"border border-primary-foreground/10 hover:border-primary-foreground/20 transition-colors",children:[r.jsxs("button",{onClick:()=>o(t===d?null:d),className:"w-full flex items-center justify-between px-5 py-4 text-left text-sm font-medium text-primary-foreground hover:text-primary-foreground/80 transition-colors",children:[l.q,r.jsx(gr,{className:`h-4 w-4 shrink-0 ml-4 transition-transform duration-300 ${t===d?"rotate-180":""}`})]}),r.jsx("div",{className:"overflow-hidden transition-all duration-300",style:{maxHeight:t===d?"200px":"0",opacity:t===d?1:0},children:r.jsx("div",{className:"px-5 pb-4 text-sm text-primary-foreground/70 leading-relaxed",children:l.a})})]})},d))})]})}),r.jsx("section",{className:"section-padding",children:r.jsx("div",{className:"container-narrow max-w-4xl",children:r.jsxs(Ke,{children:[r.jsx("h2",{className:"font-heading text-2xl font-bold text-foreground mb-6",children:"We Also Serve Nearby Areas"}),r.jsx("div",{className:"flex flex-wrap gap-3",children:e.nearbyAreas.map(l=>r.jsx(S,{to:`/areas/${l.slug}`,className:"text-sm bg-primary/5 border border-border px-4 py-2 hover:bg-secondary/10 hover:border-secondary/30 transition-all duration-200 text-foreground",children:l.name},l.slug))})]})})}),r.jsx(th,{}),r.jsxs("section",{className:"relative section-padding bg-secondary overflow-hidden",children:[r.jsxs("div",{className:"absolute inset-0",children:[r.jsx("img",{src:er.src,alt:er.alt,className:"h-full w-full object-cover opacity-30",loading:"lazy",width:1600,height:900}),r.jsx("div",{className:"absolute inset-0 bg-secondary/90"})]}),r.jsx("div",{className:"relative container-narrow text-center",children:r.jsxs(Ke,{children:[r.jsx("div",{className:"section-divider mx-auto mb-5",style:{background:"hsl(38 70% 55%)"}}),r.jsx("h2",{className:"font-heading text-3xl md:text-4xl font-bold text-secondary-foreground mb-4 text-balance-heading",children:e.ctaHeading}
318),r.jsx("p",{className:"text-secondary-foreground/80 mb-8 max-w-lg mx-auto",children:e.ctaSubtext}),r.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-center gap-4",children:[r.jsx(S,{to:"/contact",className:"bg-primary text-primary-foreground px-8 py-4 text-base font-semibold tracking-wide hover:bg-navy-light transition-all duration-300 hover:shadow-lg",children:"Request Your Free Estimate"}),r.jsxs("a",{href:"tel:03300432234",className:"flex items-center gap-2 px-8 py-4 border border-secondary-foreground/30 text-secondary-foreground text-base font-bold hover:border-secondary-foreground/60 hover:bg-secondary-foreground/5 transition-all duration-300",children:[r.jsx(me,{className:"h-5 w-5"}),"0330 043 2234"]})]})]})})]})]}),r.jsx(We,{}),r.jsx(Ve,{}),r.jsx("div",{className:"h-14 lg:hidden"})]})},FN={slug:"tamworth",name:"Tamworth",title:"Bathroom Fitters Tamworth | Showroom & Design Studio",metaDescription:"Tamworth-based bathroom fitters with a local showroom. Wet rooms, boiler replacement, plumbing & full renovations across Tamworth. Call 0330 043 2234.",heroHeadline:"Your Local Tamworth Bathroom Specialists",heroSubheadline:"From complete bathroom renovations to boiler replacements, we deliver craftsmanship that lasts â right here in Tamworth, where we're based.",trustMicro:"20+ years serving Tamworth · 1000+ projects completed · Full warranty on every job",localRelevanceContent:["Blue Sky Luxury Bathrooms is headquartered in Tamworth, making it our home territory. Our showroom on Cavendish is open for Tamworth residents to browse fixtures, tiles, and complete bathroom displays before committing to a design.","We understand Tamworth's housing stock intimately â from the Victorian terraces near the town centre and the 1930s semis along Glascote Road to the modern builds on Anker Valley and the rural properties around Hopwas and Wigginton. Every property type brings different plumbing configurations, floor joist arrangements, and space constraints that we've navigated hundreds of times.","Because we're local, our response times are the fastest in Tamworth. Emergency plumbing calls are typically attended within hours, and scheduled consultations are arranged at times that suit you â including evenings and Saturdays."],propertyTypes:"Victorian terraces, 1930s semis, new builds, rural cottages",responseTime:"Same-day availability for Tamworth residents",commonNeeds:"Full renovations, boiler replacements, wet room conversions",services:[{name:"Bathroom Fitters Tamworth (Dedicated Page)",path:"/tamworth/bathroom-fitters",description:"Local fitter specifics â pricing, what to ask, how we differ from chains and labour-only fitters."},{name:"Bathroom Installation Cost (Tamworth Pricing Guide)",path:"/tamworth/bathroom-installation-cost",description:"Real 2026 supply-and-fit prices for Tamworth â worked examples from £7,000 to £25,000+."}
318,{name:"Accessible, Disabled & Mobility Bathrooms (Tamworth)",path:"/tamworth/accessible-bathrooms",description:"Walk-in baths, walk-in showers, level-access wet rooms, grab rails and senior-friendly bathrooms â installed by a Tamworth-based team."},{name:"Bathroom Installation",path:"/services/bathroom-installation",description:"Complete supply-and-fit bathroom installations tailored to Tamworth properties, from Victorian terraces to new builds."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully tanked, building-regulation-compliant wet rooms designed for Tamworth homes."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Step-free shower enclosures that maximise space in Tamworth bathrooms."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"High-end renovations with premium fixtures and bespoke tiling for discerning Tamworth homeowners."},{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Disability-friendly bathrooms with grab rails, level-access showers, and comfort-height WCs."},{name:"Kitchen Installation",path:"/services/kitchen-installation",description:"Complete kitchen fitting including plumbing, tiling, and appliance connections."},{name:"Boiler Replacement",path:"/services/boiler-replacement",description:"Gas Safe registered boiler installations with up to 12-year manufacturer warranties."},{name:"Plumbing Services",path:"/services/plumbing-services",description:"General plumbing repairs, pipework modifications, and leak detection across Tamworth."},{name:"Tiling Services",path:"/services/tiling-services",description:"Floor and wall tiling in porcelain, ceramic, natural stone, and mosaic formats."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Electric and water-based underfloor heating systems for bathrooms and living spaces."},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments",description:"Cost-effective refreshes â new sanitaryware, tiling, and fixtures without a full strip-out."},{name:"Cloakroom & Ensuite",path:"/services/cloakroom-ensuite",description:"Compact cloakroom and ensuite designs that make efficient use of smaller spaces."},{name:"Bathroom Design & Planning",path:"/services/bathroom-design-planning",description:"3D design consultations so you can visualise your new bathroom before work begins."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"Visit our Tamworth showroom to see live displays and choose materials in person."}],whyChooseUsContent:["As a Tamworth-based company, we don't subcontract your project to strangers. The team who designs your bathroom is the same team who installs it, tiles it, and plumbs it in. That means one point of contact, one warranty, and one standard of workmanship from start to finish.","We've completed over 1,000 bathroom projects across Tamworth and the surrounding Midlands. Our experience with local building regulations, water pressure variations, and property-specific challenges means fewer surprises and faster completions.","Every installation carries a full workmanship guarantee. We use branded, manufacturer-backed products â no unbranded imports or grey-market goods. If something goes wrong, we're ten minutes away, not in another county.","Our Tamworth showroom gives you the opportunity to see and touch materials before committing. We believe informed decisions lead to better outcomes and fewer regrets."],localProblemsHeading:"Common Bathroom Issues in Tamworth Properties",localProblemsContent:["Tamworth's older properties â particularly the terraced housing near Castle Grounds and the post-war estates around Belgrave â often have outdated lead or copper pipework that's corroded over decades. Low water pressure, discoloured water, and slow drainage are frequent complaints we resolve.","Many 1960s and 1970s properties in Tamworth still have avocado or peach suites with dated tiling and insufficient ventilation. Without proper extraction, these bathrooms develop persistent damp and mould behind tiles, damaging plaster and timber over time.","Newer builds on developments like Anker Valley and Ventura Park sometimes suffer from builder-grade finishes â thin tiles, plastic baths, and minimal waterproofing. These wear quickly and often need replacing within 5â8 years of the property being built.","Boiler failures are common in Tamworth during cold snaps. Many households are still running boilers installed in the early 2000s that have become inefficient and unreliable. Replacing an aging boiler before it fails completely saves money on emergency call-out
318s and energy bills."],processSteps:[{title:"Free Home Consultation",description:"We visit your Tamworth property to assess the space, discuss your requirements, and take measurements. No obligation, no pressure."},{title:"Design & Quotation",description:"You receive a detailed, itemised quote with 3D design visuals so you can see exactly what your new bathroom will look like."},{title:"Material Selection",description:"Choose from our showroom displays or browse our supplier catalogues. We guide you on what works best for your property type."},{title:"Professional Installation",description:"Our dedicated team handles everything â plumbing, electrics, tiling, plastering, and decoration. No subcontractors."},{title:"Final Inspection & Handover",description:"We walk through the completed project with you, test every fixture, and issue your warranty documentation."}],faqs:[{q:"Do you serve all areas of Tamworth?",a:"Yes. We cover every part of Tamworth including the town centre, Glascote, Belgrave, Amington, Wilnecote, Dosthill, Two Gates, Bolehall, Hopwas, and surrounding villages."},{q:"How quickly can you start a project in Tamworth?",a:"Depending on the season, we can typically begin within 2â4 weeks of accepting your quote. Emergency plumbing repairs are often attended the same day."},{q:"How much does a bathroom installation cost in Tamworth?",a:"A complete bathroom installation in Tamworth starts from £7,000. Final pricing depends on room size, product specification, and complexity â every quote is detailed and itemised after your free consultation. All materials are supplied by us through our Tamworth showroom."},{q:"Do you handle building regulations for wet rooms?",a:"Yes. We manage all aspects of building regulation compliance for wet room installations, including waterproofing certification and drainage calculations."},{q:"Can I visit your showroom before booking?",a:"Absolutely. Our showroom at Unit 7 Cavendish, Tamworth B79 7XH is open for browsing. We recommend booking an appointment so we can give you dedicated time."},{q:"What guarantee do you offer on installations?",a:"All our installations carry a full workmanship warranty. Products are covered by their respective manufacturer warranties, typically 5â25 years depending on the item."},{q:"Are you Gas Safe registered for boiler work?",a:"Yes. All our gas engineers are Gas Safe registered. We handle boiler replacements and installation in full compliance with safety regulations."},{q:"Do you offer finance for bathroom installations?",a:"We can discuss payment options during your consultation. Contact us for details on available arrangements."}],ctaHeading:"Ready to Transform Your Tamworth Bathroom?",ctaSubtext:"Book your free, no-obligation home consultation today. We'll visit your property, discuss your vision, and provide a detailed quote â all at no cost.",nearbyAreas:[{name:"Lichfield",slug:"lichfield"},{name:"Sutton Coldfield",slug:"sutton-coldfield"},{name:"Atherstone",slug:"atherstone"},{name:"Burton-on-Trent",slug:"burton-on-trent"},{name:"Nuneaton",slug:"nuneaton"}]},qN=()=>r.jsx(H,{data:FN}),PN={slug:"lichfield",name:"Lichfield",title:"Bathroom Installation Lichfield | Blue Sky Luxury Bathrooms",metaDescription:"Luxury bathroom installations, wet rooms, and boiler services in Lichfield. 20+ years' experience. Visit our Tamworth showroom. Call 0330 043 2234.",heroHeadline:"Expert Bathroom Installations in Lichfield",heroSubheadline:"From period property renovations to contemporary wet rooms, we bring 20 years of craftsmanship to every Lichfield home â just 15 minutes from our Tamworth base.",trustMicro:"Hundreds of Lichfield projects completed · No subcontractors · Full warranty",localRelevanceContent:["Lichfield sits just 15 minutes from our Tamworth headquarters, making it one of our most-served locations. We've completed hundreds of bathroom and plumbing projects across the city, from the elegant Georgian and Victorian properties in the Cathedral Quarter to the family homes on Boley Park and the newer developments around Streethay.","Lichfield's mix of heritage and modern housing requires an installer who understands both. Listed properties around Dam Street and Beacon Street demand sensitivity to period features â original floor tiles, sash window placements, and ceiling heights that differ from modern standards. We plan around these constraints rather than forcing a one-size-fits-all approach.","Our proximity means rapid response for emergencie
318s. A burst pipe or boiler failure in Lichfield is typically attended within hours, not days. For planned work, we schedule consultations at times that work for you, including evenings."],propertyTypes:"Georgian townhouses, Victorian villas, modern estates, new builds",responseTime:"Within 1â2 hours for emergencies from Tamworth base",commonNeeds:"Period property renovations, luxury upgrades, boiler replacements",services:[{name:"Bathroom Fitters Lichfield (Dedicated Page)",path:"/lichfield/bathroom-fitters",description:"Our dedicated Lichfield bathroom fitting page â local pricing, timescales and what to expect from our employed team."},{name:"Accessible & Mobility Bathrooms (Lichfield)",path:"/lichfield/accessible-bathrooms",description:"Walk-in showers, level-access wet rooms and grab rails for Lichfield homes needing easier, safer bathing."},{name:"Bathroom Refurbishment Lichfield (Dedicated Page)",path:"/lichfield/bathroom-refurbishment",description:"Refurbishment vs full renovation, costs, timescales â Lichfield-specific guide and quote."},{name:"Bathroom Installation",path:"/services/bathroom-installation",description:"Full bathroom installations designed around Lichfield's varied property types."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"High-specification renovations befitting Lichfield's premium residential areas."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully waterproofed wet rooms suitable for both modern and older Lichfield properties."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Frameless walk-in showers that add contemporary style to Lichfield bathrooms."}
318,{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Mobility-friendly bathrooms for Lichfield residents needing level-access solutions."},{name:"Kitchen Installation",path:"/services/kitchen-installation",description:"Complete kitchen fitting with professional plumbing and tiling."},{name:"Boiler Replacement",path:"/services/boiler-replacement",description:"Energy-efficient boiler upgrades for Lichfield homes."},{name:"Plumbing Services",path:"/services/plumbing-services",description:"Leak repairs, pipework upgrades, and general plumbing across Lichfield."},{name:"Tiling Services",path:"/services/tiling-services",description:"Expert tiling in natural stone, porcelain, and ceramic."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Underfloor heating systems for bathrooms and extensions."},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments",description:"Refreshed bathrooms without the cost of a full renovation."},{name:"Cloakroom & Ensuite",path:"/services/cloakroom-ensuite",description:"Space-efficient cloakroom and ensuite solutions for Lichfield homes."},{name:"Bathroom Design & Planning",path:"/services/bathroom-design-planning",description:"3D design consultations tailored to your property."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"Browse live displays at our Tamworth showroom, just 15 minutes away."}],whyChooseUsContent:["Lichfield homeowners consistently choose Blue Sky because we combine the attention to detail of a specialist with the reliability of a local company. We don't send different tradespeople to each job â our dedicated team manages your project from consultation to completion.","Working across Lichfield's varied housing stock has given us deep experience with the specific challenges each property type presents. Whether it's navigating the narrow stairwells of a terraced cottage on Stowe Street or integrating underfloor heating into a new extension on Darwin Park, we've solved these problems before.","Every project includes a full workmanship guarantee, and because we're based just down the A5, after-care visits are simple to arrange. You're not waiting days for a warranty issue â we're local and responsive."],localProblemsHeading:"Common Bathroom Problems in Lichfield Homes",localProblemsContent:["Lichfield's older properties around the city centre frequently have original cast-iron drainage and lead supply pipes. These deteriorate over time, causing reduced flow rates, water discolouration, and leak risks. We replace aging pipework with modern copper and plastic systems that meet current regulations.","Many Victorian and Edwardian properties in Lichfield have bathrooms that were retrofitted decades ago into converted bedrooms. These rooms often lack proper ventilation, leading to persistent condensation and mould growth on ceilings and behind tiles.","Properties on Boley Park and Christchurch Lane built in the 1970s and 1980s frequently have combination boilers approaching the end of their working life. These units become increasingly inefficient and prone to breakdown during winter months when they're working hardest.","Newer builds around Streethay and Cricket Lane sometimes have space-constrained bathrooms with builder-grade finishes. Homeowners upgrading to wall-hung sanitaryware, better storage, and premium tiling can dramatically improve both function and resale value."],processSteps:[{title:"Free Home Consultation",description:"We visit your Lichfield property to assess the space, understand your goals, and take detailed measurements."},{title:"Design & Quotation",description:"Receive a comprehensive, itemised quote with 3D visuals showing your new bathroom in detail."},{title:"Material Selection",description:"Select from our showroom or browse supplier catalogues with expert guidance on what suits your property."},{title:"Professional Installation",description:"One team handles plumbing, electrics, tiling, and decoration â no subcontractors, no coordination headaches."},{title:"Final Inspection & Handover",description:"We inspect every detail with you, test all fixtures, and provide your warranty documents."}],faqs:[{q:"Do you cover all of Lichfield?",a:"Yes â we serve every area of Lichfield including the city centre, Boley Park, Stowe, Leomansley, Sandfields, Christchurch, Darwin Park, and Streethay."},{q:"How far is your showroom from Lichfield?",a:"Our Tamworth showroom is approximately 15 minutes' drive from Lichfield city centre via the A5. We welcome Lichfield residents to browse our displays."},{q:"How much does a bathroom cost in Lichfield?",a:"A complete bathroom installation in Lichfield starts from £7,000. Final pricing depends on room size, product specification, and complexity â every quote is detailed and itemised after your free consultation. All materials are supplied by us through our Tamworth showroom."},{q:"Can you work on listed buildings in Lichfield?",a:"We have experience working on properties in Lichfield's conservation areas and can advise on any restrictions that may apply to your planned renovation."}
318,{q:"How quickly can you respond to emergencies in Lichfield?",a:"Being based in Tamworth, we can typically reach Lichfield within 1â2 hours for emergency plumbing or boiler issues."},{q:"Do you install underfloor heating in Lichfield properties?",a:"Yes. We install both electric and water-based underfloor heating, suitable for bathrooms, kitchens, and extensions."},{q:"What brands do you supply?",a:"We supply and fit products from leading manufacturers including Roca, Grohe, Crosswater, Bristan, and many others. All come with manufacturer warranties."},{q:"Do you offer free quotes for Lichfield?",a:"Yes. Every consultation and quotation is completely free and carries no obligation."}],ctaHeading:"Transform Your Lichfield Bathroom Today",ctaSubtext:"Book a free home consultation. We'll visit your Lichfield property, discuss your vision, and deliver a detailed quote at no cost.",nearbyAreas:[{name:"Tamworth",slug:"tamworth"},{name:"Rugeley",slug:"rugeley"},{name:"Sutton Coldfield",slug:"sutton-coldfield"},{name:"Cannock",slug:"cannock"},{name:"Burton-on-Trent",slug:"burton-on-trent"}]},RN=()=>r.jsx(H,{data:PN}),LN={slug:"rugeley",name:"Rugeley",title:"Bathroom Installation Rugeley | Blue Sky Luxury Bathrooms",metaDescription:"Professional bathroom installations, boiler replacement, and plumbing services in Rugeley, Staffordshire. 20+ years' experience. Call 0330 043 2234.",heroHeadline:"Professional Bathroom Installations in Rugeley",heroSubheadline:"Expert bathroom renovations and plumbing services for Rugeley homes. Locally based, fully guaranteed, and delivered by one dedicated team.",trustMicro:"Serving Rugeley for 20+ years · No subcontractors · Full warranty on every project",localRelevanceContent:["Rugeley sits within easy reach of our Tamworth base, and we've built a strong reputation among homeowners across the town and surrounding villages including Brereton, Armitage, and Handsacre.","The town's housing stock ranges from traditional mining cottages and Victorian terraces near the town centre to 1960s council-built estates and modern developments on the fringes. Each property type demands different plumbing approaches â we've worked extensively across all of them.","Our familiarity with Rugeley means we understand local water pressure patterns, common pipework configurations, and the specific challenges older Staffordshire properties present. That local knowledge translates into fewer surprises and smoother installations."],propertyTypes:"Mining cottages, Victorian terraces, 1960s estates, modern builds",responseTime:"Typically within 2 hours from Tamworth base",commonNeeds:"Full renovations, boiler upgrades, accessible bathroom conversions",services:[{name:"Bathroom Fitters Rugeley (Dedicated Page)",path:"/rugeley/bathroom-fitters",description:"Our dedicated Rugeley bathroom fitting page â local pricing, timescales and what to expect from our employed team."},{name:"Bathroom Installation",path:"/services/bathroom-installation",description:"Full supply-and-fit installations designed for Rugeley's varied housing stock."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Waterproofed wet rooms suitable for solid and suspended floors."},{name:"Boiler Replacement",path:"/services/boiler-replacement",description:"Energy-efficient boiler replacements with extended manufacturer warranties."}
318,{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Level-access showers and mobility aids for Rugeley residents."},{name:"Kitchen Installation",path:"/services/kitchen-installation",description:"Complete kitchen fitting with plumbing and tiling included."},{name:"Plumbing Services",path:"/services/plumbing-services",description:"General plumbing repairs, leak detection, and pipework upgrades."},{name:"Tiling Services",path:"/services/tiling-services",description:"Professional wall and floor tiling in all materials."},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments",description:"Cost-effective bathroom refreshes without full renovation."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Frameless walk-in showers for Rugeley bathrooms."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"Premium-specification renovations with high-end materials."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Electric and water-based systems for comfortable bathrooms."},{name:"Cloakroom & Ensuite",path:"/services/cloakroom-ensuite",description:"Space-efficient solutions for smaller rooms."},{name:"Bathroom Design & Planning",path:"/services/bathroom-design-planning",description:"3D design consultations before any work begins."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"Visit our Tamworth showroom to view displays in person."}],whyChooseUsContent:["Rugeley homeowners value reliability â and that's exactly what we deliver. One team manages your entire project from design to completion. No subcontractors, no miscommunication, no finger-pointing if something needs attention.","We've solved the specific problems that Rugeley properties present: low water pressure in older terraces, solid-floor drainage challenges in mining cottages, and inefficient heating systems in 1960s builds. Our local experience means we anticipate issues before they become costly problems.","Every installation comes with a full workmanship warranty, and our proximity means after-care is straightforward. We don't disappear after the job â we're just down the road."],localProblemsHeading:"Common Bathroom Issues in Rugeley Properties",localProblemsContent:["Rugeley's older properties â particularly the terraced housing near the town centre and the former mining cottages around Brereton â often have aging pipework and drainage systems that have deteriorated over decades. Low water pressure, slow drainage, and intermittent leaks are common problems we regularly resolve.","Many 1960s and 1970s properties on estates like Pear Tree and Sandy Lane have original bathroom suites that are well past their functional lifespan. Without adequate ventilation, these bathrooms develop persistent damp and mould that damages walls, ceilings, and timber joists.","Boiler efficiency is a significant concern in Rugeley, particularly for households on older heating systems. Replacing a 15-to-20-year-old boiler with a modern condensing unit can reduce gas bills by 20â30% while dramatically improving heating reliability during cold Staffordshire winters.","Properties near Cannock Chase can experience hard water deposits that scale up taps, showerheads, and internal pipework over time. We specify fixtures and finishes designed to resist limescale build-up in hard water areas."],processSteps:[{title:"Free Home Consultation",description:"We visit your Rugeley home to assess the space, listen to your requirements, and take precise measurements."},{title:"Design & Quotation",description:"You receive a fully itemised quote with 3D design visuals â no hidden costs, no surprises."},{title:"Material Selection",description:"Choose materials at our Tamworth showroom or browse our catalogues with expert guidance."},{title:"Professional Installation",description:"Our in-house team completes all plumbing, electrical, tiling, and finishing work."},{title:"Final Inspection & Handover",description:"We walk through the completed project together, test every fixture, and hand over warranty documentation."}],faqs:[{q:"Do you serve all areas of Rugeley?",a:"Yes â we cover the entire Rugeley area including the town centre, Brereton, Armitage, Handsacre, and surrounding villages."},{q:"How much does a bathroom installation cost in Rugeley?",a:"A complete bathroom installation in Rugeley starts from £7,000. Final pricing depends on room size, product specification, and complexity â every quote is detailed and itemised after your free consultation. All materials are supplied by us through our Tamworth showroom."},{q:"Can you work on older mining cottages?",a:"Yes. We have extensive experience with solid-floor properties and older construction methods common in Rugeley's traditional housing."}
318,{q:"How quickly can you attend emergencies?",a:"We can typically reach Rugeley within 2 hours from our Tamworth base for emergency plumbing or boiler issues."},{q:"Do you offer boiler replacement in Rugeley?",a:"Yes. Our Gas Safe registered engineers provide boiler replacement and installation for all major brands across Rugeley."},{q:"What guarantee do you provide?",a:"All installations carry a full workmanship warranty. Products are covered by manufacturer guarantees, typically ranging from 5 to 25 years."},{q:"Can you install accessible bathrooms?",a:"Absolutely. We specialise in level-access showers, grab rails, and comfort-height sanitaryware for residents with mobility needs."},{q:"Do you manage waste removal?",a:"Yes. We handle all waste removal and site cleaning as part of the installation process."}],ctaHeading:"Ready to Upgrade Your Rugeley Bathroom?",ctaSubtext:"Book a free home consultation and receive a detailed quote at no cost. We're just down the road and ready to help.",nearbyAreas:[{name:"Lichfield",slug:"lichfield"},{name:"Cannock",slug:"cannock"},{name:"Burton-on-Trent",slug:"burton-on-trent"},{name:"Tamworth",slug:"tamworth"},{name:"Walsall",slug:"walsall"}]},MN=()=>r.jsx(H,{data:LN}),DN={slug:"swadlincote",name:"Swadlincote",title:"Bathroom Installation Swadlincote | Blue Sky",metaDescription:"Expert bathroom installations, wet rooms, and plumbing services in Swadlincote. Locally based team, full warranties. Free estimates. Call 0330 043 2234.",heroHeadline:"Bathroom Specialists Serving Swadlincote",heroSubheadline:"Complete bathroom installations and plumbing services tailored to South Derbyshire homes. One team, one warranty, zero subcontractors.",trustMicro:"20+ years' experience · Full warranty · Free consultations across Swadlincote",localRelevanceContent:["Swadlincote is well within our regular service radius from Tamworth, and we've developed strong working relationships with homeowners across the town and villages including Church Gresley, Newhall, Woodville, and Midway.","South Derbyshire's housing stock includes a distinctive mix of former pottery workers' cottages, inter-war semis, and the expanding modern developments around Drakelow and William Nadin Way. Each property type requires a different installation approach â something our 20 years' experience across the region has equipped us to handle confidently.","We schedule consultations and installations at times that work for Swadlincote residents, and our response time for emergencies is typically within two hours."],propertyTypes:"Workers' cottages, inter-war semis, modern estates, rural properties",responseTime:"Within 2 hours for emergencies",commonNeeds:"Full renovations, boiler upgrades, wet room conversions",services:[{name:"Bathroom Fitters Swadlincote (Dedicated Page)",path:"/swadlincote/bathroom-fitters",description:"Our dedicated Swadlincote bathroom fitting page â local pricing, timescales and what to expect from our employed team."},{name:"Bathroom Installation",path:"/services/bathroom-installation",description:"Complete bathroom installations for Swadlincote's varied property types."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully tanked wet rooms meeting all building regulations."},{name:"Boiler Replacement",path:"/services/boiler-replacement",description:"Gas Safe boiler installations with extended warranties."}
318,{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Mobility-friendly bathrooms with level-access showers and grab rails."},{name:"Kitchen Installation",path:"/services/kitchen-installation",description:"Professional kitchen fitting with plumbing and tiling."},{name:"Plumbing Services",path:"/services/plumbing-services",description:"Repairs, pipework upgrades, and leak detection."},{name:"Tiling Services",path:"/services/tiling-services",description:"Floor and wall tiling in porcelain, ceramic, and natural stone."},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments",description:"Cost-effective bathroom refreshes without full strip-out."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Frameless walk-in showers for modern Swadlincote bathrooms."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"Premium renovations with high-end fixtures and finishes."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Warm-floor systems for bathrooms and living spaces."},{name:"Cloakroom & Ensuite",path:"/services/cloakroom-ensuite",description:"Compact cloakroom and ensuite designs."},{name:"Bathroom Design & Planning",path:"/services/bathroom-design-planning",description:"3D design consultations before work begins."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"Visit our Tamworth showroom, a short drive from Swadlincote."}],whyChooseUsContent:["Swadlincote residents choose Blue Sky because we deliver complete projects with one accountable team. There's no passing responsibility between tradespeople â the team who plans your bathroom installs it, tiles it, and stands behind the warranty.","We understand South Derbyshire properties. From the solid floors in older Swadlincote cottages to the timber-frame constructions in newer estates, we've handled every configuration and know how to get the best results.","Our full workmanship guarantee and local proximity mean peace of mind that extends well beyond installation day. If you need us after the project, we're a short drive away."],localProblemsHeading:"Common Bathroom Issues in Swadlincote Properties",localProblemsContent:["Swadlincote's heritage as a pottery and mining town means many older properties were built with solid floors and brick construction that can complicate drainage routing. We have deep experience rerouting waste pipes and creating efficient drainage solutions in these properties.","Inter-war and post-war housing across Church Gresley and Newhall often has original plumbing systems that are corroded and inefficient. These properties frequently suffer from poor hot water performance and inconsistent heating distribution.","Hard water is prevalent in South Derbyshire, causing limescale build-up in boilers, showerheads, and pipework. This reduces efficiency and shortens the lifespan of bathroom fixtures. We specify products designed to perform in hard water areas and advise on water softening options.","Many newer builds around the Drakelow development were finished with budget-grade bathroom suites and thin tiling that deteriorates quickly. Upgrading to quality sanitaryware and properly waterproofed walls adds both durability and value."],processSteps:[{title:"Free Home Consultation",description:"We visit your Swadlincote property to assess the existing bathroom, discuss your goals, and take measurements."},{title:"Design & Quotation",description:"Receive a detailed, itemised quote with 3D visuals showing your proposed bathroom design."},{title:"Material Selection",description:"Choose materials from our Tamworth showroom or browse supplier catalogues with expert guidance."},{title:"Professional Installation",description:"Our dedicated team handles all trades â plumbing, electrics, tiling, plastering, and decoration."},{title:"Final Inspection & Handover",description:"Joint inspection of the finished project, fixture testing, and warranty documentation handover."}],faqs:[{q:"Do you serve all areas of Swadlincote?",a:"Yes â we cover Swadlincote town centre, Church Gresley, Newhall, Woodville, Midway, Albert Village, and surrounding areas."},{q:"How much does a bathroom installation cost in Swadlincote?",a:"A complete bathroom installation in Swadlincote starts from £7,000. Final pricing depends on room size, product specification, and complexity â every quote is detailed and itemised after your free consultation. All materials are supplied by us through our Tamworth showroom."},{q:"How quickly can you attend an emergency in Swadlincote?",a:"We can usually reach Swadlincote within 2 hours from our Tamworth base for emergency plumbing or boiler issues."},{q:"Can you work on older solid-floor properties?",a:"Absolutely. We have extensive experience with solid-floor drainage solutions and older construction methods common in Swadlincote."},{q:"Do you deal with hard water problems?",a:"We specify limescale-resistant fixtures and can advise on water treatment options suitable for South Derbyshire's water supply."},{q:"What guarantee do you provide?",a:"All installations carry a full workmanship warranty plus manufacturer guarantees on all products fitted."},{q:"Are you Gas Safe registered?",a:"Yes. Our engineers are Gas Safe registered for all boiler installation and replacement work."},{q:"Do you remove old bathrooms and waste?",a:"Yes â removal, disposal, and site cleaning are included in every installation project."}],ctaHeading:"Ready to Transform Your Swadlincote Bathroom?",ctaSubtext:"Book your free consultation today. We'll visit your home, discuss your plans, and provide a comprehensive quote.",nearbyAreas:[{name:"Burton-on-Trent",slug:"burton-on-trent"},{name:"Tamworth",slug:"tamworth"},{name:"Coalville",slug:"coalville"},{name:"Derby",slug:"derby"},{name:"Atherstone",slug:"atherstone"}]},IN=()=>r.jsx(H,{data:DN}),HN={slug:"burton-on-trent",name:"Burton-on-Trent",title:"Bathroom Installation Burton-on-Trent | Blue Sky",metaDescription:"Expert bathroom installations, boiler replacements, and plumbing in Burton-on-Trent. 20+ years' experience. Free consultations. Call 0330 043 2234.",heroHeadline:"Trusted Bathroom Installer
318s in Burton-on-Trent",heroSubheadline:"Complete bathroom renovations, wet rooms, and plumbing services delivered by one experienced team â serving Burton and East Staffordshire from our nearby Tamworth base.",trustMicro:"1000+ projects completed · Gas Safe registered · Full workmanship warranty",localRelevanceContent:["Burton-on-Trent is one of our core service areas, situated just 20 minutes from our Tamworth headquarters. We've completed numerous projects across the town â from the Victorian terraces along Horninglow Street and the Edwardian properties near Stapenhill to modern housing on the Stretton corridor and Outwoods developments.","Burton's brewing heritage has shaped its architecture, with many properties originally built for brewery workers featuring compact bathrooms that benefit from clever redesign. We understand these spatial constraints and specialise in maximising functionality in smaller rooms.","Our Burton clients appreciate that we manage every trade in-house. No coordinating multiple contractors, no scheduling conflicts â just one team delivering from design to completion."],propertyTypes:"Victorian terraces, Edwardian semis, modern estates, converted properties",responseTime:"Within 1.5 hours for emergencies",commonNeeds:"Full renovations, compact bathroom redesigns, heating upgrades",services:[{name:"Bathroom Fitters Burton-on-Trent (Dedicated Page)",path:"/burton-on-trent/bathroom-fitters",description:"Our dedicated Burton-on-Trent bathroom fitting page â local pricing, timescales and what to expect from our employed team."}
318,{name:"Accessible & Mobility Bathrooms (Burton-on-Trent)",path:"/burton-on-trent/accessible-bathrooms",description:"Walk-in showers, level-access wet rooms and grab rails for Burton-on-Trent homes needing easier, safer bathing."},{name:"Bathroom Showroom Near Burton-on-Trent",path:"/burton-on-trent/bathroom-showroom",description:"Visit our independent showroom in Tamworth â 25 minutes from Burton via the A38."},{name:"Bathroom Installation",path:"/services/bathroom-installation",description:"Full bathroom installations tailored to Burton's varied property types."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully waterproofed wet rooms compliant with building regulations."},{name:"Boiler Replacement",path:"/services/boiler-replacement",description:"Gas Safe boiler installations with manufacturer-backed warranties."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Step-free showers that modernise Burton bathrooms."},{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Mobility-friendly installations with level-access solutions."},{name:"Kitchen Installation",path:"/services/kitchen-installation",description:"Complete kitchen fitting including plumbing and tiling."},{name:"Plumbing Services",path:"/services/plumbing-services",description:"Leak repairs, pipework upgrades, and emergency plumbing."},{name:"Tiling Services",path:"/services/tiling-services",description:"Professional tiling in porcelain, ceramic, and natural stone."},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments",description:"Refreshed bathrooms without full strip-out costs."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"High-end renovations with premium materials and finishes."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Efficient underfloor heating for bathrooms and living spaces."},{name:"Cloakroom & Ensuite",path:"/services/cloakroom-ensuite",description:"Compact, well-designed cloakrooms and ensuites."},{name:"Bathroom Design & Planning",path:"/services/bathroom-design-planning",description:"3D design consultations to visualise your new bathroom."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"Browse our Tamworth showroom displays, 20 minutes from Burton."}],whyChooseUsContent:["Burton-on-Trent homeowners choose Blue Sky because we bring consistency to a process that often feels chaotic. One team, one point of contact, one warranty â that's our model, and it removes the stress that comes with coordinating multiple tradespeople.","We've worked extensively across Burton's housing stock and understand the specific challenges â from the lime mortar walls in older terraces to the suspended timber floors in Edwardian properties. Our experience means fewer delays and better outcomes.","After-care matters as much as installation quality. Being just 20 minutes away means we can attend warranty queries quickly, without the long waits that come with distant contractors."],localProblemsHeading:"Common Bathroom Issues in Burton-on-Trent Homes",localProblemsContent:["Burton's Victorian and Edwardian terraces frequently have original plumbing systems that are well past their serviceable life. Lead supply pipes, corroded copper joints, and blocked clay drainage are issues we encounter and resolve regularly.","Many properties along the Trent floodplain have experienced moisture ingress at some point, which can cause hidden damage behind bathroom tiles and beneath flooring. We check for and remediate these issues as part of every renovation.","The compact bathroom layouts found in Burton's brewery-era terraces present design challenges. Many were originally built with outside facilities and later converted, resulting in awkward shapes and limited space. We specialise in making these rooms work harder through intelligent layout and wall-hung fixtures.","Older boilers in Burton properties â particularly those installed before 2005 â are significantly less efficie
318nt than modern condensing units. With East Staffordshire's cold winters, upgrading can reduce annual heating costs by hundreds of pounds."],processSteps:[{title:"Free Home Consultation",description:"We visit your Burton property to assess the space, discuss your vision, and take accurate measurements."},{title:"Design & Quotation",description:"A detailed, itemised quote with 3D design visuals â transparent pricing with no hidden costs."},{title:"Material Selection",description:"Choose fixtures and finishes at our Tamworth showroom or via our supplier catalogues."},{title:"Professional Installation",description:"Our in-house team manages plumbing, electrics, tiling, and all finishing work."},{title:"Final Inspection & Handover",description:"We walk through the completed bathroom, test every fixture, and provide warranty documentation."}],faqs:[{q:"Do you cover all of Burton-on-Trent?",a:"Yes â we serve Burton town centre, Stapenhill, Horninglow, Stretton, Branston, Outwoods, Winshill, and surrounding villages."},{q:"How much does a bathroom installation cost in Burton?",a:"A complete bathroom installation in Burton starts from £7,000. Final pricing depends on room size, product specification, and complexity â every quote is detailed and itemised after your free consultation. All materials are supplied by us through our Tamworth showroom."},{q:"How fast can you respond to emergencies?",a:"We can typically reach Burton-on-Trent within 1.5 hours for emergency plumbing or boiler failures."},{q:"Can you redesign small Burton bathrooms?",a:"Absolutely. We specialise in maximising compact spaces using wall-hung sanitaryware, space-saving storage, and clever layout design."},{q:"Are your gas engineers qualified?",a:"Yes â all our gas engineers are Gas Safe registered and qualified for boiler installation and replacement."},{q:"What warranty do you offer?",a:"Full workmanship warranty on all installations, plus manufacturer warranties on every product we supply and fit."},{q:"Do you handle planning and design?",a:"Yes. We offer 3D design consultations so you can see your new bathroom before any work begins."},{q:"Can you install underfloor heating in Burton homes?",a:"Yes â we install electric and water-based underfloor heating suitable for bathrooms, kitchens, and extensions."}],ctaHeading:"Upgrade Your Burton-on-Trent Bathroom",ctaSubtext:"Book a free, no-obligation consultation. We'll visit your home, discuss your requirements, and deliver a transparent quote.",nearbyAreas:[{name:"Tamworth",slug:"tamworth"},{name:"Swadlincote",slug:"swadlincote"},{name:"Lichfield",slug:"lichfield"},{name:"Rugeley",slug:"rugeley"},{name:"Derby",slug:"derby"}]},ON=()=>r.jsx(H,{data:HN}),_N={slug:"sutton-coldfield",name:"Sutton Coldfield",title:"Bathroom Services Sutton Coldfield | Blue Sky Bathrooms",metaDescription:"All our bathroom services in Sutton Coldfield in one place â fitting, wet rooms, walk-in showers, accessible bathrooms, boilers, tiling and plumbing. Call 0330 043 2234.",heroHeadline:"Bathroom & Plumbing Services Across Sutton Coldfield",heroSubheadline:"Premium bathroom renovations for one of the Midlands' most desirable addresses. Expert craftsmanship, premium materials, and a service standard that matches your expectations.",trustMicro:"Trusted across Sutton Coldfield · 1000+ projects · Full warranty on every installation",localRelevanceContent:["Sutton Coldfield is one of our premium service areas. The Royal Town's distinctive housing stock â from the substantial detached properties around Four Oaks Park and Little Aston to the characterful Victorian villas in Wylde Green and the family homes across Boldmere â demands an installer who delivers to the highest standard.","We've completed extensive work across Sutton Coldfield and understand that homeowners here expect quality that matches their properties. Our luxury bathroom installations use the same premium materials, meticulous finishing, and comprehensive project management that have earned us our reputation across the Midlands.","Located 25 minutes from Sutton Coldfield via the A453, we provide prompt consultations and responsive after-care. Emergency plumbing and boiler issues are typically attended within two hours."],propertyTypes:"Detached family homes, Victorian villas, period properties, modern executive homes",responseTime:"Within 2 hours for emergencie
318s",commonNeeds:"Luxury renovations, ensuite additions, wet room conversions, heating upgrades",services:[{name:"Bathroom Fitters Sutton Coldfield (Dedicated Page)",path:"/sutton-coldfield/bathroom-fitters",description:"Our dedicated Sutton Coldfield bathroom fitting page â local pricing, timescales and what to expect from our employed team."},{name:"Accessible & Mobility Bathrooms (Sutton Coldfield)",path:"/sutton-coldfield/accessible-bathrooms",description:"Walk-in showers, level-access wet rooms and grab rails for Sutton Coldfield homes needing easier, safer bathing."},{name:"Bathroom Installation Sutton Coldfield (Dedicated Page)",path:"/sutton-coldfield/bathroom-installation",description:"Premium installation specifics for Four Oaks, Mere Green, Boldmere and Wylde Green."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"High-specification renovations with premium sanitaryware and bespoke tiling."},{name:"Bathroom Installation",path:"/services/bathroom-installation",description:"Complete supply-and-fit installations for all Sutton Coldfield property types."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Designer wet rooms with full tanking and premium drainage solutions."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Frameless walk-in showers with premium glass and fittings."},{name:"Cloakroom & Ensuite",path:"/services/cloakroom-ensuite",description:"Bespoke ensuite and cloakroom designs adding value to your home."}
318,{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Elegant accessibility solutions that don't compromise on style."},{name:"Kitchen Installation",path:"/services/kitchen-installation",description:"Professional kitchen fitting with full plumbing integration."},{name:"Boiler Replacement",path:"/services/boiler-replacement",description:"Premium boiler installations with extended warranties."},{name:"Plumbing Services",path:"/services/plumbing-services",description:"Professional plumbing repairs and upgrades."},{name:"Tiling Services",path:"/services/tiling-services",description:"Expert tiling in marble, porcelain, natural stone, and mosaic."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Discreet underfloor heating for bathrooms and living spaces."},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments",description:"Targeted upgrades to refresh tired bathrooms."},{name:"Bathroom Design & Planning",path:"/services/bathroom-design-planning",description:"3D design consultations to visualise your dream bathroom."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"Visit our Tamworth showroom to see premium displays in person."}],whyChooseUsContent:["Sutton Coldfield homeowners expect a level of service and quality that matches their properties. We deliver exactly that â from the initial consultation through to the final handover, every detail is managed by one experienced team.","Our portfolio of luxury installations across Four Oaks, Mere Green, and Boldmere demonstrates our ability to work with premium materials and deliver flawless finishes. We source sanitaryware from leading European manufacturers and work with natural stone, marble, and large-format porcelain.","We don't use subcontractors in Sutton Coldfield or anywhere else. The team who designs your bathroom is the same team who installs, tiles, and plumbs it. That continuity produces a superior result and means there's one team accountable for the outcome.","Every installation includes a comprehensive workmanship warranty, and our relative proximity means after-care visits are straightforward to arrange."],localProblemsHeading:"Common Bathroom Challenges in Sutton Coldfield Properties",localProblemsContent:["Sutton Coldfield's larger detached properties often have multiple bathrooms that were fitted at different times, creating inconsistency in style and functionality. A coordinated renovation brings cohesion across all bathrooms and ensuites, increasing both comfort and property value.","Victorian and Edwardian properties around Wylde Green and Walmley can have complex plumbing layouts with aging copper pipework that's developed pin-hole leaks or poor flow rates. These require careful assessment and systematic upgrading rather than patchwork repairs.","Many properties in Four Oaks and Little Aston have large master bathrooms that were last renovated in the 1990s or early 2000s. While structurally sound, these rooms look dated and no longer reflect the standard of the rest of the property. A luxury renovation with contemporary fixtures and premium tiling transforms both the aesthetics and functionality.","Heating systems in larger Sutton Coldfield homes often need to work harder than average. Older boilers may struggle with the demand of multiple bathrooms, especially if a loft conversion or extension has been added. Upgrading to a higher-output condensing boiler improves performance across the entire property."],processSteps:[{title:"Design Consultation",description:"We visit your Sutton Coldfield home for an in-depth consultation, understanding your lifestyle, preferences, and budget."},{title:"Bespoke Design & Quotation",description:"Receive detailed 3D designs and a transparent, itemised quotation covering every element of the project."},{title:"Premium Material Selection",description:"Choose from our showroom displays or browse our premium supplier catalogues with expert guidance."},{title:"Expert Installation",description:"Our dedicated team completes all plumbing, electrical, tiling, and finishing work to the highest standard."},{title:"Quality Inspection & Handover",description:"Thorough inspection of every detail, fixture testing, and comprehensive warranty documentation."}],faqs:[{q:"Do you serve all areas of Sutton Coldfield?",a:"Yes â we cover Four Oaks, Little Aston, Mere Green, Boldmere, Wylde Green, Walmley, Maney, Reddicap Heath, Falcon Lodge, and all surrounding areas."},{q:"How much do luxury bathroom installations cost in Sutton Coldfield?",a:"A complete bathroom installation in Sutton Coldfield starts from £7,000. Final pricing depends on room size, product specification, and complexity â every quote is detailed and itemised after your free consultation. All materials are supplied by us through our Tamworth showroom."},{q:"Can you renovate multiple bathrooms simultaneously?",a:"Yes â we regularly undertake multi-bathroom projects in larger Sutton Coldfield properties, coordinating work to minimise disruption."},{q:"Do you work with natural stone and marble?",a:"Absolutely. We have extensive experience installing marble, travertine, slate, and other natural stone materials with precision cutting and waterproof detailing."}
318,{q:"How quickly can you respond to emergencies?",a:"We typically reach Sutton Coldfield within 2 hours for emergency plumbing or boiler failures."},{q:"What quality of products do you install?",a:"We specify products from leading manufacturers including Duravit, Grohe, Crosswater, Hansgrohe, and Roca. No unbranded or grey-market goods."},{q:"Do you provide after-care?",a:"Yes. Every installation carries a full workmanship warranty, and our proximity means after-care visits are easy to arrange."},{q:"Can you add an ensuite to an existing bedroom?",a:"Yes â we design and install ensuites in bedrooms of all sizes, including wet room-style solutions for compact spaces."}],ctaHeading:"Elevate Your Sutton Coldfield Bathroom",ctaSubtext:"Book a free, no-obligation consultation. We'll visit your property, discuss your vision, and deliver a detailed quote.",nearbyAreas:[{name:"Tamworth",slug:"tamworth"},{name:"Lichfield",slug:"lichfield"},{name:"Birmingham",slug:"birmingham"},{name:"Walsall",slug:"walsall"},{name:"Atherstone",slug:"atherstone"}]},UN=()=>r.jsx(H,{data:_N}),$N={slug:"atherstone",name:"Atherstone",title:"Bathroom Installation Atherstone | Blue Sky Luxury Bathrooms",metaDescription:"Professional bathroom installations, wet rooms, and boiler services in Atherstone. 20+ years' experience. Full warranty. Free estimates. Call 0330 043 2234.",heroHeadline:"Expert Bathroom Services in Atherstone",heroSubheadline:"From Victorian terraces on Long Street to modern family homes on Holly Lane â expert bathroom installations and plumbing services delivered by one trusted local team.",trustMicro:"20+ years' experience · Full workmanship warranty · Free home consultations",localRelevanceContent:["Atherstone sits just 10 minutes from our Tamworth base, making it one of our closest and most frequently served locations. We've completed projects across the town centre, along the Watling Street corridor, and in surrounding villages including Mancetter, Witherley, and Grendon.","The town's housing ranges from the characterful terraces and Georgian properties along Long Street and North Street to modern developments on the outskirts and rural properties in the surrounding North Warwickshire countryside. We've worked extensively with each property type and understand the specific plumbing and layout challenges they present.","Being so close means our response times to Atherstone are among the fastest in our coverage area. Emergency calls are typically attended within an hour, and consultations are arranged at your convenience."],propertyTypes:"Georgian townhouses, Victorian terraces, modern family homes, rural cottages",responseTime:"Within 1 hour for emergencies",commonNeeds:"Full renovations, period property upgrades, boiler replacements",services:[{name:"Bathroom Fitters Atherstone (Dedicated Page)",path:"/atherstone/bathroom-fitters",description:"Our dedicated Atherstone bathroom fitting page â local pricing, timescales and what to expect from our employed team."}
318,{name:"Accessible & Mobility Bathrooms (Atherstone)",path:"/atherstone/accessible-bathrooms",description:"Walk-in showers, level-access wet rooms and grab rails for Atherstone homes needing easier, safer bathing."},{name:"Bathroom Showroom Near Atherstone",path:"/atherstone/bathroom-showroom",description:"Visit our independent showroom in Tamworth â 15 minutes from Atherstone via the A5."},{name:"Bathroom Installation",path:"/services/bathroom-installation",description:"Complete installations tailored to Atherstone's mix of period and modern homes."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully tanked wet rooms for both ground and upper floors."},{name:"Boiler Replacement",path:"/services/boiler-replacement",description:"Efficient boiler installations with extended manufacturer warranties."},{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Level-access showers and mobility features for Atherstone residents."},{name:"Kitchen Installation",path:"/services/kitchen-installation",description:"Full kitchen fitting with professional plumbing."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Modern walk-in showers for Atherstone bathrooms."},{name:"Plumbing Services",path:"/services/plumbing-services",description:"Repairs, upgrades, and emergency plumbing."},{name:"Tiling Services",path:"/services/tiling-services",description:"Professional tiling in all materials and formats."},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments",description:"Refreshed bathrooms at a fraction of full renovation cost."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"Premium renovations with high-end fixtures."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Electric and water-based systems for comfortable floors."},{name:"Cloakroom & Ensuite",path:"/services/cloakroom-ensuite",description:"Compact designs that maximise smaller spaces."},{name:"Bathroom Design & Planning",path:"/services/bathroom-design-planning",description:"3D visualisation before work begins."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"Visit our nearby Tamworth showroom â just 10 minutes away."}],whyChooseUsContent:["Atherstone is practically on our doorstep, and local residents benefit from the fastest response times in our coverage area. Whether it's a planned renovation or an emergency repair, we're there quickly.","We understand North Warwickshire properties intimately â the low ceilings in older terraces, the solid floors in period cottages, and the space constraints in converted properties. That knowledge means we solve problems efficiently rather than discovering them mid-project.","Every project is completed by our in-house team. No subcontractors, no coordination delays, no divided accountability. You deal with one team from start to finish, backed by a full workmanship warranty."],localProblemsHeading:"Common Bathroom Problems in Atherstone Homes",localProblemsContent:["Atherstone's older properties along Long Street and the town centre often have original plumbing dating back decades. Corroded pipework, inadequate drainage, and outdated fixtures are problems we encounter and resolve on a regular basis.","Many terraced properties have bathrooms that were added as conversions from original sculleries or lean-to extensions. These rooms often have poor insulation, limited headroom, and awkward layouts that a professional redesign can dramatically improve.","Rural properties around Mancetter and Witherley frequently rely on older heating systems that struggle during harsh Midlands winters. Boiler replacements in these areas not only improve comfort but can reduce energy bills significantly.","Damp and condensation are recurring issues in older Atherstone properties without proper bathroom ventilation. Left untreated, persistent moisture causes mould growth, damaged plaster, and deteriorating timber. We address the root cause â not just the symptoms."],processSteps:[{title:"Free Home Consultation",description:"We visit your Atherstone property to assess the space, discuss your needs, and take measurements."},{title:"Design & Quotation",description:"Receive an itemised quote with 3D design visuals â
318clear pricing, no hidden costs."},{title:"Material Selection",description:"Choose materials at our Tamworth showroom, just 10 minutes away, or from our supplier catalogues."},{title:"Professional Installation",description:"Our single team handles all plumbing, electrics, tiling, and finishing work."},{title:"Final Inspection & Handover",description:"Joint walkthrough, fixture testing, and warranty documentation."}],faqs:[{q:"Do you serve all of Atherstone?",a:"Yes â we cover Atherstone town centre, Mancetter, Witherley, Grendon, Baddesley Ensor, and all surrounding areas."},{q:"How quickly can you reach Atherstone?",a:"Being just 10 minutes from Atherstone, we can attend emergencies within an hour and schedule consultations at short notice."},{q:"How much does a bathroom cost in Atherstone?",a:"A complete bathroom installation in Atherstone starts from £7,000. Final pricing depends on room size, product specification, and complexity â every quote is detailed and itemised after your free consultation. All materials are supplied by us through our Tamworth showroom."},{q:"Can you work on period properties?",a:"Yes. We have extensive experience with older North Warwickshire properties, including listed buildings and conservation area homes."},{q:"Do you offer boiler services in Atherstone?",a:"Yes â Gas Safe registered boiler installation and replacement for all major brands."},{q:"What guarantee do you provide?",a:"Full workmanship warranty on all installations, plus manufacturer warranties on every product."},{q:"Do you handle waste removal?",a:"Yes â we remove all old fixtures, waste, and packaging as part of the installation."},{q:"Can I see examples of your work?",a:"Visit our Tamworth showroom to see live displays, or ask to see examples from projects we've completed in the Atherstone area."}],ctaHeading:"Transform Your Atherstone Bathroom",ctaSubtext:"Book a free consultation today. We'll visit your home, discuss your plans, and deliver a detailed, no-obligation quote.",nearbyAreas:[{name:"Tamworth",slug:"tamworth"},{name:"Nuneaton",slug:"nuneaton"},{name:"Hinckley",slug:"hinckley"},{name:"Sutton Coldfield",slug:"sutton-coldfield"},{name:"Coalville",slug:"coalville"}]},zN=()=>r.jsx(H,{data:$N}),GN={slug:"nuneaton",name:"Nuneaton",title:"Bathroom Installation Nuneaton | Blue Sky Luxury Bathrooms",metaDescription:"Professional bathroom installations, wet rooms, and boiler services in Nuneaton. 20+ years' experience. Free consultations. Call 0330 043 2234.",heroHeadline:"Reliable Bathroom Installers Serving Nuneaton",heroSubheadline:"From Attleborough's family homes to Stockingford's terraces â complete bathroom renovations and plumbing services delivered by one experienced, local team.",trustMicro:"20+ years' experience · 1000+ projects · No subcontractors",localRelevanceContent:["Nuneaton is within easy reach of our Tamworth headquarters, approximately 20 minutes via the A5. We've built a strong track record across the town and surrounding areas including Attleborough, Stockingford, Chilvers Coton, Weddington, and Whitestone.","Nuneaton's housing stock reflects its industrial heritage â former ribbon-weaving cottages near the town centre sit alongside 1930s semis on Hinckley Road, post-war council housing across Stockingford, and the newer builds around Bermuda and Top Farm. We've completed installations across every type and understand their individual quirks.","Our team schedules Nuneaton consultations to suit you, and emergency plumbing or boiler calls are typically attended within two hours. We know the area well and plan our routes efficiently."],propertyTypes:"Industrial heritage cottages, 1930s semis, post-war estates, new-build developments",responseTime:"Within 2 hours for emergencies",commonNeeds:"Full renovations, compact bathroom upgrades, boiler replacements",services:[{name:"Bathroom Fitters Nuneaton (Dedicated Page)",path:"/nuneaton/bathroom-fitters",description:"Our dedicated Nuneaton bathroom fitting page â local pricing, timescales and what to expect from our employed team."}
318,{name:"Accessible & Mobility Bathrooms (Nuneaton)",path:"/nuneaton/accessible-bathrooms",description:"Walk-in showers, level-access wet rooms and grab rails for Nuneaton homes needing easier, safer bathing."},{name:"Bathroom Showroom Near Nuneaton",path:"/nuneaton/bathroom-showroom",description:"Visit our independent showroom in Tamworth â 25 minutes from Nuneaton via the A5."},{name:"Bathroom Installation",path:"/services/bathroom-installation",description:"Complete installations for Nuneaton's varied property types."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully waterproofed wet rooms for Nuneaton homes."},{name:"Boiler Replacement",path:"/services/boiler-replacement",description:"Energy-efficient boiler upgrades with Gas Safe registration."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Modern walk-in showers for improved accessibility and style."},{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Level-access showers and mobility aids for Nuneaton residents."},{name:"Kitchen Installation",path:"/services/kitchen-installation",description:"Complete kitchen fitting including plumbing and tiling."},{name:"Plumbing Services",path:"/services/plumbing-services",description:"Leak repairs, pipework upgrades, and emergency plumbing."},{name:"Tiling Services",path:"/services/tiling-services",description:"Professional wall and floor tiling in all formats."},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments",description:"Budget-friendly refreshes without full renovation."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"High-end renovations for premium Nuneaton properties."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Comfortable underfloor heating for bathrooms."},{name:"Cloakroom & Ensuite",path:"/services/cloakroom-ensuite",description:"Space-efficient designs for compact rooms."},{name:"Bathroom Design & Planning",path:"/services/bathroom-design-planning",description:"3D design consultations before any work starts."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"Browse displays at our Tamworth showroom, 20 minutes away."}],whyChooseUsContent:["Nuneaton homeowners choose Blue Sky because we deliver what we promise â on time, on budget, and to a standard that lasts. No subcontractors, no hidden costs, no excuses.","Our experience across Nuneaton's varied housing stock means we anticipate challenges before they arise. Whether it's dealing with solid floors in older cottages or reconfiguring awkward layouts in post-war housing, we've done it before and know the most efficient approach.","We're accessible after the project too. Our workmanship warranty covers every installation, and being based nearby means after-care visits are quick to arrange."],localProblemsHeading:"Common Bathroom Issues in Nuneaton Properties",localProblemsContent:["Nuneaton's older properties around the town centre and Chilvers Coton often have outdated plumbing systems with corroded copper or lead pipework. These cause low water pressure, inconsistent temperatures, and increased leak risk that worsen over time.","Post-war housing across Stockingford and Camp Hill frequently has original bathroom suites from the 1960s or 1970s. Beyond looking dated, these bathrooms typically lack adequate ventilation, leading to chronic damp and mould problems.","Many 1930s semis along the Hinckley Road corridor have bathrooms in rear extensions with single-skin walls and minimal insulation. These rooms are cold in winter and prone to condensation, which damages tiling and plasterwork over time.","Newer estates around Bermuda and Top Farm sometimes have builder-grade bathrooms that deteriorate within a few years. Thin tiling, plastic baths, and budget taps wear quickly â upgrading to quality materials provides much better longevity and daily comfort."],processSteps:[{title:"Free Home Consultation",description:"We visit your Nuneaton property to assess the bathroom, discuss your requirements, and take precise measurements."},{title:"Design & Quotation",description:"Receive an itemised quote with 3D visuals â
318clear, honest pricing with no surprises."},{title:"Material Selection",description:"Choose fixtures and finishes at our showroom or from our supplier catalogues."},{title:"Professional Installation",description:"Our in-house team manages all plumbing, electrics, tiling, and finishing."},{title:"Final Inspection & Handover",description:"We inspect every detail with you, test all fixtures, and issue warranty documentation."}],faqs:[{q:"Do you serve all areas of Nuneaton?",a:"Yes â we cover Nuneaton town centre, Attleborough, Stockingford, Chilvers Coton, Weddington, Whitestone, Camp Hill, Bermuda, and surrounding areas."},{q:"How much does a bathroom cost in Nuneaton?",a:"A complete bathroom installation in Nuneaton starts from £7,000. Final pricing depends on room size, product specification, and complexity â every quote is detailed and itemised after your free consultation. All materials are supplied by us through our Tamworth showroom."},{q:"How fast can you respond to emergencies?",a:"We can typically reach Nuneaton within 2 hours for emergency plumbing or boiler issues."},{q:"Can you update a 1960s bathroom without full renovation?",a:"Yes â our refurbishment service replaces sanitaryware, tiling, and fixtures without a complete strip-out, saving time and cost."},{q:"Are you Gas Safe registered?",a:"Yes. All our gas engineers hold current Gas Safe certification for boiler work."},{q:"What warranty do you provide?",a:"Full workmanship warranty on all installations, plus manufacturer warranties on every product."},{q:"Can you install wet rooms in older properties?",a:"Yes â we have extensive experience installing wet rooms in both ground-floor and upper-floor bathrooms in older Nuneaton homes."},{q:"Do you handle waste removal?",a:"Yes â all old fixtures, waste, and packaging are removed and properly disposed of."}],ctaHeading:"Upgrade Your Nuneaton Bathroom Today",ctaSubtext:"Book your free consultation. We'll visit your home, discuss your vision, and provide a transparent, detailed quote.",nearbyAreas:[{name:"Atherstone",slug:"atherstone"},{name:"Hinckley",slug:"hinckley"},{name:"Tamworth",slug:"tamworth"},{name:"Coalville",slug:"coalville"},{name:"Birmingham",slug:"birmingham"}]},VN=()=>r.jsx(H,{data:GN}),YN={slug:"birmingham",name:"Birmingham",title:"Bathroom Installation Birmingham | Blue Sky Luxury Bathrooms",metaDescription:"Expert bathroom installations across Birmingham. Wet rooms, luxury renovations, boiler services. 20+ years' experience. Free estimates. Call 0330 043 2234.",heroHeadline:"Expert Bathroom Installations Across Birmingham",heroSubheadline:"From Edgbaston townhouses to Solihull family homes â premium bathroom renovations delivered by a dedicated team with over 20 years of Midlands experience.",trustMicro:"1000+ bathrooms installed · Full warranty · One team, no subcontractors",localRelevanceContent:["Birmingham is the UK's second city, and its vast range of property types demands an installer with the breadth of experience to handle anything. From the Victorian villas of Moseley and Kings Heath to the Edwardian terraces in Handsworth and the modern apartments in the Jewellery Quarter, we've delivered installations across every Birmingham postcode.","Our Tamworth base gives us excellent access to Birmingham via the M6 Toll, A38, and A5 corridors. We regularly work across north, east, and south Birmingham, and our scheduling accommodates the logistical realities of working in a major city.","Birmingham homeowners benefit from the same single-team model we apply everywhere â no subcontractors, no agency labour. Your bathroom is designed, installed, and guaranteed by one accountable team."],propertyTypes:"Victorian villas, Edwardian terraces, modern apartments, family detached homes",responseTime:"Within 2â3 hours depending on location within Birmingham",commonNeeds:"Luxury renovations, period property updates, ensuite conversions, boiler upgrades",services:[{name:"Bathroom Fitters Birmingham (Dedicated Page)",path:"/birmingham/bathroom-fitters",description:"Our dedicated Birmingham bathroom fitting page â local pricing, timescales and what to expect from our employed team."},{name:"Bathroom Installation",path:"/services/bathroom-installation",description:"Complete installations for Birmingham's diverse property types."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"High-end renovations for premium Birmingham homes."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully tanked wet rooms for houses and apartments."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Contemporary walk-in showers for modern Birmingham living."}
318,{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Mobility-friendly bathrooms meeting Lifetime Homes standards."},{name:"Kitchen Installation",path:"/services/kitchen-installation",description:"Professional kitchen fitting with full plumbing integration."},{name:"Boiler Replacement",path:"/services/boiler-replacement",description:"Gas Safe boiler installations with manufacturer-backed warranties."},{name:"Plumbing Services",path:"/services/plumbing-services",description:"General plumbing, leak detection, and pipework upgrades."},{name:"Tiling Services",path:"/services/tiling-services",description:"Expert tiling in all materials from porcelain to natural stone."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Electric and water-based underfloor heating."},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments",description:"Targeted refreshes for tired Birmingham bathrooms."},{name:"Cloakroom & Ensuite",path:"/services/cloakroom-ensuite",description:"Bespoke cloakroom and ensuite designs."},{name:"Bathroom Design & Planning",path:"/services/bathroom-design-planning",description:"3D design consultations tailored to your space."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"Visit our Tamworth showroom â easy access via M6 Toll."}],whyChooseUsContent:["Birmingham has no shortage of bathroom installers â but finding one that manages every trade in-house, delivers on time, and stands behind a full warranty is rare. That's exactly what Blue Sky provides.","Our 20+ years' experience across Birmingham means we've encountered every property challenge the city presents â from the lime-plaster walls of Victorian Moseley to the steel-frame constructions in city centre conversions. We don't guess â we know what works.","We bring the same boutique-quality service to Birmingham that we provide across all our coverage areas. You're not a project number â you're a homeowner who deserves craftsmanship, clear communication, and a bathroom that lasts.","Our workmanship warranty covers every installation, and we maintain ongoing relationships with Birmingham clients for after-care and future projects."],localProblemsHeading:"Common Bathroom Challenges in Birmingham Properties",localProblemsContent:["Birmingham's Victorian and Edwardian properties are architecturally stunning but often come with plumbing systems that were retrofitted decades ago. Aging lead pipes, corroded joints, and undersized supply lines cause pressure problems and water quality issues that only proper replacement resolves.","Many properties across south Birmingham â Moseley, Kings Heath, Hall Green â have bathrooms in rear extensions with single-skin walls. These rooms suffer from cold spots, condensation, and mould growth that proper insulation and ventilation eliminate.","City centre apartments and conversions in the Jewellery Quarter and Digbeth often have restricted space and communal drainage systems that require careful planning for bathroom upgrades. We understand the building management requirements and logistical constraints these projects involve.","Boiler efficiency across Birmingham's older housing stock is often poor. Many homes still have boilers from the early 2000s that have lost significant efficiency over their lifetime. Upgrading saves hundreds of pounds annually while improving heating performance."],processSteps:[{title:"Free Home Consultation",description:"We visit your Birmingham property to assess the space, understand your goals, and take detailed measurements."},{title:"Design & Quotation",description:"Receive a comprehensive, itemised quote with 3D visuals â transparent pricing, no hidden extras."},{title:"Material Selection",description:"Select materials at our Tamworth showroom or browse premium supplier catalogues."},{title:"Professional Installation",description:"One team handles plumbing, electrics, tiling, and all finishing work â no subcontractors."},{title:"Final Inspection & Handover",description:"Thorough inspection, fixture testing, and warranty documentation handover."}],faqs:[{q:"Which areas of Birmingham do you cover?",a:"We serve most Birmingham postcodes including Sutton Coldfield, Edgbaston, Moseley, Kings Heath, Hall Green, Erdington, Handsworth, Solihull borders, and north/east Birmingham."},{q:"How much does a bathroom installation cost in Birmingham?",a:"A complete bathroom installation in Birmingham starts from £7,000. Final pricing depends on room size, product specification, and complexity â every quote is detailed and itemised after your free consultation. All materials are supplied by us through our Tamworth showroom."}
318,{q:"Can you work in apartments and conversions?",a:"Yes â we have experience with apartment buildings, loft conversions, and commercial-to-residential conversions across Birmingham."},{q:"How quickly can you respond to emergencies?",a:"We typically reach Birmingham within 2â3 hours depending on your specific location within the city."},{q:"Do you use subcontractors in Birmingham?",a:"Never. Our in-house team handles every trade â plumbing, electrics, tiling, plastering, and decoration."},{q:"Are you Gas Safe registered?",a:"Yes. All our gas engineers hold current Gas Safe registration for boiler installation and replacement."},{q:"What guarantee do you provide?",a:"Full workmanship warranty on all installations, plus manufacturer warranties on all products supplied and fitted."},{q:"Do you offer free estimates?",a:"Yes â every consultation and quotation is completely free with no obligation."}],ctaHeading:"Transform Your Birmingham Bathroom",ctaSubtext:"Book a free consultation today. We'll visit your property, discuss your requirements, and deliver a transparent, detailed quote.",nearbyAreas:[{name:"Sutton Coldfield",slug:"sutton-coldfield"},{name:"Walsall",slug:"walsall"},{name:"West Bromwich",slug:"west-bromwich"},{name:"Tamworth",slug:"tamworth"},{name:"Cannock",slug:"cannock"}]},QN=()=>r.jsx(H,{data:YN}),KN={slug:"cannock",name:"Cannock",title:"Bathroom Installation Cannock | Blue Sky Luxury Bathrooms",metaDescription:"Professional bathroom installations, wet rooms, and boiler services in Cannock. 20+ years' experience. Full warranty. Free estimates. Call 0330 043 2234.",heroHeadline:"Professional Bathroom Installations in Cannock",heroSubheadline:"Complete bathroom renovations and plumbing services for Cannock and Cannock Chase homes. One dedicated team, full warranty, zero subcontractors.",trustMicro:"20+ years serving the Midlands · 1000+ projects completed · Gas Safe registered",localRelevanceContent:["Cannock is within our regular service area, approximately 25 minutes from our Tamworth base via the A5. We've completed numerous projects across the town and surrounding areas including Hednesford, Heath Hayes, Norton Canes, and Great Wyrley.","The Cannock Chase district features a mix of traditional mining-heritage properties, 1960s and 1970s housing estates, and modern developments. Each property type presents different installation challenges â from solid-floor plumbing in older terraces to lightweight construction in newer builds â and we have direct experience with all of them.","Our familiarity with the area means efficient scheduling and prompt response times. Emergency calls in Cannock are typically attended within two hours."],propertyTypes:"Mining-heritage terraces, 1960sâ70s estates, modern developments",responseTime:"Within 2 hours for emergencies",commonNeeds:"Full renovations, boiler upgrades, accessible bathroom conversions",services:[{name:"Bathroom Fitters Cannock (Dedicated Page)",path:"/cannock/bathroom-fitters",description:"Our dedicated Cannock bathroom fitting page â local pricing, timescales and what to expect from our employed team."},{name:"Bathroom Extensions Cannock",path:"/cannock/bathroom-extensions",description:"Ground-floor bathroom extensions, side-return infills and rear extensions in Cannock â shell built and bathroom fitted by one team."}
318,{name:"Accessible & Mobility Bathrooms (Cannock)",path:"/cannock/accessible-bathrooms",description:"Walk-in showers, level-access wet rooms and grab rails for Cannock homes needing easier, safer bathing."},{name:"Bathroom Installation",path:"/services/bathroom-installation",description:"Complete installations for Cannock's varied housing stock."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully waterproofed wet rooms for all floor types."},{name:"Boiler Replacement",path:"/services/boiler-replacement",description:"Energy-efficient boiler upgrades with manufacturer warranties."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Step-free showers for modern Cannock bathrooms."},{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Mobility-friendly solutions for Cannock residents."},{name:"Kitchen Installation",path:"/services/kitchen-installation",description:"Professional kitchen fitting with plumbing and tiling."},{name:"Plumbing Services",path:"/services/plumbing-services",description:"Leak repairs, pipework upgrades, and general plumbing."},{name:"Tiling Services",path:"/services/tiling-services",description:"Floor and wall tiling in all materials."},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments",description:"Cost-effective refreshes without full renovation."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"Premium renovations with high-end materials."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Warm-floor systems for bathrooms and extensions."},{name:"Cloakroom & Ensuite",path:"/services/cloakroom-ensuite",description:"Compact designs for smaller spaces."},{name:"Bathroom Design & Planning",path:"/services/bathroom-design-planning",description:"3D design consultations before any work begins."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"Browse our Tamworth showroom, 25 minutes from Cannock."}],whyChooseUsContent:["Cannock residents choose Blue Sky because we deliver reliable, high-quality work without the complications of multi-contractor projects. One team manages everything from design to completion.","Our experience with Cannock Chase district properties â particularly the older mining-heritage homes with their specific plumbing challenges â means we anticipate and solve problems before they impact your timeline or budget.","Every installation carries a full workmanship warranty. We're a short drive away, so after-care is straightforward and responsive."],localProblemsHeading:"Common Bathroom Issues in Cannock Properties",localProblemsContent:["Cannock's older properties â particularly terraces in Hednesford and Heath Hayes â frequently have outdated plumbing systems with corroded pipework. Low water pressure, discoloured water, and intermittent leaks are common complaints we resolve.","Many 1960s and 1970s homes across Cannock estates still have original bathroom suites with inadequate ventilation. Persistent condensation damages walls, ceilings, and joinery over time, making renovation both a cosmetic and structural investment.","Properties near Cannock Chase experience hard water that scales up internal pipework, boilers, and shower fittings. We specify products designed for hard water areas and can advise on water treatment solutions.","Aging boilers in Cannock homes â particularly those over 15 years old â operate well below modern efficiency standards. Replacing an old boiler reduces bills and provides reliable heating through Staffordshire's cold winters."],processSteps:[{title:"Free Home Consultation",description:"We visit your Cannock property to assess the space, discuss requirements, and take measurements."},{title:"Design & Quotation",description:"Detailed, itemised quote with 3D design visuals â transparent and no-obligation."},{title:"Material Selection",description:"Select from our Tamworth showroom or browse catalogues with expert guidance."},{title:"Professional Installation",description:"Our in-house team completes all plumbing, electrical, tiling, and finishing work."},{title:"Final Inspection & Handover",description:"Joint inspection, fixture testing, and warranty documentation."}],faqs:[{q:"Do you cover all areas of Cannock?",a:"Yes â we serve Cannock town centre, Hednesford, Heath Hayes, Norton Canes, Great Wyrley, Bridgtown, and surrounding areas."},{q:"How much does a bathroom cost in Cannock?",a:"A complete bathroom installation in Cannock starts from £7,000. Final pricing depends on room size, product specification, and complexity â every quote is detailed and itemised after your free consultation. All materials are supplied by us through our Tamworth showroom."}
318,{q:"How fast can you respond to emergencies?",a:"We can typically reach Cannock within 2 hours for emergency plumbing or boiler failures."},{q:"Can you handle hard water issues?",a:"We specify limescale-resistant fixtures and can advise on water softening solutions for the Cannock area."},{q:"Are you Gas Safe registered?",a:"Yes â all gas work is carried out by our Gas Safe registered engineers."},{q:"What warranty do you offer?",a:"Full workmanship warranty on all installations, plus manufacturer guarantees on every product."},{q:"Do you install accessible bathrooms?",a:"Yes â we specialise in level-access showers, grab rails, and comfort-height sanitaryware."},{q:"Do you remove old bathrooms?",a:"Yes â complete removal, waste disposal, and site cleaning are included."}],ctaHeading:"Upgrade Your Cannock Bathroom Today",ctaSubtext:"Book a free, no-obligation consultation. We'll visit your home, assess your needs, and provide a detailed quote.",nearbyAreas:[{name:"Rugeley",slug:"rugeley"},{name:"Lichfield",slug:"lichfield"},{name:"Walsall",slug:"walsall"},{name:"Birmingham",slug:"birmingham"},{name:"West Bromwich",slug:"west-bromwich"}]},XN=()=>r.jsx(H,{data:KN}),JN={slug:"walsall",name:"Walsall",title:"Bathroom Installation Walsall | Blue Sky Luxury Bathrooms",metaDescription:"Expert bathroom installations in Walsall. Wet rooms, luxury renovations, boiler services. 20+ years' experience. Free estimates. Call 0330 043 2234.",heroHeadline:"Expert Bathroom Services in Walsall",heroSubheadline:"Complete bathroom installations and plumbing services across Walsall â from Aldridge's family homes to Bloxwich terraces. One team, full warranty, no subcontractors.",trustMicro:"20+ years' experience · 1000+ installations · Full workmanship warranty",localRelevanceContent:["Walsall falls within our regular service radius, approximately 30 minutes from our Tamworth base. We've delivered projects across the borough including Aldridge, Bloxwich, Brownhills, Willenhall, and Darlaston.","Walsall's housing stock ranges from the Victorian terraces near the town centre and the substantial detached homes around Aldridge and Streetly to post-war estates across Bloxwich and the newer developments on the eastern fringes. We've installed in every type and understand their specific plumbing and structural requirements.","We schedule Walsall consultations at your convenience and respond to emergency calls typically within two hours. Our knowledge of Walsall's road network means efficient access regardless of where you're located in the borough."],propertyTypes:"Victorian terraces, detached family homes, post-war estates, new builds",responseTime:"Within 2 hours for emergencies",commonNeeds:"Full renovations, luxury upgrades, boiler replacements, ensuite additions",services:[{name:"Bathroom Fitters Walsall (Dedicated Page)",path:"/walsall/bathroom-fitters",description:"Our dedicated Walsall bathroom fitting page â local pricing, timescales and what to expect from our employed team."},{name:"Bathroom Extensions Walsall",path:"/walsall/bathroom-extensions",description:"Ground-floor bathroom extensions, side-return infills and rear extensions in Walsall â shell built and bathroom fitted by one team."},{name:"Bathroom Installation",path:"/services/bathroom-installation",description:"Complete installations for Walsall's varied property types."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"Premium renovations for Aldridge and Streetly properties."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully waterproofed wet rooms for houses and bungalows."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Modern walk-in showers for contemporary Walsall bathrooms."}
318,{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Mobility-friendly installations for Walsall residents."},{name:"Kitchen Installation",path:"/services/kitchen-installation",description:"Professional kitchen fitting with full plumbing."},{name:"Boiler Replacement",path:"/services/boiler-replacement",description:"Gas Safe boiler installations with extended warranties."},{name:"Plumbing Services",path:"/services/plumbing-services",description:"Leak repairs, pipework, and general plumbing."},{name:"Tiling Services",path:"/services/tiling-services",description:"Expert tiling in porcelain, ceramic, and stone."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Underfloor heating for bathrooms and living areas."},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments",description:"Cost-effective refreshes without full strip-out."},{name:"Cloakroom & Ensuite",path:"/services/cloakroom-ensuite",description:"Bespoke cloakroom and ensuite solutions."},{name:"Bathroom Design & Planning",path:"/services/bathroom-design-planning",description:"3D design consultations tailored to your space."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"Visit our Tamworth showroom, 30 minutes from Walsall."}],whyChooseUsContent:["Walsall homeowners choose Blue Sky because we bring a consistent, high-quality service without the unpredictability of juggling multiple contractors. From design to handover, one team is accountable for the entire project.","Our work across Aldridge, Streetly, and central Walsall has given us experience with both premium and practical installations. Whether you need a luxury master bathroom or a functional family refurbishment, we deliver to the same exacting standard.","Every installation carries a full workmanship warranty, and our relative proximity means after-care is responsive. We don't disappear after the final tile â we're an ongoing resource."],localProblemsHeading:"Common Bathroom Problems in Walsall Properties",localProblemsContent:["Walsall's older terraces near the town centre and across Bloxwich frequently have aging plumbing systems with lead supply pipes and corroded copper joints. These cause water pressure issues and quality concerns that systematic replacement resolves.","Post-war housing across the borough often has bathrooms with original or early-replacement suites. Without modern ventilation, these rooms develop chronic damp and mould that damages both the bathroom and adjacent rooms.","Properties in Aldridge and Streetly often have large bathrooms last renovated in the 1990s. While structurally sound, they no longer reflect contemporary design standards or the owner's lifestyle needs. A considered renovation adds both comfort and resale value.","Many Walsall homes have boilers approaching or exceeding their expected lifespan. Proactively replacing an aging boiler â rather than waiting for it to fail during a cold snap â saves money on emergency call-outs and improves heating reliability."],processSteps:[{title:"Free Home Consultation",description:"We visit your Walsall property to assess the space, discuss your requirements, and measure accurately."},{title:"Design & Quotation",description:"Detailed, itemised quote with 3D design visuals showing your proposed bathroom."},{title:"Material Selection",description:"Choose materials from our Tamworth showroom or browse supplier catalogues."},{title:"Professional Installation",description:"Our in-house team handles all trades â plumbing, electrics, tiling, and finishing."},{title:"Final Inspection & Handover",description:"Joint walkthrough, fixture testing, and warranty documentation."}],faqs:[{q:"Do you serve all areas of Walsall?",a:"Yes â we cover Walsall town centre, Aldridge, Streetly, Bloxwich, Brownhills, Willenhall, Darlaston, Pelsall, Rushall, and surrounding areas."},{q:"How much does a bathroom cost in Walsall?",a:"A complete bathroom installation in Walsall starts from £7,000. Final pricing depends on room size, product specification, and complexity â every quote is detailed and itemised after your free consultation. All materials are supplied by us through our Tamworth showroom."}
318,{q:"How quickly can you respond to emergencies?",a:"We typically reach Walsall within 2 hours for emergency plumbing or boiler failures."},{q:"Do you work in Aldridge and Streetly?",a:"Yes â we regularly work across Aldridge and Streetly, delivering both luxury and practical bathroom installations."},{q:"Are you Gas Safe registered?",a:"Yes â all gas work is completed by our Gas Safe registered engineers."},{q:"What guarantee do you provide?",a:"Full workmanship warranty on all installations, plus manufacturer guarantees on every product."},{q:"Can you add an ensuite to my home?",a:"Yes â we design and install ensuites in bedrooms of all sizes, including compact wet-room-style configurations."},{q:"Do you offer design consultations?",a:"Yes â free 3D design consultations so you can visualise your new bathroom before committing."}],ctaHeading:"Transform Your Walsall Bathroom",ctaSubtext:"Book a free consultation today. We'll visit your property, discuss your plans, and provide a detailed, transparent quote.",nearbyAreas:[{name:"Birmingham",slug:"birmingham"},{name:"West Bromwich",slug:"west-bromwich"},{name:"Cannock",slug:"cannock"},{name:"Sutton Coldfield",slug:"sutton-coldfield"},{name:"Lichfield",slug:"lichfield"}]},ZN=()=>r.jsx(H,{data:JN}),e3={slug:"coalville",name:"Coalville",title:"Bathroom Installation Coalville | Blue Sky Luxury Bathrooms",metaDescription:"Professional bathroom installations and plumbing in Coalville, Leicestershire. 20+ years' experience. Full warranty. Free estimates. Call 0330 043 2234.",heroHeadline:"Bathroom Installation Specialists in Coalville",heroSubheadline:"Complete bathroom renovations and plumbing services for Coalville and North West Leicestershire homes. One team, full warranty, zero subcontractors.",trustMicro:"20+ years' experience · Full workmanship guarantee · Free consultations",localRelevanceContent:["Coalville sits within our extended service area, approximately 35 minutes from our Tamworth base. We've built a growing client base across the town and surrounding villages including Whitwick, Hugglescote, Ibstock, and Ellistown.","North West Leicestershire's housing stock includes former colliery workers' terraces, inter-war semis, and the modern developments around Coalville's regeneration areas. Each property type has specific plumbing requirements that our experience across the Midlands equips us to handle efficiently.","We schedule Coalville consultations to suit your availability and respond to emergency plumbing and boiler calls within approximately two and a half hours."],propertyTypes:"Colliery terraces, inter-war semis, modern developments, rural properties",responseTime:"Within 2.5 hours for emergencies",commonNeeds:"Full renovations, boiler replacements, accessible conversions",services:[{name:"Bathroom Fitters Coalville (Dedicated Page)",path:"/coalville/bathroom-fitters",description:"Our dedicated Coalville bathroom fitting page â local pricing, timescales and what to expect from our employed team."},{name:"Bathroom Installation",path:"/services/bathroom-installation",description:"Full installations designed for Coalville's property types."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Waterproofed wet rooms for ground and upper floors."},{name:"Boiler Replacement",path:"/services/boiler-replacement",description:"Gas Safe boiler installations with extended warranties."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Modern walk-in showers for Coalville homes."}
318,{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Level-access showers and mobility aids."},{name:"Kitchen Installation",path:"/services/kitchen-installation",description:"Complete kitchen fitting with plumbing and tiling."},{name:"Plumbing Services",path:"/services/plumbing-services",description:"Repairs, pipework upgrades, and leak detection."},{name:"Tiling Services",path:"/services/tiling-services",description:"Professional wall and floor tiling."},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments",description:"Budget-friendly refreshes without full renovation."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"Premium renovations with high-end finishes."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Underfloor heating for comfortable bathrooms."},{name:"Cloakroom & Ensuite",path:"/services/cloakroom-ensuite",description:"Compact designs for smaller rooms."},{name:"Bathroom Design & Planning",path:"/services/bathroom-design-planning",description:"3D visualisation consultations."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"Visit our Tamworth showroom via the A42/M42."}],whyChooseUsContent:["Coalville residents appreciate our straightforward approach â one team, one quote, one warranty. No coordination headaches, no divided responsibility, no excuses.","Our Midlands-wide experience means we're well-versed in the challenges older Leicestershire properties present, from solid-floor drainage in former mining cottages to inadequate ventilation in post-war builds.","Every installation carries a full guarantee, and we maintain responsive after-care for all our Coalville clients."],localProblemsHeading:"Common Bathroom Issues in Coalville Properties",localProblemsContent:["Coalville's older terraced properties often have original plumbing systems with corroded pipework and outdated drainage. These create persistent low-pressure and leak problems that worsen over time.","Many 1960s and 1970s homes have bathrooms with inadequate extraction, leading to condensation damage on walls, ceilings, and woodwork. Proper ventilation is essential and should be part of any bathroom renovation.","Hard water in North West Leicestershire causes limescale build-up in boilers, showerheads, and pipework, reducing efficiency and shortening fixture lifespan. We specify products designed for hard water areas.","Aging boilers in Coalville homes often struggle during cold winters. Replacing an inefficient unit with a modern condensing boiler improves heating reliability and reduces annual energy costs significantly."],processSteps:[{title:"Free Home Consultation",description:"We visit your Coalville property to assess the bathroom, discuss your needs, and take measurements."},{title:"Design & Quotation",description:"Itemised quote with 3D design visuals â transparent pricing, no surprises."},{title:"Material Selection",description:"Choose from our Tamworth showroom or supplier catalogues with expert guidance."},{title:"Professional Installation",description:"Our single team manages all trades from plumbing to tiling."},{title:"Final Inspection & Handover",description:"Joint inspection, fixture testing, and warranty documentation."}],faqs:[{q:"Do you serve all of Coalville?",a:"Yes â we cover Coalville town centre, Whitwick, Hugglescote, Ibstock, Ellistown, Ravenstone, and surrounding areas."},{q:"How much does a bathroom cost in Coalville?",a:"A complete bathroom installation in Coalville starts from £7,000. Final pricing depends on room size, product specification, and complexity â every quote is detailed and itemised after your free consultation. All materials are supplied by us through our Tamworth showroom."},{q:"How quickly can you attend emergencies?",a:"We typically reach Coalville within 2.5 hours from our Tamworth base."},{q:"Can you work on older miners' cottages?",a:"Yes â we have extensive experience with solid-floor properties and older construction methods."},{q:"Are you Gas Safe registered?",a:"Yes â all our gas engineers are Gas Safe registered."},{q:"What warranty do you offer?",a:"Full workmanship warranty on all installations, plus manufacturer guarantees."},{q:"Do you handle waste removal?",a:"Yes â all old fixtures and waste are removed and properly disposed of."},{q:"Can you install accessible bathrooms?",a:"Yes â we specialise in level-access showers, grab rails, and comfort-height sanitaryware."}],ctaHeading:"Upgrade Your Coalville Bathroom",ctaSubtext:"Book a free consultation. We'll visit your home, discuss your plans, and provide a detailed, honest quote.",nearbyAreas:[{name:"Swadlincote",slug:"swadlincote"},{name:"Hinckley",slug:"hinckley"},{name:"Nuneaton",slug:"nuneaton"},{name:"Atherstone",slug:"atherstone"},{name:"Derby",slug:"derby"}]},t3=()=>r.jsx(H,{data:e3}),o3={slug:"hinckley",name:"Hinckley",title:"Bathroom Installation Hinckley | Blue Sky Luxury Bathrooms",metaDescription:"Expert bathroom installations in Hinckley, Leicestershire. Wet rooms, boiler replacement, plumbing services. 20+ years' experience. Call 0330 043 2234.",heroHeadline:"Trusted Bathroom Installer
318s in Hinckley",heroSubheadline:"Complete bathroom renovations and plumbing services for Hinckley and South West Leicestershire. Expert craftsmanship, full warranty, one dedicated team.",trustMicro:"20+ years' experience · 1000+ projects · No subcontractors, ever",localRelevanceContent:["Hinckley is within our extended Midlands coverage, approximately 30 minutes from our Tamworth base via the A5. We've served homeowners across the town and surrounding areas including Burbage, Earl Shilton, Barwell, and Stoke Golding.","Hinckley's housing stock features a blend of the historic â Tudor and Georgian properties near the town centre â alongside Victorian terraces, inter-war semis, and modern estates around the Hinckley Island corridor. We've installed bathrooms across every type and understand the plumbing, structural, and aesthetic considerations each demands.","We schedule consultations at your convenience and respond to emergency plumbing calls within approximately two and a half hours."],propertyTypes:"Tudor/Georgian townhouses, Victorian terraces, inter-war semis, modern estates",responseTime:"Within 2.5 hours for emergencies",commonNeeds:"Full renovations, period property upgrades, boiler replacements",services:[{name:"Bathroom Fitters Hinckley (Dedicated Page)",path:"/hinckley/bathroom-fitters",description:"Our dedicated Hinckley bathroom fitting page â local pricing, timescales and what to expect from our employed team."},{name:"Bathroom Installation",path:"/services/bathroom-installation",description:"Complete installations for Hinckley's diverse property types."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully tanked wet rooms for all floor configurations."},{name:"Boiler Replacement",path:"/services/boiler-replacement",description:"Gas Safe boiler upgrades with manufacturer warranties."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Step-free showers for Hinckley bathrooms."}
318,{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Mobility-friendly installations with grab rails and level access."},{name:"Kitchen Installation",path:"/services/kitchen-installation",description:"Full kitchen fitting with professional plumbing."},{name:"Plumbing Services",path:"/services/plumbing-services",description:"Leak repairs, pipework upgrades, and emergency plumbing."},{name:"Tiling Services",path:"/services/tiling-services",description:"Expert tiling in porcelain, ceramic, and natural stone."},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments",description:"Refreshed bathrooms without full strip-out."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"Premium renovations with high-end materials."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Underfloor heating for bathrooms and living areas."},{name:"Cloakroom & Ensuite",path:"/services/cloakroom-ensuite",description:"Compact cloakroom and ensuite designs."},{name:"Bathroom Design & Planning",path:"/services/bathroom-design-planning",description:"3D design consultations for your new bathroom."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"Visit our Tamworth showroom, 30 minutes via the A5."}],whyChooseUsContent:["Hinckley homeowners choose Blue Sky for the consistency and accountability that a single-team model provides. From the initial measurement to the final handover, one team is responsible for every element.","Our work across Leicestershire means we understand the region's properties, water supply characteristics, and common bathroom challenges. That experience translates into smoother projects and better results.","We back every installation with a full workmanship warranty. If you need us after the project, we're accessible and responsive â not an anonymous call centre."],localProblemsHeading:"Common Bathroom Issues in Hinckley Properties",localProblemsContent:["Hinckley's period properties near the town centre often have plumbing systems that have been patched and modified over decades without systematic upgrading. The result is unreliable water pressure, corroded joints, and inefficient hot water delivery.","Many inter-war and post-war homes across Burbage and Earl Shilton have bathrooms that haven't been meaningfully updated since the 1980s. Dated tiling, inefficient fixtures, and poor ventilation make these rooms uncomfortable and prone to damp damage.","Hard water is prevalent across South West Leicestershire, causing limescale build-up that reduces boiler efficiency, clogs showerheads, and shortens the life of taps and valves. We specify products designed to resist these effects.","Properties on newer Hinckley developments sometimes have builder-grade finishes that deteriorate quickly. Upgrading to properly waterproofed walls, quality sanitaryware, and robust tiling adds years of durability."],processSteps:[{title:"Free Home Consultation",description:"We visit your Hinckley property to assess the bathroom, discuss your goals, and take measurements."},{title:"Design & Quotation",description:"Receive a detailed, itemised quote with 3D visuals â clear pricing, no hidden extras."},{title:"Material Selection",description:"Choose materials at our Tamworth showroom or from our supplier catalogues."},{title:"Professional Installation",description:"Our dedicated team handles all plumbing, electrics, tiling, and finishing."},{title:"Final Inspection & Handover",description:"Joint inspection, fixture testing, and warranty documentation."}],faqs:[{q:"Do you serve all of Hinckley?",a:"Yes â we cover Hinckley town centre, Burbage, Earl Shilton, Barwell, Stoke Golding, Dadlington, and surrounding areas."},{q:"How much does a bathroom cost in Hinckley?",a:"A complete bathroom installation in Hinckley starts from £7,000. Final pricing depends on room size, product specification, and complexity â every quote is detailed and itemised after your free consultation. All materials are supplied by us through our Tamworth showroom."}
318,{q:"How quickly can you attend emergencies?",a:"We typically reach Hinckley within 2.5 hours from our Tamworth base."},{q:"Can you work on period properties?",a:"Yes â we have experience with Tudor, Georgian, and Victorian properties common in Hinckley."},{q:"Are you Gas Safe registered?",a:"Yes â all gas work is performed by Gas Safe registered engineers."},{q:"What warranty do you provide?",a:"Full workmanship warranty on all installations, plus manufacturer guarantees on every product."},{q:"Do you deal with hard water issues?",a:"We specify limescale-resistant products and can advise on water treatment options for the Hinckley area."},{q:"Do you offer free estimates?",a:"Yes â all consultations and quotations are free with no obligation."}],ctaHeading:"Ready to Upgrade Your Hinckley Bathroom?",ctaSubtext:"Book a free consultation today. We'll visit your home, discuss your requirements, and deliver a transparent quote.",nearbyAreas:[{name:"Nuneaton",slug:"nuneaton"},{name:"Atherstone",slug:"atherstone"},{name:"Coalville",slug:"coalville"},{name:"Tamworth",slug:"tamworth"},{name:"Swadlincote",slug:"swadlincote"}]},r3=()=>r.jsx(H,{data:o3}),a3={slug:"derby",name:"Derby",title:"Bathroom Installation Derby | Blue Sky Luxury Bathrooms",metaDescription:"Expert bathroom installations across Derby. Wet rooms, luxury renovations, boiler replacement. 20+ years' experience. Free estimates. Call 0330 043 2234.",heroHeadline:"Expert Bathroom Installations in Derby",heroSubheadline:"From Allestree's family homes to Littleover's period properties â complete bathroom renovations delivered by one experienced team with over 20 years of Midlands craftsmanship.",trustMicro:"1000+ projects completed · Full workmanship warranty · Gas Safe registered",localRelevanceContent:["Derby is one of our key service cities, approximately 30 minutes from our Tamworth base via the A38. We work regularly across the city and surrounding suburbs including Allestree, Mickleover, Littleover, Spondon, Chellaston, and Oakwood.","Derby's housing stock ranges from the Georgian and Victorian properties around Friar Gate and the Cathedral Quarter to the 1930s semis in Normanton and the modern estates across Chellaston and Stenson Fields. Each area has distinct property characteristics that influence bathroom design and installation approach.","We schedule Derby consultations to suit you â including evenings when needed â and emergency plumbing calls are typically attended within two and a half hours."],propertyTypes:"Georgian townhouses, Victorian villas, 1930s semis, modern estates, rural properties",responseTime:"Within 2.5 hours for emergencies",commonNeeds:"Luxury renovations, family bathroom upgrades, boiler replacements, ensuite conversions",services:[{name:"Bathroom Fitters Derby (Dedicated Page)",path:"/derby/bathroom-fitters",description:"Our dedicated Derby bathroom fitting page â local pricing, timescales and what to expect from our employed team."},{name:"Bathroom Installation",path:"/services/bathroom-installation",description:"Full installations for Derby's diverse housing stock."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"High-end renovations for Allestree and Darley Abbey properties."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully waterproofed wet rooms for all floor types."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Contemporary walk-in showers for Derby bathrooms."}
318,{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Mobility-friendly solutions for Derby residents."},{name:"Kitchen Installation",path:"/services/kitchen-installation",description:"Complete kitchen fitting with plumbing integration."},{name:"Boiler Replacement",path:"/services/boiler-replacement",description:"Gas Safe boiler installations with manufacturer warranties."},{name:"Plumbing Services",path:"/services/plumbing-services",description:"General plumbing, leak detection, and pipework upgrades."},{name:"Tiling Services",path:"/services/tiling-services",description:"Expert tiling in all materials and formats."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Electric and water-based underfloor heating."},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments",description:"Targeted refreshes for tired Derby bathrooms."},{name:"Cloakroom & Ensuite",path:"/services/cloakroom-ensuite",description:"Bespoke cloakroom and ensuite installations."},{name:"Bathroom Design & Planning",path:"/services/bathroom-design-planning",description:"3D design consultations for your new bathroom."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"Visit our Tamworth showroom, 30 minutes via the A38."}],whyChooseUsContent:["Derby has many bathroom installers, but few offer the single-team accountability that Blue Sky provides. We manage every trade in-house â plumbing, electrics, tiling, plastering â so there's one point of contact and one standard of quality throughout.","Our extensive experience across Derbyshire means we understand the region's property types, water supply characteristics, and common challenges. From the hard water in southern suburbs to the complex plumbing layouts in Victorian Friar Gate properties, we've seen and solved it all.","Every Derby installation carries a full workmanship warranty, and our proximity means after-care visits are straightforward to arrange."],localProblemsHeading:"Common Bathroom Challenges in Derby Properties",localProblemsContent:["Derby's Victorian and Edwardian properties â particularly around Friar Gate, Darley Abbey, and the Cathedral Quarter â often have plumbing systems that have been patched over many decades. Systematic upgrading is far more cost-effective than continued repairs to failing pipework.","Many 1930s semis across Normanton, Chaddesden, and Sunnyhill have compact bathrooms with dated fixtures and inadequate ventilation. These rooms develop persistent damp problems that a proper renovation â with modern extraction and waterproofing â permanently resolves.","Hard water across much of Derby causes limescale accumulation in boilers, showerheads, and internal pipework. This reduces heating efficiency and shortens fixture lifespan. We specify products designed for hard water areas and advise on appropriate treatment.","Newer developments across Chellaston and Stenson Fields sometimes have builder-grade bathroom finishes that wear within a few years. Upgrading to quality tiling, robust sanitaryware, and proper waterproofing provides dramatically better longevity."],processSteps:[{title:"Free Home Consultation",description:"We visit your Derby property to assess the space, discuss your requirements, and take accurate measurements."},{title:"Design & Quotation",description:"Receive a comprehensive, itemised quote with 3D design visuals â no hidden costs."},{title:"Material Selection",description:"Select materials at our Tamworth showroom or from our premium supplier catalogues."},{title:"Professional Installation",description:"Our single team manages all plumbing, electrics, tiling, and finishing work."},{title:"Final Inspection & Handover",description:"Thorough inspection, fixture testing, and warranty documentation."}],faqs:[{q:"Which areas of Derby do you cover?",a:"We serve all Derby suburbs including Allestree, Mickleover, Littleover, Spondon, Chellaston, Oakwood, Chaddesden, Normanton, Darley Abbey, and beyond."},{q:"How much does a bathroom cost in Derby?",a:"A complete bathroom installation in Derby starts from £7,000. Final pricing depends on room size, product specification, and complexity â every quote is detailed and itemised after your free consultation. All materials are supplied by us through our Tamworth showroom."}
318,{q:"How quickly can you respond to emergencies in Derby?",a:"We can typically reach Derby within 2.5 hours for emergency plumbing or boiler failures."},{q:"Can you work on period properties?",a:"Yes â we have extensive experience with Georgian, Victorian, and Edwardian properties across Derby."},{q:"Do you handle hard water issues?",a:"We specify limescale-resistant products and can advise on water softening options for the Derby area."},{q:"Are you Gas Safe registered?",a:"Yes â all gas work is carried out by our Gas Safe registered engineers."},{q:"What guarantee do you offer?",a:"Full workmanship warranty on all installations, plus manufacturer guarantees on every product supplied."},{q:"Do you offer free estimates?",a:"Yes â every consultation and quotation is completely free with no obligation."}],ctaHeading:"Transform Your Derby Bathroom",ctaSubtext:"Book a free, no-obligation consultation today. We'll visit your property, discuss your vision, and deliver a transparent quote.",nearbyAreas:[{name:"Swadlincote",slug:"swadlincote"},{name:"Burton-on-Trent",slug:"burton-on-trent"},{name:"Tamworth",slug:"tamworth"},{name:"Coalville",slug:"coalville"},{name:"Lichfield",slug:"lichfield"}]},n3=()=>r.jsx(H,{data:a3}),s3={slug:"west-bromwich",name:"West Bromwich",title:"Bathroom Installation West Bromwich | Blue Sky",metaDescription:"Professional bathroom installations in West Bromwich. Wet rooms, boiler replacement, plumbing services. 20+ years' experience. Call 0330 043 2234.",heroHeadline:"Professional Bathroom Installations in West Bromwich",heroSubheadline:"Complete bathroom renovations and plumbing services across West Bromwich and Sandwell. One dedicated team, full warranty, zero subcontractors.",trustMicro:"20+ years' experience · 1000+ projects · Full workmanship warranty",localRelevanceContent:["West Bromwich is within our regular service area, approximately 30 minutes from our Tamworth base. We've served homeowners across the town and wider Sandwell borough including Great Barr, Wednesbury, Tipton, and Oldbury.","West Bromwich's housing stock is predominantly Victorian and Edwardian terraces in the town centre, 1930s semis along the Newton Road corridor, post-war council-built estates, and newer developments. We've completed installations across every property type in the area.","Our knowledge of Sandwell's road network means efficient scheduling and prompt arrival. Emergency plumbing calls are typically attended within two hours."],propertyTypes:"Victorian terraces, 1930s semis, post-war estates, modern builds",responseTime:"Within 2 hours for emergencies",commonNeeds:"Full renovations, boiler replacements, accessible bathrooms, refurbishments",services:[{name:"Bathroom Fitters West Bromwich (Dedicated Page)",path:"/west-bromwich/bathroom-fitters",description:"Our dedicated West Bromwich bathroom fitting page â local pricing, timescales and what to expect from our employed team."},{name:"Bathroom Extensions West Bromwich",path:"/west-bromwich/bathroom-extensions",description:"Ground-floor bathroom extensions, side-return infills and rear extensions in West Bromwich â shell built and bathroom fitted by one team."},{name:"Bathroom Installation",path:"/services/bathroom-installation",description:"Complete installations for West Bromwich properties of all types."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully waterproofed wet rooms for houses and bungalows."},{name:"Boiler Replacement",path:"/services/boiler-replacement",description:"Energy-efficient boiler upgrades with Gas Safe registration."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Modern walk-in showers for West Bromwich bathrooms."}
318,{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Level-access showers and mobility-friendly features."},{name:"Kitchen Installation",path:"/services/kitchen-installation",description:"Full kitchen fitting with professional plumbing."},{name:"Plumbing Services",path:"/services/plumbing-services",description:"Leak repairs, pipework upgrades, and general plumbing."},{name:"Tiling Services",path:"/services/tiling-services",description:"Professional tiling in all materials."},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments",description:"Cost-effective refreshes without full renovation."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"Premium renovations with quality materials."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Underfloor heating for bathrooms and extensions."},{name:"Cloakroom & Ensuite",path:"/services/cloakroom-ensuite",description:"Compact cloakroom and ensuite solutions."},{name:"Bathroom Design & Planning",path:"/services/bathroom-design-planning",description:"3D design consultations before work starts."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"Visit our Tamworth showroom, 30 minutes from West Bromwich."}],whyChooseUsContent:["West Bromwich homeowners choose Blue Sky because we deliver reliable, quality work with one accountable team. No subcontractors, no coordination hassles, no divided responsibility.","Our experience across the Black Country means we understand the specific challenges local properties present â from the narrow hallways and compact bathrooms of Victorian terraces to the solid-floor configurations in post-war builds.","Every installation comes with a full workmanship warranty, and our proximity means after-care is prompt and hassle-free."],localProblemsHeading:"Common Bathroom Issues in West Bromwich Properties",localProblemsContent:["West Bromwich's Victorian and Edwardian terraces frequently have original or early-replacement plumbing that's deteriorated over decades. Corroded pipes, low water pressure, and unreliable hot water are common complaints we resolve through systematic upgrading.","Post-war housing estates across Sandwell often have bathrooms with original 1960s or 1970s fixtures. These rooms typically lack adequate ventilation, leading to chronic condensation, mould growth, and damage to plaster and joinery.","Many 1930s properties along the Newton Road corridor have bathrooms in rear extensions with single-skin walls. These rooms are cold and prone to condensation, which deteriorates tiling and wall finishes over time. Proper insulation and ventilation as part of a renovation solves these problems permanently.","Aging boilers across West Bromwich â particularly in older properties â operate well below modern efficiency standards. Upgrading to a condensing boiler with smart controls improves both comfort and energy costs."],processSteps:[{title:"Free Home Consultation",description:"We visit your West Bromwich property to assess the space, discuss your needs, and take measurements."},{title:"Design & Quotation",description:"Detailed, itemised quote with 3D visuals â transparent and no-obligation."},{title:"Material Selection",description:"Select materials from our Tamworth showroom or supplier catalogues."},{title:"Professional Installation",description:"Our in-house team handles all plumbing, electrics, tiling, and finishing."},{title:"Final Inspection & Handover",description:"Joint inspection, fixture testing, and warranty documentation."}],faqs:[{q:"Do you cover all of West Bromwich?",a:"Yes â we serve West Bromwich town centre, Great Barr, Wednesbury, Tipton, Oldbury, Greets Green, and surrounding Sandwell areas."},{q:"How much does a bathroom cost in West Bromwich?",a:"A complete bathroom installation in West Bromwich starts from £7,000. Final pricing depends on room size, product specification, and complexity â every quote is detailed and itemised after your free consultation. All materials are supplied by us through our Tamworth showroom."}
318,{q:"How quickly can you respond to emergencies?",a:"We can typically reach West Bromwich within 2 hours for emergency plumbing or boiler issues."},{q:"Can you work on Victorian terraces?",a:"Yes â we have extensive experience with Victorian and Edwardian properties common across Sandwell."},{q:"Are you Gas Safe registered?",a:"Yes â all gas work is carried out by our Gas Safe registered engineers."},{q:"What warranty do you provide?",a:"Full workmanship warranty on all installations, plus manufacturer guarantees on every product."},{q:"Do you install accessible bathrooms?",a:"Yes â level-access showers, grab rails, comfort-height WCs, and other mobility features."},{q:"Do you offer free quotes?",a:"Yes â all consultations and quotations are completely free with no obligation."}],ctaHeading:"Upgrade Your West Bromwich Bathroom",ctaSubtext:"Book a free, no-obligation consultation. We'll visit your home, assess your needs, and deliver a transparent quote.",nearbyAreas:[{name:"Birmingham",slug:"birmingham"},{name:"Walsall",slug:"walsall"},{name:"Cannock",slug:"cannock"},{name:"Sutton Coldfield",slug:"sutton-coldfield"},{name:"Tamworth",slug:"tamworth"}]},i3=()=>r.jsx(H,{data:s3}),l3={slug:"staffordshire",name:"Staffordshire",title:"Bathroom Fitters Staffordshire | Blue Sky Bathrooms",metaDescription:"Expert bathroom installation, wet rooms, and plumbing services across Staffordshire. Tamworth showroom, supply-and-install, full warranty. Call 0330 043 2234.",heroHeadline:"Staffordshire's Trusted Bathroom Installation Specialists",heroSubheadline:"From Tamworth and Lichfield to Stafford, Cannock, and Burton-on-Trent â luxury bathroom design, supply, and installation delivered by one dedicated Blue Sky team.",trustMicro:"20+ years across Staffordshire · 1000+ projects completed · Tamworth showroom · Full warranty",localRelevanceContent:["Blue Sky Luxury Bathrooms is a Staffordshire-based business with our showroom and headquarters at Unit 7 Cavendish, Tamworth. We have spent more than two decades serving Staffordshire homeowners â from the historic city of Lichfield to the cathedral town of Stafford, and from Cannock Chase to the brewing heart of Burton-on-Trent.","Staffordshire's housing stock spans every era â Tudor and Georgian properties around Lichfield, Victorian terraces in Burton and Stafford, post-war estates throughout Cannock and Tamworth, and modern developments in growth corridors such as Anker Valley, Streethay, and Stretton. Each property type brings its own plumbing, drainage, and structural quirks that we have navigated countless times.","Because we are a Staffordshire company serving Staffordshire homes, our response times across the county are among the fastest available. Survey appointments, design consultations, and installation start dates are all coordinated locally â without the delays of nationwide contractors travelling from outside the region.","Every Staffordshire installation we deliver is backed by our supply-and-install model. All materials are sourced through our Tamworth showroom from trusted UK and European manufacturers, and fitted by the same in-house team that designs your room â one warranty, one point of contact, one standard of workmanship."],propertyTypes:"Tudor, Georgian, Victorian terraces, post-war semis, modern new builds",responseTime:"Same-week consultations across Staffordshire",commonNeeds:"Full bathroom installations, wet rooms, ensuites, boiler replacement, accessible adaptations",services:[{name:"Bathroom Installation",path:"/services/bathroom-installation",description:"Complete supply-and-install bathroom projects across Staffordshire â Tamworth, Lichfield, Stafford, Cannock, Burton-on-Trent and beyond."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"Visit our Tamworth showroom to see fully built bathroom displays, compare materials, and meet our designers in person."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully tanked, building-regulation-compliant wet rooms designed for Staffordshire properties of every age."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Step-free shower enclosures and frameless glass solutions for homes across Staffordshire."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"Premium bathroom renovations with bespoke tiling and high-end fixtures for discerning Staffordshire homeowners."},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments",description:"Targeted refreshes that update sanitaryware, tiling, and fixtures without a full strip-out."},{name:"Cloakroom & Ensuite",path:"/services/cloakroom-ensuite",description:"Compact cloakroom and ensuite designs that maximise smaller spaces in Staffordshire homes."}
318,{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Disability-friendly bathrooms with grab rails, level-access showers, and comfort-height fixtures."},{name:"Boiler Replacement",path:"/services/boiler-replacement",description:"Gas Safe registered boiler installations with up to 12-year manufacturer warranties across Staffordshire."},{name:"Plumbing Services",path:"/services/plumbing-services",description:"General plumbing repairs, pipework modifications, and leak detection across Staffordshire."},{name:"Tiling Services",path:"/services/tiling-services",description:"Floor and wall tiling in porcelain, ceramic, natural stone, and mosaic formats."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Electric and water-based underfloor heating systems for bathrooms and living spaces."},{name:"Kitchen Installation",path:"/services/kitchen-installation",description:"Complete kitchen fitting including plumbing, tiling, and appliance connections."},{name:"Bathroom Design & Planning",path:"/services/bathroom-design-planning",description:"Bespoke design consultations so you can visualise your new bathroom before work begins."}],whyChooseUsContent:["As a long-established Staffordshire company, we have built our reputation on consistency. The team that designs your bathroom is the same team that supplies the materials, fits them, tiles the room, and signs off the snagging list. There are no subcontractors and no handovers between unrelated trades â just one accountable team from start to finish.","We have completed over 1,000 projects across Staffordshire and the wider Midlands. Our experience with local building regulations, the area's variable water pressures, and the structural quirks of Staffordshire's older properties means fewer surprises mid-project and faster, cleaner completions.","Every installation includes a full Blue Sky workmanship warranty. Because we supply every product through our showroom, you also benefit from manufacturer-backed product guarantees â typically 5 to 25 years depending on the item â with one company responsible for the entire room.","Our Tamworth showroom is open to all Staffordshire homeowners. Walk through fully built bathroom displays, compare tiles and brassware in person, and sit down with our designers to plan a room that fits your home, your taste, and your budget."],localProblemsHeading:"Common Bathroom Issues in Staffordshire Homes",localProblemsContent:["Many of Staffordshire's older properties â particularly Victorian terraces in Burton-on-Trent and Stafford, and the post-war estates around Cannock and Tamworth â still carry original lead or corroded copper pipework. Low pressure, discoloured water, and slow drainage are among the most frequent issues we resolve.","Hard water is a county-wide concern, especially in the south of Staffordshire. Limescale build-up shortens the life of brassware, blocks shower heads, and damages heating elements. We specify limescale-resistant fixtures and can advise on appropriate water softening solutions during your consultation.","Newer Staffordshire developments often suffer from builder-grade finishes â thin tiles, plastic baths, and minimal waterproofing â that wear out within five to eight years. We replace these with properly specified products from our showroom, fitted to last decades.","Bathroom ventilation is consistently undersized in older Staffordshire stock. Without correctly rated extraction, moisture causes black mould on grout and silicone, and damages plaster and timber over time. Every Blue Sky installation includes appropriately specified mechanical ventilation."],processSteps:[{title:"Free Home Consultation",description:"We visit your Staffordshire property to assess the space, discuss your vision, and take detailed measurements. No obligation, no pressure."},{title:"Showroom Visit & Design",description:"We invite you to our Tamworth showroom to choose products in person, then create a 3D design and itemised quote tailored to your home."},{title:"Material Specification",description:"We supply every tile, fixture, and fitting through our showroom from trusted UK and European manufacturers â with trade-direct pricing built into your quote."},{title:"Professional Installation",description:"Our dedicated in-house team handles plumbing, electrics, tiling, plastering, and decoration â no subcontractors at any stage."},{title:"Final Inspection & Handover",description:"We walk through the finished room with you, test every fixture, and issue your full workmanship warranty documentation."}],faqs:[{q:"Which areas of Staffordshire do you cover?",a:"We cover the entire county including Tamworth, Lichfield, Stafford, Cannock, Burton-on-Trent, Rugeley, Stone, Uttoxeter, Leek, Newcastle-under-Lyme, Stoke-on-Trent, and surrounding villages."},{q:"How much does a bathroom installation cost in Staffordshire?",a:"A complete bathroom installation across Staffordshire starts from £7,000. Final pricing depends on room size, product specification, and complexity â every quote is detailed and itemised after your free consultation. All materials are supplied by us through our Tamworth showroom."},{q:"Can I supply my own bathroom products?",a:"No â Blue Sky operates on a supply-and-install basis only. Every tile, fixture, and fitting is sourced through our Tamworth showroom from trusted UK and European manufacturers. This guarantees consistent quality, full manufacturer warranties, and a single point of accountability."},{q:"Do you have a showroom in Staffordshire?",a:"Yes â our showroom is at Unit 7 Cavendish, Tamworth B79 7XH, easily reached from across the county. It is open Monday to Frid
318ay 9amâ5pm, Saturday 9amâ1pm, and Sunday 10amâ2pm by appointment."},{q:"How quickly can you start a project in Staffordshire?",a:"Depending on the season, we typically start within 2â4 weeks of accepting your quote. Emergency plumbing repairs are often attended the same day across south and central Staffordshire."},{q:"Do you handle building regulations for wet rooms?",a:"Yes. We manage all aspects of building regulation compliance for wet room installations, including waterproofing certification and drainage calculations."},{q:"What guarantee do you offer on installations?",a:"Every installation carries a full Blue Sky workmanship warranty. Products supplied through our showroom are also covered by their respective manufacturer warranties, typically 5â25 years depending on the item."},{q:"Are you Gas Safe registered for boiler work?",a:"Yes. All our gas engineers are Gas Safe registered. We handle boiler replacements and installation across Staffordshire in full compliance with safety regulations."}],ctaHeading:"Ready to Transform Your Staffordshire Bathroom?",ctaSubtext:"Book your free, no-obligation consultation today. We'll visit your property, invite you to our Tamworth showroom, and provide a detailed quote â all at no cost.",nearbyAreas:[{name:"Tamworth",slug:"tamworth"},{name:"Lichfield",slug:"lichfield"},{name:"Cannock",slug:"cannock"},{name:"Burton-on-Trent",slug:"burton-on-trent"},{name:"Rugeley",slug:"rugeley"}]},d3=()=>r.jsx(H,{data:l3}),c3={slug:"warwickshire",name:"Warwickshire",title:"Bathroom Fitters Warwickshire | Blue Sky Bathrooms",metaDescription:"Expert bathroom installation, wet rooms, and plumbing services across Warwickshire. Tamworth showroom, supply-and-install, full warranty. Call 0330 043 2234.",heroHeadline:"Warwickshire's Trusted Bathroom Installation Specialists",heroSubheadline:"From Atherstone and Nuneaton to Warwick, Leamington Spa, and Rugby â luxury bathroom design, supply, and installation delivered by one dedicated Blue Sky team.",trustMicro:"20+ years across Warwickshire · 1000+ projects completed · Tamworth showroom · Full warranty",localRelevanceContent:["Warwickshire is one of our core service counties, easily reached from our Tamworth showroom and headquarters. Over more than two decades, we have completed installations across the county â from Tudor and Georgian properties in Warwick and Stratford-upon-Avon to Victorian terraces in Nuneaton, Atherstone, and Rugby, and modern developments throughout Leamington Spa, Kenilworth, and the M40 corridor.","Warwickshire's mix of historic market towns, commuter villages, and growth-area new builds means no two bathroom projects are alike. We have navigated solid-floor drainage in period cottages, listed-building constraints in conservation areas, and high-specification briefs in the county's prestige neighbourhoods.","From our Tamworth base, our coverage of north Warwickshire is particularly strong â Atherstone, Nuneaton, Bedworth, Polesworth, and the surrounding villages typically see same-week consultations and rapid scheduling.","Every Warwickshire installation we deliver is backed by our supply-and-install model. All materials are sourced through our Tamworth showroom from trusted UK and European manufacturers, and fitted by the same in-house team that designs your room â one warranty, one point of contact, one standard of workmanship."],propertyTypes:"Tudor, Georgian, Victorian terraces, period cottages, conservation-area homes, modern new builds",responseTime:"Same-week consultations across Warwickshire",commonNeeds:"Luxury renovations, wet rooms, ensuites, period property installations, accessible adaptations",services:[{name:"Bathroom Installation",path:"/services/bathroom-installation",description:"Complete supply-and-install bathroom projects across Warwickshire â Atherstone, Nuneaton, Warwick, Leamington Spa, Rugby and beyond."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"Visit our Tamworth showroom to see fully built bathroom displays, compare materials, and meet our designers in person."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"Premium bathroom renovations with bespoke tiling and high-end fixtures for Warwickshire's prestige properties."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully tanked, building-regulation-compliant wet rooms designed for Warwickshire properties of every age."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Step-free shower enclosures and frameless glass solutions for homes across Warwickshire."},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments",description:"Targeted refreshes that update sanitaryware, tiling, and fixtures without a full strip-out."},{name:"Cloakroom & Ensuite",path:"/services/cloakroom-ensuite",description:"Compact cloakroom and ensuite designs that maximise smaller spaces in Warwickshire homes."}
318,{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Disability-friendly bathrooms with grab rails, level-access showers, and comfort-height fixtures."},{name:"Boiler Replacement",path:"/services/boiler-replacement",description:"Gas Safe registered boiler installations with up to 12-year manufacturer warranties across Warwickshire."},{name:"Plumbing Services",path:"/services/plumbing-services",description:"General plumbing repairs, pipework modifications, and leak detection across Warwickshire."},{name:"Tiling Services",path:"/services/tiling-services",description:"Floor and wall tiling in porcelain, ceramic, natural stone, and mosaic formats."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Electric and water-based underfloor heating systems for bathrooms and living spaces."},{name:"Kitchen Installation",path:"/services/kitchen-installation",description:"Complete kitchen fitting including plumbing, tiling, and appliance connections."},{name:"Bathroom Design & Planning",path:"/services/bathroom-design-planning",description:"Bespoke design consultations so you can visualise your new bathroom before work begins."}],whyChooseUsContent:["Warwickshire homeowners choose Blue Sky because we deliver the same team from first sketch to final snagging. The designer who plans your bathroom is part of the same in-house team that supplies the products, installs them, tiles the room, and hands it over â no subcontractors, no handovers, no finger-pointing if something needs revisiting.","We have completed over 1,000 projects across Warwickshire and the wider Midlands. Our experience with the county's listed buildings, conservation-area constraints, and high-specification briefs in Warwick, Leamington Spa, and Stratford means we know how to deliver standout results within the rules that govern these properties.","Every installation includes a full Blue Sky workmanship warranty. Because we supply every product through our showroom, you also benefit from manufacturer-backed product guarantees â with one company responsible for the entire room rather than splitting accountability between supplier and fitter.","Our Tamworth showroom is open to all Warwickshire homeowners and is easily reached from north and central Warwickshire. Walk through fully built bathroom displays, compare tiles and brassware in person, and sit down with our designers to plan your project with confidence."],localProblemsHeading:"Common Bathroom Issues in Warwickshire Homes",localProblemsContent:["Listed and period properties across Warwick, Stratford-upon-Avon, and Leamington Spa often have restrictive constraints on layout, plumbing routes, and external venting. We are experienced at delivering modern bathrooms within these constraints â preserving period character while introducing contemporary performance.","Many Warwickshire villages still rely on solid-floor properties without easy access to drainage. We design and install with appropriate low-profile shower trays, macerator pumps where needed, and discreet pipework routes that respect original features.","Newer Warwickshire developments â particularly along the M40 and around Rugby â sometimes suffer from builder-grade finishes that wear out within five to eight years. We replace these with properly specified products from our showroom, fitted to last decades.","Bathroom ventilation is consistently undersized in older Warwickshire stock, especially the county's many cottages and barn conversions. Every Blue Sky installation includes appropriately specified mechanical ventilation to prevent damp and mould."],processSteps:[{title:"Free Home Consultation",description:"We visit your Warwickshire property to assess the space, discuss your vision, and take detailed measurements. No obligation, no pressure."},{title:"Showroom Visit & Design",description:"We invite you to our Tamworth showroom to choose products in person, then create a 3D design and itemised quote tailored to your home."},{title:"Material Specification",description:"We supply every tile, fixture, and fitting through our showroom from trusted UK and European manufacturers â with trade-direct pricing built into your quote."},{title:"Professional Installation",description:"Our dedicated in-house team handles plumbing, electrics, tiling, plastering, and decoration â no subcontractors at any stage."},{title:"Final Inspection & Handover",description:"We walk through the finished room with you, test every fixture, and issue your full workmanship warranty documentation."}],faqs:[{q:"Which areas of Warwickshire do you cover?",a:"We cover the entire county including Atherstone, Nuneaton, Bedworth, Rugby, Warwick, Leamington Spa, Kenilworth, Stratford-upon-Avon, Coleshill, Polesworth, and surrounding villages."},{q:"How much does a bathroom installation cost in Warwickshire?",a:"A complete bathroom installation across Warwickshire starts from £7,000. Final pricing depends on room size, product specification, and complexity â every quote is detailed and itemised after your free consultation. All materials are supplied by us through our Tamworth showroom."},{q:"Can I supply my own bathroom products?",a:"No â Blue Sky operates on a supply-and-install basis only. Every tile, fixture, and fitting is sourced through our Tamworth showroom from trusted UK and European manufacturers. This guarantees consistent quality, full manufacturer warranties, and a single point of accountability."},{q:"Do you work on listed and period properties?",a:"Yes. We have extensive experience with listed buildings and conservation-area properties across Warwickshire. We respect period features while delivering modern bathroom performance."},{q:"Do you have a showroom we can visit?",a:"Yes â our showroom is at Unit 7 Cavendish, Tamworth B79 7XH, easily reached from north and central Warwickshire. Open Monday to Frid
318ay 9amâ5pm, Saturday 9amâ1pm, and Sunday 10amâ2pm by appointment."},{q:"How quickly can you start a project in Warwickshire?",a:"Depending on the season, we typically start within 2â4 weeks of accepting your quote. Emergency plumbing repairs are often attended the same day in north Warwickshire."},{q:"What guarantee do you offer on installations?",a:"Every installation carries a full Blue Sky workmanship warranty. Products supplied through our showroom are also covered by their respective manufacturer warranties, typically 5â25 years depending on the item."},{q:"Are you Gas Safe registered for boiler work?",a:"Yes. All our gas engineers are Gas Safe registered. We handle boiler replacements and installation across Warwickshire in full compliance with safety regulations."}],ctaHeading:"Ready to Transform Your Warwickshire Bathroom?",ctaSubtext:"Book your free, no-obligation consultation today. We'll visit your property, invite you to our Tamworth showroom, and provide a detailed quote â all at no cost.",nearbyAreas:[{name:"Atherstone",slug:"atherstone"},{name:"Nuneaton",slug:"nuneaton"},{name:"Tamworth",slug:"tamworth"},{name:"Hinckley",slug:"hinckley"},{name:"Birmingham",slug:"birmingham"}]},u3=()=>r.jsx(H,{data:c3}),h3={slug:"west-midlands",name:"the West Midlands",title:"Bathroom Fitters West Midlands | Blue Sky Bathrooms",metaDescription:"Expert bathroom installation, wet rooms and plumbing across the West Midlands. Tamworth showroom, supply-and-install, full warranty. Call 0330 043 2234.",heroHeadline:"The West Midlands' Trusted Bathroom Installation Specialists",heroSubheadline:"From Birmingham and Sutton Coldfield to Walsall, West Bromwich, Solihull, and Wolverhampton â luxury bathroom design, supply, and installation delivered by one dedicated Blue Sky team.",trustMicro:"20+ years across the West Midlands · 1000+ projects completed · Tamworth showroom · Full warranty",localRelevanceContent:["The West Midlands is one of the busiest service regions for Blue Sky Luxury Bathrooms. From our Tamworth showroom we cover Birmingham, Sutton Coldfield, Solihull, Walsall, West Bromwich, Sandwell, Wolverhampton, Dudley, and the wider conurbation â delivering complete bathroom installations across every property type the region has to offer.","The West Midlands has the most diverse housing stock of any UK region. Victorian terraces in Handsworth, Edwardian villas in Moseley and Edgbaston, 1930s semis across Sutton Coldfield, post-war estates throughout Walsall and West Bromwich, Jewellery Quarter conversions, and high-specification new builds in Solihull and Knowle â we have completed projects in all of them.","Our coverage of north and east Birmingham, Sutton Coldfield, Walsall, and Sandwell is particularly strong from our Tamworth base, with same-week consultations and typical project response times of 2â3 hours for emergency plumbing or boiler issues.","Every West Midlands installation we deliver is backed by our supply-and-install model. All materials are sourced through our Tamworth showroom from trusted UK and European manufacturers, and fitted by the same in-house team that designs your room â one warranty, one point of contact, one standard of workmanship."],propertyTypes:"Victorian terraces, Edwardian villas, 1930s semis, apartment conversions, modern new builds, executive homes",responseTime:"Same-week consultations · 2â3 hour emergency response across north & east Birmingham",commonNeeds:"Full bathroom installations, luxury renovations, wet rooms, apartment fits, accessible adaptations",services:[{name:"Bathroom Installation",path:"/services/bathroom-installation",description:"Complete supply-and-install bathroom projects across the West Midlands â Birmingham, Sutton Coldfield, Solihull, Walsall, West Bromwich and beyond."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"Visit our Tamworth showroom to see fully built bathroom displays, compare materials, and meet our designers in person."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"Premium bathroom renovations with bespoke tiling and high-end fixtures for Sutton Coldfield, Solihull, Edgbaston, and the region's prestige neighbourhoods."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully tanked, building-regulation-compliant wet rooms designed for West Midlands homes of every age."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Step-free shower enclosures and frameless glass solutions for homes across the region."},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments",description:"Targeted refreshes that update sanitaryware, tiling, and fixtures without a full strip-out."},{name:"Cloakroom & Ensuite",path:"/services/cloakroom-ensuite",description:"Compact cloakroom and ensuite designs that maximise smaller spaces in West Midlands properties."}
318,{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Disability-friendly bathrooms with grab rails, level-access showers, and comfort-height fixtures."},{name:"Boiler Replacement",path:"/services/boiler-replacement",description:"Gas Safe registered boiler installations with up to 12-year manufacturer warranties across the West Midlands."},{name:"Plumbing Services",path:"/services/plumbing-services",description:"General plumbing repairs, pipework modifications, and leak detection across the region."},{name:"Tiling Services",path:"/services/tiling-services",description:"Floor and wall tiling in porcelain, ceramic, natural stone, and mosaic formats."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Electric and water-based underfloor heating systems for bathrooms and living spaces."},{name:"Kitchen Installation",path:"/services/kitchen-installation",description:"Complete kitchen fitting including plumbing, tiling, and appliance connections."},{name:"Bathroom Design & Planning",path:"/services/bathroom-design-planning",description:"Bespoke design consultations so you can visualise your new bathroom before work begins."}],whyChooseUsContent:["West Midlands homeowners choose Blue Sky because we deliver consistency at scale. The same team designs, supplies, fits, tiles, and signs off every project â no subcontractors brought in to fill gaps, no different standards on different days. With over 1,000 installations completed across the region, we have refined a process that works as reliably in a Birmingham city-centre apartment as it does in a Solihull executive home.","Our knowledge of West Midlands property types runs deep. Listed Edwardian villas, leasehold apartment buildings, ex-council stock, and modern executive new builds each demand different installation approaches â different waterproofing, different drainage strategies, different ventilation. We have completed all of them.","Every installation includes a full Blue Sky workmanship warranty, alongside manufacturer-backed product warranties on every component supplied through our showroom. One company is responsible for the entire room, so if anything needs attention you call one number â not a chain of suppliers and contractors.","Our Tamworth showroom is open to all West Midlands homeowners and easily reached from across the region by car or train. Walk through fully built bathroom displays, compare tiles and brassware in person, and sit down with our designers to plan a room with confidence."],localProblemsHeading:"Common Bathroom Issues in West Midlands Homes",localProblemsContent:["Many West Midlands properties â particularly Victorian terraces in Handsworth, Aston, Smethwick, and Walsall â still carry their original lead or corroded copper pipework. Low pressure, discoloured water, and slow drainage are routine issues we resolve as part of full installations.","Hard water is a region-wide concern. Limescale shortens the life of brassware, blocks shower heads, and damages heating elements. We specify limescale-resistant fixtures and can advise on appropriate water softening solutions during your consultation.","Apartment buildings â particularly Jewellery Quarter conversions, city-centre new builds, and Solihull leasehold blocks â bring specific challenges around waste routing, sound insulation, leaseholder consents, and concierge access. We are experienced in managing all of them.","Newer West Midlands developments often suffer from builder-grade finishes â thin tiles, plastic baths, and minimal waterproofing â that wear out within five to eight years. We replace these with properly specified products from our showroom, fitted to last decades."],processSteps:[{title:"Free Home Consultation",description:"We visit your West Midlands property to assess the space, discuss your vision, and take detailed measurements. No obligation, no pressure."},{title:"Showroom Visit & Design",description:"We invite you to our Tamworth showroom to choose products in person, then create a 3D design and itemised quote tailored to your home."},{title:"Material Specification",description:"We supply every tile, fixture, and fitting through our showroom from trusted UK and European manufacturers â with trade-direct pricing built into your quote."},{title:"Professional Installation",description:"Our dedicated in-house team handles plumbing, electrics, tiling, plastering, and decoration â no subcontractors at any stage."},{title:"Final Inspection & Handover",description:"We walk through the finished room with you, test every fixture, and issue your full workmanship warranty documentation."}],faqs:[{q:"Which areas of the West Midlands do you cover?",a:"We cover the entire region including Birmingham, Sutton Coldfield, Solihull, Walsall, West Bromwich, Sandwell, Wolverhampton, Dudley, Aldridge, Brownhills, and surrounding suburbs."},{q:"How much does a bathroom installation cost in the West Midlands?",a:"A complete bathroom installation across the West Midlands starts from £7,000. Final pricing depends on room size, product specification, and complexity â every quote is detailed and itemised after your free consultation. All materials are supplied by us through our Tamworth showroom."},{q:"Can I supply my own bathroom products?",a:"No â Blue Sky operates on a supply-and-install basis only. Every tile, fixture, and fitting is sourced through our Tamworth showroom from trusted UK and European manufacturers. This guarantees consistent quality, full manufacturer warranties, and a single point of accountability."},{q:"Do you have a showroom we can visit?",a:"Yes â our showroom is at Unit 7 Cavendish, Tamworth B79 7XH, easily reached from across the West Midlands. Open Monday to Frid
318ay 9amâ5pm, Saturday 9amâ1pm, and Sunday 10amâ2pm by appointment."},{q:"Can you work in apartment buildings and conversions?",a:"Yes â we have extensive experience with apartment buildings, loft conversions, and commercial-to-residential conversions across Birmingham, Solihull, and the wider West Midlands. We coordinate with managing agents and concierge teams as needed."},{q:"How quickly can you respond to emergencies?",a:"We typically reach north and east Birmingham, Sutton Coldfield, Walsall, and Sandwell within 2â3 hours of a call."},{q:"What guarantee do you offer on installations?",a:"Every installation carries a full Blue Sky workmanship warranty. Products supplied through our showroom are also covered by their respective manufacturer warranties, typically 5â25 years depending on the item."},{q:"Are you Gas Safe registered for boiler work?",a:"Yes. All our gas engineers are Gas Safe registered. We handle boiler replacements and installation across the West Midlands in full compliance with safety regulations."}],ctaHeading:"Ready to Transform Your West Midlands Bathroom?",ctaSubtext:"Book your free, no-obligation consultation today. We'll visit your property, invite you to our Tamworth showroom, and provide a detailed quote â all at no cost.",nearbyAreas:[{name:"Birmingham",slug:"birmingham"},{name:"Sutton Coldfield",slug:"sutton-coldfield"},{name:"Walsall",slug:"walsall"},{name:"West Bromwich",slug:"west-bromwich"},{name:"Tamworth",slug:"tamworth"}]},m3=()=>r.jsx(H,{data:h3}),p3={slug:"tamworth-bathroom-fitters",name:"Tamworth",title:"Bathroom Fitters Tamworth | Blue Sky Bathrooms",metaDescription:"Tamworth's own bathroom fitters, based on Cavendish. Employed team, no subcontractors, full warranty, 1000+ local bathrooms fitted. Call 0330 043 2234.",heroHeadline:"Trusted Bathroom Fitters in Tamworth",heroSubheadline:"We're not a national chain or a one-man-band â we're a Tamworth-based fitting team with a permanent showroom, 20+ years on the tools, and over 1000 local bathrooms behind us.",trustMicro:"Tamworth-based · Own showroom on Cavendish · Employed fitters, no subcontractors",localRelevanceContent:["Type 'bathroom fitters Tamworth' into a search bar and the town's high number of fitters, subcontractors and sales-led chains all appear on the same page â which makes it hard to tell who actually lives and works here. Blue Sky does, literally: our showroom sits on Cavendish, a short drive from Glascote, Wilnecote, Amington and the town centre. Florin Vescan and the team fit bathrooms in the same streets they drive home through.","Being based in Tamworth rather than merely 'covering' it changes how a job runs day to day. If a delivery is delayed or a tile needs swapping, someone can be at the showroom and back on site within the hour â not booked into a diary for next Tuesday. Our fitters, plumbers, electricians and tilers are on the Blue Sky payroll, not hired in through an agency for the duration of your job, so the same faces who start the strip-out are the ones who hand you the keys.","Tamworth's housing stock is more varied than people expect for a town this size. The Victorian terraces around Lichfield Street and Church Street have narrow stairwells and original soil stacks that need careful handling. The 1930s semis in Glascote and Belgrave often hide surprisingly shallow floor joists once boards come up. Wilnecote, Amington and Dosthill are mostly post-war and 1970s builds with dated 15mm pipework that struggles to feed a modern shower â something we check at survey stage rather than discovering mid-fit. Further out, the newer Anker Valley and Mercian Park plots come with modern screed floors and better pressure but tighter room dimensions that reward careful layout planning.","Because we're fitting somewhere in Tamworth most weeks â Hopwas, Wigginton, Fazeley, Bolehall, Kettlebrook â we've usually already worked on a house of a similar age and layout to yours. That's not a sales line; it means fewer unknowns turning up once the old suite is out, and a quote that's less likely to change once work starts."],propertyTypes:"Victorian terraces, 1930s/1950s semis, modern detached, new builds, rural cottages",responseTime:"Free survey within the same week · Most jobs fitted within 4â6 weeks of deposit",commonNeeds:"Full bathroom fits, wet rooms, ensuites, replacement bath-to-shower conversions",services:[{name:"Full Bathroom Installation",path:"/services/bathroom-installation",description:"Strip-out to snag-list â the standard Blue Sky fit for Tamworth homes."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully tanked, fall-graded wet rooms fitted to current building regs."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Bath-to-shower swaps and frameless walk-ins â common in Tamworth's mid-century semis."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"Higher-spec fits with bespoke tiling, freestanding baths and concealed cisterns."}
318,{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Mobility-led fits with level access, grab rails and comfort-height WCs."},{name:"Cloakroom & Ensuite Fits",path:"/services/cloakroom-ensuite",description:"Tight-space fits where every millimetre counts."},{name:"Tiling Services",path:"/services/tiling-services",description:"Porcelain, ceramic, natural stone and large-format wall tiling."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Electric and wet UFH systems integrated into your bathroom fit."},{name:"Bathroom Design & Planning",path:"/services/bathroom-design-planning",description:"Free 3D design service from our Tamworth showroom."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"See live displays before you commit â our showroom is on Cavendish."}],whyChooseUsContent:["Ask around Tamworth and the two recurring gripes about bathroom fitters are jobs overrunning their promised finish date, and warranty calls that vanish into an answerphone. Both come from the same root cause â nobody being fully accountable. We remove that gap by keeping the whole job in-house: the tiler doesn't need 'checking with', because the tiler is one of ours.","Every job runs to the same sequence â free home survey, fixed itemised quote, deposit, materials ordered and held at our unit, a confirmed start date, daily on-site supervision, a walk-through snag-list, then handover with paperwork and warranty documents. You'll always know which trade is due in your house and on which day, because we plan it that way from the outset rather than juggling multiple sites.","20+ years of fitting bathrooms in this town has built a track record that's checkable rather than claimed: 9.85/10 on Checkatrade from 141 reviews, 4.9 on Google from 38+ reviews, and 4.99/5 on TrustATrader from 13 reviews. We'd rather you spend ten minutes reading those than take a single word of this page on trust.","Every workmanship warranty runs for 12 months as standard, and manufacturer warranties on the products we supply vary from 12 months to a lifetime depending on the brand â all set out in writing at handover, not promised verbally and forgotten."],localProblemsHeading:"What Tamworth Homeowners Should Watch For When Hiring a Fitter",localProblemsContent:["A 'supply-only' arrangement from a kitchen-and-bathroom retailer sounds like a saving until something doesn't fit â at which point the supplier blames the fitter and the fitter blames the supplier, and you're stuck arbitrating between two businesses who've never spoken. We supply and fit under one contract, so there's only one number to call.","Labour-only day-rate fitters can do good work, but you become the project manager: ordering tiles, booking the electrician, chasing the plasterer. Plenty of Tamworth homeowners take this route knowingly to save money â it's just worth going in with your eyes open about the time it takes.","Be wary of a quote that's a single line â 'bathroom installation, £X,XXX' â with no breakdown. It protects whoever wrote it far more than it protects you. Ours lists every fixture, every tile, every labour day and any contingency, so it can be compared like-for-like against any other quote you get.","Cash-in-hand deals with no invoice mean no VAT record, no warranty and no comeback if things go wrong. Every Blue Sky job is properly invoiced and backed by written workmanship and product warranties."],processSteps:[{title:"Free Home Survey",description:"We visit your Tamworth property, take dimensions, photograph the existing setup and discuss what you want."},{title:"Fixed Itemised Quote",description:"You receive a written quote listing every product, every labour day and any contingencies â no vague line items."},{title:"Showroom Visit (Optional)",description:"Walk through live displays at our Cavendish showroom to finalise tiles, sanitaryware and fittings."},{title:"Fit Scheduled & Materials Held",description:"We order and store everything at our unit before your start date â no 'waiting for stock' mid-fit."},{title:"Installation by Our Own Team",description:"Employed fitters, plumbers, electricians and tilers â one team, daily supervision, agreed sequence."},{title:"Snag List & Handover",description:"We walk the finished room with you, fix anything you flag, then hand over paperwork and warranties."}],faqs:[{q:"Is your showroom actually in Tamworth, or just your office?",a:"Both. Unit 7 Cavendish, B79 7XH, is a working showroom with live displays plus our fitting team's base â you can see the products and meet the people fitting them under the same roof."},{q:"Do you use subcontractors on Tamworth jobs?",a:"No. Every fitter, plumber, electrician and tiler working in your home is employed by Blue Sky, which is why the workmanship warranty carries no small print about 'third-party trades'."},{q:"How long does a typical Tamworth bathroom fit take?",a:"Most full bathrooms are fitted in 7â10 working days; larger wet rooms or full renovations can run 2â3 weeks. Your quote gives a realistic range and we confirm a fixed schedule before starting."},{q:"What does a bathroom fitted in Tamworth cost?",a:"Complete supply-and-fit bathrooms start from around £7,000. Mid-range fits typically land between £9,000 and £14,000, with higher-spec renovations above that. Every quote is fixed and itemised."},{q:"Do the older Victorian terraces near Lichfield Street cause problems for fitting?",a:"Sometimes â narrow stairwells for getting a bath up, original cast-iron soil stacks and uneven floors are common. We survey before quoting specifically to price those in rather than raise them mid-job."},{q:"Can you re-plumb a Wilnecote or Amington semi that has poor shower pressure?",a:"Yes. Many 1960s/70s Tamworth homes are still running narrow-bore supply pipe. We can upgrade the feed to your bathroom as part of the fit, priced clearly at quote stage."},{q:"Do you fit bathrooms on the newer Anker Valley and Mercian Park estates?",a:"Yes â new-build layouts are generally more straightforward to fit, though room footprints are often smaller, so getting the layout right at survey stage matters as much as the products chosen."},{q:"Which parts of Tamworth do you cover?",a:"All of it, plus surrounding villages â Glascote, Wilnecote, Amington, Belgrave, Bolehall, Dosthill, Hopwas, Wigginton and Fazeley. If you're just outside, call and ask."},{q:"Are you insured and Gas Safe registered?",a:"Yes. We hold full public liability and employer'
318s liability insurance, and gas work is completed by Gas Safe registered engineers. Documentation is available on request."}],ctaHeading:"Get a Fixed Quote From Tamworth's Local Fitters",ctaSubtext:"Free home survey, itemised written quote, no obligation. Most Tamworth surveys booked within the same week.",nearbyAreas:[{name:"Lichfield",slug:"lichfield"},{name:"Sutton Coldfield",slug:"sutton-coldfield"},{name:"Atherstone",slug:"atherstone"},{name:"Burton-on-Trent",slug:"burton-on-trent"},{name:"Cannock",slug:"cannock"}]},f3=()=>r.jsx(H,{data:p3}),g3={slug:"lichfield-bathroom-fitters",name:"Lichfield",title:"Bathroom Fitters Lichfield | Local Installers | Blue Sky",metaDescription:"Lichfield bathroom fitters with our own Tamworth showroom â 15 minutes away. One employed team, no subcontractors, full warranty. Call 0330 043 2234.",heroHeadline:"Trusted Bathroom Fitters in Lichfield",heroSubheadline:"We design, supply and fit bathrooms across Lichfield from our own showroom 15 minutes down the A38 in Tamworth â one employed team, no subcontractors, 20+ years on the tools.",trustMicro:"Covering all of WS13 & WS14 · Own showroom 15 mins away · Employed fitters",localRelevanceContent:["Search 'bathroom fitters Lichfield' and you'll get a mix of labour-only sole traders, kitchen-and-bathroom chains who subcontract the installation to agency fitters, and the occasional cathedral-city joinery firm offering bathrooms as a sideline. Blue Sky is none of those. We are an independent design-supply-fit operation with our own showroom on Cavendish in Tamworth, 15 minutes from Lichfield city centre via the A38. You deal with one business from first phone call to final handover.","In practice that means the designer who visits your Lichfield home is part of the same team as the fitter on day one and the office that picks up your warranty call two years later. Everything sits under one roof â surveyor, designer, fitter, plumber, electrician and tiler are all employed by Blue Sky. There is no sub-contracted gang of tradespeople assembled from a database of freelancers. One team, one warranty, one point of contact.","We've installed bathrooms across Lichfield's full housing stock â the Georgian and Victorian terraces near the cathedral quarter and Beacon Park, the Edwardian villas along Gaia Lane and Birmingham Road, the inter-war semis around Boley Park and Streethay, the 1960s and 1970s estates in Burntwood and Chasetown, and the newer developments around Fradley Park and Curborough. Each property type brings its own structural character and plumbing challenges. Georgian and Regency homes near the WS13 city centre often have original cast-iron soil stacks, uneven flagstone or quarry-tile floors that require careful preparation before any waterproofing, and conservation-area constraints that affect what can and cannot be changed externally.","Lichfield is a compact but diverse city. The streets immediately around the cathedral â Dam Street, Beacon Street, Market Street â are dense with pre-Victorian properties where floor levels vary room to room and original pipework runs in places no modern building regulations would permit. Further out, the post-war semis of Boley Park and the estates around Eastern Avenue offer more predictable layouts but frequently need updated pipework to handle contemporary shower pressures and flow rates. We survey every property before quoting, specifically to identify these variables and price them accurately from the start.","The WS14 postcode covers a wider arc extending south and east from the city â Whittington, Shenstone, Weeford, Hammerwich and Wall â where the housing stock shifts to a mix of 1970s and 1980s detached homes, farmhouse conversions and newer estate properties. These often present different challenges: larger bathroom footprints that benefit from full layout redesigns, older thermostatic shower systems that need replacing alongside the refit, and occasional concrete-block extensions where wall preparation matters before any tiling begins. Local knowledge of WS14 keeps our surveys precise and our quotes honest.","Our Tamworth showroom is genuinely 15 minutes from Lichfield via the A38 southbound â one of the shortest drives any Lichfield homeowner will make to see a full working bathroom display. Most of our Lichfield customers combine their initial survey with a same-week showroom visit, choose products from live displays rather than a brochure, and have a confirmed quote within days. That speed and proximity means there is no reason to work with a chain retailer in Birmingham or a catalogue supplier in Coventry when the same quality of design and product is available on your doorstep."],propertyTypes:"Georgian terraces, Victorian villas, 1930s semis, post-war estates, modern developments around Fradley",responseTime:"Free Lichfield home survey within the same week",commonNeeds:"Full bathroom installations, bath-to-shower swaps, ensuites, period-property refurbishments",services:[{name:"Full Bathroom Installation",path:"/services/bathroom-installation",description:"Strip-out to snag-list â Blue Sky's standard fit for Lichfield homes."},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments",description:"Refreshes that keep your layout and replace what's tired."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully tanked, fall-graded wet rooms to current building regs."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Bath-to-shower swaps and frameless walk-ins."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"Higher-specification fits with bespoke tiling and freestanding baths."}
318,{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Mobility-led fits with level access and grab rails."},{name:"Cloakroom & Ensuite Fits",path:"/services/cloakroom-ensuite",description:"Tight-space fits where every millimetre matters."},{name:"Tiling Services",path:"/services/tiling-services",description:"Porcelain, ceramic, natural stone and large-format wall tiling."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Electric and wet UFH systems integrated into your fit."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"See live displays before you commit â 15 minutes from Lichfield."}],whyChooseUsContent:["Most complaints about bathroom fitters fall into two categories: jobs that drag on past their promised end date, and warranty calls that go unanswered. We solve both by owning the whole process. Because we don't subcontract, there is no finger-pointing between trades when something needs attention. Because we are 15 minutes away in Tamworth, there is no warranty ghosting â we can be at your Lichfield door within hours of a call. That proximity is a practical guarantee, not a marketing claim.","Every fit follows the same sequence: free home survey, fixed itemised quote, deposit, materials ordered and stored at our Tamworth unit before work begins, agreed start date, daily on-site supervision, final walk-through and snag-list with you present, then handover with full paperwork and warranties. Nothing is rushed to move on to the next job, and nothing is left 'to settle' after we leave. The snag-list step is not optional â it is the point at which you tell us if anything falls short of what was agreed, and we fix it before you sign off.","We are members of Checkatrade with a 9.85 out of 10 rating from 141 verified reviews, plus a 4.9 Google rating (38+ reviews). Both are public and both show reviewer names and locations. Read what customers in Lichfield, Burntwood, Whittington and the surrounding WS13 and WS14 villages say before you decide. If the reviews don't match your expectations, you are under no obligation to proceed beyond the free survey.","We carry full public liability and employer's liability insurance. Gas work is completed by Gas Safe registered engineers. Electrical first-fix and second-fix is signed off to Part P building regulations. All documentation â insurance certificates, Gas Safe card numbers, Part P notifications â is available before you commit to a deposit. We know that asking a team to work in your home for one to three weeks is a significant act of trust, and the paperwork exists to protect your interests.","Lichfield homeowners often approach us after a negative experience with a sole trader who quoted low and then added costs mid-job, or a national chain whose installation team arrived late and left early. We have built our process specifically around those failure points. Fixed-price quotes mean the number does not change after you sign. Employed trades mean the same faces arrive every morning. Written warranties mean you have documented recourse, not a verbal promise from someone who may no longer be trading."],localProblemsHeading:"What Lichfield Homeowners Should Watch For When Hiring a Fitter",localProblemsContent:["Period-property fits â which are common throughout the city centre conservation area, around Beacon Street, Dam Street and the cathedral close â require fitters who understand uneven floors, lath-and-plaster walls, original soil-stack routes and listed-building constraints. A national chain working to a generic installation spec will encounter every one of those issues and either price them in after the fact or work around them in ways that cause problems later. We survey these properties carefully before quoting and treat their quirks as variables to be priced, not problems to be ignored.","'Supply-only' deals from kitchen-and-bathroom chains in Birmingham or Stafford push the fitting responsibility onto whoever you can find locally. When a product doesn't fit the space, or the tile allocation runs short, the supplier blames your fitter and your fitter blames the supplier. We supply and fit as a single entity under one contract, which means the responsibility is never divided and the warranty is never qualified.","Watch for quotes that don't itemise. A single line saying 'bathroom installation â £X,XXX' gives you no leverage if the sanitaryware is substituted for cheaper alternatives, the tiling schedule is cut short, or the labour days reduce. Our quotes list every fixture by manufacturer reference, every tile by product code, every labour day and a named contingency allowance for any structural condition uncovered during strip-out. You know precisely what you are paying for before any money changes hands.","Cash-in-hand arrangements mean no warranty, no insurance cover and no legal recourse if the fitter walks away from a persistent leak or a failing seal. Every Blue Sky job is issued a formal invoice, is VAT-registered, and comes with written workmanship and product warranties. That is not a premium feature â it is the minimum standard any paying customer should demand.","Lichfield's property market includes a significant number of homes in the Boley Park, Dimbles and Curborough areas that were built in the 1970s and 1980s. These often have dated plumbing configurations â 15 mm copper supply pipes that restrict shower pressure, back-to-wall WC setups that need reconfiguring, and original timber-framed bathroom walls that require solid boarding before tiling. A sole trader focused on surface-level replacement will miss these and create ongoing problems. We assess and address them at survey stage.","Short lead-time offers from traders advertising heavily on local Lichfield Facebook groups often indicate that the fitter is filling a gap between jobs, which leads to split weeks, delayed completion and pressure on the finishing stages. We schedule one project per crew, commit to a start date, and do not move on until your snag list is fully resolved.","Gas Safe registration is a legal requirement for anyone working on gas appliances or connections in your bathroom. Lichfield homeowners should ask any prospective fitter for their Gas Safe registration number and verify it on the official register at gassaferegister.co.uk before allowing gas work to proceed. Our engineers' registration numbers are available on request at any stage of the quoting process."],processSteps:[{title:"Free Home Survey",description:"We visit your Lichfield property, take dimensions, photograph the existing setup and discuss what you want."},{title:"Fixed Itemised Quote",description:"Written quote listing every product, every labour day and any contingencies â no vague line items."},{title:"Showroom Visit (Optional)",description:"Walk through live displays at our Tamworth showroom â 15 minutes from Lichfield via the A38."},{title:"Fit Scheduled & Materials Held",description:"We order and store everything at our unit before your start date â no waiting for stock."},{title:"Installation by Our Own Team",description:"Employed fitters, plumbers, electricians and tilers â one team, daily supervision."},{title:"Snag List & Handover",description:"Walk the finished room with you, fix anything you flag, then hand over paperwork and warranties."}],faqs:[{q:"Are you Lichfield-based?",a:"Our showroom and unit are in Tamworth, 15 minutes from Lichfield city centre via the A38. We work across WS13 and WS14 regularly â Lichfield is one of our primary service areas, not an occasional call-out zone."},{q:"Do you use subcontractors?",a:"No. Every fitter, plumber, electrician and tiler on your job is employed directly by Blue Sky. That is
318why we can stand behind our workmanship warranty without any ambiguity about which trade is responsible for which element."},{q:"How long does a typical Lichfield bathroom fit take?",a:"Most full bathroom installations in Lichfield are completed in 7 to 10 working days. Wet rooms and larger luxury renovations can run 2 to 3 weeks. Period properties near the city centre that require additional preparation work may add a day or two at the start. We state a realistic date range in the quote and confirm the schedule before work begins."},{q:"How much do bathroom fitters cost in Lichfield?",a:"Complete supply-and-fit bathrooms in Lichfield start from around £7,000. Mid-range fits â quality sanitaryware, full tiling, walk-in shower â typically land between £9,000 and £14,000. Higher-specification renovations with freestanding baths, bespoke tiling or premium sanitaryware brands sit above that. Every quote is itemised and the price is fixed; there are no additions after you sign."},{q:"Do you work on period properties in Lichfield?",a:"Yes, and a significant proportion of our Lichfield work is in older homes â Edwardian villas near Birmingham Road, Victorian terraces around Beacon Street, and Georgian properties in the cathedral conservation area. We survey before quoting to identify original pipework, uneven floors and lath-and-plaster walls, and we price for them honestly rather than discovering them mid-fit."},{q:"What areas of Lichfield do you cover?",a:"All of WS13 and WS14 â city centre, Boley Park, Streethay, Stowe, Curborough, Fradley, Whittington, Shenstone, Hammerwich, Burntwood, Chasetown and the surrounding villages. If your address is not listed, call and ask."},{q:"Are you insured and Gas Safe registered?",a:"Yes. We hold full public liability and employer's liability insurance. Gas work is carried out by Gas Safe registered engineers, and electrical work is signed off to Part P building regulations. All documentation is available on request before you pay a deposit."},{q:"Can I visit your showroom before committing?",a:"Yes. Our Tamworth showroom has live displays of sanitaryware, shower enclosures, baths, tiling and accessories. Most Lichfield customers visit after the initial survey and choose their products from the live displays rather than a catalogue. The showroom is 15 minutes from Lichfield via the A38 â we can arrange the visit at the same time as your home survey if that suits."},{q:"What happens if something needs attention after the fit?",a:"Call the same number you called to book the job. Because every trade was employed by Blue Sky, there is no third party to be referred to. We return for warranty visits at no charge within the warranty period, which is set out in writing in your handover paperwork."},{q:"Do you fit accessible bathrooms in Lichfield?",a:"Yes. We design and install level-access shower areas, fully tanked wet rooms, grab rails, fold-down shower seats, raised WCs and wider door configurations across Lichfield and the surrounding WS13 and WS14 villages. These are full design-and-fit packages assessed at the survey stage."}],ctaHeading:"Get a Fixed Quote From Lichfield's Local Bathroom Fitters",ctaSubtext:"Free home survey, itemised written quote, no obligation. Most Lichfield surveys booked within the same week.",nearbyAreas:[{name:"Tamworth",slug:"tamworth"},{name:"Sutton Coldfield",slug:"sutton-coldfield"},{name:"Rugeley",slug:"rugeley"},{name:"Burton-on-Trent",slug:"burton-on-trent"},{name:"Cannock",slug:"cannock"}]},y3=()=>r.jsx(H,{data:g3}),w3={slug:"sutton-coldfield-bathroom-fitters",name:"Sutton Coldfield",title:"Bathroom Fitters Sutton Coldfield | Blue Sky",metaDescription:"Sutton Coldfield bathroom fitters based just up the A453 in Tamworth. Employed team, own showroom, full warranty, no subcontractors. Call 0330 043 2234.",heroHeadline:"Trusted Bathroom Fitters in Sutton Coldfield",heroSubheadline:"For homeowners in Four Oaks, Mere Green and Walmley who want proper showroom sanitaryware without a national chain's mark-up â one employed team, our own displays, a full written warranty.",trustMicro:"Covering B72âB76 · Own showroom 20 minutes away · Employed fitters, no subcontractors",localRelevanceContent:["If you've priced up a bathroom in Sutton Coldfield, you'll likely have spoken to a Birmingham-based design chain that draws the plan in-store and then hands the actual fitting to whichever subcontractor is free that fortnight. Blue Sky works the other way round: the person who surveys your Sutton home is a Blue Sky employee, the fitters who arrive on day one are Blue Sky employees, and the office that answers if you call in month eight is the same office you spoke to at the start.","Getting to Sutton from our Tamworth base is a straightforward run â out along the A453 and A38 (M), then in via the A5127 through Streetly or the A452 past Wylde Green, roughly 20 minutes door to door depending on the time of day. Enough distance to be a genuinely independent alternative to the Birmingham chains, close enough to be back on site the same afternoon if something needs attention.","Sutton's housing stock rewards local knowledge. The large Edwardian and inter-war villas around Four Oaks and Little Aston often have generous bathroom footprints but original lead or lath-and-plaster work behind the walls that needs proper stripping out before any tanking goes in. Mere Green and Streetly are a mix of the two, with some 1930s semis alongside larger 1980s executive builds. Walmley, Falcon Lodge and Wylde Green are predominantly 1960s and 70s construction, where narrow-bore pipework is the recurring issue behind poor shower pressure. The newer plots around Reddicap Heath and Roughley are more predictable to fit but tend to have smaller footprints, so getting the layout right at survey stage is what actually determines the finished result.","Sutton Park itself sits at the heart of the town, and several of the roads bordering it â around Monmouth Drive and Boldmere High Street â fall within areas where planning sensitivity around period properties is higher than average. We factor that into how
318we plan strip-out and waste removal on those jobs."],propertyTypes:"Edwardian villas, inter-war semis, larger detached homes, post-war estates, modern developments",responseTime:"Free Sutton Coldfield home survey within the same week",commonNeeds:"Full bathroom installations, luxury renovations, ensuites, bath-to-shower conversions",services:[{name:"Full Bathroom Installation",path:"/services/bathroom-installation",description:"Strip-out to snag-list â Blue Sky's standard fit for Sutton homes."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"Higher-specification fits with bespoke tiling and freestanding baths â common in Four Oaks and Little Aston."},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments",description:"Refreshes that keep your layout and replace what's tired."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully tanked, fall-graded wet rooms fitted to current building regs."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Bath-to-shower swaps and frameless walk-ins."},{name:"Cloakroom & Ensuite Fits",path:"/services/cloakroom-ensuite",description:"Tight-space fits where every millimetre matters."}
318,{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Mobility-led fits with level access and grab rails."},{name:"Tiling Services",path:"/services/tiling-services",description:"Porcelain, ceramic, natural stone and large-format wall tiling."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Electric and wet UFH integrated into your fit."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"See live displays before you commit â 20 minutes from Sutton via the A38."}],whyChooseUsContent:["The complaint we hear most from Sutton Coldfield customers switching to us is some version of 'the last company started strong and then went quiet'. That pattern almost always traces back to subcontracted labour â once a subby has moved to their next paid job, chasing them back for a snag becomes somebody else's problem. Because our trades are employed rather than subcontracted, that situation doesn't arise: the fitter who tiled your wall still works for us next month.","Every job follows a fixed sequence rather than being scheduled around whoever's available: free survey, itemised written quote, deposit, materials ordered and held at our Tamworth unit, an agreed start date, daily supervision on site, a joint snag-list walk-through, then handover with full paperwork. Sutton customers often tell us the daily continuity â same fitters, same foreman â was the biggest difference versus a previous chain-fitted job.","We're rated 9.85 out of 10 on Checkatrade from 141 reviews and 4.9 on Google from 38+ reviews, both public and both worth ten minutes of your time before you commit to anyone. A 12-month workmanship warranty applies to every job, and manufacturer warranties on products supplied range from 12 months up to a lifetime depending on the brand â all documented at handover."],localProblemsHeading:"What Sutton Coldfield Homeowners Should Watch For",localProblemsContent:["National-chain quotes in Sutton often price the same sanitaryware and tiling 20â30% higher than an independent fitter would, simply because a large retail showroom overhead has to be recovered somewhere in the invoice. We carry comparable product ranges without that overhead.","Subcontracted fitting is the single biggest driver of complaints we hear about from new Sutton customers. If the person tiling your wall doesn't actually work for the company whose name is on the contract, your warranty is only as good as that subcontractor's willingness to come back â and that's outside the company's direct control.","A 'supply-only' deal hands you the project-management job: ordering materials, coordinating trades, chasing delays. That can work if you have the time and inclination, but it's rarely what people picture when they book 'a new bathroom'.","Any quote that isn't broken down line by line is working in the fitter's favour, not yours. Ask to see every fixture, every tile and every labour day costed separately before you sign anything."],processSteps:[{title:"Free Home Survey",description:"We visit your Sutton property, take dimensions, photograph the existing setup and discuss what you want."},{title:"Fixed Itemised Quote",description:"Written quote listing every product, every labour day and any contingencies."},{title:"Showroom Visit (Optional)",description:"Walk through live displays at our Tamworth showroom â 20 minutes via the A38."},{title:"Fit Scheduled & Materials Held",description:"We order and store everything before your start date â no waiting for stock mid-fit."},{title:"Installation by Our Own Team",description:"Employed fitters, plumbers, electricians and tilers â one team, daily supervision."},{title:"Snag List & Handover",description:"Walk the finished room with you, fix anything you flag, then hand over paperwork and warranties."}],faqs:[{q:"How far is your showroom from Sutton Coldfield?",a:"Around 20 minutes via the A453 and A38, or the A5127 through Streetly â most Sutton customers combine a survey with a showroom visit on the same trip."},{q:"Is your Sutton work carried out by your own staff?",a:"Yes, entirely. Every fitter, plumber, electrician and tiler on the job is directly employed by Blue Sky â there's no subcontracted labour on any Sutton project."},{q:"How long does a bathroom take to fit in Sutton Coldfield?",a:"Most full bathrooms take 7â10 working days. Larger renovations in bigger Four Oaks or Little Aston properties, or full wet rooms, typically run 2â3 weeks."},{q:"What's the typical cost of a fitted bathroom in Sutton?",a:"Complete supply-and-fit bathrooms start from around £7,500. Mid-range specifications generally fall between £10,000 and £15,000, with higher-end renovations above that â all fixed and itemised in the quote."},{q:"Do you work around Sutton Park's conservation constraints?",a:"Yes. Several roads bordering Sutton Park, including parts around Monmouth Drive, sit within areas of heightened planning sensitivity for period properties. We plan strip-out, skip placement and access around those requirements at survey stage."},{q:"Can you improve poor water pressure in a Walmley or Falcon Lodge semi?",a:"Often, yes. Many 1960s and 70s Sutton properties still run on narrow-bore supply pipe that limits shower flow. We assess this during the survey and price any upgrade into the quote up front."},{q:"Is parking or access an issue on the tighter streets around Boldmere?",a:"It can be, particularly on terraced sections with limited off-road parking. We plan skip and van access as part of scheduling, and where necessary arrange permits in advance so it doesn't hold up the job."},{q:"Which postcodes do you cover around Sutton Coldfield?",a:"B72, B73, B74, B75 and B76 â Mere Green, Four Oaks, Wylde Green, Walmley, Falcon Lodge, Boldmere and Reddicap Heath."},{q:"Are you insured and Gas Safe registered?",a:"Yes â full public liability and employer'
318s liability insurance, with gas work carried out by Gas Safe registered engineers. Documentation is available on request."}],ctaHeading:"Get a Fixed Quote From Sutton's Local Bathroom Fitters",ctaSubtext:"Free home survey, itemised written quote, no obligation. Most Sutton surveys booked within the same week.",nearbyAreas:[{name:"Tamworth",slug:"tamworth"},{name:"Lichfield",slug:"lichfield"},{name:"Birmingham",slug:"birmingham"},{name:"Walsall",slug:"walsall"},{name:"Cannock",slug:"cannock"}]},b3=()=>r.jsx(H,{data:w3}),v3={slug:"burton-on-trent-bathroom-fitters",name:"Burton-on-Trent",title:"Bathroom Fitters Burton-on-Trent | Blue Sky",metaDescription:"Burton-on-Trent bathroom fitters, showroom 25 minutes away in Tamworth. Employed team, no subcontractors, written warranty. Call 0330 043 2234.",heroHeadline:"Trusted Bathroom Fitters in Burton-on-Trent",heroSubheadline:"Homeowners across Stapenhill, Winshill and Horninglow use us instead of driving into Derby â full showroom, one employed installation team, and a written warranty on every job.",trustMicro:"Covering DE13âDE15 · Showroom 25 mins away · Employed fitters, no subcontractors",localRelevanceContent:["Burton sits roughly equidistant from the bathroom retailers of Derby and the trade counters of Lichfield, which means most homeowners here have never had a genuinely local specialist to call â until now. Our base is 25 minutes north along the A38 in Tamworth, close enough for a same-day survey, far enough to be a proper alternative to a Derby showroom's mark-up.","The route in is simple: A38 south from Tamworth, off at the Branston or Wetmore Road junctions depending which side of town you're on. We make that drive several times a month, which means Burton isn't a place we occasionally quote â it's a regular part of the working week.","Burton's building stock reflects its brewing history as much as its geography. The dense Victorian terraces around Horninglow Street and the town centre were mostly built for brewery workers, with narrow floor plans and original cast-iron stacks that need careful handling during a strip-out. Stapenhill and Winshill, across the river, are largely inter-war and post-war semis where the bathroom is often the smallest room in the house â every millimetre of layout matters. Further out towards Stretton and Branston, the housing shifts to larger 1970s and 80s detached properties with more generous floor plans but frequently outdated shower pumps that need upgrading alongside a refit. Newer estates around Shobnall and the eastern fringes of town are simpler to fit but still benefit from a proper survey to catch anything the developer's original spec missed.","Because the River Trent runs directly through the town, several older properties close to Stapenhill Gardens and the riverside sit on ground conditions that occasionally affect drainage falls â something we check on site rather than assume."],propertyTypes:"Victorian terraces, post-war semis, larger detached homes, modern developments, rural cottages",responseTime:"Free Burton home survey within the same week",commonNeeds:"Full installations, bath-to-shower swaps, ensuites, accessible adaptations",services:[{name:"Full Bathroom Installation",path:"/services/bathroom-installation",description:"Strip-out to snag-list across Burton and the surrounding DE13âDE15 postcodes."},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments",description:"Refreshes that keep your layout and replace what's tired."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Bath-to-shower swaps and frameless walk-ins."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully tanked, fall-graded wet rooms to current building regs."}
318,{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Mobility-led fits with level access and grab rails."},{name:"Cloakroom & Ensuite Fits",path:"/services/cloakroom-ensuite",description:"Tight-space fits where every millimetre matters."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"Higher-specification fits with bespoke tiling and freestanding baths."},{name:"Tiling Services",path:"/services/tiling-services",description:"Porcelain, ceramic, natural stone and large-format wall tiling."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Electric and wet UFH integrated into your fit."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"Live displays 25 minutes away in Tamworth â full bathroom sets, not catalogues."}],whyChooseUsContent:["Two things tend to persuade Burton homeowners to book with us over a Derby retailer: seeing the products fitted out in a full showroom set rather than a brochure photo, and knowing the fitters won't disappear once the final invoice is paid. Both come from the same decision â we run our own showroom and employ our own trades rather than franchising either out.","Jobs run to a fixed sequence: free survey, itemised written quote, deposit, materials ordered and held at our Tamworth unit ahead of the start date, daily on-site supervision, a snag-list walk-through with you present, then handover with full paperwork and warranty documents. Burton customers are often surprised how little changes once the quote is signed â the price agreed at survey is the price paid at completion.","20+ years' experience across the wider area translates into a track record you can check independently: 9.85 out of 10 on Checkatrade from 141 reviews, 4.9 on Google from 38+ reviews, 4.99 out of 5 on TrustATrader from 13 reviews. A 12-month workmanship warranty covers every installation, alongside manufacturer warranties on supplied products ranging from 12 months to a lifetime depending on the brand."],localProblemsHeading:"What Burton Homeowners Should Watch For When Hiring a Fitter",localProblemsContent:["Distance affects warranty response more than most people realise. A retailer based in Derby or Birmingham may quote competitively upfront, but a warranty callout can sit in a queue for weeks. Being 25 minutes north means we're usually able to attend the same day.","'Supply-only' packages transfer the project-management burden onto you â sourcing a fitter, scheduling deliveries, resolving disputes if a product doesn't match the space. We supply and fit as one contract, so there's one point of accountability throughout.","Treat any single-line quote â 'bathroom installation, £X,XXX' â with caution. It tells you nothing about what's actually included and gives you no way to query a cut corner later. Every Blue Sky quote itemises fixtures, tiles, labour days and contingencies separately.","Cash-in-hand arrangements with no invoice leave you with no VAT record and no enforceable warranty. Every job we complete is properly invoiced and backed with written workmanship and product warranties."],processSteps:[{title:"Free Home Survey",description:"We visit your Burton property, take dimensions, photograph the existing setup and discuss what you want."},{title:"Fixed Itemised Quote",description:"Written quote listing every product, every labour day and any contingencies."},{title:"Showroom Visit (Optional)",description:"Walk through live displays at our Tamworth showroom â 25 minutes via the A38."},{title:"Fit Scheduled & Materials Held",description:"We order and store everything before your start date â no waiting for stock mid-fit."},{title:"Installation by Our Own Team",description:"Employed fitters, plumbers, electricians and tilers â one team, daily supervision."},{title:"Snag List & Handover",description:"Walk the finished room with you, fix anything you flag, then hand over paperwork and warranties."}],faqs:[{q:"How do I get to your showroom from Burton?",a:"It's a straightforward run up the A38 to Tamworth, roughly 25 minutes from most parts of Burton. Many customers book a showroom visit straight after their home survey."},{q:"Is any of the work on my Burton bathroom subcontracted?",a:"No. Every fitter, plumber, electrician and tiler working on your job is directly employed by Blue Sky â there's no subcontracted labour on any Burton project."},{q:"How long does a Burton bathroom installation usually take?",a:"Most full bathrooms are fitted in 7â10 working days. Larger renovations and wet rooms typically run 2â3 weeks, confirmed in your schedule before work starts."},{q:"What does a fitted bathroom cost in Burton-on-Trent?",a:"Complete supply-and-fit bathrooms start from around £7,000, with mid-range specifications typically £9,000â£14,000. Higher-specification renovations sit above that. Every quote is fixed and itemised."},{q:"How quickly can you attend if something needs fixing under warranty?",a:"Usually the same day. Being 25 minutes north in Tamworth means we're closer to most of Burton than the Derby-based retailers many homeowners compare us to."},{q:"Do older Horninglow terraces cause problems with drainage falls?",a:"Occasionally â properties nearer the river around Stapenhill Gardens can have ground conditions that affect how easily a wet room or shower drain falls correctly. We check this on site and design the drainage layout to suit."},{q:"Can you upgrade an old shower pump in a Stretton or Branston property?",a:"Yes. Larger 1970s/80s detached homes in that part of Burton often still run older pumped systems. We assess pressure and flow at survey stage and quote any upgrade as part of the fit."},{q:"Which Burton postcodes do you cover?",a:"All of DE13, DE14 and DE15 â town centre, Horninglow, Stapenhill, Winshill, Stretton, Branston, Rolleston and the surrounding villages."},{q:"Are you insured and Gas Safe registered?",a:"Yes â full public liability and employer'
318s liability insurance, with gas work completed by Gas Safe registered engineers. Documentation is available on request."}],ctaHeading:"Get a Fixed Quote From Burton's Trusted Bathroom Fitters",ctaSubtext:"Free home survey, itemised written quote, no obligation. Most Burton surveys booked within the same week.",nearbyAreas:[{name:"Tamworth",slug:"tamworth"},{name:"Swadlincote",slug:"swadlincote"},{name:"Lichfield",slug:"lichfield"},{name:"Derby",slug:"derby"},{name:"Rugeley",slug:"rugeley"}]},x3=()=>r.jsx(H,{data:v3}),k3={slug:"cannock-bathroom-fitters",name:"Cannock",title:"Bathroom Fitters Cannock | Blue Sky",metaDescription:"Bathroom fitters covering Cannock, Hednesford & WS11/WS12. Employed team, Tamworth showroom, full warranty. Call 0330 043 2234.",heroHeadline:"Trusted Bathroom Fitters in Cannock",heroSubheadline:"We design, supply and fit bathrooms across Cannock and the surrounding WS11 / WS12 villages â one employed team, our own Tamworth showroom, full written warranty.",trustMicro:"Covering WS11 & WS12 · Showroom 25 mins via the A5 · Employed fitters, no subcontractors",localRelevanceContent:["Our vans reach Cannock via the A5 and A460 in around 25 minutes, skirting Cannock Chase before dropping into town â a route our fitters know well enough to give realistic arrival windows rather than vague half-day slots.","Cannock has grown in waves, and each one needs a slightly different approach. The town centre and Hednesford still have plenty of solid post-war semis with original cast-iron soil stacks that need assessing before a new shower goes in. Heath Hayes and Chadsmoor are largely 1960s and 70s estate housing with easy stud-wall access, which usually means faster first-fix. Newer estates around Bridgtown and Norton Canes are built to current regs, so the main job there is checking developer-grade fittings haven't been under-specified. Out towards Brewood, Penkridge and the edge of Cannock Chase, properties get larger, older and sometimes off mains water entirely, which changes what we recommend for pressure and filtration.","Cannock Chase itself borders several of the town's outer neighbourhoods, and a handful of properties near the Chase and in the older parts of town sit within areas where planning is more sensitive â something we check before any external pipework changes."],propertyTypes:"Post-war semis, 1960s/70s estates, modern developments, rural cottages and larger detached homes",responseTime:"Free Cannock home survey within the same week",commonNeeds:"Full installations, bath-to-shower swaps, ensuites, accessible adaptations",services:[{name:"Full Bathroom Installation",path:"/services/bathroom-installation",description:"Strip-out to snag-list across Cannock and the surrounding villages."},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments",description:"Refreshes that keep your layout and replace what's tired."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Bath-to-shower swaps and frameless walk-ins."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully tanked, fall-graded wet rooms to current building regs."}
318,{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Mobility-led fits with level access and grab rails."},{name:"Cloakroom & Ensuite Fits",path:"/services/cloakroom-ensuite",description:"Tight-space fits where every millimetre matters."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"Higher-specification fits with bespoke tiling and freestanding baths."},{name:"Tiling Services",path:"/services/tiling-services",description:"Porcelain, ceramic, natural stone and large-format wall tiling."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Electric and wet UFH integrated into your fit."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"Live displays in Tamworth â 25 minutes from Cannock via the A5."}],whyChooseUsContent:["What Cannock customers tend to want, more than anything else, is one company that won't disappear once the deposit's cashed. That's what employing every trade gives you â the plumber, electrician and tiler in your house all answer to the same office that quoted the job, so there's nobody to pass the blame to if something needs revisiting.","Jobs run in the same order every time: survey, fixed itemised quote, deposit, materials ordered and held at our unit ready to go, an agreed start date, daily supervision on site, and a proper snag-list walk-through before handover.","Over 20 years, Florin and the team have built a track record you can check for yourself â 9.85/10 on Checkatrade from 141 reviews, 4.9 on Google from 38, and 4.99/5 on TrustATrader from 13. All genuine, all public."],localProblemsHeading:"Things Worth Knowing Before You Book a Cannock Bathroom Fitter",localProblemsContent:["Several of the bathroom chains operating out of Walsall and Stafford supply the products but subcontract the physical fitting to whoever's available that week. That's how you end up with three different faces in your house and nobody accountable for the finish. Every trade on a Blue Sky job is directly employed.","'Supply-only' packages leave you managing the trades and the timetable yourself â and if the shower tray doesn't match the waste the supplier sent, you're the one stuck negotiating between two companies. We supply and fit as a single job.","A quote that's just one number tells you nothing about where the money's going. Ours are itemised by fixture, tile and labour day so you can see exactly what's included.","Off-the-books cash jobs are still common locally but come with no warranty and no insurance cover if something goes wrong. Every Blue Sky job is invoiced and comes with full written warranties."],processSteps:[{title:"Free Home Survey",description:"We visit your Cannock property, take dimensions, photograph the existing setup and discuss what you want."},{title:"Fixed Itemised Quote",description:"Written quote listing every product, every labour day and any contingencies."},{title:"Showroom Visit (Optional)",description:"Walk through live displays at our Tamworth showroom â 25 minutes via the A5."},{title:"Fit Scheduled & Materials Held",description:"We order and store everything before your start date â no waiting for stock mid-fit."},{title:"Installation by Our Own Team",description:"Employed fitters, plumbers, electricians and tilers â one team, daily supervision."},{title:"Snag List & Handover",description:"Walk the finished room with you, fix anything you flag, then hand over paperwork and warranties."}],faqs:[{q:"What's the drive time from your showroom to Cannock?",a:"Around 25 minutes via the A5 and A460, skirting Cannock Chase into town â a route our fitters and surveyors travel regularly."},{q:"Is my property near Cannock Chase affected by planning restrictions?",a:"Some properties bordering the Chase and older parts of town sit within areas where external alterations need more care. We check this at survey and advise if it affects pipework or venting routes."},{q:"Do the newer estates around Bridgtown have decent water pressure?",a:"Generally yes, as they're built to modern regs, though we still test on every survey â occasionally developer-fit combi boilers are undersized for a powerful mains shower, and we'll flag that before you commit to a spec."},{q:"Can you fit an accessible or level-access bathroom in an older Hednesford semi?",a:"Yes, it's one of the adaptations we're asked for most often in that part of Cannock â post-war semis usually have enough floor space to remove a step-in bath and create level access."},{q:"How much does a bathroom fitting cost in Cannock?",a:"Complete fitted bathrooms typically start from around £7,000 supply-and-fit, with mid-range jobs between £9,000 and £14,000. Every quote is itemised and fixed before work starts."},{q:"Are you insured and Gas Safe registered?",a:"Yes â full insurance, Gas Safe registered engineers, documentation available on request."}],ctaHeading:"Get a Fixed Quote From Cannock's Trusted Bathroom Fitters",ctaSubtext:"Free home survey, itemised written quote, no obligation. Most Cannock surveys booked within the same week.",nearbyAreas:[{name:"Rugeley",slug:"rugeley"},{name:"Lichfield",slug:"lichfield"},{name:"Walsall",slug:"walsall"},{name:"Tamworth",slug:"tamworth"},{name:"Staffordshire",slug:"staffordshire"}]},S3=()=>r.jsx(H,{data:k3}),j3={slug:"atherstone-bathroom-fitters",name:"Atherstone",title:"Bathroom Fitters Atherstone | Blue Sky",metaDescription:"Bathroom fitters covering Atherstone, Mancetter & CV9. Employed team, own Tamworth showroom, full warranty. Call 0330 043 2234.",heroHeadline:"Trusted Bathroom Fitters in Atherstone",heroSubheadline:"We design, supply and fit bathrooms across Atherstone and the wider CV9 â one employed team, our own showroom 15 minutes up the A5 in Tamworth, full written warranty.",trustMicro:"Covering CV9 · Showroom 15 mins away · Employed fitters, no subcontractors",localRelevanceContent:["Atherstone sits just off the A5, close enough to Tamworth that our fitters treat it almost like home turf â fifteen minutes door to door most days, less outside rush hour. It's one of the shortest runs we make regularly, which is why we can often offer tighter start dates here than further-flung towns.","The market town itself is built on hat-making history, and it shows in the housing: narrow-fronted Georgian and Victorian terraces along Long Street and Church Street, several within the town's conservation area, where pipework and waste runs are often tucked into original chimney breasts rather than modern stud walls. A few streets over, the 1950s and 60s semis off Coleshill Road and around Ratcliffe Road are far simpler to re-plumb, and the newer estates around Carlyon Road give us a blank canvas with standard modern first-fix.","Beyond the town, Mancetter, Hartshill, Witherley and Sheepy Magna bring us out to detached rural properties, several on private water systems or older lead supply pipework that needs checking before any new shower goes in â something we flag at survey rather than discovering mid-fit."],propertyTypes:"Victorian terraces, Edwardian villas, post-war semis, modern developments, rural cottages",responseTime:"Free Atherstone home survey within the same week",commonNeeds:"Full installations, bath-to-shower swaps, ensuites, refurbishments",services:[{name:"Full Bathroom Installation",path:"/services/bathroom-installation",description:"Strip-out to snag-list across Atherstone and the surrounding CV9 villages."},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments",description:"Refreshes that keep your layout and replace what's tired."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Bath-to-shower swaps and frameless walk-ins."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully tanked, fall-graded wet rooms to current building regs."},{name:"Cloakroom & Ensuite Fits",path:"/services/cloakroom-ensuite",description:"Tight-space fits where every millimetre matters."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"Higher-specification fits with bespoke tiling and freestanding baths."}
318,{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Mobility-led fits with level access and grab rails."},{name:"Tiling Services",path:"/services/tiling-services",description:"Porcelain, ceramic, natural stone and large-format wall tiling."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Electric and wet UFH integrated into your fit."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"Live displays 15 minutes away in Tamworth â full bathroom sets, not catalogues."}],whyChooseUsContent:["If you've had work done in Atherstone before and the fitter vanished for a fortnight halfway through, you're not alone â it's the complaint we hear most from new customers here. Because our fitters, plumbers and electricians are employed by us and not booked in as favours between other jobs, that simply doesn't happen. One team, one schedule, start to finish.","The process is deliberately unglamorous and repeatable: survey, itemised fixed quote, deposit, materials ordered and held ready, an agreed start date we stick to, daily progress on site, and a proper snag-list walk-through before we hand over the keys and the paperwork.","We're proud that our numbers are checkable rather than claimed â 4.9 from 38+ reviews on Google, 9.85/10 from 141 reviews on Checkatrade, 4.99/5 from 13 on TrustATrader. Read them before you decide, not after."],localProblemsHeading:"What Catches People Out When Hiring in Atherstone",localProblemsContent:["A number of properties around Long Street and the town centre sit inside Atherstone's conservation area, where any external changes â waste pipe runs, extractor vents, even soil stack positioning â need more care and sometimes consent. We handle that assessment as part of the survey, not as an afterthought.","Distance genuinely affects warranty response times. A firm based in Birmingham or Coventry might quote well but take half a day to attend a callout. We're fifteen minutes away, so most issues get a same-day visit.","'Supply-only' deals are common with retailers near Nuneaton and Tamworth retail parks â you buy the suite, then have to find and manage your own fitter. When something's wrong, supplier and fitter blame each other. We supply and fit under one contract, so responsibility doesn't get passed around.","A single lump-sum quote with no breakdown makes it hard to know what you're paying for and easy for corners to be cut without you noticing. Ours list every fixture, tile, labour day and contingency in writing."],processSteps:[{title:"Free Home Survey",description:"We visit your Atherstone property, take dimensions, photograph the existing setup and discuss what you want."},{title:"Fixed Itemised Quote",description:"Written quote listing every product, every labour day and any contingencies."},{title:"Showroom Visit (Optional)",description:"Walk through live displays at our Tamworth showroom â 15 minutes via the A5."},{title:"Fit Scheduled & Materials Held",description:"We order and store everything before your start date â no waiting for stock mid-fit."},{title:"Installation by Our Own Team",description:"Employed fitters, plumbers, electricians and tilers â one team, daily supervision."},{title:"Snag List & Handover",description:"Walk the finished room with you, fix anything you flag, then hand over paperwork and warranties."}],faqs:[{q:"How quickly can you get to Atherstone if there's a problem after the fit?",a:"Usually the same day. Our unit is fifteen minutes up the A5, so most post-fit callouts are attended within hours, not days."},{q:"Is my house in the Atherstone conservation area, and does that affect the fit?",a:"Much of the town centre around Long Street and Church Street falls inside the conservation area. This mainly affects external work like new waste pipe runs or vents â we identify any implications at survey stage and plan around them."},{q:"Do older Atherstone terraces have enough water pressure for a mains shower?",a:"Not always â some of the older terraced streets still run on gravity-fed systems with modest pressure. We test this on every survey and will recommend a pump or unvented cylinder upgrade where needed rather than fitting a shower that will disappoint."},{q:"What villages around Atherstone do you cover?",a:"Mancetter, Hartshill, Witherley, Sheepy Magna, Baddesley Ensor, Grendon and the rest of CV9, alongside Atherstone town itself."},{q:"How long does a typical bathroom take to fit?",a:"Most full bathrooms take 7â10 working days. Larger wet rooms or renovations with structural changes can run to 2â3 weeks."},{q:"Are you insured and Gas Safe registered?",a:"Yes â full insurance and Gas Safe registered engineers, with certificates available on request."}],ctaHeading:"Get a Fixed Quote From Atherstone's Trusted Bathroom Fitters",ctaSubtext:"Free home survey, itemised written quote, no obligation. Most Atherstone surveys booked within the same week.",nearbyAreas:[{name:"Tamworth",slug:"tamworth"},{name:"Nuneaton",slug:"nuneaton"},{name:"Hinckley",slug:"hinckley"},{name:"Coalville",slug:"coalville"},{name:"Lichfield",slug:"lichfield"}]},C3=()=>r.jsx(H,{data:j3}),T3={slug:"nuneaton-bathroom-fitters",name:"Nuneaton",title:"Bathroom Fitters Nuneaton | Blue Sky",metaDescription:"Bathroom fitters covering Nuneaton, Bedworth & CV10-CV12. Employed team, own Tamworth showroom, full warranty. Call 0330 043 2234.",heroHeadline:"Trusted Bathroom Fitters in Nuneaton",heroSubheadline:"We design, supply and fit bathrooms across Nuneaton, Bedworth and the wider CV10/CV11 â one employed team, our own Tamworth showroom 25 minutes away, full written warranty.",trustMicro:"Covering CV10, CV11 &
318CV12 · Showroom 25 mins via the A5 · Employed fitters",localRelevanceContent:["Take the A5 out of Tamworth towards Atherstone, cut down through Mancetter and you're into Nuneaton in around 25 minutes â a run our vans make several times most weeks. It's a straightforward drive, which matters when a fitter needs to be back on site quickly for a snag or a supplier delivery.","The town's housing tells a story in layers. Down by Riversley Park and Abbey Green the terraces are Victorian, with narrow stacks and original soil pipes that need careful thought before a wet room goes in. Head out to Weddington or Whitestone and you're into 1930s semis with bigger box rooms that convert nicely into ensuites. Further out towards Bulkington and Ansley the properties get bigger and older, often with private boreholes or softened water that changes how we spec sealant and grout.","We work this patch often enough to know which streets have combi boilers fitted in the loft (common in the Camp Hill estates) versus older gravity-fed systems still found in parts of Stockingford â a detail that changes the shower and pressure options we'll recommend before we've even measured up."],propertyTypes:"Victorian terraces, 1930s semis, post-war estates, modern developments, rural properties around Bulkington",responseTime:"Free Nuneaton home survey within the same week",commonNeeds:"Full installations, bath-to-shower swaps, ensuites, wet rooms",services:[{name:"Full Bathroom Installation",path:"/services/bathroom-installation",description:"Strip-out to snag-list across Nuneaton, Bedworth and the surrounding CV postcodes."},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments",description:"Refreshes that keep your layout and replace what's tired."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Bath-to-shower swaps and frameless walk-ins."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully tanked, fall-graded wet rooms to current building regs."},{name:"Cloakroom & Ensuite Fits",path:"/services/cloakroom-ensuite",description:"Tight-space fits where every millimetre matters."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"Higher-specification fits with bespoke tiling and freestanding baths."}
318,{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Mobility-led fits with level access and grab rails."},{name:"Tiling Services",path:"/services/tiling-services",description:"Porcelain, ceramic, natural stone and large-format wall tiling."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Electric and wet UFH integrated into your fit."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"Live displays in Tamworth â 25 minutes from Nuneaton via the A5."}],whyChooseUsContent:["Ask around Stockingford or Weddington and the same two complaints come up about past bathroom jobs: the fitter went quiet halfway through, or nobody came back once a tile cracked. Neither happens with us, for a simple reason â Florin and the team on your job are on our payroll, not hired in for the week. If a snag shows up in month eleven, it's the same firm, often the same face, that deals with it.","There's no mystery to how a job runs: survey, fixed itemised quote, deposit, materials ordered and held at our unit, agreed start date, then daily progress with a proper snag-list walk-through at the end. Nothing gets left to chance because we're not juggling three other jobs with borrowed labour.","Over 20 years we've built a reputation you can check yourself rather than take our word for â 4.9 out of 5 on Google from 38+ reviews, 9.85/10 on Checkatrade from 141 reviews, and 4.99/5 on TrustATrader from 13. All public, all genuine."],localProblemsHeading:"Questions Nuneaton Homeowners Ask Before Booking a Fitter",localProblemsContent:["Several of the bigger Coventry-based bathroom chains quote well on paper but subcontract the actual fitting out to whichever tradesperson is free that week â meaning the person who sold you the job never picks up a tool. We don't do that. Every trade you meet is directly employed.","'Supply-only' arrangements are common with the big-box retailers near the Bermuda Park retail park â you buy the suite, then find your own fitter and hope the two line up. When they don't, nobody takes responsibility. We supply and fit as one job, so there's one point of contact throughout.","A quote that's just a single total figure hides where the money's going and makes it impossible to spot corners being cut. Ours itemise every fixture, tile and labour day so you know exactly what you're paying for.","Undocumented cash jobs are still common in the area but leave you with no warranty and no comeback if things go wrong. Every Blue Sky job is invoiced properly with full workmanship and manufacturer warranties attached."],processSteps:[{title:"Free Home Survey",description:"We visit your Nuneaton property, take dimensions, photograph the existing setup and discuss what you want."},{title:"Fixed Itemised Quote",description:"Written quote listing every product, every labour day and any contingencies."},{title:"Showroom Visit (Optional)",description:"Walk through live displays at our Tamworth showroom â 25 minutes via the A5."},{title:"Fit Scheduled & Materials Held",description:"We order and store everything before your start date â no waiting for stock mid-fit."},{title:"Installation by Our Own Team",description:"Employed fitters, plumbers, electricians and tilers â one team, daily supervision."},{title:"Snag List & Handover",description:"Walk the finished room with you, fix anything you flag, then hand over paperwork and warranties."}],faqs:[{q:"How far is your showroom from Nuneaton?",a:"Our showroom is on Cavendish in Tamworth, roughly a 25-minute drive up the A5 through Mancetter and Atherstone. We're happy to arrange a visit alongside your home survey."},{q:"Will my job be subcontracted out?",a:"No â every fitter, plumber, electrician and tiler working in your Nuneaton home is directly employed by Blue Sky, not a hired-in subcontractor."},{q:"My Victorian terrace near Riversley Park has an old soil stack â is that a problem?",a:"It's something we plan around rather than avoid. Many of the terraces around Abbey Green and Riversley Park need the stack assessed and sometimes re-routed before a modern shower or wet room can be tanked correctly â we cover this at survey stage."},{q:"Do you fit bathrooms on the newer Nuneaton estates, like around Horeston Grange?",a:"Yes. Newer builds are generally more straightforward to work in, though we still check pressure and existing waste runs, since developer-fit bathrooms are sometimes done to a minimum spec."},{q:"How much does a bathroom cost to fit in Nuneaton?",a:"Complete fitted bathrooms typically start around £7,000 supply-and-fit, with mid-range projects landing between £9,000 and £14,000 depending on tiling and fittings. Every quote is itemised before work starts."},{q:"Are you insured and Gas Safe registered?",a:"Yes â full insurance and Gas Safe registered engineers, with documentation available on request."}],ctaHeading:"Get a Fixed Quote From Nuneaton's Trusted Bathroom Fitters",ctaSubtext:"Free home survey, itemised written quote, no obligation. Most Nuneaton surveys booked within the same week.",nearbyAreas:[{name:"Tamworth",slug:"tamworth"},{name:"Atherstone",slug:"atherstone"},{name:"Hinckley",slug:"hinckley"},{name:"Coalville",slug:"coalville"},{name:"Lichfield",slug:"lichfield"}]},B3=()=>r.jsx(H,{data:T3}),W3={slug:"rugeley-bathroom-fitters",name:"Rugeley",title:"Bathroom Fitters Rugeley | Blue Sky",metaDescription:"Bathroom fitters covering Rugeley, Brereton & WS15. Employed team, Tamworth showroom, full warranty. Call 0330 043 2234.",heroHeadline:"Trusted Bathroom Fitters in Rugeley",heroSubheadline:"We design, supply and fit bathrooms across Rugeley and the surrounding WS15 villages â one employed team, our own Tamworth showroom, full written warranty.",trustMicro:"Covering WS15 · Showroom 20 mins via the A51 · Employed fitters, no subcontractors",localRelevanceContent:["Rugeley is a straightforward 20-minute run for us â out of Tamworth on the A51 through Fazeley and Lichfield's edge, then on towards Cannock Chase. It's close enough that we can often turn a survey around within days rather than weeks.","The town grew up around coal and power generation, and
318you can still read that history in the building stock: the older colliery-era terraces in the town centre have narrow bathrooms squeezed into former box rooms, often needing careful re-planning to fit a modern shower without losing floor space. Around Hagley and Etching Hill, post-war semis are more forgiving to work in, with easier access to stud walls and joists. The newer housing off Power Station Road and Western Springs â built on and around the old power station site â comes with modern first-fix as standard, so the work there tends to focus on upgrading developer-grade fittings rather than fighting old pipework.","Further out, Brereton, Armitage and Handsacre bring us to larger detached properties, several with septic systems or private water supplies that need checking before we finalise a spec, particularly for high-flow shower systems."],propertyTypes:"Post-war semis, colliery-era terraces, modern developments, rural cottages and larger detached properties",responseTime:"Free Rugeley home survey within the same week",commonNeeds:"Full installations, bath-to-shower swaps, ensuites, accessible adaptations",services:[{name:"Full Bathroom Installation",path:"/services/bathroom-installation",description:"Strip-out to snag-list across Rugeley and surrounding villages."},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments",description:"Refreshes that keep your layout and replace what's tired."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Bath-to-shower swaps and frameless walk-ins."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully tanked, fall-graded wet rooms to current building regs."}
318,{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Mobility-led fits with level access and grab rails."},{name:"Cloakroom & Ensuite Fits",path:"/services/cloakroom-ensuite",description:"Tight-space fits where every millimetre matters."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"Higher-specification fits with bespoke tiling and freestanding baths."},{name:"Tiling Services",path:"/services/tiling-services",description:"Porcelain, ceramic, natural stone and large-format wall tiling."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Electric and wet UFH integrated into your fit."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"Live displays in Tamworth â 20 minutes from Rugeley via the A51."}],whyChooseUsContent:["Rugeley homeowners are often replacing bathrooms that were fitted decades ago by long-retired local tradesmen, and the question we're asked most is simple: who will actually be accountable if something goes wrong in a year's time? The answer is us, directly â every fitter, plumber and electrician on the job is employed by Blue Sky, not brought in as a favour or a subcontract.","Every job follows the same structure: home survey, fixed itemised quote, deposit, materials ordered and held ready, an agreed start date, daily progress on site, then a proper snag-list walk-through before handover â nothing left loose at the end.","Two decades of work has built a track record that's easy to check rather than take on trust: 9.85/10 on Checkatrade from 141 reviews, 4.9 on Google from 38, and 4.99/5 on TrustATrader from 13."],localProblemsHeading:"Before You Hire a Fitter in Rugeley",localProblemsContent:["Older colliery-era terraces in the town centre sometimes have shared or awkwardly routed waste pipes between neighbouring properties â something that can catch out fitters unfamiliar with the area's history. We check drainage layout at survey rather than assuming a standard modern run.","Chains supplying bathrooms via Cannock or Stafford showrooms often subcontract the installation itself, meaning your warranty depends on their relationship with a fitter you never met at quote stage. We employ ours directly.","'Supply-only' deals leave the coordination between products and fitting entirely on you â if the panel doesn't match the shower tray, you're stuck mediating between two companies. We handle both under one contract.","Undocumented cash-in-hand jobs remain common but carry no warranty and no insurance if a leak causes damage later. Every Blue Sky job is invoiced, VAT-registered and fully warranted."],processSteps:[{title:"Free Home Survey",description:"We visit your Rugeley property, take dimensions, photograph the existing setup and discuss what you want."},{title:"Fixed Itemised Quote",description:"Written quote listing every product, every labour day and any contingencies."},{title:"Showroom Visit (Optional)",description:"Walk through live displays at our Tamworth showroom â 20 minutes via the A51."},{title:"Fit Scheduled & Materials Held",description:"We order and store everything before your start date â no waiting for stock mid-fit."},{title:"Installation by Our Own Team",description:"Employed fitters, plumbers, electricians and tilers â one team, daily supervision."},{title:"Snag List & Handover",description:"Walk the finished room with you, fix anything you flag, then hand over paperwork and warranties."}],faqs:[{q:"How long does it take to get from Tamworth to Rugeley?",a:"About 20 minutes via the A51 through Fazeley and past Lichfield, which is why we can usually offer prompt survey and start dates for Rugeley jobs."},{q:"My house is an old colliery terrace â will the bathroom be tricky to re-plan?",a:"Often, yes, but it's familiar territory for us. Many of Rugeley's older terraces have compact bathrooms and unusual waste routing from the town's mining-era building boom, and we plan the layout around that at survey stage rather than assuming a standard run."},{q:"Do properties out near Brereton and Armitage need special water checks?",a:"Some do â a number of larger rural properties in that area are on private water supplies or septic systems, which affects the pressure and filtration we'd specify for a new shower. We test for this on every rural survey."},{q:"Can you fit a bathroom in the newer developments near the old power station site?",a:"Yes â these are generally the easiest properties to work in, though we still check that developer-fitted boilers and shower valves are up to the spec you actually want, rather than the builder's minimum."},{q:"How much should I budget for a new bathroom in Rugeley?",a:"Complete fitted bathrooms typically start from around £7,000 supply-and-fit, with mid-range projects between £9,000 and £14,000. Every quote is itemised and fixed before work begins."},{q:"Are you insured and Gas Safe registered?",a:"Yes â full public liability and employer'
318s liability insurance, plus Gas Safe registered engineers, with documentation on request."}],ctaHeading:"Get a Fixed Quote From Rugeley's Trusted Bathroom Fitters",ctaSubtext:"Free home survey, itemised written quote, no obligation. Most Rugeley surveys booked within the same week.",nearbyAreas:[{name:"Cannock",slug:"cannock"},{name:"Lichfield",slug:"lichfield"},{name:"Tamworth",slug:"tamworth"},{name:"Burton-on-Trent",slug:"burton-on-trent"},{name:"Staffordshire",slug:"staffordshire"}]},N3=()=>r.jsx(H,{data:W3}),A3={slug:"swadlincote-bathroom-fitters",name:"Swadlincote",title:"Bathroom Fitters Swadlincote | Local Installers | Blue Sky",metaDescription:"Swadlincote bathroom fitters â independent, employed team, own Tamworth showroom 25 minutes away. No subcontractors, full warranty. Call 0330 043 2234.",heroHeadline:"Trusted Bathroom Fitters in Swadlincote",heroSubheadline:"We design, supply and fit bathrooms across Swadlincote and the surrounding DE11 / DE12 villages â one employed team, our own Tamworth showroom, full written warranty.",trustMicro:"Covering DE11 & DE12 · Showroom 25 mins via the A444 · Employed fitters, no subcontractors",localRelevanceContent:["Search 'bathroom fitters Swadlincote' and you'll find a handful of sole traders alongside national chains operating out of Derby or Burton. Blue Sky is independent and end-to-end â our own showroom on Cavendish in Tamworth (around 25 minutes via the A444), our own design team, and our own employed installer
318s.","The same business that surveys your bathroom quotes it, fits it and answers the phone after handover. No subcontracted trades, no third-party finishers, no chain of suppliers to chase.","We've fitted bathrooms across Swadlincote's full housing mix â the ex-mining terraces in Newhall and Church Gresley, the post-war semis through Midway and Woodville, the newer estates around Hartshorne and Castle Gresley, and the older properties out toward Overseal, Linton and Walton-on-Trent. Local familiarity with DE11 and DE12 keeps quotes tight and timelines realistic."],propertyTypes:"Ex-mining terraces, post-war semis, modern estates, rural cottages and larger village properties",responseTime:"Free Swadlincote home survey within the same week",commonNeeds:"Full installations, bath-to-shower swaps, ensuites, accessible adaptations",services:[{name:"Full Bathroom Installation",path:"/services/bathroom-installation",description:"Strip-out to snag-list across Swadlincote and surrounding villages."},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments",description:"Refreshes that keep your layout and replace what's tired."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Bath-to-shower swaps and frameless walk-ins."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully tanked, fall-graded wet rooms to current building regs."}
318,{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Mobility-led fits with level access and grab rails."},{name:"Cloakroom & Ensuite Fits",path:"/services/cloakroom-ensuite",description:"Tight-space fits where every millimetre matters."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"Higher-specification fits with bespoke tiling and freestanding baths."},{name:"Tiling Services",path:"/services/tiling-services",description:"Porcelain, ceramic, natural stone and large-format wall tiling."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Electric and wet UFH integrated into your fit."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"Live displays in Tamworth â 25 minutes from Swadlincote via the A444."}],whyChooseUsContent:["Swadlincote customers hire us for the same reason most do: they want one team to take responsibility for the whole bathroom â design, supply, fit, snag and warranty. We solve that by employing every trade, owning every product line, and standing behind both with written warranties.","Every fit follows the same sequence: free home survey, fixed itemised quote, deposit, materials ordered and stored, agreed start date, daily supervision, snag-list, handover with paperwork.","Checkatrade rates us 9.85/10 from 141 reviews. Google rates us 4.9 from 38+ reviews. Both are public."],localProblemsHeading:"What Swadlincote Homeowners Should Watch For",localProblemsContent:["'Supply-only' deals from Derby and Burton chains push the fitting onto whoever you can find. We supply and fit so the buck stops with us.","Subcontracted installation is the single biggest source of bathroom-fit complaints. Your warranty is only as strong as a stranger's willingness to come back.","Quotes without itemisation protect the fitter, not you. Our quotes list every fixture, tile, labour day and contingency.","Cash-in-hand work means no warranty, no insurance, no recourse. Every Blue Sky job is invoiced, VAT-registered and fully warranted."],processSteps:[{title:"Free Home Survey",description:"We visit your Swadlincote property, take dimensions, photograph the existing setup and discuss what you want."},{title:"Fixed Itemised Quote",description:"Written quote listing every product, every labour day and any contingencies."},{title:"Showroom Visit (Optional)",description:"Walk through live displays at our Tamworth showroom â 25 minutes via the A444."},{title:"Fit Scheduled & Materials Held",description:"We order and store everything before your start date."},{title:"Installation by Our Own Team",description:"Employed fitters, plumbers, electricians and tilers â one team, daily supervision."},{title:"Snag List & Handover",description:"Walk the finished room with you, fix anything you flag, then hand over paperwork and warranties."}],faqs:[{q:"Are you based in Swadlincote?",a:"Our showroom and unit are in Tamworth, around 25 minutes from Swadlincote via the A444. We cover DE11 and DE12 regularly."},{q:"Do you use subcontractors?",a:"No. Every trade on your bathroom is employed by Blue Sky."},{q:"How long does a typical Swadlincote bathroom fit take?",a:"Most full bathrooms are fitted in 7â10 working days. Wet rooms and larger renovations can run 2â3 weeks."},{q:"How much do bathroom fitters cost in Swadlincote?",a:"Complete fitted bathrooms in Swadlincote start from around £7,000 supply-and-fit. Mid-range fits typically land between £9,000 and £14,000. Every quote is itemised and fixed."},{q:"What areas of Swadlincote do you cover?",a:"All of DE11 and DE12 â Swadlincote town, Newhall, Church Gresley, Castle Gresley, Midway, Woodville, Hartshorne, Overseal and surrounding villages."},{q:"Are you insured and Gas Safe registered?",a:"Yes â full insurance, Gas Safe engineers, documentation on request."}],ctaHeading:"Get a Fixed Quote From Swadlincote's Trusted Bathroom Fitters",ctaSubtext:"Free home survey, itemised written quote, no obligation. Most Swadlincote surveys booked within the same week.",nearbyAreas:[{name:"Burton-on-Trent",slug:"burton-on-trent"},{name:"Tamworth",slug:"tamworth"},{name:"Coalville",slug:"coalville"},{name:"Derby",slug:"derby"},{name:"Staffordshire",slug:"staffordshire"}]},E3=()=>r.jsx(H,{data:A3}),F3={slug:"hinckley-bathroom-fitters",name:"Hinckley",title:"Bathroom Fitters Hinckley | Local Installer
318s | Blue Sky",metaDescription:"Hinckley bathroom fitters â independent, employed team, own Tamworth showroom 30 minutes away. No subcontractors, full warranty. Call 0330 043 2234.",heroHeadline:"Trusted Bathroom Fitters in Hinckley",heroSubheadline:"We design, supply and fit bathrooms across Hinckley and the surrounding LE10 villages â one employed team, our own Tamworth showroom, full written warranty.",trustMicro:"Covering LE10 · Showroom 30 mins via the A5 · Employed fitters, no subcontractors",localRelevanceContent:["Search 'bathroom fitters Hinckley' and you'll find a busy mix â Leicester-based chains, Nuneaton sole traders, and a handful of small Hinckley outfits. Blue Sky is independent and end-to-end â our own showroom on Cavendish in Tamworth (around 30 minutes east via the A5), our own design team, and our own employed installers.","The same business that surveys your bathroom quotes it, fits it, and answers the phone after handover. No subcontractors, no third-party finishers, no chain of suppliers to chase when something goes wrong.","We've fitted bathrooms across Hinckley's full housing mix â the Edwardian and inter-war terraces in the town centre, the post-war semis around Burbage, the newer estates off Sketchley and Earl Shilton Road, and the larger village properties out toward Stoke Golding, Higham-on-the-Hill and Burton Hastings. Local familiarity with LE10 keeps quotes accurate and timelines realistic."],propertyTypes:"Edwardian terraces, inter-war and post-war semis, modern estates, larger village properties",responseTime:"Free Hinckley home survey within the same week",commonNeeds:"Full installations, bath-to-shower swaps, ensuites, accessible adaptations",services:[{name:"Full Bathroom Installation",path:"/services/bathroom-installation",description:"Strip-out to snag-list across Hinckley and surrounding villages."},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments",description:"Refreshes that keep your layout and replace what's tired."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Bath-to-shower swaps and frameless walk-ins."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully tanked, fall-graded wet rooms to current building regs."}
318,{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Mobility-led fits with level access and grab rails."},{name:"Cloakroom & Ensuite Fits",path:"/services/cloakroom-ensuite",description:"Tight-space fits where every millimetre matters."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"Higher-specification fits with bespoke tiling and freestanding baths."},{name:"Tiling Services",path:"/services/tiling-services",description:"Porcelain, ceramic, natural stone and large-format wall tiling."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Electric and wet UFH integrated into your fit."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"Live displays in Tamworth â 30 minutes from Hinckley via the A5."}],whyChooseUsContent:["Hinckley customers hire us because they want one team to take responsibility for the whole bathroom â design, supply, fit, snag and warranty. We employ every trade, own every product line, and back both with written workmanship and product warranties.","Every fit runs the same sequence: free home survey, fixed itemised quote, deposit, materials ordered and stored, agreed start date, daily supervision, snag-list, handover.","Checkatrade rates us 9.85/10 from 141 reviews. Google rates us 4.9 from 38+ reviews. Both are public."],localProblemsHeading:"What Hinckley Homeowners Should Watch For",localProblemsContent:["'Supply-only' Leicester chains push the fitting onto whoever you can find. We supply and fit so the buck stops with us.","Subcontracted installation is the biggest source of bathroom-fit complaints. Your warranty is only as strong as a stranger's willingness to come back.","Quotes without itemisation protect the fitter, not you. Our quotes list every fixture, tile, labour day and contingency.","Cash-in-hand work means no warranty, no insurance, no recourse. Every Blue Sky job is invoiced, VAT-registered and fully warranted."],processSteps:[{title:"Free Home Survey",description:"We visit your Hinckley property, take dimensions and photograph the existing setup."},{title:"Fixed Itemised Quote",description:"Written quote listing every product, every labour day and any contingencies."},{title:"Showroom Visit (Optional)",description:"Walk through live displays at our Tamworth showroom â 30 minutes via the A5."},{title:"Fit Scheduled & Materials Held",description:"We order and store everything before your start date."},{title:"Installation by Our Own Team",description:"Employed fitters, plumbers, electricians and tilers â one team, daily supervision."},{title:"Snag List & Handover",description:"Walk the finished room with you, fix anything you flag, then hand over paperwork and warranties."}],faqs:[{q:"Are you based in Hinckley?",a:"Our showroom and unit are in Tamworth, around 30 minutes from Hinckley via the A5. We cover LE10 regularly."},{q:"Do you use subcontractors?",a:"No. Every trade on your bathroom is employed by Blue Sky."},{q:"How long does a typical Hinckley bathroom fit take?",a:"Most full bathrooms are fitted in 7â10 working days. Wet rooms and larger renovations can run 2â3 weeks."},{q:"How much do bathroom fitters cost in Hinckley?",a:"Complete fitted bathrooms in Hinckley start from around £7,000 supply-and-fit. Mid-range fits typically land between £9,000 and £14,000. Every quote is itemised and fixed."},{q:"What areas of Hinckley do you cover?",a:"All of LE10 â Hinckley town, Burbage, Sketchley, Stoke Golding, Higham-on-the-Hill, Burton Hastings and surrounding villages."},{q:"Are you insured and Gas Safe registered?",a:"Yes â full insurance, Gas Safe engineers, documentation on request."}],ctaHeading:"Get a Fixed Quote From Hinckley's Trusted Bathroom Fitters",ctaSubtext:"Free home survey, itemised written quote, no obligation. Most Hinckley surveys booked within the same week.",nearbyAreas:[{name:"Nuneaton",slug:"nuneaton"},{name:"Atherstone",slug:"atherstone"},{name:"Tamworth",slug:"tamworth"},{name:"Coalville",slug:"coalville"},{name:"Warwickshire",slug:"warwickshire"}]},q3=()=>r.jsx(H,{data:F3}),P3={slug:"coalville-bathroom-fitters",name:"Coalville",title:"Bathroom Fitters Coalville | Local Installer
318s | Blue Sky",metaDescription:"Coalville bathroom fitters â independent, employed team, own Tamworth showroom 30 minutes away. No subcontractors, full warranty. Call 0330 043 2234.",heroHeadline:"Trusted Bathroom Fitters in Coalville",heroSubheadline:"We design, supply and fit bathrooms across Coalville and the surrounding LE67 villages â one employed team, our own Tamworth showroom, full written warranty.",trustMicro:"Covering LE67 · Showroom 30 mins via the A511 · Employed fitters, no subcontractors",localRelevanceContent:["Coalville homeowners searching for bathroom fitters typically find a thin mix â a handful of local sole traders alongside Leicester and Loughborough chains. Blue Sky is independent and end-to-end â our own showroom on Cavendish in Tamworth (around 30 minutes via the A511), our own design team, and our own employed installers.","The same business that surveys your bathroom quotes it, fits it, and answers the phone after handover. No subcontractors, no finger-pointing, no warranty ghosting.","We've fitted bathrooms across Coalville's full housing mix â the ex-mining terraces through Whitwick and Hugglescote, the post-war semis in Greenhill and Bardon, the newer estates around Stephenson Way and Thringstone, and the larger village properties out toward Ibstock, Ravenstone and Swannington. Local familiarity with LE67 keeps quotes tight and timelines realistic."],propertyTypes:"Ex-mining terraces, post-war semis, modern estates, larger village properties",responseTime:"Free Coalville home survey within the same week",commonNeeds:"Full installations, bath-to-shower swaps, ensuites, accessible adaptations",services:[{name:"Full Bathroom Installation",path:"/services/bathroom-installation",description:"Strip-out to snag-list across Coalville and surrounding villages."},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments",description:"Refreshes that keep your layout and replace what's tired."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Bath-to-shower swaps and frameless walk-ins."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully tanked, fall-graded wet rooms to current building regs."}
318,{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Mobility-led fits with level access and grab rails."},{name:"Cloakroom & Ensuite Fits",path:"/services/cloakroom-ensuite",description:"Tight-space fits where every millimetre matters."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"Higher-specification fits with bespoke tiling and freestanding baths."},{name:"Tiling Services",path:"/services/tiling-services",description:"Porcelain, ceramic, natural stone and large-format wall tiling."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Electric and wet UFH integrated into your fit."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"Live displays in Tamworth â 30 minutes from Coalville via the A511."}],whyChooseUsContent:["Coalville customers hire us because they want one team responsible for the whole bathroom â design, supply, fit, snag and warranty. We employ every trade, own every product line, and back both with written workmanship and product warranties.","Every fit runs the same sequence: free home survey, fixed itemised quote, deposit, materials ordered and stored, agreed start date, daily supervision, snag-list, handover.","Checkatrade rates us 9.85/10 from 141 reviews. Google rates us 4.9 from 38+ reviews. Both are public."],localProblemsHeading:"What Coalville Homeowners Should Watch For",localProblemsContent:["'Supply-only' Leicester chains push the fitting onto whoever you can find. We supply and fit so the buck stops with us.","Subcontracted installation is the biggest source of bathroom-fit complaints. Your warranty is only as strong as a stranger's willingness to come back.","Quotes without itemisation protect the fitter, not you. Our quotes list every fixture, tile, labour day and contingency.","Cash-in-hand work means no warranty, no insurance, no recourse. Every Blue Sky job is invoiced, VAT-registered and fully warranted."],processSteps:[{title:"Free Home Survey",description:"We visit your Coalville property, take dimensions and photograph the existing setup."},{title:"Fixed Itemised Quote",description:"Written quote listing every product, every labour day and any contingencies."},{title:"Showroom Visit (Optional)",description:"Walk through live displays at our Tamworth showroom â 30 minutes via the A511."},{title:"Fit Scheduled & Materials Held",description:"We order and store everything before your start date."},{title:"Installation by Our Own Team",description:"Employed fitters, plumbers, electricians and tilers â one team, daily supervision."},{title:"Snag List & Handover",description:"Walk the finished room with you, fix anything you flag, then hand over paperwork and warranties."}],faqs:[{q:"Are you based in Coalville?",a:"Our showroom and unit are in Tamworth, around 30 minutes from Coalville via the A511. We cover LE67 regularly."},{q:"Do you use subcontractors?",a:"No. Every trade on your bathroom is employed by Blue Sky."},{q:"How long does a typical Coalville bathroom fit take?",a:"Most full bathrooms are fitted in 7â10 working days. Wet rooms and larger renovations can run 2â3 weeks."},{q:"How much do bathroom fitters cost in Coalville?",a:"Complete fitted bathrooms in Coalville start from around £7,000 supply-and-fit. Mid-range fits typically land between £9,000 and £14,000. Every quote is itemised and fixed."},{q:"What areas of Coalville do you cover?",a:"All of LE67 â Coalville town, Whitwick, Hugglescote, Greenhill, Bardon, Thringstone, Ibstock, Ravenstone, Swannington and surrounding villages."},{q:"Are you insured and Gas Safe registered?",a:"Yes â full insurance, Gas Safe engineers, documentation on request."}],ctaHeading:"Get a Fixed Quote From Coalville's Trusted Bathroom Fitters",ctaSubtext:"Free home survey, itemised written quote, no obligation. Most Coalville surveys booked within the same week.",nearbyAreas:[{name:"Hinckley",slug:"hinckley"},{name:"Swadlincote",slug:"swadlincote"},{name:"Atherstone",slug:"atherstone"},{name:"Tamworth",slug:"tamworth"},{name:"Burton-on-Trent",slug:"burton-on-trent"}]},R3=()=>r.jsx(H,{data:P3}),L3={slug:"ashby-bathroom-fitters",name:"Ashby-de-la-Zouch",title:"Bathroom Fitters Ashby-de-la-Zouch | Blue Sky Bathrooms",metaDescription:"Ashby-de-la-Zouch bathroom fitters â independent, employed team, own Tamworth showroom 25 minutes away. No subcontractors, full warranty. Call 0330 043 2234.",heroHeadline:"Trusted Bathroom Fitters in Ashby-de-la-Zouch",heroSubheadline:"We design, supply and fit bathrooms across Ashby and the surrounding LE65 villages â one employed team, our own Tamworth showroom, full written warranty.",trustMicro:"Covering LE65 · Showroom 25 mins via the A42 · Employed fitters, no subcontractors",localRelevanceContent:["Ashby-de-la-Zouch sits in one of the most affluent corners of north-west Leicestershire, and homeowners here tend to want bathrooms specified and finished to a higher standard than the regional chain product allows. Blue Sky is independent and end-to-e
318nd â our own showroom on Cavendish in Tamworth (around 25 minutes via the A42), our own design team, and our own employed installers.","The same business that surveys your bathroom quotes it, fits it and answers the phone after handover. No subcontractors, no third-party finishers.","We've fitted bathrooms across Ashby's full housing mix â the Georgian and Regency townhouses around Market Street and South Street, the Victorian villas off Burton Road, the larger inter-war and post-war detached homes in Willesley and Smisby, and the newer executive estates around Money Hill and Holywell. We're equally at home in the surrounding villages â Measham, Packington, Heather and Coleorton."],propertyTypes:"Georgian and Regency townhouses, Victorian villas, inter-war detached, executive estates, village properties",responseTime:"Free Ashby home survey within the same week",commonNeeds:"Higher-spec full fits, ensuite additions, freestanding-bath renovations, accessible adaptations",services:[{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"Higher-specification fits with bespoke tiling, freestanding baths and concealed cisterns â popular across Ashby."},{name:"Full Bathroom Installation",path:"/services/bathroom-installation",description:"Strip-out to snag-list across Ashby and surrounding villages."},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments",description:"Refreshes that keep your layout and replace what's tired."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Bath-to-shower swaps and frameless walk-ins."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully tanked, fall-graded wet rooms to current building regs."},{name:"Cloakroom & Ensuite Fits",path:"/services/cloakroom-ensuite",description:"Tight-space fits where every millimetre matters â common in Ashby's older townhouses."},{name:"Tiling Services",path:"/services/tiling-services",description:"Porcelain, ceramic, natural stone and large-format wall tiling."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Electric and wet UFH integrated into your fit."}
318,{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Mobility-led fits with level access and grab rails."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"Live displays in Tamworth â 25 minutes from Ashby via the A42."}],whyChooseUsContent:["Ashby customers hire us when they've outgrown the regional chains and don't want to project-manage a string of separate trades themselves. We employ every trade â designer, fitter, plumber, electrician, tiler â and back the result with written workmanship and product warranties.","Every fit runs the same sequence: free home survey, fixed itemised quote, deposit, materials ordered and stored, agreed start date, daily supervision, snag-list, handover.","Checkatrade rates us 9.85/10 from 141 reviews. Google rates us 4.9 from 38+ reviews. Both are public."],localProblemsHeading:"What Ashby Homeowners Should Watch For",localProblemsContent:["Ashby's older townhouses often have non-standard floor heights, lath-and-plaster walls and original soil stacks. Cheap quotes that don't budget for these realities run over fast. Our surveys flag them upfront.","'Supply-only' chains push fitting onto whoever you can find. We supply and fit so the buck stops with us.","Subcontracted installation is the biggest source of complaints. Your warranty is only as strong as a stranger's willingness to come back.","Quotes without itemisation protect the fitter, not you. Our quotes list every fixture, tile, labour day and contingency."],processSteps:[{title:"Free Home Survey",description:"We visit your Ashby property, take dimensions and photograph the existing setup."},{title:"Fixed Itemised Quote",description:"Written quote listing every product, every labour day and any contingencies."},{title:"Showroom Visit (Optional)",description:"Walk through live displays at our Tamworth showroom â 25 minutes via the A42."},{title:"Fit Scheduled & Materials Held",description:"We order and store everything before your start date."},{title:"Installation by Our Own Team",description:"Employed fitters, plumbers, electricians and tilers â one team, daily supervision."},{title:"Snag List & Handover",description:"Walk the finished room with you, fix anything you flag, then hand over paperwork and warranties."}],faqs:[{q:"Are you based in Ashby-de-la-Zouch?",a:"Our showroom and unit are in Tamworth, around 25 minutes from Ashby via the A42. We cover LE65 regularly."},{q:"Can you work on listed or older Ashby townhouses?",a:"Yes. We handle period property quirks routinely â non-standard floor heights, lath-and-plaster, original soil stacks. We flag and quote them properly upfront."},{q:"Do you use subcontractors?",a:"No. Every trade on your bathroom is employed by Blue Sky."},{q:"How long does a typical Ashby bathroom fit take?",a:"Most full bathrooms are fitted in 7â10 working days. Higher-spec renovations and wet rooms can run 2â3 weeks."},{q:"How much do bathroom fitters cost in Ashby?",a:"Complete fitted bathrooms in Ashby start from around £7,000 supply-and-fit, with mid-range fits typically landing between £10,000 and £16,000. Higher-spec period-property renovations sit above that. Every quote is itemised and fixed."},{q:"What areas around Ashby do you cover?",a:"All of LE65 â Ashby town, Willesley, Smisby, Money Hill, Holywell, plus Measham, Packington, Heather, Coleorton and surrounding villages."},{q:"Are you insured and Gas Safe registered?",a:"Yes â full insurance, Gas Safe engineers, documentation on request."}],ctaHeading:"Get a Fixed Quote From Ashby's Trusted Bathroom Fitters",ctaSubtext:"Free home survey, itemised written quote, no obligation. Most Ashby surveys booked within the same week.",nearbyAreas:[{name:"Swadlincote",slug:"swadlincote"},{name:"Coalville",slug:"coalville"},{name:"Burton-on-Trent",slug:"burton-on-trent"},{name:"Tamworth",slug:"tamworth"},{name:"Atherstone",slug:"atherstone"}]},M3=()=>r.jsx(H,{data:L3}),D3={slug:"uttoxeter-bathroom-fitters",name:"Uttoxeter",title:"Bathroom Fitters Uttoxeter | Local Installers | Blue Sky",metaDescription:"Uttoxeter bathroom fitters â independent, employed team, own Tamworth showroom 35 minutes away. No subcontractors, full warranty. Call 0330 043 2234.",heroHeadline:"Trusted Bathroom Fitters in Uttoxeter",heroSubheadline:"We design, supply and fit bathrooms across Uttoxeter and the surrounding ST14 villages â one employed team, our own Tamworth showroom, full written warranty.",trustMicro:"Covering ST14 · Showroom 35 mins via the A515 · Employed fitters, no subcontractors",localRelevanceContent:["Uttoxeter homeowners searching for bathroom fitters typically find a small handful of local sole traders alongside Burton, Stafford and Derby chains. Blue Sky is independent and end-to-e
318nd â our own showroom on Cavendish in Tamworth (around 35 minutes via the A515), our own design team, and our own employed installers.","The same business that surveys your bathroom quotes it, fits it and answers the phone after handover. No subcontracted trades, no third-party finishers.","We've fitted bathrooms across Uttoxeter's full housing mix â the Georgian townhouses around High Street and Market Place, the Victorian villas off Stafford Road, the post-war semis through Bramshall Road and Bridge Street, the newer estates around Westlands, and the larger village properties out toward Doveridge, Marchington, Rocester and Tutbury."],propertyTypes:"Georgian townhouses, Victorian villas, post-war semis, modern estates, larger village properties",responseTime:"Free Uttoxeter home survey within the same week",commonNeeds:"Full installations, period-property renovations, ensuites, accessible adaptations",services:[{name:"Full Bathroom Installation",path:"/services/bathroom-installation",description:"Strip-out to snag-list across Uttoxeter and surrounding villages."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"Higher-specification fits with bespoke tiling and freestanding baths."},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments",description:"Refreshes that keep your layout and replace what's tired."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Bath-to-shower swaps and frameless walk-ins."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully tanked, fall-graded wet rooms to current building regs."}
318,{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Mobility-led fits with level access and grab rails."},{name:"Cloakroom & Ensuite Fits",path:"/services/cloakroom-ensuite",description:"Tight-space fits where every millimetre matters."},{name:"Tiling Services",path:"/services/tiling-services",description:"Porcelain, ceramic, natural stone and large-format wall tiling."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Electric and wet UFH integrated into your fit."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"Live displays in Tamworth â 35 minutes from Uttoxeter via the A515."}],whyChooseUsContent:["Uttoxeter customers hire us because they want one team responsible for the whole bathroom â design, supply, fit, snag and warranty. We employ every trade, own every product line, and back both with written warranties.","Every fit runs the same sequence: free home survey, fixed itemised quote, deposit, materials ordered and stored, agreed start date, daily supervision, snag-list, handover.","Checkatrade rates us 9.85/10 from 141 reviews. Google rates us 4.9 from 38+ reviews. Both are public."],localProblemsHeading:"What Uttoxeter Homeowners Should Watch For",localProblemsContent:["'Supply-only' Derby and Stafford chains push fitting onto whoever you can find. We supply and fit so the buck stops with us.","Subcontracted installation is the biggest source of bathroom-fit complaints. Your warranty is only as strong as a stranger's willingness to come back.","Quotes without itemisation protect the fitter, not you. Our quotes list every fixture, tile, labour day and contingency.","Cash-in-hand work means no warranty, no insurance, no recourse."],processSteps:[{title:"Free Home Survey",description:"We visit your Uttoxeter property, take dimensions and photograph the existing setup."},{title:"Fixed Itemised Quote",description:"Written quote listing every product, every labour day and any contingencies."},{title:"Showroom Visit (Optional)",description:"Walk through live displays at our Tamworth showroom â 35 minutes via the A515."},{title:"Fit Scheduled & Materials Held",description:"We order and store everything before your start date."},{title:"Installation by Our Own Team",description:"Employed fitters, plumbers, electricians and tilers â one team, daily supervision."},{title:"Snag List & Handover",description:"Walk the finished room with you, fix anything you flag, then hand over paperwork and warranties."}],faqs:[{q:"Are you based in Uttoxeter?",a:"Our showroom and unit are in Tamworth, around 35 minutes from Uttoxeter via the A515. We cover ST14 regularly."},{q:"Do you use subcontractors?",a:"No. Every trade on your bathroom is employed by Blue Sky."},{q:"How long does a typical Uttoxeter bathroom fit take?",a:"Most full bathrooms are fitted in 7â10 working days. Wet rooms and larger renovations can run 2â3 weeks."},{q:"How much do bathroom fitters cost in Uttoxeter?",a:"Complete fitted bathrooms in Uttoxeter start from around £7,000 supply-and-fit. Mid-range fits typically land between £9,000 and £14,000. Every quote is itemised and fixed."},{q:"What areas around Uttoxeter do you cover?",a:"All of ST14 â Uttoxeter town, Bramshall, Westlands, plus Doveridge, Marchington, Rocester, Tutbury and surrounding villages."},{q:"Are you insured and Gas Safe registered?",a:"Yes â full insurance, Gas Safe engineers, documentation on request."}],ctaHeading:"Get a Fixed Quote From Uttoxeter's Trusted Bathroom Fitters",ctaSubtext:"Free home survey, itemised written quote, no obligation. Most Uttoxeter surveys booked within the same week.",nearbyAreas:[{name:"Burton-on-Trent",slug:"burton-on-trent"},{name:"Tamworth",slug:"tamworth"},{name:"Lichfield",slug:"lichfield"},{name:"Staffordshire",slug:"staffordshire"},{name:"Derby",slug:"derby"}]},I3=()=>r.jsx(H,{data:D3}),H3={slug:"walsall-bathroom-fitters",name:"Walsall",title:"Bathroom Fitters Walsall | Local Installers | Blue Sky",metaDescription:"Walsall bathroom fitters â independent, employed team, own Tamworth showroom 25 minutes away. No subcontractors, full warranty. Call 0330 043 2234.",heroHeadline:"Trusted Bathroom Fitters in Walsall",heroSubheadline:"We design, supply and fit bathrooms across Wal
318sall and the surrounding WS1âWS5 / WS9 postcodes â one employed team, our own Tamworth showroom, full written warranty.",trustMicro:"Covering WS1âWS5 & WS9 · Showroom 25 mins via the A461 · Employed fitters, no subcontractors",localRelevanceContent:["Walsall is one of the most competitive bathroom-fitting markets in the Midlands â every kind of trader operates here, from one-man-bands to nationwide chains. Blue Sky is the alternative to both: independent, end-to-end, with our own showroom on Cavendish in Tamworth (around 25 minutes via the A461), our own design team, and our own employed installers.","The same business that surveys your bathroom quotes it, fits it and answers the phone after handover. No subcontracted trades, no third-party finishers, no chain of suppliers to chase.","We've fitted bathrooms across Walsall's full housing mix â the Victorian terraces in Caldmore and Palfrey, the inter-war and post-war semis through Bloxwich, Pelsall and Streetly, the larger detached homes in Aldridge and Sutton-side WS9, and the newer estates around Brownhills and Pheasey. Local familiarity keeps quotes accurate."],propertyTypes:"Victorian terraces, inter-war/post-war semis, larger detached, modern estates",responseTime:"Free Walsall home survey within the same week",commonNeeds:"Full installations, bath-to-shower swaps, ensuites, accessible adaptations",services:[{name:"Full Bathroom Installation",path:"/services/bathroom-installation",description:"Strip-out to snag-list across Walsall."},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments",description:"Refreshes that keep your layout and replace what's tired."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Bath-to-shower swaps and frameless walk-ins."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully tanked, fall-graded wet rooms to current building regs."}
318,{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Mobility-led fits with level access and grab rails."},{name:"Cloakroom & Ensuite Fits",path:"/services/cloakroom-ensuite",description:"Tight-space fits where every millimetre matters."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"Higher-specification fits with bespoke tiling and freestanding baths."},{name:"Tiling Services",path:"/services/tiling-services",description:"Porcelain, ceramic, natural stone and large-format wall tiling."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Electric and wet UFH integrated into your fit."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"Live displays in Tamworth â 25 minutes from Walsall via the A461."}],whyChooseUsContent:["Walsall customers hire us because they're tired of the supply-then-find-a-fitter routine the chains push, and they're not comfortable handing a five-figure bathroom to a Facebook-Marketplace trader. We're the middle path: independent, properly insured, properly warrantied, with everyone on site employed by us.","Every fit runs the same sequence: free home survey, fixed itemised quote, deposit, materials ordered and stored, agreed start date, daily supervision, snag-list, handover.","Checkatrade rates us 9.85/10 from 141 reviews. Google rates us 4.9 from 38+ reviews. Both are public."],localProblemsHeading:"What Walsall Homeowners Should Watch For",localProblemsContent:["'Supply-only' chain deals push fitting onto whoever you can find. We supply and fit so the buck stops with us.","Subcontracted installation is the biggest source of bathroom-fit complaints. Your warranty is only as strong as a stranger's willingness to come back.","Quotes without itemisation protect the fitter, not you. Our quotes list every fixture, tile, labour day and contingency.","Cash-in-hand work means no warranty, no insurance, no recourse. Every Blue Sky job is invoiced, VAT-registered and fully warranted."],processSteps:[{title:"Free Home Survey",description:"We visit your Walsall property, take dimensions and photograph the existing setup."},{title:"Fixed Itemised Quote",description:"Written quote listing every product, every labour day and any contingencies."},{title:"Showroom Visit (Optional)",description:"Walk through live displays at our Tamworth showroom â 25 minutes via the A461."},{title:"Fit Scheduled & Materials Held",description:"We order and store everything before your start date."},{title:"Installation by Our Own Team",description:"Employed fitters, plumbers, electricians and tilers â one team, daily supervision."},{title:"Snag List & Handover",description:"Walk the finished room with you, fix anything you flag, then hand over paperwork and warranties."}],faqs:[{q:"Are you based in Walsall?",a:"Our showroom and unit are in Tamworth, around 25 minutes from Walsall via the A461. We cover WS1âWS5 and WS9 regularly."},{q:"Do you use subcontractors?",a:"No. Every trade on your bathroom is employed by Blue Sky."},{q:"How long does a typical Walsall bathroom fit take?",a:"Most full bathrooms are fitted in 7â10 working days. Wet rooms and larger renovations can run 2â3 weeks."},{q:"How much do bathroom fitters cost in Walsall?",a:"Complete fitted bathrooms in Walsall start from around £7,000 supply-and-fit. Mid-range fits typically land between £9,000 and £14,000. Every quote is itemised and fixed."},{q:"What areas of Walsall do you cover?",a:"All of WS1âWS5 and WS9 â Walsall town, Caldmore, Palfrey, Bloxwich, Pelsall, Streetly, Aldridge, Brownhills, Pheasey and surrounding districts."},{q:"Are you insured and Gas Safe registered?",a:"Yes â full insurance, Gas Safe engineers, documentation on request."}],ctaHeading:"Get a Fixed Quote From Walsall's Trusted Bathroom Fitters",ctaSubtext:"Free home survey, itemised written quote, no obligation. Most Walsall surveys booked within the same week.",nearbyAreas:[{name:"Cannock",slug:"cannock"},{name:"Sutton Coldfield",slug:"sutton-coldfield"},{name:"West Bromwich",slug:"west-bromwich"},{name:"Lichfield",slug:"lichfield"},{name:"Birmingham",slug:"birmingham"}]},O3=()=>r.jsx(H,{data:H3}),_3={slug:"birmingham-bathroom-fitters",name:"North Birmingham",title:"Bathroom Fitters North Birmingham | Blue Sky Bathrooms",metaDescription:"North Birmingham bathroom fitters â independent, employed team, own Tamworth showroom. No subcontractors, full warranty. Call 0330 043 2234.",heroHeadline:"Trusted Bathroom Fitters in North Birmingham",heroSubheadline:"We design, supply and fit bathrooms across the northern B-postcodes â Erdington, Sutton, Streetly, Great Barr, Castle Bromwich and out to the M6 â from our employed Tamworth team.",trustMicro:"Covering north Birmingham B23âB44 / B73âB76 · Employed fitters, no subcontractors",localRelevanceContent:["Birmingham as a whole is enormous and we don't pretend to cover all of it â we focus on the north of the city, where we can be on-site quickly from our Tamworth base. That means Erdington, Kingstanding, Great Barr, Castle Bromwich, Sutton Coldfield, Streetly, Pheasey, Pype Hayes and the surrounding wards.","Blue Sky is independent and end-to-e
318nd â our own showroom on Cavendish in Tamworth, our own design team, and our own employed installers. The same business that surveys your bathroom quotes it, fits it and answers the phone after handover.","North Birmingham's housing mix is genuinely varied â Victorian and Edwardian terraces through Erdington and Aston-side B23, large inter-war and post-war semis across Great Barr and Kingstanding, more modern executive estates in Sutton Coldfield and Streetly, and 1960s/70s detached through Castle Bromwich and Pype Hayes. We're equally comfortable with any of them."],propertyTypes:"Victorian/Edwardian terraces, inter-war and post-war semis, executive estates, 1960s/70s detached",responseTime:"Free home survey within the same week across north Birmingham",commonNeeds:"Full installations, ensuite additions, period-property renovations, bath-to-shower swaps",services:[{name:"Full Bathroom Installation",path:"/services/bathroom-installation",description:"Strip-out to snag-list across north Birmingham."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"Higher-specification fits â common across Sutton, Streetly and Four Oaks."},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments",description:"Refreshes that keep your layout and replace what's tired."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Bath-to-shower swaps and frameless walk-ins."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully tanked, fall-graded wet rooms to current building regs."}
318,{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Mobility-led fits with level access and grab rails."},{name:"Cloakroom & Ensuite Fits",path:"/services/cloakroom-ensuite",description:"Tight-space fits â common in the older Erdington/Aston terraces."},{name:"Tiling Services",path:"/services/tiling-services",description:"Porcelain, ceramic, natural stone and large-format wall tiling."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Electric and wet UFH integrated into your fit."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"Live displays in Tamworth â easy run up the A38 or M6 toll."}],whyChooseUsContent:["Birmingham has thousands of bathroom fitters. What's rare is one independent firm doing design, supply and fit end-to-end with every trade employed in-house. That's us. We employ every fitter, plumber, electrician and tiler on your job, and we back the result with written workmanship and product warranties.","Every fit runs the same sequence: free home survey, fixed itemised quote, deposit, materials ordered and stored, agreed start date, daily supervision, snag-list, handover.","Checkatrade rates us 9.85/10 from 141 reviews. Google rates us 4.9 from 38+ reviews. Both are public."],localProblemsHeading:"What North Birmingham Homeowners Should Watch For",localProblemsContent:["Big-city chains rely on supply-only deals or subcontracted fits. When something goes wrong, accountability disappears between supplier and fitter. We supply and fit so the buck stops with us.","Day-rate labour-only fitters can be excellent â but you take on the project-management role. For most customers, that's not what they wanted when they booked a new bathroom.","Quotes without itemisation protect the fitter, not you. Our quotes list every fixture, tile, labour day and contingency.","Cash-in-hand work means no warranty, no insurance, no recourse."],processSteps:[{title:"Free Home Survey",description:"We visit your property across north Birmingham, take dimensions and photograph the existing setup."},{title:"Fixed Itemised Quote",description:"Written quote listing every product, every labour day and any contingencies."},{title:"Showroom Visit (Optional)",description:"Walk through live displays at our Tamworth showroom."},{title:"Fit Scheduled & Materials Held",description:"We order and store everything before your start date."},{title:"Installation by Our Own Team",description:"Employed fitters, plumbers, electricians and tilers â one team, daily supervision."},{title:"Snag List & Handover",description:"Walk the finished room with you, fix anything you flag, then hand over paperwork and warranties."}],faqs:[{q:"Do you cover all of Birmingham?",a:"We focus on the northern B-postcodes â B23, B24, B36, B42, B43, B44, B73, B74, B75 and B76 â where we can reach you quickly from Tamworth. For central or south Birmingham, please ask and we'll be honest about whether we're the right fit."},{q:"Do you use subcontractors?",a:"No. Every trade on your bathroom is employed by Blue Sky."},{q:"How long does a typical Birmingham bathroom fit take?",a:"Most full bathrooms are fitted in 7â10 working days. Wet rooms and larger renovations can run 2â3 weeks."},{q:"How much do bathroom fitters cost in Birmingham?",a:"Complete fitted bathrooms start from around £7,000 supply-and-fit. Mid-range fits typically land between £9,000 and £15,000. Higher-spec renovations sit above that. Every quote is itemised and fixed."},{q:"Are you insured and Gas Safe registered?",a:"Yes â full insurance, Gas Safe engineers, documentation on request."}],ctaHeading:"Get a Fixed Quote From North Birmingham's Independent Bathroom Fitters",ctaSubtext:"Free home survey, itemised written quote, no obligation. Most surveys booked within the same week.",nearbyAreas:[{name:"Sutton Coldfield",slug:"sutton-coldfield"},{name:"Walsall",slug:"walsall"},{name:"West Bromwich",slug:"west-bromwich"},{name:"Tamworth",slug:"tamworth"},{name:"Lichfield",slug:"lichfield"}]},U3=()=>r.jsx(H,{data:_3}),$3={slug:"west-bromwich-bathroom-fitters",name:"West Bromwich",title:"Bathroom Fitters West Bromwich | Blue Sky Bathrooms",metaDescription:"West Bromwich bathroom fitters â independent, employed team, own Tamworth showroom. No subcontractors, full warranty. Call 0330 043 2234.",heroHeadline:"Trusted Bathroom Fitters in West Bromwich",heroSubheadline:"We design, supply and fit bathrooms across West Bromwich and the surrounding B70 / B71 postcodes â one employed team, our own Tamworth showroom, full written warranty.",trustMicro:"Covering B70 & B71 · Employed fitters, no subcontractors",localRelevanceContent:["West Bromwich sits in a busy bathroom-fitting market dominated by Sandwell and Birmingham chains. Blue Sky is the independent alternative â our own showroom on Cavendish in Tamworth, our own design team, and our own employed installer
318s.","The same business that surveys your bathroom quotes it, fits it and answers the phone after handover. No subcontractors, no third-party finishers, no chain of suppliers to chase.","We've fitted bathrooms across West Bromwich's full housing mix â the Victorian terraces through Hill Top and Greets Green, the inter-war and post-war semis across Stone Cross and Yew Tree, the larger detached homes in Charlemont and Hall Green, and the newer estates around Friar Park. Local familiarity keeps quotes accurate."],propertyTypes:"Victorian terraces, inter-war/post-war semis, larger detached homes, modern estates",responseTime:"Free West Bromwich home survey within the same week",commonNeeds:"Full installations, bath-to-shower swaps, ensuites, accessible adaptations",services:[{name:"Full Bathroom Installation",path:"/services/bathroom-installation",description:"Strip-out to snag-list across West Bromwich."},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments",description:"Refreshes that keep your layout and replace what's tired."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Bath-to-shower swaps and frameless walk-ins."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully tanked, fall-graded wet rooms to current building regs."}
318,{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Mobility-led fits with level access and grab rails."},{name:"Cloakroom & Ensuite Fits",path:"/services/cloakroom-ensuite",description:"Tight-space fits where every millimetre matters."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"Higher-specification fits with bespoke tiling and freestanding baths."},{name:"Tiling Services",path:"/services/tiling-services",description:"Porcelain, ceramic, natural stone and large-format wall tiling."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Electric and wet UFH integrated into your fit."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"Live displays in Tamworth â easy run via the M6."}],whyChooseUsContent:["West Bromwich customers hire us because they're tired of the supply-then-find-a-fitter routine the chains push, and they want one team accountable end-to-end. We employ every trade, own every product line, and back the result with written warranties.","Every fit runs the same sequence: free home survey, fixed itemised quote, deposit, materials ordered and stored, agreed start date, daily supervision, snag-list, handover.","Checkatrade rates us 9.85/10 from 141 reviews. Google rates us 4.9 from 38+ reviews."],localProblemsHeading:"What West Bromwich Homeowners Should Watch For",localProblemsContent:["'Supply-only' Sandwell and Birmingham chains push the fitting onto whoever you can find. We supply and fit so the buck stops with us.","Subcontracted installation is the biggest source of bathroom-fit complaints. Your warranty is only as strong as a stranger's willingness to come back.","Quotes without itemisation protect the fitter, not you. Our quotes list every fixture, tile, labour day and contingency.","Cash-in-hand work means no warranty, no insurance, no recourse."],processSteps:[{title:"Free Home Survey",description:"We visit your West Bromwich property, take dimensions and photograph the existing setup."},{title:"Fixed Itemised Quote",description:"Written quote listing every product, every labour day and any contingencies."},{title:"Showroom Visit (Optional)",description:"Walk through live displays at our Tamworth showroom."},{title:"Fit Scheduled & Materials Held",description:"We order and store everything before your start date."},{title:"Installation by Our Own Team",description:"Employed fitters, plumbers, electricians and tilers â one team, daily supervision."},{title:"Snag List & Handover",description:"Walk the finished room with you, fix anything you flag, then hand over paperwork and warranties."}],faqs:[{q:"Are you based in West Bromwich?",a:"Our showroom and unit are in Tamworth â an easy M6 run. We cover B70 and B71 regularly."},{q:"Do you use subcontractors?",a:"No. Every trade on your bathroom is employed by Blue Sky."},{q:"How long does a typical West Bromwich bathroom fit take?",a:"Most full bathrooms are fitted in 7â10 working days. Wet rooms and larger renovations can run 2â3 weeks."},{q:"How much do bathroom fitters cost in West Bromwich?",a:"Complete fitted bathrooms start from around £7,000 supply-and-fit. Mid-range fits typically land between £9,000 and £14,000. Every quote is itemised and fixed."},{q:"What areas of West Bromwich do you cover?",a:"All of B70 and B71 â Hill Top, Greets Green, Stone Cross, Yew Tree, Charlemont, Hall Green, Friar Park and surrounding districts."},{q:"Are you insured and Gas Safe registered?",a:"Yes â full insurance, Gas Safe engineers, documentation on request."}],ctaHeading:"Get a Fixed Quote From West Bromwich's Independent Bathroom Fitters",ctaSubtext:"Free home survey, itemised written quote, no obligation. Most West Bromwich surveys booked within the same week.",nearbyAreas:[{name:"Walsall",slug:"walsall"},{name:"Birmingham",slug:"birmingham"},{name:"Sutton Coldfield",slug:"sutton-coldfield"},{name:"Tamworth",slug:"tamworth"},{name:"Cannock",slug:"cannock"}]},z3=()=>r.jsx(H,{data:$3}),G3={slug:"cannock-bathroom-extensions",name:"Cannock",title:"Bathroom Extensions Cannock | Design, Build & Fit",metaDescription:"Bathroom extension specialists covering Cannock, Hedne
318sford & WS11/WS12. Design, build and full bathroom fit-out by one employed team. 4.9â
from 38+ Google reviews.",heroHeadline:"Bathroom Extensions in Cannock â Designed, Built and Fitted",heroSubheadline:"Ground-floor bathroom extensions, rear extensions with an ensuite, and box-room-to-bathroom conversions across Cannock, Hednesford, Heath Hayes and the surrounding WS11 / WS12 villages â one company for the build and the bathroom.",trustMicro:"Free site visit · Building-regs-ready drawings · Employed trades, no subcontractors · 12-month workmanship warranty",localRelevanceContent:["Most bathroom extension enquiries we take from Cannock fall into two camps: families in 1960s and 70s estate housing around Heath Hayes, Chadsmoor and Bridgtown who have run out of bathroom for the number of people in the house, and older homeowners in the post-war semis nearer the town centre and Hednesford who need a bathroom on the ground floor because the stairs have become the problem.","Both are solvable, but they are different jobs. A small ground-floor rear extension of 4â6m² tucked onto the back of a semi is usually the cheapest route to a second bathroom because the drainage run to the existing soil stack is short. Building over or near an existing drain â common on Cannock's older estates where the run crosses the rear garden â needs a build-over agreement with Severn Trent, which we handle as part of the job rather than leaving it with you.","Out towards Norton Canes, Bridgtown, Brewood and the edge of Cannock Chase, plots are larger and side-return or wrap-around extensions become viable. Properties bordering Cannock Chase AONB sit in a more sensitive planning area, so we check the constraints before drawing anything you might not be allowed to build."],propertyTypes:"Post-war semis, 1960s/70s estate housing, modern developments, larger detached homes and rural cottages",responseTime:"Free Cannock site visit within the same week · Drawings within 2 weeks",commonNeeds:"Ground-floor bathroom extensions, rear extensions with ensuite, box-room conversions, accessible downstairs bathrooms",services:[{name:"Bathroom Extension Design & Planning",path:"/services/bathroom-design-planning",description:"Measured survey, 3D layout and building-regs-ready drawings for your Cannock extension before any block is laid."},{name:"Full Bathroom Installation",path:"/services/bathroom-installation",description:"Once the shell is up we fit the whole bathroom â first fix, tanking, tiling, second fix and snag-list."},{name:"Downstairs Cloakroom & Ensuite Fits",path:"/services/cloakroom-ensuite",description:"Ground-floor WCs and ensuites carved out of hallways, utilities and rear extensions."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully tanked, fall-graded wet rooms â the most common finish for a single-storey rear extension bathroom."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Frameless and low-profile walk-in showers sized to the new footprint."}
318,{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Ground-floor accessible bathroom extensions in Cannock for homeowners who can no longer manage the stairs."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"Higher-specification finishes â freestanding baths, large-format porcelain, concealed brassware."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Electric or wet UFH built into the new slab while the floor is open â far cheaper now than later."},{name:"Tiling Services",path:"/services/tiling-services",description:"Porcelain, ceramic and natural stone, set out properly against new plasterboard and screed."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"See finished displays at our Cavendish showroom in Tamworth before you commit to a spec."}],whyChooseUsContent:["The usual problem with a bathroom extension is that it needs two very different companies â a builder for the shell and a bathroom firm for the fit-out â and the gap between them is where budgets and timescales go wrong. We do both, so the drainage, the floor build-up, the tanking detail and the tile setting-out are all planned as one job from day one.","Everyone on site is employed by us. The same office that quoted the extension supervises the build and the bathroom fit, so there is nobody to pass blame to if something needs revisiting.","You get a fixed, itemised quote that separates build works from bathroom fit-out. You can see exactly what the shell costs and exactly what the bathroom inside it costs â useful if you want to phase the spend or change the specification later.","Public, checkable track record: 9.85/10 on Checkatrade from 141 reviews, 4.9 on Google from 38+, and 4.99/5 on TrustATrader. Twenty years of work in and around Staffordshire behind it."],localProblemsHeading:"Bathroom Extension Considerations Specific to Cannock",localProblemsContent:["Drainage is the single biggest cost variable in Cannock. If the new bathroom sits within a few metres of the existing soil stack, connection is straightforward. If it sits on the far side of the house, you are looking at either a long fall-graded run or a macerator â and we will always tell you which before you commit.","Building over or within 3m of a public sewer requires a Severn Trent build-over agreement. Plenty of Cannock's estate housing has shared drainage crossing rear gardens, so this comes up often. It is routine, but it takes time â factor 4â6 weeks into the programme.","Many single-storey extensions fall under permitted development, but not all. Corner plots, properties already extended, flats and homes near Cannock Chase AONB frequently need a full planning application. We check this at the site visit rather than after you have paid for drawings.","Boiler capacity gets forgotten. Adding a second bathroom to a house running a small combi usually means pressure drops when two outlets run at once. We check flow rate at survey and price an upgrade honestly if you need one â or design around it if you do not.","Floor build-up matters if you want underfloor heating and level access. Getting the insulation, screed and finished floor level right at slab stage costs nothing extra; correcting it afterwards means lifting the floor."],processSteps:[{title:"Free Site Visit",description:"We walk the Cannock property, look at the proposed footprint, drainage runs and boiler capacity, and tell you honestly whether an extension is the right answer."},{title:"Design & Feasibility",description:"3D layout plus a plain-English note on permitted development, building regs, drainage and party wall considerations."},{title:"Fixed Itemised Quote",description:"Line-by-line pricing split between build works and bathroom fit-out so you can see exactly where the money goes."},{title:"Build Stage",description:"Foundations, drainage connection, shell, roof and weathertight opening â managed and supervised daily."},{title:"Bathroom Fit-Out",description:"First fix, tanking, tiling, second fix and decoration by the same employed team that fits our standard bathrooms."},{title:"Sign-Off & Handover",description:"Building control sign-off where applicable, snag-list walk-through and a 12-month workmanship warranty."}],faqs:[{q:"How much does a bathroom extension cost in Cannock?",a:"As a realistic guide for the Cannock area, a small single-storey ground-floor bathroom extension of around 4â6m² typically runs £25,000â£40,000
318including the shell, drainage, building regs and a mid-specification bathroom fit-out. Larger rear extensions with an ensuite, or higher-specification finishes, run higher. We give a fixed itemised quote after a site visit rather than a headline figure."},{q:"Do I need planning permission for a bathroom extension in Cannock?",a:"Many single-storey rear extensions fall under permitted development, subject to size, height and how much the property has already been extended. Corner plots, flats, and homes near Cannock Chase AONB are more likely to need a full application to Cannock Chase District Council. We assess this at the free site visit."},{q:"How long does a bathroom extension take?",a:"Allow roughly 8â12 weeks on site for a small single-storey bathroom extension â around 5â8 weeks for the shell and weathertight stage, then 2â3 weeks for the bathroom fit-out. Drainage agreements and planning add lead time before work starts."},{q:"Can you add a downstairs bathroom for an elderly parent?",a:"Yes â ground-floor accessible bathroom extensions are one of the most common jobs we do. We design around transfers, turning circles, level access and grab rail positions, and we can build it as a level-access wet room so there is no threshold at all."},{q:"Do you handle building regulations and drainage approvals?",a:"Yes. We produce building-regs-ready drawings, deal with building control inspections, and handle Severn Trent build-over agreements where the extension sits over or near a public sewer."},{q:"Do you build the extension as well as fit the bathroom?",a:"Yes â that is the point of using us. Foundations, drainage, shell, roof, then the full bathroom fit-out, all under one contract, one supervision structure and one warranty."}],ctaHeading:"Planning a Bathroom Extension in Cannock?",ctaSubtext:"Book a free site visit. We'll tell you what's realistic, what it costs and whether an extension beats reworking the space you already have. No pressure, no sales script.",nearbyAreas:[{name:"Cannock",slug:"cannock"},{name:"Rugeley",slug:"rugeley"},{name:"Lichfield",slug:"lichfield"},{name:"Walsall",slug:"walsall"},{name:"Tamworth",slug:"tamworth"}]},V3=()=>r.jsx(H,{data:G3}),Y3={slug:"walsall-bathroom-extensions",name:"Walsall",title:"Bathroom Extensions Walsall | Build & Fit, One Team",metaDescription:"Bathroom extension specialists covering Walsall, Aldridge, Streetly & WS1âWS9. Shell built and bathroom fitted by one employed team. 4.9â
from 38+ Google reviews.",heroHeadline:"Bathroom Extensions in Walsall â Built and Fitted by One Team",heroSubheadline:"Ground-floor bathroom extensions, rear extensions with ensuites and loft bathroom conversions across Walsall, Aldridge, Streetly, Pelsall, Bloxwich and the WS postcodes â designed, built and fully fitted by us.",trustMicro:"Free site visit · Building-regs-ready drawings · Employed trades · 12-month workmanship warranty",localRelevanceContent:["Walsall's housing stock is unusually mixed for a single borough, and that changes what an extension involves street by street. The Victorian and Edwardian terraces around Caldmore, Palfrey and Pleck often have a narrow side return and an outrigger â infilling that side return is frequently the neatest way to gain a ground-floor bathroom without losing much garden. The inter-war semis through Bescot, Alumwell and Birchills usually have space for a modest rear extension with a short drainage run.","In Aldridge, Streetly, Little Aston and Walsall Wood the plots are larger and the briefs get more ambitious â rear extensions with a family bathroom plus a principal ensuite, or side extensions that add a ground-floor shower room alongside a utility. These are the jobs where getting the drainage, floor build-up and tiling setting-out planned together really pays off.","Older terraced property across the borough regularly hides surprises: shared drainage, cellar voids, solid 9-inch walls with no cavity, and original cast-iron soil stacks. We open up and assess before pricing so the quote you sign is the quote you pay."],propertyTypes:"Victorian and Edwardian terraces, inter-war semis, 1960s estates, larger detached homes in Aldridge, Streetly and Little Aston",responseTime:"Free Walsall site visit within the same week · Drawings within 2 weeks",commonNeeds:"Side-return infills, ground-floor shower rooms, rear extensions with ensuite, loft bathroom conversions",services:[{name:"Bathroom Extension Design & Planning",path:"/services/bathroom-design-planning",description:"Measured survey, 3D layout and building-regs-ready drawings for your Walsall extension before any block is laid."},{name:"Full Bathroom Installation",path:"/services/bathroom-installation",description:"Once the shell is up we fit the whole bathroom â first fix, tanking, tiling, second fix and snag-list."},{name:"Downstairs Cloakroom & Ensuite Fits",path:"/services/cloakroom-ensuite",description:"Ground-floor WCs and ensuites carved out of hallways, utilities and rear extensions."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully tanked, fall-graded wet rooms â the most common finish for a single-storey rear extension bathroom."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Frameless and low-profile walk-in showers sized to the new footprint."}
318,{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Ground-floor accessible bathroom extensions in Walsall for homeowners who can no longer manage the stairs."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"Higher-specification finishes â freestanding baths, large-format porcelain, concealed brassware."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Electric or wet UFH built into the new slab while the floor is open â far cheaper now than later."},{name:"Tiling Services",path:"/services/tiling-services",description:"Porcelain, ceramic and natural stone, set out properly against new plasterboard and screed."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"See finished displays at our Cavendish showroom in Tamworth before you commit to a spec."}],whyChooseUsContent:["Bathroom extensions go wrong at the handover point between builder and bathroom fitter â the floor level is wrong for level access, the drainage falls will not take a wet room, the stud positions do not suit the tile setting-out. We build the shell and fit the bathroom, so those decisions are made once, correctly, at design stage.","Every trade on your job is directly employed by Blue Sky. The bricklayer, plumber, electrician and tiler all answer to the same office that quoted the work.","Itemised fixed quotes, split between build works and bathroom fit-out. You can see the cost of the shell and the cost of what goes inside it separately, and adjust the specification without renegotiating the whole job.","Checkable reputation: 9.85/10 on Checkatrade from 141 reviews, 4.9 on Google from 38+ reviews, 4.99/5 on TrustATrader. Our Tamworth showroom is around 30 minutes from Walsall via the A5 if you want to see finishes in person."],localProblemsHeading:"Bathroom Extension Considerations Specific to Walsall",localProblemsContent:["Side-return infills on Walsall's Victorian terraces are the best-value bathroom extension available, but they need careful work at the party wall. A Party Wall Act notice to the neighbour is usually required, and that carries a two-month notice period â start it early.","Solid 9-inch brick walls with no cavity are common in the older parts of the borough. Insulating the new structure to current regs while keeping the junction detail dry takes proper design, not a standard drawing.","Shared and combined drainage is widespread on Victorian terraces here. Building over or near a public sewer needs a Severn Trent build-over agreement, which adds 4â6 weeks before work begins.","Conservation areas around parts of Walsall and the more sensitive streets in Aldridge and Little Aston restrict what can be done externally. Materials matching, roof form and window style all get scrutinised. We check the designation before drawing.","Adding a second or third bathroom to a house on a small combi boiler will hurt pressure. We measure flow rate at survey and either price an upgrade or design the outlets so they never fight each other."],processSteps:[{title:"Free Site Visit",description:"We walk the Walsall property, look at the proposed footprint, drainage runs and boiler capacity, and tell you honestly whether an extension is the right answer."},{title:"Design & Feasibility",description:"3D layout plus a plain-English note on permitted development, building regs, drainage and party wall considerations."},{title:"Fixed Itemised Quote",description:"Line-by-line pricing split between build works and bathroom fit-out so you can see exactly where the money goes."},{title:"Build Stage",description:"Foundations, drainage connection, shell, roof and weathertight opening â managed and supervised daily."},{title:"Bathroom Fit-Out",description:"First fix, tanking, tiling, second fix and decoration by the same employed team that fits our standard bathrooms."},{title:"Sign-Off & Handover",description:"Building control sign-off where applicable, snag-list walk-through and a 12-month workmanship warranty."}],faqs:[{q:"How much does a bathroom extension cost in Walsall?",a:"A small single-storey ground-floor bathroom extension in Walsall typically runs £25,000â£40,000 all in â shell, drainage, building regs and a mid-specification bathroom. A side-return infill on a terrace is often at the lower end because the structure is smaller; larger rear extensions with an ensuite in Aldridge or Streetly run higher. Every quote is fixed and itemised after a site visit."},{q:"Do I need planning permission for a bathroom extension in Walsall?",a:"Many single-storey rear extensions are permitted development, but Walsall Council requires a full application for corner plots, flats, previously extended homes and properties in conservation areas. We confirm which applies at the free site visit before you spend anything on drawings."},{q:"Can you infill the side return on a Victorian terrace?",a:"Yes â side-return infills are one of the most common bathroom extensions we build across Caldmore, Palfrey and Pleck. They typically need a Party Wall Act notice to the adjoining owner, which we set out for you at the start."},{q:"How long does the work take?",a:"Roughly 8â12 weeks on site: 5â8 weeks to a weathertight shell, then 2â3 weeks for the bathroom fit-out. Party wall notices, planning and drainage agreements add lead time before we start."},{q:"Can you add a ground-floor bathroom for someone who cannot manage the stairs?",a:"Yes. Ground-floor accessible bathroom extensions â level-access wet rooms with no threshold, grab rails, comfort-height WCs and slip-resistant flooring â are a large part of what we build."},{q:"Do you handle building control and party wall matters?",a:"We produce building-regs-ready drawings, manage building control inspections, and advise on party wall notices and Severn Trent build-over agreements as part of the job."}],ctaHeading:"Planning a Bathroom Extension in Walsall?",ctaSubtext:"Book a free site visit. We'll tell you what's realistic, what it costs and whether an extension beats reworking the space you already have. No pressure, no sales script.",nearbyAreas:[{name:"Walsall",slug:"walsall"},{name:"Sutton Coldfield",slug:"sutton-coldfield"},{name:"Cannock",slug:"cannock"},{name:"West Bromwich",slug:"west-bromwich"},{name:"Lichfield",slug:"lichfield"}]},Q3=()=>r.jsx(H,{data:Y3}),K3={slug:"west-bromwich-bathroom-extensions",name:"West Bromwich",title:"Bathroom Extensions West Bromwich | Build & Fit",metaDescription:"Bathroom extension specialists covering West Bromwich, Wednesbury, Oldbury & B70/B71. Shell and full bathroom fit by one employed team. 4.9â
from 38+ Google reviews.",heroHeadline:"Bathroom Extensions in West Bromwich â One Team, Start to Finish",heroSubheadline:"Ground-floor bathroom extensions, side-return infills and rear extensions with an ensuite across West Bromwich, Wednesbury, Great Barr, Hill Top and the B70 / B71 postcodes â built and fitted by the same employed team.",trustMicro:"Free site visit · Building-regs-ready drawings · Employed trades · 12-month workmanship warranty",localRelevanceContent:["West Bromwich enquiries are dominated by two property types. The Victorian and inter-war terraces around Hill Top, Carters Green and Greets Green typically have one upstairs bathroom and n
318o ground-floor WC â a small rear or side-return extension solves that with a short drainage run. The post-war and 1960s semis through Charlemont, Hateley Heath and Great Barr have more garden to work with, so a 5â8m² rear extension with a full second bathroom is realistic.","A lot of housing here has been altered before â previous rear additions, converted outhouses, blocked-up openings and reworked drainage. That history matters: permitted development allowances are cumulative, so a house that already has a rear addition may have used up its entitlement. We check what has been built before we draw what comes next.","Sandwell's older industrial areas also mean made ground and variable foundations in places. Where that is a risk, we allow for trial holes at survey rather than discovering it once the digger is on site and the price changes."],propertyTypes:"Victorian and inter-war terraces, post-war and 1960s semis, ex-council housing, modern infill developments",responseTime:"Free West Bromwich site visit within the same week · Drawings within 2 weeks",commonNeeds:"Ground-floor WCs and shower rooms, side-return infills, rear extensions with second bathroom, accessible downstairs bathrooms",services:[{name:"Bathroom Extension Design & Planning",path:"/services/bathroom-design-planning",description:"Measured survey, 3D layout and building-regs-ready drawings for your West Bromwich extension before any block is laid."},{name:"Full Bathroom Installation",path:"/services/bathroom-installation",description:"Once the shell is up we fit the whole bathroom â first fix, tanking, tiling, second fix and snag-list."},{name:"Downstairs Cloakroom & Ensuite Fits",path:"/services/cloakroom-ensuite",description:"Ground-floor WCs and ensuites carved out of hallways, utilities and rear extensions."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully tanked, fall-graded wet rooms â the most common finish for a single-storey rear extension bathroom."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Frameless and low-profile walk-in showers sized to the new footprint."}
318,{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Ground-floor accessible bathroom extensions in West Bromwich for homeowners who can no longer manage the stairs."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"Higher-specification finishes â freestanding baths, large-format porcelain, concealed brassware."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Electric or wet UFH built into the new slab while the floor is open â far cheaper now than later."},{name:"Tiling Services",path:"/services/tiling-services",description:"Porcelain, ceramic and natural stone, set out properly against new plasterboard and screed."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"See finished displays at our Cavendish showroom in Tamworth before you commit to a spec."}],whyChooseUsContent:["Using one company for the shell and the bathroom removes the handover that usually causes the problems â wrong floor build-up for level access, drainage falls that will not take a wet room, stud positions that ruin the tile setting-out. We design the build around the bathroom that is going into it.","All trades directly employed. The team that quotes the job is the team that builds it and the team that fits it, and the same office is accountable throughout.","Fixed itemised quotes split between build works and bathroom fit-out, so you can see and adjust each side independently.","Independent proof rather than claims: 9.85/10 on Checkatrade from 141 reviews, 4.9 on Google from 38+ reviews, 4.99/5 on TrustATrader from 13. Our Tamworth showroom is about 35 minutes away if you want to see the finishes before deciding."],localProblemsHeading:"Bathroom Extension Considerations Specific to West Bromwich",localProblemsContent:["Cumulative permitted development is the trap here. Many West Bromwich houses already have a post-war rear addition, which counts towards the allowance â so a new extension that looks modest may still need a full application to Sandwell Council.","Made ground from the borough's industrial history can mean deeper foundations than a standard quote assumes. Where the risk exists we price trial holes upfront so there is no mid-build surprise.","Terraced properties around Hill Top and Greets Green frequently sit on shared or combined drainage. Building over or within 3m of a public sewer needs a Severn Trent build-over agreement â routine, but add 4â6 weeks.","Access for materials is tight on many terraced streets, with no side gate and limited parking. We plan skip placement, deliveries and muck-away at survey so the programme does not slip on logistics.","Second bathrooms on a small combi boiler cause pressure problems. We measure incoming flow at survey and tell you honestly whether the boiler or main needs upgrading before you commit to the layout."],processSteps:[{title:"Free Site Visit",description:"We walk the West Bromwich property, look at the proposed footprint, drainage runs and boiler capacity, and tell you honestly whether an extension is the right answer."},{title:"Design & Feasibility",description:"3D layout plus a plain-English note on permitted development, building regs, drainage and party wall considerations."},{title:"Fixed Itemised Quote",description:"Line-by-line pricing split between build works and bathroom fit-out so you can see exactly where the money goes."},{title:"Build Stage",description:"Foundations, drainage connection, shell, roof and weathertight opening â managed and supervised daily."},{title:"Bathroom Fit-Out",description:"First fix, tanking, tiling, second fix and decoration by the same employed team that fits our standard bathrooms."},{title:"Sign-Off & Handover",description:"Building control sign-off where applicable, snag-list walk-through and a 12-month workmanship warranty."}],faqs:[{q:"How much does a bathroom extension cost in West Bromwich?",a:"A small single-storey ground-floor bathroom extension in West Bromwich generally runs £24,000â£38,000 including the shell, drainage, building regs and a mid-specification bathroom fit-out. Adding a full second bathroom to a semi in Charlemont or Great Barr with a larger footprint costs more. We only quote fixed and itemised after seeing the property."},{q:"Do I need planning permission for a bathroom extension in West Bromwich?",a:"Some single-storey rear extensions are permitted development, but allowances are cumulative â and much of West Bromwich's housing has already been extended once. Sandwell Council will require a full application for corner plots, flats, and homes that have used their entitlement. We confirm this at the free site visit."},{q:"Can you add a downstairs toilet or shower room to a terrace?",a:"Yes â small ground-floor WC and shower room extensions on terraced property are among the most common jobs we do here, usually built off the rear or as a side-return infill with a short connection to the existing soil stack."},{q:"How long does a bathroom extension take?",a:"Typically 8â12 weeks on site â 5â8 weeks to weathertight shell, then 2â3 weeks for the bathroom fit-out. Planning, party wall notices and drainage agreements happen before that and add lead time."},{q:"Do you build ground-floor accessible bathrooms?",a:"Yes. Level-access wet room extensions with
318no threshold, grab rails, comfort-height WCs and slip-resistant flooring are a large share of the ground-floor extensions we build across Sandwell."},{q:"Do you handle building control and the drainage agreement?",a:"Yes â building-regs-ready drawings, building control inspections and Severn Trent build-over agreements are all handled as part of the contract."}],ctaHeading:"Planning a Bathroom Extension in West Bromwich?",ctaSubtext:"Book a free site visit. We'll tell you what's realistic, what it costs and whether an extension beats reworking the space you already have. No pressure, no sales script.",nearbyAreas:[{name:"West Bromwich",slug:"west-bromwich"},{name:"Walsall",slug:"walsall"},{name:"Sutton Coldfield",slug:"sutton-coldfield"},{name:"Birmingham",slug:"birmingham"},{name:"Cannock",slug:"cannock"}]},X3=()=>r.jsx(H,{data:K3}),J3={slug:"derby-bathroom-fitters",name:"Derby",title:"Bathroom Fitters Derby | Independent Installers | Blue Sky",metaDescription:"Derby bathroom fitters â independent, employed team, own Tamworth showroom 40 minutes away. No subcontractors, full warranty. Call 0330 043 2234.",heroHeadline:"Trusted Bathroom Fitters in Derby",heroSubheadline:"We design, supply and fit bathrooms across Derby and the surrounding DE21âDE24 postcodes â one employed team, our own Tamworth showroom, full written warranty.",trustMicro:"Covering DE21âDE24 · Showroom 40 mins via the A38 · Employed fitters, no subcontractors",localRelevanceContent:["Derby has a busy local bathroom-fitting market â multiple national chains, plenty of independent shops, and a long tail of sole traders. Blue Sky is the independent end-to-end alternative â our own showroom on Cavendish in Tamworth (around 40 minutes via the A38), our own design team, and our own employed installer
318s.","The same business that surveys your bathroom quotes it, fits it and answers the phone after handover. No subcontracted trades, no third-party finishers.","We've fitted bathrooms across Derby's full housing mix â the Victorian and Edwardian terraces through Normanton and Pear Tree, the inter-war semis across Mickleover, Littleover and Allestree, the larger detached homes in Quarndon and Darley Abbey, and the newer estates around Oakwood and Chellaston. Local familiarity keeps quotes accurate."],propertyTypes:"Victorian/Edwardian terraces, inter-war semis, larger detached, modern estates",responseTime:"Free Derby home survey within the same week",commonNeeds:"Full installations, period renovations, ensuites, accessible adaptations",services:[{name:"Full Bathroom Installation",path:"/services/bathroom-installation",description:"Strip-out to snag-list across Derby."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"Higher-specification fits â common in Allestree, Quarndon and Darley Abbey."},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments",description:"Refreshes that keep your layout and replace what's tired."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Bath-to-shower swaps and frameless walk-ins."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully tanked, fall-graded wet rooms to current building regs."}
318,{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Mobility-led fits with level access and grab rails."},{name:"Cloakroom & Ensuite Fits",path:"/services/cloakroom-ensuite",description:"Tight-space fits â common in older Normanton/Pear Tree terraces."},{name:"Tiling Services",path:"/services/tiling-services",description:"Porcelain, ceramic, natural stone and large-format wall tiling."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Electric and wet UFH integrated into your fit."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"Live displays in Tamworth â 40 minutes from Derby via the A38."}],whyChooseUsContent:["Derby customers hire us when they want one team accountable end-to-end and they're not satisfied with what the local chains offer. We employ every trade, own every product line, and back the result with written workmanship and product warranties.","Every fit runs the same sequence: free home survey, fixed itemised quote, deposit, materials ordered and stored, agreed start date, daily supervision, snag-list, handover.","Checkatrade rates us 9.85/10 from 141 reviews. Google rates us 4.9 from 38+ reviews."],localProblemsHeading:"What Derby Homeowners Should Watch For",localProblemsContent:["'Supply-only' chain deals push fitting onto whoever you can find. We supply and fit so the buck stops with us.","Subcontracted installation is the biggest source of bathroom-fit complaints. Your warranty is only as strong as a stranger's willingness to come back.","Quotes without itemisation protect the fitter, not you. Our quotes list every fixture, tile, labour day and contingency.","Cash-in-hand work means no warranty, no insurance, no recourse."],processSteps:[{title:"Free Home Survey",description:"We visit your Derby property, take dimensions and photograph the existing setup."},{title:"Fixed Itemised Quote",description:"Written quote listing every product, every labour day and any contingencies."},{title:"Showroom Visit (Optional)",description:"Walk through live displays at our Tamworth showroom â 40 minutes via the A38."},{title:"Fit Scheduled & Materials Held",description:"We order and store everything before your start date."},{title:"Installation by Our Own Team",description:"Employed fitters, plumbers, electricians and tilers â one team, daily supervision."},{title:"Snag List & Handover",description:"Walk the finished room with you, fix anything you flag, then hand over paperwork and warranties."}],faqs:[{q:"Are you based in Derby?",a:"Our showroom and unit are in Tamworth, around 40 minutes from Derby via the A38. We cover DE21âDE24 regularly â please ask for postcodes further out."},{q:"Do you use subcontractors?",a:"No. Every trade on your bathroom is employed by Blue Sky."},{q:"How long does a typical Derby bathroom fit take?",a:"Most full bathrooms are fitted in 7â10 working days. Wet rooms and larger renovations can run 2â3 weeks."},{q:"How much do bathroom fitters cost in Derby?",a:"Complete fitted bathrooms in Derby start from around £7,000 supply-and-fit. Mid-range fits typically land between £9,000 and £15,000. Higher-spec renovations sit above that. Every quote is itemised and fixed."},{q:"What areas of Derby do you cover?",a:"DE21, DE22, DE23 and DE24 â Mickleover, Littleover, Allestree, Quarndon, Darley Abbey, Oakwood, Chellaston, Normanton and surrounding wards. Outside the ring road, please ask."},{q:"Are you insured and Gas Safe registered?",a:"Yes â full insurance, Gas Safe engineers, documentation on request."}],ctaHeading:"Get a Fixed Quote From Derby's Independent Bathroom Fitters",ctaSubtext:"Free home survey, itemised written quote, no obligation. Most Derby surveys booked within the same week.",nearbyAreas:[{name:"Burton-on-Trent",slug:"burton-on-trent"},{name:"Swadlincote",slug:"swadlincote"},{name:"Coalville",slug:"coalville"},{name:"Tamworth",slug:"tamworth"},{name:"Staffordshire",slug:"staffordshire"}]},Z3=()=>r.jsx(H,{data:J3}),e4={slug:"four-oaks-bathroom-fitters",name:"Four Oaks",title:"Bathroom Fitters Four Oaks | Sutton Coldfield | Blue Sky",metaDescription:"Four Oaks bathroom fitters â independent luxury installer
318s serving B74, employed team, own Tamworth showroom 20 minutes away. Call 0330 043 2234.",heroHeadline:"Luxury Bathroom Fitters in Four Oaks",heroSubheadline:"Four Oaks homeowners hire us when they want a properly designed and fitted bathroom â not a chain product. Our own employed team, our own Tamworth showroom, full written warranty.",trustMicro:"Covering B74 · Showroom 20 mins via A5127/A453 · Employed fitters, no subcontractors",localRelevanceContent:["Four Oaks is one of the most affluent residential pockets in the West Midlands â large Victorian and Edwardian villas, generous inter-war detached homes, and 1960s/70s executive builds across B74. Homeowners here typically want bathrooms that match the property, not flat-pack replacements from a chain.","Blue Sky is independent and end-to-end â our own showroom on Cavendish in Tamworth (around 20 minutes via the A5127 and A453), our own design team, and our own employed installers. The same business that surveys your bathroom quotes it, fits it and answers the phone after handover.","We've fitted bathrooms throughout Four Oaks, Little Aston, Mere Green, Roughley and the surrounding Sutton Park-side roads â Hartopp Road, Bracebridge Road, Belwell Lane, Lichfield Road and the larger plots off Streetly Lane. Local familiarity with B74's housing stock keeps quotes accurate and timelines realistic."],propertyTypes:"Victorian and Edwardian villas, large inter-war detached, 1960s/70s executive homes",responseTime:"Free Four Oaks home survey within the same week",commonNeeds:"Higher-spec full fits, ensuite additions, period-property renovations, freestanding-bath schemes",services:[{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"Higher-specification fits with bespoke tiling, freestanding baths and concealed cisterns â the typical Four Oaks brief."},{name:"Full Bathroom Installation",path:"/services/bathroom-installation",description:"Strip-out to snag-list across Four Oaks and the Sutton Park-side roads."},{name:"Cloakroom & Ensuite Fits",path:"/services/cloakroom-ensuite",description:"Ensuite additions and master-suite reworks â common in Four Oaks's larger properties."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully tanked, fall-graded wet rooms to current building regs."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Frameless walk-ins and bath-to-shower swaps."},{name:"Tiling Services",path:"/services/tiling-services",description:"Porcelain, ceramic, natural stone and large-format wall tiling."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Electric and wet UFH integrated into your fit."},{name:"Bathroom Design & Planning",path:"/services/bathroom-design-planning",description:"Free 3D design service from our Tamworth showroom."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"Live displays in Tamworth â 20 minutes from Four Oaks."},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments",description:"Refreshes that keep your layout and replace what's tired."}],whyChooseUsContent:["Four Oaks customers tend to hire us after one of two experiences: a national chain that subcontracted the install and left snag-list problems unresolved, or a sole-trader fitter who couldn't quite deliver the finish the property deserved. We sit between the two â properly resourced, properly designed, but still independent and personally accountable.","Every trade on your job is employed by us. Every product line is one we stock and stand behind. Every fit follows the same sequence: free home survey, fixed itemised quote, deposit, materials ordered and stored, agreed start date, daily supervision, snag-list, handover with paperwork.","Checkatrade rates us 9.85/10 from 141 reviews. Google rates us 4.9 from 38+ reviews."],localProblemsHeading:"What Four Oaks Homeowners Should Watch For",localProblemsContent:["Period properties in Four Oaks often have non-standard floor heights, lath-and-plaster walls, original soil stacks and Victorian timber
318work. Cheap quotes that don't account for them run over fast â our surveys flag and price them upfront.","'Luxury' chain showrooms often subcontract the actual install. The product on display is rarely what gets fitted, and the warranty pathway is split between supplier and fitter. We supply and fit, so the buck stops here.","Quotes without itemisation protect the fitter, not you. Our quotes list every fixture, tile, labour day and contingency.","Cash-in-hand work means no warranty, no insurance, no recourse."],processSteps:[{title:"Free Home Survey",description:"We visit your Four Oaks property, take dimensions and photograph the existing setup."},{title:"Fixed Itemised Quote",description:"Written quote listing every product, every labour day and any contingencies."},{title:"Showroom Visit (Optional)",description:"Walk through live displays at our Tamworth showroom â 20 minutes away."},{title:"Fit Scheduled & Materials Held",description:"We order and store everything before your start date."},{title:"Installation by Our Own Team",description:"Employed fitters, plumbers, electricians and tilers â one team, daily supervision."},{title:"Snag List & Handover",description:"Walk the finished room with you, fix anything you flag, then hand over paperwork and warranties."}],faqs:[{q:"Do you specialise in higher-spec Four Oaks bathrooms?",a:"Yes â most of our Four Oaks fits are higher-spec luxury renovations. Freestanding baths, frameless walk-ins, concealed cisterns, natural stone tiling and underfloor heating are typical."},{q:"Can you work on period properties?",a:"Yes. Non-standard floor heights, lath-and-plaster walls, Victorian timberwork and original soil stacks are routine for us. We quote them properly upfront."},{q:"Do you use subcontractors?",a:"No. Every trade on your bathroom is employed by Blue Sky."},{q:"How long does a typical Four Oaks bathroom fit take?",a:"Standard fits run 7â10 working days. Higher-spec renovations and master-suite reworks typically run 2â4 weeks."},{q:"How much do bathroom fitters cost in Four Oaks?",a:"Typical Four Oaks projects land between £12,000 and £25,000 supply-and-fit, depending on size and specification. Master-suite renovations sit above that. Every quote is itemised and fixed."},{q:"What roads and areas do you cover around Four Oaks?",a:"All of B74 â Four Oaks proper, Little Aston, Mere Green, Roughley, Streetly-side, plus the Sutton Park-edge roads (Hartopp, Bracebridge, Belwell, Lichfield Road)."},{q:"Are you insured and Gas Safe registered?",a:"Yes â full insurance, Gas Safe engineers, documentation on request."}],ctaHeading:"Get a Fixed Quote From Four Oaks's Luxury Bathroom Fitters",ctaSubtext:"Free home survey, itemised written quote, no obligation. Most Four Oaks surveys booked within the same week.",nearbyAreas:[{name:"Sutton Coldfield",slug:"sutton-coldfield"},{name:"Lichfield",slug:"lichfield"},{name:"Tamworth",slug:"tamworth"},{name:"Walsall",slug:"walsall"},{name:"Birmingham",slug:"birmingham"}]},t4=()=>r.jsx(H,{data:e4}),o4={slug:"mere-green-bathroom-fitters",name:"Mere Green",title:"Bathroom Fitters Mere Green | Sutton Coldfield | Blue Sky",metaDescription:"Mere Green bathroom fitters â independent luxury installers serving B75, employed team, own Tamworth showroom 15 minutes away. Call 0330 043 2234.",heroHeadline:"Luxury Bathroom Fitters in Mere Green",heroSubheadline:"Mere Green homeowners hire us for properly designed, properly fitted bathrooms â not chain product. Our own employed team, own Tamworth showroom, full written warranty.",trustMicro:"Covering B75 · Showroom 15 mins via the A453 · Employed fitters, no subcontractors",localRelevanceContent:["Mere Green sits at the top of Sutton Coldfield, with a housing mix that runs from large inter-war detached homes through to substantial
3181960s and 70s executive builds, plus modern infill. The Mulberry Walk shopping district means homeowners here are used to a higher standard of finish â and that's what they expect from a bathroom fit too.","Blue Sky is independent and end-to-end â our own showroom on Cavendish in Tamworth (around 15 minutes via the A453), our own design team, and our own employed installers.","We've fitted bathrooms throughout Mere Green, Hill Hook, Roughley and around the Mulberry Walk/Belwell Lane area. We know the typical B75 plot â generous master bedrooms with capacity for proper ensuites, family bathrooms with space for double basins, and downstairs cloakrooms that often want upgrading."],propertyTypes:"Inter-war detached, 1960s/70s executive homes, modern infill",responseTime:"Free Mere Green home survey within the same week",commonNeeds:"Higher-spec full fits, master ensuites, family bathroom reworks, cloakroom upgrades",services:[{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"Higher-specification fits â the typical Mere Green brief."},{name:"Cloakroom & Ensuite Fits",path:"/services/cloakroom-ensuite",description:"Master ensuite additions and downstairs cloakroom upgrades."},{name:"Full Bathroom Installation",path:"/services/bathroom-installation",description:"Strip-out to snag-list across Mere Green."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully tanked, fall-graded wet rooms to current building regs."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Frameless walk-ins and bath-to-shower swaps."},{name:"Tiling Services",path:"/services/tiling-services",description:"Porcelain, ceramic, natural stone and large-format wall tiling."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Electric and wet UFH integrated into your fit."},{name:"Bathroom Design & Planning",path:"/services/bathroom-design-planning",description:"Free 3D design service from our Tamworth showroom."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"Live displays in Tamworth â 15 minutes from Mere Green."},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments",description:"Refreshes that keep your layout and replace what's tired."}],whyChooseUsContent:["Mere Green customers want one team accountable end-to-end. We employ every trade, own every product line, and back the result with written workmanship and product warranties.","Every fit runs the same sequence: free home survey, fixed itemised quote, deposit, materials ordered and stored, agreed start date, daily supervision, snag-list, handover with paperwork.","Checkatrade rates us 9.85/10 from 141 reviews. Google rates us 4.9 from 38+ reviews."],localProblemsHeading:"What Mere Green Homeowners Should Watch For",localProblemsContent:["'Luxury' chain showrooms typically subcontract the actual install â and the warranty pathway is split between supplier and fitter. We supply and fit, so the buck stops here.","1960s/70s executive homes around Mere Green often have screeded floors, hidden soil-stack runs and non-standard ceiling voids. Cheap quotes ignore them and run over fast â our surveys flag and price them upfront.","Quotes without itemisation protect the fitter, not you. Our quotes list every fixture, tile, labour day and contingency.","Cash-in-hand work means no warranty, no insurance, no recourse."],processSteps:[{title:"Free Home Survey",description:"We visit your Mere Green property, take dimensions and photograph the existing setup."},{title:"Fixed Itemised Quote",description:"Written quote listing every product, every labour day and any contingencies."},{title:"Showroom Visit (Optional)",description:"Walk through live displays at our Tamworth showroom â 15 minutes away."},{title:"Fit Scheduled & Materials Held",description:"We order and store everything before your start date."},{title:"Installation by Our Own Team",description:"Employed fitters, plumbers, electricians and tilers â one team, daily supervision."},{title:"Snag List & Handover",description:"Walk the finished room with you, fix anything you flag, then hand over paperwork and warranties."}],faqs:[{q:"Do you specialise in higher-spec Mere Green bathrooms?",a:"Yes â most Mere Green fits are higher-spec renovations with freestanding baths, frameless walk-ins, natural stone and underfloor heating."},{q:"Do you use subcontractors?",a:"No. Every trade on your bathroom is employed by Blue Sky."},{q:"How long does a typical Mere Green bathroom fit take?",a:"Standard fits run 7â10 working days. Higher-spec renovations and ensuite additions typically run 2â4 weeks."},{q:"How much do bathroom fitters cost in Mere Green?",a:"Typical Mere Green projects land between £10,000 and £20,000 supply-and-fit. Master-suite renovations sit above that. Every quote is itemised and fixed."},{q:"What roads do you cover around Mere Green?",a:"All of B75 â Mere Green proper, Hill Hook, Roughley, Belwell Lane and the Mulberry Walk surrounds."},{q:"Are you insured and Gas Safe registered?",a:"Yes â full insurance, Gas Safe engineers, documentation on request."}],ctaHeading:"Get a Fixed Quote From Mere Green's Luxury Bathroom Fitters",ctaSubtext:"Free home survey, itemised written quote, no obligation. Most Mere Green surveys booked within the same week.",nearbyAreas:[{name:"Sutton Coldfield",slug:"sutton-coldfield"},{name:"Lichfield",slug:"lichfield"},{name:"Tamworth",slug:"tamworth"},{name:"Birmingham",slug:"birmingham"},{name:"Walsall",slug:"walsall"}]},r4=()=>r.jsx(H,{data:o4}),a4={slug:"shenstone-bathroom-fitters",name:"Shenstone",title:"Bathroom Fitters Shenstone | Lichfield | Blue Sky Bathrooms",metaDescription:"Shenstone bathroom fitters â independent luxury installer
318s serving WS14, employed team, own Tamworth showroom 15 minutes away. Call 0330 043 2234.",heroHeadline:"Luxury Bathroom Fitters in Shenstone",heroSubheadline:"Shenstone homeowners hire us for properly designed, properly fitted bathrooms in characterful village properties. Our own employed team, own Tamworth showroom.",trustMicro:"Covering WS14 · Showroom 15 mins via the A5127 · Employed fitters, no subcontractors",localRelevanceContent:["Shenstone is one of the most desirable villages between Lichfield and Sutton â a mix of Georgian and Victorian cottages around the village core, larger Edwardian and inter-war detached properties along Birmingham Road and Footherley Lane, and substantial modern executive builds out toward Stonnall and Little Aston.","Blue Sky is independent and end-to-end â our own showroom on Cavendish in Tamworth (around 15 minutes via the A5127), our own design team, and our own employed installers. The same business that surveys your bathroom quotes it, fits it and answers the phone after handover.","We've fitted bathrooms throughout Shenstone village, Shenstone Woodend, Footherley and the surrounding hamlets â and we know the local property quirks: period timberwork, non-standard floor levels, sometimes soft-water private supplies, and the planning sensitivities that come with conservation areas."],propertyTypes:"Georgian and Victorian cottages, Edwardian villas, inter-war detached, modern executive builds",responseTime:"Free Shenstone home survey within the same week",commonNeeds:"Period-property renovations, ensuite additions, freestanding-bath schemes, accessible adaptations",services:[{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"Higher-specification fits â the typical Shenstone brief."},{name:"Full Bathroom Installation",path:"/services/bathroom-installation",description:"Strip-out to snag-list across Shenstone and surrounds."},{name:"Cloakroom & Ensuite Fits",path:"/services/cloakroom-ensuite",description:"Ensuite additions and tight-space fits â common in Shenstone's older properties."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully tanked, fall-graded wet rooms to current building regs."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Frameless walk-ins and bath-to-shower swaps."},{name:"Tiling Services",path:"/services/tiling-services",description:"Porcelain, ceramic, natural stone and large-format wall tiling."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Electric and wet UFH integrated into your fit."}
318,{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Mobility-led fits with level access and grab rails."},{name:"Bathroom Design & Planning",path:"/services/bathroom-design-planning",description:"Free 3D design service from our Tamworth showroom."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"Live displays in Tamworth â 15 minutes from Shenstone."}],whyChooseUsContent:["Shenstone customers want one team accountable end-to-end and someone comfortable working in period and conservation-area properties. We employ every trade, own every product line, and back the result with written warranties.","Every fit runs the same sequence: free home survey, fixed itemised quote, deposit, materials ordered and stored, agreed start date, daily supervision, snag-list, handover with paperwork.","Checkatrade rates us 9.85/10 from 141 reviews. Google rates us 4.9 from 38+ reviews."],localProblemsHeading:"What Shenstone Homeowners Should Watch For",localProblemsContent:["Shenstone's older properties commonly have lath-and-plaster walls, original timber floors, oversized soil stacks and sometimes private water supplies. Cheap quotes ignore them â our surveys flag and price them upfront.","Conservation-area constraints can affect window glazing and external work. We flag anything material at survey.","'Supply-only' chain deals push fitting onto whoever you can find. We supply and fit so the buck stops with us.","Quotes without itemisation protect the fitter, not you."],processSteps:[{title:"Free Home Survey",description:"We visit your Shenstone property, take dimensions and photograph the existing setup."},{title:"Fixed Itemised Quote",description:"Written quote listing every product, every labour day and any contingencies."},{title:"Showroom Visit (Optional)",description:"Walk through live displays at our Tamworth showroom â 15 minutes away."},{title:"Fit Scheduled & Materials Held",description:"We order and store everything before your start date."},{title:"Installation by Our Own Team",description:"Employed fitters, plumbers, electricians and tilers â one team, daily supervision."},{title:"Snag List & Handover",description:"Walk the finished room with you, fix anything you flag, then hand over paperwork and warranties."}],faqs:[{q:"Do you work on period and conservation-area properties in Shenstone?",a:"Yes â routinely. Lath-and-plaster, original timber floors, oversized soil stacks and conservation-area constraints are part of our normal workflow."},{q:"Do you use subcontractors?",a:"No. Every trade on your bathroom is employed by Blue Sky."},{q:"How long does a typical Shenstone bathroom fit take?",a:"Standard fits run 7â10 working days. Period-property renovations typically run 2â4 weeks."},{q:"How much do bathroom fitters cost in Shenstone?",a:"Typical Shenstone projects land between £10,000 and £20,000 supply-and-fit. Period renovations sit above that. Every quote is itemised and fixed."},{q:"What areas around Shenstone do you cover?",a:"All of WS14 â Shenstone village, Shenstone Woodend, Footherley, Stonnall, Little Aston-side, plus the wider Lichfield district."},{q:"Are you insured and Gas Safe registered?",a:"Yes â full insurance, Gas Safe engineers, documentation on request."}],ctaHeading:"Get a Fixed Quote From Shenstone's Luxury Bathroom Fitters",ctaSubtext:"Free home survey, itemised written quote, no obligation. Most Shenstone surveys booked within the same week.",nearbyAreas:[{name:"Lichfield",slug:"lichfield"},{name:"Sutton Coldfield",slug:"sutton-coldfield"},{name:"Tamworth",slug:"tamworth"},{name:"Walsall",slug:"walsall"},{name:"Cannock",slug:"cannock"}]},n4=()=>r.jsx(H,{data:a4}),s4={slug:"fazeley-bathroom-fitters",name:"Fazeley",title:"Bathroom Fitters Fazeley | Tamworth | Blue Sky Bathrooms",metaDescription:"Fazeley bathroom fitters â independent, employed team, own Tamworth showroom 5 minutes away. No subcontractors, full warranty. Call 0330 043 2234.",heroHeadline:"Local Bathroom Fitters in Fazeley",heroSubheadline:"Fazeley is on our doorstep â our Tamworth showroom is five minutes away. Our own employed team, full written warranty, no subcontractors.",trustMicro:"Covering B78 Fazeley · Showroom 5 mins via the A5 · Employed fitters",localRelevanceContent:["Fazeley sits directly south of Tamworth and is one of our closest local areas â our Cavendish showroom is around five minutes away via the A5. We've fitted bathrooms across most of B78, from the canalside cottages around Fazeley Junction through to the post-war semis along Coleshill Street, Lichfield Street and Mill Lane, and the newer developments around Drayton Manor Drive and Tolson Avenue.","Blue Sky is independent and end-to-e
318nd â own design team, own employed installers, own showroom. The same business that surveys your bathroom quotes it, fits it and answers the phone after handover.","Being this close to your home means short response times if anything ever needs revisiting after the fit. Local familiarity with B78 plots also keeps quotes accurate and timelines realistic."],propertyTypes:"Canalside cottages, post-war semis, modern estates",responseTime:"Free Fazeley home survey within 48 hours",commonNeeds:"Full installations, bath-to-shower swaps, ensuites, accessible adaptations",services:[{name:"Full Bathroom Installation",path:"/services/bathroom-installation",description:"Strip-out to snag-list across Fazeley."},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments",description:"Refreshes that keep your layout and replace what's tired."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Bath-to-shower swaps and frameless walk-ins."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully tanked, fall-graded wet rooms to current building regs."}
318,{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Mobility-led fits with level access and grab rails."},{name:"Cloakroom & Ensuite Fits",path:"/services/cloakroom-ensuite",description:"Tight-space fits where every millimetre matters."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"Higher-specification fits with bespoke tiling and freestanding baths."},{name:"Tiling Services",path:"/services/tiling-services",description:"Porcelain, ceramic, natural stone and large-format wall tiling."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Electric and wet UFH integrated into your fit."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"Live displays in Tamworth â five minutes from Fazeley."}],whyChooseUsContent:["We're effectively your local bathroom fitter â Fazeley is a five-minute drive from the showroom. That means same-day response for surveys and quick turnaround on anything post-fit.","Every fit runs the same sequence: free home survey, fixed itemised quote, deposit, materials ordered and stored, agreed start date, daily supervision, snag-list, handover with paperwork and warranties.","Checkatrade rates us 9.85/10 from 141 reviews. Google rates us 4.9 from 38+ reviews."],localProblemsHeading:"What Fazeley Homeowners Should Watch For",localProblemsContent:["Cash-in-hand local traders are common in Fazeley but offer no warranty, no insurance, no recourse. Every Blue Sky job is invoiced, VAT-registered and fully warranted.","'Supply-only' chain deals push fitting onto whoever you can find. We supply and fit so the buck stops with us.","Subcontracted installation is the biggest source of bathroom-fit complaints. Every trade on your job is employed by us.","Quotes without itemisation protect the fitter, not you."],processSteps:[{title:"Free Home Survey",description:"We visit your Fazeley property â usually within 48 hours."},{title:"Fixed Itemised Quote",description:"Written quote listing every product, every labour day and any contingencies."},{title:"Showroom Visit (Optional)",description:"Walk through live displays at our Tamworth showroom â five minutes away."},{title:"Fit Scheduled & Materials Held",description:"We order and store everything before your start date."},{title:"Installation by Our Own Team",description:"Employed fitters, plumbers, electricians and tilers â one team, daily supervision."},{title:"Snag List & Handover",description:"Walk the finished room with you, fix anything you flag, then hand over paperwork and warranties."}],faqs:[{q:"How close is your showroom to Fazeley?",a:"Around five minutes via the A5. Our base is on Cavendish in Tamworth."},{q:"Do you use subcontractors?",a:"No. Every trade on your bathroom is employed by Blue Sky."},{q:"How long does a typical Fazeley bathroom fit take?",a:"Most full bathrooms are fitted in 7â10 working days."},{q:"How much do bathroom fitters cost in Fazeley?",a:"Complete fitted bathrooms in Fazeley start from around £7,000 supply-and-fit. Mid-range fits typically land between £9,000 and £14,000."},{q:"Are you insured and Gas Safe registered?",a:"Yes â full insurance, Gas Safe engineers, documentation on request."}],ctaHeading:"Get a Fixed Quote From Fazeley's Local Bathroom Fitters",ctaSubtext:"Free home survey, itemised written quote, no obligation. Most Fazeley surveys booked within 48 hours.",nearbyAreas:[{name:"Tamworth",slug:"tamworth"},{name:"Atherstone",slug:"atherstone"},{name:"Lichfield",slug:"lichfield"},{name:"Sutton Coldfield",slug:"sutton-coldfield"},{name:"Nuneaton",slug:"nuneaton"}]},i4=()=>r.jsx(H,{data:s4}),l4={slug:"polesworth-bathroom-fitters",name:"Polesworth",title:"Bathroom Fitters Polesworth | Blue Sky Bathrooms",metaDescription:"Polesworth bathroom fitters â independent, employed team, own Tamworth showroom 10 minutes away. No subcontractors, full warranty. Call 0330 043 2234.",heroHeadline:"Local Bathroom Fitters in Polesworth",heroSubheadline:"Polesworth and the surrounding B78 villages are close to home for us â our Tamworth showroom is around ten minutes away. Own employed team, full written warranty.",trustMicro:"Covering B78 Polesworth · Showroom 10 mins · Employed fitters, no subcontractors",localRelevanceContent:["Polesworth sits east of Tamworth and we cover the whole village plus the surrounding hamlets â Dordon, Birchmoor, Hall End, Warton and out toward Grendon. Our Cavendish showroom is around ten minutes away.","Blue Sky is independent and end-to-e
318nd â own design team, own employed installers, own showroom. The same business that surveys your bathroom quotes it, fits it and answers the phone after handover.","We've fitted bathrooms across Polesworth's housing mix â the older terraces around High Street and Bridge Street, the post-war semis through Tamworth Road and Birch Coppice, and the newer developments off Common Lane and Bramwell Drive."],propertyTypes:"Village terraces, post-war semis, modern developments, rural cottages",responseTime:"Free Polesworth home survey within 48 hours",commonNeeds:"Full installations, bath-to-shower swaps, ensuites, accessible adaptations",services:[{name:"Full Bathroom Installation",path:"/services/bathroom-installation",description:"Strip-out to snag-list across Polesworth."},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments",description:"Refreshes that keep your layout and replace what's tired."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Bath-to-shower swaps and frameless walk-ins."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully tanked, fall-graded wet rooms to current building regs."}
318,{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Mobility-led fits with level access and grab rails."},{name:"Cloakroom & Ensuite Fits",path:"/services/cloakroom-ensuite",description:"Tight-space fits where every millimetre matters."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"Higher-specification fits with bespoke tiling and freestanding baths."},{name:"Tiling Services",path:"/services/tiling-services",description:"Porcelain, ceramic, natural stone and large-format wall tiling."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Electric and wet UFH integrated into your fit."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"Live displays in Tamworth â 10 minutes from Polesworth."}],whyChooseUsContent:["Polesworth is close enough to be effectively a local job for us. That means quick response on surveys and quick turnaround on anything post-fit.","Every fit runs the same sequence: free home survey, fixed itemised quote, deposit, materials ordered and stored, agreed start date, daily supervision, snag-list, handover.","Checkatrade rates us 9.85/10 from 141 reviews. Google rates us 4.9 from 38+ reviews."],localProblemsHeading:"What Polesworth Homeowners Should Watch For",localProblemsContent:["Cash-in-hand village traders are common but offer no warranty, no insurance, no recourse. Every Blue Sky job is invoiced, VAT-registered and fully warranted.","'Supply-only' chain deals push fitting onto whoever you can find. We supply and fit so the buck stops with us.","Subcontracted installation is the biggest source of bathroom-fit complaints.","Quotes without itemisation protect the fitter, not you."],processSteps:[{title:"Free Home Survey",description:"We visit your Polesworth property â usually within 48 hours."},{title:"Fixed Itemised Quote",description:"Written quote listing every product, every labour day and any contingencies."},{title:"Showroom Visit (Optional)",description:"Walk through live displays at our Tamworth showroom â 10 minutes away."},{title:"Fit Scheduled & Materials Held",description:"We order and store everything before your start date."},{title:"Installation by Our Own Team",description:"Employed fitters, plumbers, electricians and tilers â one team, daily supervision."},{title:"Snag List & Handover",description:"Walk the finished room with you, fix anything you flag, then hand over paperwork and warranties."}],faqs:[{q:"How close is your showroom to Polesworth?",a:"Around ten minutes from Polesworth. Our base is on Cavendish in Tamworth."},{q:"Do you use subcontractors?",a:"No. Every trade on your bathroom is employed by Blue Sky."},{q:"How long does a typical Polesworth bathroom fit take?",a:"Most full bathrooms are fitted in 7â10 working days."},{q:"How much do bathroom fitters cost in Polesworth?",a:"Complete fitted bathrooms in Polesworth start from around £7,000 supply-and-fit. Mid-range fits typically land between £9,000 and £14,000."},{q:"What villages around Polesworth do you cover?",a:"Polesworth, Dordon, Birchmoor, Hall End, Warton, Grendon and the surrounding B78 hamlets."},{q:"Are you insured and Gas Safe registered?",a:"Yes â full insurance, Gas Safe engineers, documentation on request."}],ctaHeading:"Get a Fixed Quote From Polesworth's Local Bathroom Fitters",ctaSubtext:"Free home survey, itemised written quote, no obligation. Most Polesworth surveys booked within 48 hours.",nearbyAreas:[{name:"Tamworth",slug:"tamworth"},{name:"Atherstone",slug:"atherstone"},{name:"Nuneaton",slug:"nuneaton"},{name:"Lichfield",slug:"lichfield"},{name:"Warwickshire",slug:"warwickshire"}]},d4=()=>r.jsx(H,{data:l4}),c4={slug:"measham-bathroom-fitters",name:"Measham",title:"Bathroom Fitters Measham | Blue Sky Bathrooms",metaDescription:"Measham bathroom fitters â independent, employed team, own Tamworth showroom 20 minutes away. No subcontractors, full warranty. Call 0330 043 2234.",heroHeadline:"Trusted Bathroom Fitters in Measham",heroSubheadline:"We design, supply and fit bathrooms across Measham and the surrounding DE12 villages â one employed team, our own Tamworth showroom, full written warranty.",trustMicro:"Covering DE12 · Showroom 20 mins via the A42 · Employed fitters, no subcontractors",localRelevanceContent:["Measham sits at the southern tip of the National Forest, just south of Ashby-de-la-Zouch, and is one of the closer Leicestershire villages to our Tamworth base â around 20 minutes via the A42 northbound. We've fitted bathrooms across most of DE12, from the older terraces along High Street and Bosworth Road through to the post-war semis on Burton Road and Atherstone Road, and the newer estate properties around Repton Place and Measham Fields. Each part of the village has its own structural character, and knowing those differences keeps our surveys accurate and our quotes honest.","Blue Sky is independent and end-to-e
318nd â own design team, own employed installers, own showroom on Cavendish in Tamworth. The same business that surveys your bathroom quotes it, fits it and answers the phone after handover. There are no subcontractors brought in for the plastering or the tiling, no agency fitters arranged at the last minute, and no chain of separate suppliers to chase when something doesn't arrive. One phone number. One team. One written warranty covering both workmanship and products.","The DE12 postcode covers a wider arc of south-west Leicestershire that includes not just Measham village but the surrounding communities of Donisthorpe, Oakthorpe, Snarestone, Appleby Magna and Norton-juxta-Twycross. We service all of these as a matter of routine. The housing stock across these villages ranges from 18th and 19th century red-brick terraces and former mining cottages in Donisthorpe and Oakthorpe, to the newer detached homes around the Ashby Road corridor in Appleby Magna. We've worked across the full range and understand what each type of property requires before a bathroom tile is laid.","Many of the older properties in Measham's High Street and around Church Street date from the Victorian and Edwardian periods, when the village was a market and mining centre. These homes frequently have solid brick walls, concrete or quarry-tile floors and original cast-iron soil stacks that run through internal walls in positions that no modern planning would permit. Fitting a contemporary walk-in shower or a wet room in one of these properties requires careful structural assessment and proper waterproofing preparation â not a standard supply-and-swap approach. We survey specifically for these conditions and price them into the quote before work starts.","Measham's newer estates â principally the developments built from the 1990s onward off Atherstone Road and around the Measham Fields area â present different but equally important considerations. Timber-framed internal walls require solid boarding before any tiling, original thermostatic shower systems often need replacing to achieve modern flow rates, and the bathroom sizes on some of these properties reward a proper layout redesign rather than a like-for-like replacement. Our survey process assesses all of this before we recommend a specification.","Access to our Tamworth showroom is one of the practical advantages we offer DE12 customers that a local sole trader simply cannot match. The showroom carries live displays of sanitaryware, shower enclosures, bath shapes, tiling ranges and accessories â everything you need to make a confident product choice before you commit to a price. Most Measham customers visit within a week of the initial survey, choose their products from the live displays, and have a confirmed fixed quote before the end of that same week. The A42 makes it straightforward â 20 minutes each way and a clear decision at the end of it."],propertyTypes:"Village terraces, post-war semis, modern estates, rural cottages",responseTime:"Free Measham home survey within the same week",commonNeeds:"Full installations, bath-to-shower swaps, ensuites, accessible adaptations",services:[{name:"Full Bathroom Installation",path:"/services/bathroom-installation",description:"Strip-out to snag-list across Measham."},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments",description:"Refreshes that keep your layout and replace what's tired."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Bath-to-shower swaps and frameless walk-ins."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully tanked, fall-graded wet rooms to current building regs."}
318,{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Mobility-led fits with level access and grab rails."},{name:"Cloakroom & Ensuite Fits",path:"/services/cloakroom-ensuite",description:"Tight-space fits where every millimetre matters."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"Higher-specification fits with bespoke tiling and freestanding baths."},{name:"Tiling Services",path:"/services/tiling-services",description:"Porcelain, ceramic, natural stone and large-format wall tiling."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Electric and wet UFH integrated into your fit."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"Live displays in Tamworth â 20 minutes from Measham via the A42."}],whyChooseUsContent:["Measham and the surrounding DE12 villages are well served by local sole traders, and some of them do good work. What they cannot offer is the combination of a fixed-price guarantee, employed trades across every discipline, a live showroom, and a business large enough to carry full insurance and written warranties. Customers hire us when they want one team to be fully responsible for everything â design, supply, fit, snag and long-term warranty â without the risk of chasing separate tradespeople if something needs attention.","Every fit runs the same clearly defined sequence: free home survey, fixed itemised quote, deposit, materials ordered and stored at our Tamworth unit before the first day on site, confirmed start date, daily on-site supervision, snag-list completed with you present, and formal handover with full paperwork. A bathroom fit in Donisthorpe gets exactly the same rigour as a luxury renovation in Measham village. The process does not change based on job size or location.","Checkatrade rates us 9.85 out of 10 from 141 verified reviews. Google rates us 4.9 from 38+ reviews from a separate set of customer submissions. Both are public and searchable by name. Read them before you call us. The reviews include customers across the DE12 corridor and the wider south Staffordshire and Leicestershire area â you can judge the consistency of our work from what genuine customers write, not from what we claim about ourselves.","We carry full public liability and employer's liability insurance. Gas work is completed by Gas Safe registered engineers. Electrical work is signed off to Part P building regulations. All documentation is available before you pay a deposit. In a rural village context where many jobs are done on a handshake, the difference between insured and warranted work and uninsured cash-in-hand work is the difference between having recourse and having nothing when something goes wrong.","Our proximity to DE12 is a genuine operational advantage. At 20 minutes from Tamworth via the A42, we can arrange a home survey, receive a call about a fitting issue the same day, or organise a return visit for a warranty matter far more quickly than any Leicester or Derby-based business covering this area as an outlying territory. For a project running 7 to 10 working days, that proximity matters every single day."],localProblemsHeading:"What Measham Homeowners Should Watch For",localProblemsContent:["Cash-in-hand village traders are common across DE12 and some of the work they do is perfectly adequate. The problem arises when something goes wrong â a leaking seal, a cracked tile, a shower tray that hasn't been bedded properly. Without a formal invoice, a written warranty and a VAT-registered business behind the job, you have no documented recourse. Every Blue Sky job is issued a formal invoice, is VAT-registered, and comes with written workmanship and product warranties that are enforceable.","'Supply-only' deals from bathroom chains in Burton-on-Trent or Tamworth retail parks push the fitting responsibility onto whoever you can find in the village. When the product doesn't fit the space or the tile allocation runs short, the retailer and the fitter point at each other. We supply and fit under a single contract, which means there is no division of responsibility and no ambiguity about who is accountable.","Subcontracted installation is the most common source of bathroom-fit complaints nationwide. A fitter arranged through an agency or recommended by a retailer has no long-term relationship with your specific job. Once the
318ir element is complete, they are on to the next project. If your seal fails six months later or your shower screen was fitted out of true, the willingness of a freelance subcontractor to return to Measham for a recall visit is not something you can rely on. Every trade on a Blue Sky installation is employed directly and answerable to us.","Quotes without itemisation protect the fitter, not the homeowner. A single price for 'full bathroom installation' leaves every product decision, every tile choice and every labour schedule open to revision after you've signed. Our quotes list every fixture by manufacturer and model reference, every tile by product code and quantity, every labour day and a named contingency figure for any structural condition that emerges during strip-out. You sign knowing exactly what you are getting.","The older properties in Measham â particularly those along High Street, Church Street and around the former colliery-worker terraces in Donisthorpe â often have structural conditions that require specific preparation before modern bathroom products can be fitted properly. Solid floors need tanking or screed preparation before a wet room membrane is applied. Lath-and-plaster walls need boarding before large-format tiles can be hung. A fitter who works primarily on new-build estates will encounter these conditions and either price them in after the fact or work around them in ways that cause water ingress later. We assess all of this at survey stage and price it into the original quote.","Lead times that seem unusually short often indicate that a trader is fitting your job around other commitments â a split week here, a day off there, returning to finish when another client cancels. This pattern produces delayed completions and pressure on the snag-list stage. We schedule one project per crew, confirm a start date in writing, and do not move to the next job until your bathroom is fully handed over and the snag list is clear.","For any gas work forming part of a bathroom installation â whether that is a new boiler connection, a gas fire removal or a gas supply relocation â the engineer must hold a current Gas Safe registration. Measham homeowners should ask for the registration card number and verify it at gassaferegister.co.uk before any gas work begins. Our engineers' registration details are provided at the quoting stage as a matter of course."],processSteps:[{title:"Free Home Survey",description:"We visit your Measham property, take dimensions and photograph the existing setup."},{title:"Fixed Itemised Quote",description:"Written quote listing every product, every labour day and any contingencies."},{title:"Showroom Visit (Optional)",description:"Walk through live displays at our Tamworth showroom â 20 minutes via the A42."},{title:"Fit Scheduled & Materials Held",description:"We order and store everything before your start date."},{title:"Installation by Our Own Team",description:"Employed fitters, plumbers, electricians and tilers â one team, daily supervision."},{title:"Snag List & Handover",description:"Walk the finished room with you, fix anything you flag, then hand over paperwork and warranties."}],faqs:[{q:"Are you based in Measham?",a:"Our showroom and unit are in Tamworth, around 20 minutes from Measham via the A42. We cover DE12 regularly and treat it as a core service area rather than an outlying call-out zone."},{q:"Do you use subcontractors?",a:"No. Every trade on your bathroom â fitter, plumber, electrician and tiler â is employed directly by Blue Sky. That is what allows us to stand behind our workmanship warranty without any ambiguity about which party is responsible."},{q:"How long does a typical Measham bathroom fit take?",a:"Most full bathroom installations in Measham are completed in 7 to 10 working days. Wet rooms and larger renovations typically run 2 to 3 weeks. Older properties with solid floors or lath-and-plaster walls may require an additional preparation day or two, which we identify at survey and include in the schedule."},{q:"How much do bathroom fitters cost in Measham?",a:"Complete supply-and-fit bathrooms in Measham start from around £7,000. Mid-range fits â good sanitaryware, full tiling, walk-in shower â typically land between £9,000 and £14,000. Higher-specification renovations sit above that. Every quote is itemised and fixed; the price does not change after you sign."},{q:"What villages around Measham do you cover?",a:"All of DE12 â Measham village, Donisthorpe, Oakthorpe, Snarestone, Appleby Magna, Norton-juxta-Twycross and the surrounding hamlets. If your address is not listed here, call and ask â the answer will almost certainly be yes."},{q:"Do you work in older village properties?",a:"Yes. A significant proportion of our DE12 work is in Victorian and Edwardian properties â former mining cottages in Donisthorpe, terraces along High Street in Measham, and older farmhouse conversions across the area. We survey for solid floors, original pipework and lath-and-plaster walls before quoting, and price for them honestly rather than treating them as extras after the fit starts."},{q:"Can I visit your showroom?",a:"Yes, and we encourage it. Our Tamworth showroom has live displays of sanitaryware, shower enclosures, bath shapes, tiling and accessories. Most Measham customers visit within a week of the initial survey and choose their products from the live range. The showroom is 20 minutes from Measham via the A42."},{q:"Are you insured and Gas Safe registered?",a:"Yes. We hold full public liability and employer'
318s liability insurance. Gas work is completed by Gas Safe registered engineers, and electrical work is signed off to Part P building regulations. All documentation is available on request before you commit to a deposit."},{q:"What happens if something needs attention after the fit?",a:"Call the same number you used to book. Because every trade was employed by Blue Sky, there is no third party to be referred to. We return for warranty visits at no charge within the warranty period, which is confirmed in writing in your handover paperwork."},{q:"Do you install accessible bathrooms in the Measham area?",a:"Yes. We design and fit level-access shower areas, wet rooms with fall-graded floors, grab rails, fold-down shower seats and raised WCs across Measham and the surrounding DE12 villages. These are full design-and-fit packages assessed individually at the survey stage, not adaptations bolted onto a standard quote."}],ctaHeading:"Get a Fixed Quote From Measham's Trusted Bathroom Fitters",ctaSubtext:"Free home survey, itemised written quote, no obligation. Most Measham surveys booked within the same week.",nearbyAreas:[{name:"Atherstone",slug:"atherstone"},{name:"Swadlincote",slug:"swadlincote"},{name:"Coalville",slug:"coalville"},{name:"Tamworth",slug:"tamworth"},{name:"Burton-on-Trent",slug:"burton-on-trent"}]},u4=()=>r.jsx(H,{data:c4}),h4={slug:"lichfield-bathroom-refurbishment",name:"Lichfield",title:"Bathroom Refurbishment Lichfield | Blue Sky Bathrooms",metaDescription:"Bathroom refurbishment in Lichfield â refresh your existing layout with new sanitaryware, tiling and finishes. Tamworth showroom 15 min away. Call 0330 043 2234.",heroHeadline:"Bathroom Refurbishment in Lichfield",heroSubheadline:"Tired bathroom but a layout that works? A refurbishment keeps your existing plumbing and footprint while replacing everything you see and touch â usually in a fraction of the time and cost of a full renovation.",trustMicro:"15 minutes from Lichfield · Same-week surveys · Most refurbs completed in 5â8 days",localRelevanceContent:["Lichfield's housing mix â from peri
318od properties in the Cathedral Quarter to 1980s estates around Boley Park and newer plots at Streethay â has a lot of bathrooms that are structurally fine but cosmetically dated. Refurbishment is the right answer for most of them: keep the working plumbing, replace the surfaces, sanitaryware and finishes, and walk away with a bathroom that looks and feels brand new.","A full strip-out renovation isn't always necessary. If your layout already suits how you use the room, moving the toilet two inches across the floor adds days of work, hundreds of pounds in pipework, and rarely improves the result. We're upfront about when a refurbishment will give you 90% of the outcome at 60% of the cost â and equally upfront when a full renovation is the right call.","From our Tamworth base on Cavendish, Lichfield is a 15-minute drive. That means quick site visits, fast warranty response, and a showroom you can actually walk into rather than a pop-up display in a portacabin."],propertyTypes:"Period townhouses, Victorian terraces, 1980s estates, modern semis, new builds",responseTime:"Free survey within the same week from our Tamworth showroom",commonNeeds:"Tile replacement, new sanitaryware, bath-to-shower swaps, lighting & ventilation upgrades",services:[{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments",description:"Our core refurbishment service â replace surfaces and fixtures without moving plumbing."},{name:"Full Bathroom Installation",path:"/services/bathroom-installation",description:"When the layout needs changing or the plumbing is failing â full strip-out and rebuild."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"The most common Lichfield refurbishment upgrade â swap an unused bath for a generous walk-in shower."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"For Lichfield's smaller bathrooms where a fully tanked wet room maximises usable space."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"Higher-specification refurbishments for Lichfield's premium residential streets."},{name:"Tiling Services",path:"/services/tiling-services",description:"Large-format porcelain, natural stone and traditional ceramic to suit period or modern properties."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Often added during refurbishment â a noticeable upgrade for under £1,500 in most rooms."}
318,{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Refurbishments that build in future-proofed accessibility from day one."},{name:"Bathroom Design & Planning",path:"/services/bathroom-design-planning",description:"Free 3D design at our Tamworth showroom before any work starts."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"Browse live displays 15 minutes from Lichfield city centre."}],whyChooseUsContent:["Lichfield homeowners typically come to us with one of three triggers: tile grout that's gone past saving, a bath that hasn't been used in three years and is taking up space they want back, or a bathroom that looked great in 2005 and just doesn't anymore. All three are textbook refurbishment jobs.","Because we keep the existing plumbing footprint, refurbishments are quicker, cleaner and less disruptive than a full renovation. Most Lichfield refurbishments are wrapped up in 5â8 working days, with the room out of action for that period only. There's no second-fix plumbing inspection, no plastering of new chased walls, and no waiting for a fresh screed to cure.","Every refurbishment includes the same Blue Sky guarantees as a full renovation: written workmanship warranty, manufacturer warranties on all products, employed fitters (no subcontractors), and a single point of contact from quote to handover."],localProblemsHeading:"When Lichfield Bathrooms Need Refurbishing, Not Renovating",localProblemsContent:["Failed grout and silicone are the most common refurbishment trigger we see in Lichfield. Once water has tracked behind tiles, no amount of re-grouting recovers it â but a full renovation is overkill. Strip the tiles, re-board, re-tile, re-seal: that's a refurbishment.","Bath-to-shower conversions dominate refurbishment requests across Lichfield's family homes, particularly on Boley Park and around Streethay where the kids have grown up and the bath is now used twice a year. A walk-in shower in the same footprint reclaims floor space and adds resale value.","Tile fashions move quickly. Lichfield bathrooms fitted in the early 2000s often have coloured suites or small-format wall tiles that now look dated. A refurbishment in large-format neutral tiles and a white suite resets the room without touching the plumbing.","Old extractor fans and yellowing ceiling lights age a bathroom more than people realise. New IP-rated downlights, a quiet humidity-sensing extractor and a backlit mirror often make as much visual difference as new tiles."],processSteps:[{title:"Free Lichfield Home Survey",description:"We visit, measure, photograph the existing room and confirm whether refurbishment is the right route."},{title:"Fixed Itemised Quote",description:"Every product, every labour day, every contingency â written down so there are no surprises."},{title:"Showroom Visit",description:"A 15-minute drive to Cavendish in Tamworth to finalise tiles, sanitaryware and fittings."},{title:"Materials Held & Date Confirmed",description:"Everything is ordered and stored at our unit before your start date â no mid-fit stock delays."},{title:"Refurbishment Carried Out",description:"Typically 5â8 working days on site. One team, daily supervision, agreed sequence."},{title:"Snag List & Handover",description:"Walk-through, defect fix, paperwork and warranties handed over."}],faqs:[{q:"What's the difference between refurbishment and renovation?",a:"A refurbishment keeps your existing layout and plumbing â we replace surfaces, sanitaryware and finishes. A renovation moves plumbing, walls, doors or windows. Refurbishments are quicker, cleaner and cheaper; renovations are necessary when the room needs to fundamentally change."},{q:"How much does a bathroom refurbishment in Lichfield cost?",a:"Most Lichfield refurbishments land between £5,500 and £9,000 supply-and-fit. Higher-specification work with bespoke tiling sits above that. We quote everything itemised so you can see exactly what you're paying for."},{q:"How long will the bathroom be out of action?",a:"Typically 5â8 working days from start to handover. If you have a second bathroom or ensuite, you'll barely notice the disruption."},{q:"Can you refurbish a listed Lichfield property?",a:"Yes â we regularly work in Lichfield's conservation areas and have experience with the limitations that apply to listed properties. We'll flag any consents you may
318need before starting."},{q:"Do you supply the products or do I source them?",a:"We supply everything from our Tamworth showroom â sanitaryware, tiles, taps, screens, accessories. That keeps the warranty chain unbroken: one company, one warranty."},{q:"Will you move my toilet or bath if I want a different layout?",a:"Yes, but at that point you're into a renovation rather than a refurbishment. We'll quote it honestly so you can decide whether the layout change is worth the extra time and cost."},{q:"How quickly can you start in Lichfield?",a:"Surveys are usually arranged within the same week. From signed quote and deposit to start date is typically 4â6 weeks, depending on the season and material lead times."}],ctaHeading:"Refresh Your Lichfield Bathroom in Days, Not Weeks",ctaSubtext:"Free home survey, itemised written quote, no obligation. Our Tamworth showroom is 15 minutes from Lichfield city centre.",nearbyAreas:[{name:"Tamworth",slug:"tamworth"},{name:"Sutton Coldfield",slug:"sutton-coldfield"},{name:"Rugeley",slug:"rugeley"},{name:"Cannock",slug:"cannock"},{name:"Burton-on-Trent",slug:"burton-on-trent"}]},m4=()=>r.jsx(H,{data:h4}),p4={slug:"sutton-coldfield-bathroom-installation",name:"Sutton Coldfield",title:"Bathroom Installation Sutton Coldfield | Blue Sky",metaDescription:"Bathroom installation in Sutton Coldfield â Four Oaks, Mere Green, Boldmere & Wylde Green. Premium fits, own team, full warranty. Call 0330 043 2234.",heroHeadline:"Bathroom Installation in Sutton Coldfield",heroSubheadline:"Full-service bathroom installations across Sutton Coldfield â from compact ensuites in Wylde Green flats to large-format renovations across Four Oaks and Mere Green.",trustMicro:"20 minutes from Sutton Coldfield · Premium fits a specialism · Employed team, no subcontractors",localRelevanceContent:["Sutton Coldfield has one of the most varied housing stocks in the West Midlands â Edwardian and Arts-and-Crafts properties around the town centre and Boldmere, large detached homes in Four Oaks and Little Aston, the family semis of Wylde Green and Walmley, and the contemporary builds along the Lichfield Road corridor. Bathroom installations here range from the modest to the genuinely high-end, and we fit both.","We've installed bathrooms across every B72, B73, B74 and B76 postcode. The work splits roughly between full installations in detached properties around Four Oaks and Mere Green â typically larger rooms with freestanding baths, twin vanities, and integrated underfloor heating â and ensuites and family bathrooms in the semis and townhouses where space is tighter and design discipline matters more.","From our Tamworth showroom on Cavendish, Sutton Coldfield is around 20 minutes by car. That gives you the showroom experience of a major bathroom retailer with the local responsiveness of a small firm â and one team handling design, supply and installation from start to finish."],propertyTypes:"Edwardian villas, Arts-and-Crafts detached, 1930s semis, modern executive homes, new builds",responseTime:"Free survey within the same week · Warranty calls attended within 24 hours",commonNeeds:"Full installations, ensuite additions, freestanding bath fits, wet rooms, twin vanities",services:[{name:"Full Bathroom Installation",path:"/services/bathroom-installation",description:"End-to-end design, supply and fit â our core service for Sutton Coldfield homes."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"Higher-specification installations for Four Oaks, Mere Green and Little Aston properties."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully tanked wet rooms â increasingly popular in larger Sutton Coldfield ensuites."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Frameless walk-ins and bath-to-shower conversions across Sutton's family homes."},{name:"Cloakroom & Ensuite",path:"/services/cloakroom-ensuite",description:"Smaller-footprint fits where every detail matters."}
318,{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Future-proofed installations with discreet accessibility built in."},{name:"Tiling Services",path:"/services/tiling-services",description:"Large-format porcelain, marble, natural stone and bookmatched feature walls."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Wet and electric UFH systems â standard on most Sutton Coldfield installations."},{name:"Bathroom Design & Planning",path:"/services/bathroom-design-planning",description:"Free 3D design consultations at our Tamworth showroom."},{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"20 minutes from Sutton Coldfield â live displays you can walk through."}],whyChooseUsContent:["Premium bathroom installation is a different discipline from a builder's-merchant fit. The expectation in Four Oaks, Mere Green and Little Aston is for level tiling, perfectly mitred edges, concealed pipework, level-access waste falls, and a finished room that bears scrutiny from every angle. We design and fit to that standard as a baseline, not an upgrade.","Our fitters are employed by Blue Sky, not hired in. Every job has a dedicated lead fitter who's on site every day, a documented sequence of trades, and a single point of contact for the homeowner. There's no subcontractor handoff, no 'I'll have to check with the tiler' â the tiler works for us.","We're members of Checkatrade (9.85/10 from 141 reviews) and hold a 4.9 Google rating (38+ reviews). Sutton Coldfield clients can read both before they commit. We'd rather earn the job on the strength of reviews than on a sales pitch."],localProblemsHeading:"Common Bathroom Installation Challenges in Sutton Coldfield",localProblemsContent:["Older Edwardian and 1930s properties around Boldmere and Wylde Green frequently have lead supply pipes and cast-iron drainage. These are best replaced during a full installation â once the walls are open, the cost of upgrading pipework is marginal, and you avoid a separate plumbing job a few years later.","Four Oaks and Little Aston properties often have larger bathroom footprints that homeowners under-use. A well-planned installation with a freestanding bath, separate walk-in shower, twin vanity and integrated storage transforms the space without extending it. Floor plans matter more here than the cost of fittings.","Ensuites added to 1980s and 1990s Mere Green properties often sit awkwardly on the room's original layout â soil-stack routes weren't designed with an ensuite in mind. A proper installation re-plans the route rather than retro-fitting around it, which gives a cleaner finish and avoids ongoing drainage noise.","Hard water across the Sutton Coldfield catchment is hard on chrome, glass and concealed cisterns. We specify hard-water-rated fittings as standard and brief homeowners on simple maintenance that keeps them looking new for longer."],processSteps:[{title:"Free Sutton Coldfield Home Survey",description:"We visit your property, take detailed dimensions and photograph the existing space."},{title:"Design & Itemised Quote",description:"3D visuals and a written quote that lists every product, every labour day and every contingency."},{title:"Showroom Visit",description:"Twenty minutes to our Tamworth showroom to finalise sanitaryware, tiles and fittings."},{title:"Materials Held & Date Confirmed",description:"Everything is ordered and stored at our unit before your start date."},{title:"Installation by Our Own Team",description:"Typically 7â14 working days on site. Daily supervision, agreed sequence, employed fitters only."},{title:"Snag & Handover",description:"Walk-through, defect fix, paperwork and warranties."}],faqs:[{q:"Do you cover all of Sutton Coldfield?",a:"Yes â every part of Sutton Coldfield including Four Oaks, Mere Green, Boldmere, Wylde Green, Walmley, Little Aston, Streetly and Sutton town centre. All of B72, B73, B74 and B76."},{q:"How much does bathroom installation cost in Sutton Coldfield?",a:"Most Sutton Coldfield installations land between £8,000 and £18,000 supply-and-fit. Premium installations with bespoke tiling, freestanding baths and integrated UFH sit above that. Every quote is itemised and fixed before work starts."},{q:"Is your showroom worth a visit from Sutton Coldfield?",a:"Yes â it's a 20-minute drive to Cavendish in Tamworth. You'll see live displays of sanitaryware, tiles and complete bathroom setups before committing to specification."},{q:"How long does a Sutton Coldfield installation take?",a:"Most full installations are completed in 7â14 working days, depending on size and specification. Larger renovations with bespoke tiling or wet room construction can run 2â3 weeks."},{q:"Do you use subcontractors?",a:"No. Plumbers, electricians, tilers and decorators are all employed by Blue Sky. Single workmanship warranty, single point of contact."},{q:"Do you handle high-specification installations?",a:"Yes â much of our Sutton Coldfield work is at the higher end of the market, with freestanding baths, twin vanities, bookmatched feature tiling and integrated underfloor heating."},{q:"How quickly can you respond to warranty issues?",a:"From our Tamworth base we typically attend Sutton Coldfield warranty calls within 24 hours, often the same day."}],ctaHeading:"Plan Your Sutton Coldfield Bathroom Installation",ctaSubtext:"Free home survey, 3D design, itemised written quote, no obligation. Our Tamworth showroom is 20 minutes away.",nearbyAreas:[{name:"Tamworth",slug:"tamworth"},{name:"Lichfield",slug:"lichfield"},{name:"Birmingham",slug:"birmingham"},{name:"Walsall",slug:"walsall"},{name:"Cannock",slug:"cannock"}]},f4=()=>r.jsx(H,{data:p4}),g4={slug:"burton-on-trent-bathroom-showroom",name:"Burton-on-Trent",title:"Bathroom Showroom Near Burton-on-Trent | Blue Sky",metaDescription:"Bathroom showroom near Burton-on-Trent â 25 minutes from DE13 & DE14. Live displays of sanitaryware, tiles & complete bathrooms. Free design. Call 0330 043 2234.",heroHeadline:"Bathroom Showroom Near Burton-on-Trent",heroSubheadline:"Your nearest full-size bathroom showroom is on Cavendish in Tamworth â around 25 minutes from Burton town centre. Walk through live displays of complete bathrooms before you commit a penny.",trustMicro:"25 minutes from Burton-on-Trent · Live displays you can touch · Free 3D design",localRelevanceContent:["Most 'bathroom showrooms near Burton-on-Trent' are either trade counters at builder's merchants, or a wall of taps in a kitchen retailer. Neither helps you visualise a finished bathroom. Our Tamworth showroom is the proper article â full-size bathroom sets, real tiles laid floor-to-ceiling, working taps and showers, and complete sanitaryware ranges from the brands we actually install.","From Burton town centre, the drive down the A38 is around 25 minutes. From Stretton, Branston, Barton-under-Needwood and the wider DE13 and DE14 postcodes it's a similar trip. Most Burton customers combine the showroom visit with their free home survey â we visit your property first, then you visit the showroom with the room dimensions and a clear design brief in hand.","We install bathrooms across Burton-on-Trent and the surrounding villages, so the showroom isn't a sales hall for a supplier you'll never see again. The people showing you the displays are the same people quoting and fitting your bathroom."],propertyTypes:"Victorian terraces, 1930s semis, modern estates, riverside new builds",responseTime:"Free Burton home survey within the same week · Showroom open 6 days",commonNeeds:"Full installations, bath-to-shower conversions, wet rooms, refurbishments",services:[{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"Live displays at our Tamworth showroom â 25 minutes from Burton-on-Trent."},{name:"Bathroom Design & Planning",path:"/services/bathroom-design-planning",description:"Free 3D design service following your showroom visit."},{name:"Full Bathroom Installation",path:"/services/bathroom-installation",description:"End-to-end fits across all of Burton and the DE13/DE14 postcodes."},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments",description:"Surface-level refreshes when the layout already works."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Bath-to-shower swaps and frameless walk-ins for Burton family homes."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully tanked wet rooms â popular in Burton's older terraces with smaller bathrooms."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"Premium fits with bespoke tiling and freestanding baths."}
318,{name:"Accessible Bathrooms",path:"/services/accessible-bathrooms",description:"Mobility-led installations with level access and grab rails."},{name:"Tiling Services",path:"/services/tiling-services",description:"Porcelain, ceramic, natural stone and mosaic tiling."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Electric and wet UFH systems integrated into your fit."}],whyChooseUsContent:["Showrooms exist for a reason: bathroom decisions made from catalogue thumbnails or pixel-perfect website photography almost always disappoint when the physical product arrives. Tile colour shifts under different lighting, tap finishes vary between manufacturers, and the difference between a 600mm and 700mm vanity feels much bigger in real life than on a floor plan.","Our showroom carries the brands we install daily â Roca, Grohe, Crosswater, Bristan and others â laid out in complete bathroom settings rather than on shelves. That lets you see scale, finish and combination at the same time, which is how design decisions are actually made.","After your visit, our designers produce a free 3D visualisation of your bathroom based on the dimensions taken at your home survey, using the products you've selected from the showroom floor. Burton customers get the same level of design service as our local Tamworth clients."],localProblemsHeading:"What to Bring to the Showroom From Burton-on-Trent",localProblemsContent:["Room measurements help more than anything else. If we've already done a free home survey, we'll have these on file. If not, a quick sketch with width, length and ceiling height saves time and means we can advise on what will fit before you fall in love with a product that won't.","Photos of the existing room â including pipework routes, window positions and any unusual features â speed the design process up significantly. Even phone photos are plenty.","A rough budget range, even a loose one. We won't push you to spend more than you've planned, but knowing whether to show you mid-range or higher-specification ranges avoids wasting your visit.","Inspiration images if you have any â magazine tear-outs, Pinterest screenshots, photos of friends' bathrooms. Visual references are far more useful than verbal descriptions when it comes to style direction."],processSteps:[{title:"Book a Showroom Visit",description:"Call or message ahead so we can have a designer free for you â drop-ins are welcome but appointments get a designer's full attention."},{title:"Free Home Survey in Burton",description:"We visit your property first to measure and photograph the existing bathroom."},{title:"Showroom Walk-Through",description:"Tour the displays with a designer, handling products and seeing tile combinations at scale."},{title:"3D Design Produced",description:"We produce a free visualisation based on your room dimensions and product selection."},{title:"Itemised Fixed Quote",description:"Every product, every labour day, every contingency written down for you to take home."},{title:"Installation in Burton",description:"Once you're ready, our own team installs the bathroom â no subcontractors."}],faqs:[{q:"Where is your showroom from Burton-on-Trent?",a:"Our showroom is on Cavendish in Tamworth, around 25 minutes from Burton town centre via the A38. From Stretton, Branston and the wider DE13/DE14 area it's a similar drive."},{q:"Do I need an appointment?",a:"Walk-ins are welcome, but booking ahead means a designer will be available to walk you through the displays and discuss specifications. Saturdays book up first."},{q:"Is there parking at the showroom?",a:"Yes â free on-site parking right at the entrance. The showroom is on a commercial unit, easy to find from the A5 and A38."},{q:"Will you visit my Burton property?",a:"Yes â we offer free home surveys before any showroom visit, which gives you accurate measurements and means we can advise on what will fit your space."},{q:"Do you fit bathrooms in Burton or only sell them?",a:"We design, supply and fit â every bathroom we sell is installed by our own employed team. We don't run a supply-only model."},{q:"What brands do you stock?",a:"We supply and fit Roca, Grohe, Crosswater, Bristan, Hudson Reed, Burlington and many others. All come with manufacturer warranties."},{q:"How quickly can you start a Burton installation?",a:"Free surveys are typically arranged within the same week. From signed quote to start date is usually 4â6 weeks depending on season and material lead times."}],ctaHeading:"Visit Our Showroom From Burton-on-Trent",ctaSubtext:"Book a free home survey first â then bring your room dimensions to the showroom to make your design decisions in person.",nearbyAreas:[{name:"Tamworth",slug:"tamworth"},{name:"Lichfield",slug:"lichfield"},{name:"Swadlincote",slug:"swadlincote"},{name:"Derby",slug:"derby"},{name:"Coalville",slug:"coalville"}]},y4=()=>r.jsx(H,{data:g4}),w4={slug:"atherstone-bathroom-showroom",name:"Atherstone",title:"Bathroom Showroom Near Atherstone | Blue Sky",metaDescription:"Bathroom showroom near Atherstone â 15 minutes from CV9. Live displays, real tiles, full sanitaryware ranges. Free design & quote. Call 0330 043 2234.",heroHeadline:"Bathroom Showroom Near Atherstone",heroSubheadline:"Your closest full-size bathroom showroom is on Cavendish in Tamworth â around 15 minutes from Atherstone town centre. Real displays, real tiles, real working showers â not a wall of catalogues.",trustMicro:"15 minutes from Atherstone · Live displays you can touch · Free 3D design",localRelevanceContent:["Atherstone homeowners looking for a proper bathroom showroom typically have tw
318o choices: drive to a national chain in Birmingham or Coventry and deal with a sales team you'll never see again, or visit our independent showroom in Tamworth â 15 minutes up the A5 â where the people showing you displays are the same people who'll fit your bathroom.","We've installed bathrooms across Atherstone, Mancetter, Hartshill and the surrounding CV9 villages. The town's mix of Victorian and Edwardian terraces, post-war semis on Long Street and Coleshill Road, and newer developments around Carlyon Road all bring their own bathroom challenges â which is much easier to discuss with samples in front of you than over a phone call.","Most Atherstone customers visit the showroom after we've completed a free home survey. We come to you first to measure and photograph the room, then you visit the showroom knowing exactly what dimensions you're working with."],propertyTypes:"Victorian terraces, Edwardian villas, post-war semis, modern developments, rural cottages",responseTime:"Free Atherstone home survey within the same week",commonNeeds:"Full installations, refurbishments, bath-to-shower swaps, ensuite additions",services:[{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"Live displays in Tamworth â 15 minutes from Atherstone via the A5."},{name:"Bathroom Design & Planning",path:"/services/bathroom-design-planning",description:"Free 3D design service after your home survey and showroom visit."},{name:"Full Bathroom Installation",path:"/services/bathroom-installation",description:"End-to-end fits across Atherstone and surrounding villages."},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments",description:"Refreshes that keep your layout and replace what's tired."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Bath-to-shower swaps and frameless walk-ins."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully tanked wet rooms for Atherstone's smaller bathrooms."},{name:"Cloakroom & Ensuite",path:"/services/cloakroom-ensuite",description:"Smaller-footprint fits in family homes."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"Higher-specification installations with bespoke tiling and freestanding baths."},{name:"Tiling Services",path:"/services/tiling-services",description:"Porcelain, ceramic, natural stone and large-format wall tiling."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Electric and wet UFH systems integrated into your fit."}],whyChooseUsContent:["Bathroom showrooms vary enormously. A trade counter at a builder's merchant or a tap wall at a kitchen retailer doesn't help you visualise a finished room. Our Tamworth showroom carries complete bathroom settings â full-size displays where you can see how a freestanding bath sits against a tiled wall, how a vanity scales next to a WC, and how chrome reads against matt black at the same time.","Atherstone customers benefit from being close enough to visit easily and far enough away that we don't take the trip for granted. We block out designer time for visiting customers so you're not standing on the showroom floor waiting for someone to be free.","Everything you see in the showroom is something we install regularly. The brands â Roca, Grohe, Crosswater, Bristan, Hudson Reed, Burlington â come with full manufacturer warranties, and we stand behind the workmanship warranty ourselves."],localProblemsHeading:"Making the Most of a Showroom Visit From Atherstone",localProblemsContent:["Bring room measurements â width, length, ceiling height, and the positions of windows, doors and existing waste pipes. Even a rough sketch helps. If we've already done a home survey, we'll have these on file.","Bring phone photos of your existing bathroom. Pipework routes, the orientation of the soil stack, and any unusual features (sloping ceilings, awkward alcoves) all influence what's practical.","Bring a rough budget range. We won't pressure you above it, but knowing whether to show you mid-range or higher-specification ranges saves you time.","Bring inspiration. Screenshots, magazine cut-outs, photos of bathrooms you've liked elsewhere â visual references are far more useful than verbal descriptions for steering your design."],processSteps:[{title:"Book Your Visit",description:"Call or message ahead so we can have a designer free to walk you through the displays."},{title:"Free Atherstone Home Survey",description:"We visit first to measure and photograph the existing bathroom â typically same week."},{title:"Showroom Walk-Through",description:"Tour the displays with a designer, handle products, see tile combinations at scale."}
318,{title:"3D Design Produced",description:"Free visualisation based on your room dimensions and product selection."},{title:"Fixed Itemised Quote",description:"Every product, every labour day, every contingency â written down to take home."},{title:"Installation in Atherstone",description:"Once you're ready, our own employed team carries out the fit â no subcontractors."}],faqs:[{q:"Where is your showroom from Atherstone?",a:"Our showroom is on Cavendish in Tamworth â around 15 minutes from Atherstone town centre via the A5. From Mancetter and Hartshill it's a similar drive."},{q:"Do I need an appointment?",a:"Walk-ins are welcome, but booking means a designer will be available specifically for you. Saturdays book up first."},{q:"Is there parking?",a:"Yes â free parking right at the showroom entrance. The unit is on a commercial estate, easy in and out from the A5."},{q:"Do you cover Atherstone for installation?",a:"Yes â Atherstone is one of our regular work areas. We cover all of CV9, including Mancetter, Hartshill, Witherley and surrounding villages."},{q:"Do you only sell, or do you also fit?",a:"We design, supply and fit. Every bathroom we sell is installed by our own employed team. There's no supply-only model and no third-party fitters."},{q:"What brands do you carry?",a:"Roca, Grohe, Crosswater, Bristan, Hudson Reed, Burlington and many others â all with full manufacturer warranties."},{q:"How much does a full bathroom cost?",a:"Most Atherstone installations land between £7,000 and £13,000 supply-and-fit, with higher-specification renovations above that. Every quote is itemised and fixed before work starts."}],ctaHeading:"Visit Our Showroom From Atherstone",ctaSubtext:"Book a free home survey first â then bring your room dimensions to the showroom for the design conversation in person.",nearbyAreas:[{name:"Tamworth",slug:"tamworth"},{name:"Nuneaton",slug:"nuneaton"},{name:"Hinckley",slug:"hinckley"},{name:"Coalville",slug:"coalville"},{name:"Lichfield",slug:"lichfield"}]},b4=()=>r.jsx(H,{data:w4}
318),v4={slug:"nuneaton-bathroom-showroom",name:"Nuneaton",title:"Bathroom Showroom Near Nuneaton | Blue Sky Bathrooms",metaDescription:"Bathroom showroom near Nuneaton â 25 minutes from CV10/CV11. Live bathroom displays, real tiles, full sanitaryware. Free design. Call 0330 043 2234.",heroHeadline:"Bathroom Showroom Near Nuneaton",heroSubheadline:"Your nearest independent bathroom showroom is on Cavendish in Tamworth â around 25 minutes from Nuneaton via the A5. Walk through complete bathroom displays before you commit a penny.",trustMicro:"25 minutes from Nuneaton · Independent · Live displays · Free 3D design",localRelevanceContent:["Nuneaton's closer bathroom showrooms tend to be either trade-counter sections at builder's merchants or a wall of catalogues at a national chain. Neither lets you walk through a complete bathroom setting. Our Tamworth showroom is a proper independent display â full-size bathroom sets, real tiles, working taps and showers, and the brands we install daily.","From Nuneaton town centre the run down the A5 to our showroom is around 25 minutes. From Bedworth, Bulkington, Hartshill and the surrounding CV10, CV11 and CV12 postcodes the drive is a similar length. Most Nuneaton customers combine the visit with their free home survey â we measure your bathroom first, then you visit the showroom with dimensions already in hand.","We install bathrooms across Nuneaton and the surrounding villages, so the showroom isn't a sales hall for a faceless supplier. The people walking you through the displays are the same people who'll quote your bathroom and the same people who'll fit it."],propertyTypes:"Victorian terraces, 1930s semis, post-war estates, modern developments, rural properties",responseTime:"Free Nuneaton home survey within the same week · Showroom open 6 days",commonNeeds:"Full installations, bath-to-shower swaps, ensuite additions, wet rooms",services:[{name:"Bathroom Showroom",path:"/services/bathroom-showroom",description:"Live displays in Tamworth â 25 minutes from Nuneaton via the A5."},{name:"Bathroom Design & Planning",path:"/services/bathroom-design-planning",description:"Free 3D design service following your home survey and showroom visit."},{name:"Full Bathroom Installation",path:"/services/bathroom-installation",description:"End-to-end fits across Nuneaton, Bedworth and the CV10/CV11 postcodes."},{name:"Bathroom Refurbishments",path:"/services/bathroom-refurbishments",description:"Refreshes that keep the layout and replace what's tired."},{name:"Walk-In Shower Installation",path:"/services/walk-in-shower-installation",description:"Bath-to-shower swaps and frameless walk-ins for Nuneaton family homes."},{name:"Wet Room Installation",path:"/services/wet-room-installation",description:"Fully tanked wet rooms for smaller bathrooms."},{name:"Cloakroom & Ensuite",path:"/services/cloakroom-ensuite",description:"Smaller-footprint installations where every millimetre counts."},{name:"Luxury Bathroom Renovations",path:"/services/luxury-bathroom-renovations",description:"Higher-specification installations with bespoke tiling and freestanding baths."},{name:"Tiling Services",path:"/services/tiling-services",description:"Porcelain, ceramic, natural stone and large-format wall tiling."},{name:"Underfloor Heating",path:"/services/underfloor-heating",description:"Electric and wet UFH systems built into your fit."}],whyChooseUsContent:["Bathroom decisions are visual decisions. Tile colour shifts under different lighting. Chrome reads differently from brushed nickel. A 600mm vanity feels much smaller than a 700mm one when you stand in front of it, even though the difference looks marginal on a floor plan. A showroom visit cuts the risk of post-installation regret to near zero.","Our Tamworth displays carry the brands we install regularly â Roca, Grohe, Crosswater, Bristan, Hudson Reed, Burlington â set up as complete bathroom rooms rather than as products on shelves. You see them in context: vanities next to WCs, tiles laid against the actual sanitaryware they'll sit beside.","Nuneaton customers get the same design service as our local Tamworth clients. Free home survey first, then showroom visit with a designer, then a 3D visualisation produced from your room dimensions and your selected products. No commitment until you've seen the design and the itemised quote."],localProblemsHeading:"How to Get the Most From a Showroom Visit From Nuneaton",localProblemsContent:["Bring measurements. Width, length, ceiling height, and the position of windows, doors and waste pipes â even a rough sketch helps. If we've already surveyed your home, we'll have all of this on file.","Bring phone photos of the existing bathroom. Pipework, soil-stack orientation, awkward features like sloping ceilings or boxed-in pipes â they all matter, and they're far easier to discu
318ss with photos in front of us.","Bring a rough budget range. We'll work to it, not against it. Knowing whether to show you mid-range or higher-specification ranges keeps your time well spent.","Bring inspiration. Screenshots, Pinterest boards, magazine pictures â visual references shape design conversations much faster than words alone."],processSteps:[{title:"Book Your Visit",description:"Call or message ahead so a designer is reserved for you â Saturdays book up first."},{title:"Free Nuneaton Home Survey",description:"We visit first to measure and photograph the existing bathroom â typically same week."},{title:"Showroom Walk-Through",description:"Tour the displays with a designer, handle products, see tile combinations at scale."},{title:"3D Design Produced",description:"Free visualisation based on your room dimensions and product selection."},{title:"Fixed Itemised Quote",description:"Every product, every labour day, every contingency â written down to take home."},{title:"Installation in Nuneaton",description:"Once you're ready, our own employed team carries out the fit â no subcontractors."}],faqs:[{q:"Where is your showroom from Nuneaton?",a:"Our showroom is on Cavendish in Tamworth â around 25 minutes from Nuneaton town centre via the A5. From Bedworth, Bulkington and the wider CV10/CV11 area it's a similar drive."},{q:"Do I need an appointment?",a:"Walk-ins are welcome, but booking means a designer will be reserved for you. Saturdays are busiest."},{q:"Is there parking?",a:"Yes â free parking at the entrance. The unit is on a commercial estate, easy in and out from the A5."},{q:"Do you cover Nuneaton for installation?",a:"Yes â Nuneaton, Bedworth, Bulkington and the surrounding CV10, CV11 and CV12 postcodes are all regular work areas for us."},{q:"Do you only sell, or do you also fit?",a:"We design, supply and fit. Every bathroom we sell is installed by our own employed team. There's no supply-only model and no third-party fitters."},{q:"What brands do you stock?",a:"Roca, Grohe, Crosswater, Bristan, Hudson Reed, Burlington and many others â all with full manufacturer warranties."},{q:"How much does a full bathroom installation cost?",a:"Most Nuneaton installations land between £7,000 and £13,000 supply-and-fit, with higher-specification renovations above that. Every quote is itemised and fixed before work starts."}],ctaHeading:"Visit Our Showroom From Nuneaton",ctaSubtext:"Book a free home survey first, then bring your room dimensions to the showroom for the design conversation in person.",nearbyAreas:[{name:"Tamworth",slug:"tamworth"},{name:"Atherstone",slug:"atherstone"},{name:"Hinckley",slug:"hinckley"},{name:"Coalville",slug:"coalville"},{name:"Lichfield",slug:"lichfield"}]},x4=()=>r.jsx(H,{data:v4}),k4={slug:"tamworth-bathroom-installation-cost",name:"Tamworth",title:"How Much Is a Full Bathroom Installation Near Tamworth? 2026 Prices",metaDescription:"How much is a full bathroom installation near Tamworth? Real 2026 prices from £7,000 to £25,000+ supply & fit. Itemised quotes from a Tamworth-based fitter.",heroHeadline:"How Much Is a Full Bathroom Installation Near Tamworth?",heroSubheadline:"Honest 2026 prices from a Tamworth-based fitting team â £7,000 to £25,000+ supply-and-fit, with worked examples for small ensuites, family bathrooms and luxury renovations.",trustMicro:"Fixed itemised quotes · Supply & fit by employed team · No subcontractors · No deposit pressure",localRelevanceContent:["Most Tamworth homeowners searching 'how much is a full bathroom installation near me' get vague answers â '£5k to £30k, depends on what you want' â which isn't useful when you're trying to budget. This page breaks down real 2026 supply-and-fit prices for Tamworth, Lichfield, Sutton Coldfield, Burton-on-Trent and the surrounding villages, based on hundreds of recent quotes from our showroom on Cavendish.","A 'full bathroom installation' near Tamworth typically means a strip-out of the existing room down to plaster or brick, new plumbing where needed, new sanitaryware (bath, WC, basin, shower), full re-tiling of walls and floor, lighting, extraction, decoration and a final clean. The price range comes from three variables: the size of the room, the spec of the fixtures, and how much structural or plumbing work is needed underneath.","Below you'll find three realistic worked examples for Tamworth properties â a small terraced bathroom in Glascote, a typical 1950s semi family bathroom in Wilnecote, and a high-spec renovation in Hopwas â plus a full breakdown of what's included and where the money actually goe
318s."],propertyTypes:"Terraces, semis, detached, new builds, rural cottages around Tamworth",responseTime:"Free home survey within the same week · Fixed written quote within 3 working days",commonNeeds:"Family bathrooms, ensuites, bath-to-shower swaps, full luxury renovations",services:[{name:"£7,000 â £9,500 · Small Bathroom / Ensuite",path:"/services/cloakroom-ensuite",description:"Compact rooms (under 4m²) with mid-range sanitaryware, ceramic tiling to wet zones, vinyl or LVT floor, replacement shower over bath or simple enclosure. Typical Tamworth terraced bathroom or 1930s semi ensuite."},{name:"£9,500 â £14,000 · Standard Family Bathroom",path:"/services/bathroom-installation",description:"Average UK bathroom (4â6m²) with full re-tile, branded sanitaryware (Roca, Ideal Standard, Vado-tier), thermostatic shower, new extractor, LED lighting, comfort-height WC. The most common spec for Tamworth family homes."},{name:"£14,000 â £20,000 · Premium Renovation",path:"/services/luxury-bathroom-renovations",description:"Larger rooms, large-format porcelain tiling throughout, electric or wet underfloor heating, freestanding bath or designer shower enclosure, vanity unit, concealed cisterns, premium brassware."},{name:"£20,000 â £25,000+ · Luxury / Wet Room Build",path:"/services/wet-room-installation",description:"Fully tanked wet rooms, structural alterations, bespoke tiling (book-matched porcelain, natural stone), Hansgrohe / Crosswater / Villeroy & Boch spec, smart lighting and heating controls."},{name:"Bathroom Design & 3D Planning",path:"/services/bathroom-design-planning",description:"Included free with every full installation quote â see the room in 3D before committing."},{name:"Visit Our Tamworth Showroom",path:"/services/bathroom-showroom",description:"Walk through live displays at Cavendish, B79 7XH, before signing off on tiles and sanitaryware."},{name:"Tamworth Bathroom Fitters (Main Page)",path:"/tamworth/bathroom-fitters",description:"How we work, who's on site, warranties and process."},{name:"Tamworth Area Page",path:"/areas/tamworth",description:"Everything we do across Tamworth and surrounding villages."}],whyChooseUsContent:["Where the money actually goes â a typical £12,000 Tamworth family bathroom breaks down roughly as: £3,800 sanitaryware and brassware (bath, WC, basin, shower, taps, vanity), £1,900 tiles and tiling materials, £4,200 labour (plumber, electrician, tiler, plasterer across 8â10 days), £900 ancillary items (waste, pipework, adhesive, grout, silicone, fixings, sealants, extractor, lighting), £500 skip and waste removal, £700 contingency and margin. Every Blue Sky quote itemises this so you can see exactly where each pound goes.","What pushes the price up: moving the bath, WC or basin to a new position (re-routing soil pipes is expensive), removing structural walls or stud walls, replacing rotten floor joists once the old suite is out, switching from a shower-over-bath to a separate walk-in or wet room, choosing large-format porcelain over standard ceramic (more wastage, slower install), and adding underfloor heating after the screed is already down.","What keeps the price down: keeping the existing sanitaryware layout, using mid-range branded sanitaryware (Roca, Ideal Standard, Vitra) instead of designer ranges, picking porcelain or ceramic tiles under £40/m², avoiding bespoke shower enclosures, and booking outside the SeptemberâFebruary peak when most Tamworth installers are at their busiest.","Cheap quotes â anything under about £6,000 supply-and-fit for a full bathroom near Tamworth â almost always exclude something: tiling labour, waste removal, electrical certification, decoration, or VAT. We've re-quoted dozens of jobs in the last two years where homeowners accepted a low headline number and then watched it climb £3kâ£5k mid-build. Always ask for an itemised breakdown."],localProblemsHeading:"Three Worked Examples â Real Tamworth Bathroom Installation Costs",localProblemsContent:["Example 1 â Glascote terraced bathroom (3.2m²), £8,400 supply-and-fit. Strip-out of avocado suite, new white bath with shower screen, thermostatic mixer shower, close-coupled WC, pedestal basin, full ceramic tile to wet walls, LVT floor, new extractor and LED downlights, replastering and decoration. Completed in 7 working days.","Example 2 â Wilnecote 1950s semi family bathroom (5.4m²), £12,750
318supply-and-fit. Strip-out, layout retained, 1700mm steel bath, walk-in shower enclosure 1200x800, concealed-cistern wall-hung WC, vanity unit with basin, large-format 600x300 porcelain to all walls, porcelain floor, electric underfloor heating mat, chrome heated towel rail, recessed shelving, full decoration. Completed in 11 working days.","Example 3 â Hopwas detached renovation (8.1m²), £19,800 supply-and-fit. Full strip-out including stud wall removal, freestanding bath, frameless 1400x900 walk-in shower, double-basin vanity, wall-hung WC and bidet, book-matched marble-effect porcelain, wet underfloor heating tied to existing system, smart lighting circuit, niche shelving, mirror demister, Hansgrohe brassware throughout. Completed in 18 working days.","Every figure above is supply-and-fit, includes VAT, includes waste removal, includes electrical and gas certification, and excludes nothing. That's the only fair way to compare bathroom installation quotes near Tamworth â make sure anyone else you're talking to is quoting on the same basis."],processSteps:[{title:"Tell Us Roughly What You Want",description:"Phone, email or a 5-minute showroom drop-in. We'll give you a ballpark range for your room size and spec before we book a survey."},{title:"Free Home Survey in Tamworth",description:"We measure up, photograph the existing setup, check pipework and stack runs, and discuss layout options on the spot."},{title:"Fixed Itemised Written Quote",description:"Within 3 working days you'll have a line-by-line quote â every fixture, every labour day, every contingency. No vague totals."},{title:"Showroom Sign-Off",description:"Confirm tiles, sanitaryware and brassware at our Cavendish showroom. Swaps within the same price band are free."},{title:"Installation by Our Own Team",description:"Employed plumbers, tilers, electricians â supervised daily. Most full bathrooms 7â14 working days."},{title:"Snag List & Handover",description:"Walk-through, snags fixed, paperwork and warranties handed over. Final invoice on completion, not before."}],faqs:[{q:"How much is a full bathroom installation near Tamworth in 2026?",a:"A full bathroom installation near Tamworth typically costs between £7,000 and £25,000 supply-and-fit, with most family bathrooms landing between £9,500 and £14,000. Smaller ensuites and terraced bathrooms start around £7,000â£9,500. Premium renovations and wet rooms run £14,000â£25,000+. Every figure includes VAT, waste removal, electrical and gas certification, and full decoration."},{q:"What does a full bathroom installation actually include?",a:"Strip-out of the existing suite, disposal and skip hire, any new pipework or re-routing required, new sanitaryware (bath, WC, basin, shower), new brassware (taps, mixers, shower valve), full wall and floor tiling, waterproofing where needed, new extractor fan, new lighting, replastering, painting and decoration, electrical and gas certification, snag-list and final clean. If a quote excludes any of these, it isn't really a 'full' installation."},{q:"Why are some Tamworth bathroom quotes so much cheaper?",a:"Three usual reasons. First, they're labour-only â you source and pay for materials separately, which often adds 30â50% to the headline price. Second, they exclude items (tiling, waste, decoration, certification) that you'll need anyway. Third, they're cash-in-hand with no paperwork, warranty or insurance. A genuine supply-and-fit quote from a VAT-registered Tamworth bathroom company is the only like-for-like comparison."},{q:"How long does a full bathroom installation take in Tamworth?",a:"Small bathrooms and ensuites: 7â9 working days. Standard family bathrooms: 8â12 working days. Premium renovations and wet rooms: 14â20 working days. We give you a confirmed schedule before we start and stick to it â most overruns happen when fitters subcontract trades; we don't."},{q:"Do you need a deposit before starting?",a:"We take a deposit to order your materials once you sign off the quote and showroom selections. The balance is paid in stages tied to milestones â never the full amount upfront, never the full amount before we start. The final invoice is due after the snag-list is signed off, not before."},{q:"Is there VAT on a bathroom installation in Tamworth?",a:"Yes â standard-rate VAT (20%) applies to bathroom installations on existing UK domestic properties. Every Blue Sky quote is shown including VAT so the headline price is the actual price. Be careful of quotes shown ex-VAT to look cheaper than they really are."},{q:"Can you install a full bathroom around me living in the house?",a:"Yes â most of our Tamworth installations are in homes that are still occupied. We isolate the working bathroom, leave another bathroom or temporary facility operational where possible, protect floors and stair runs with sheeting, and clear up at the end of each day. Single-bathroom households usually plan a 2-night break or arrange use of a neighbour's facilities for the shower-install days."},{q:"Do you offer finance for bathroom installations near Tamworth?",a:"We can discuss payment-stage options during your consultation. For formal finance arrangements, ask us at the survey and we'll talk you through what's currently available."},{q:"Will my new bathroom add value to my Tamworth home?",a:"A well-installed bathroom typically returns 60â70% of its cost in increased property value across the Tamworth and wider Staffordshire market, and significantly speeds up sales. Dated or tired bathrooms are one of the most common reasons buyers offer below asking on otherwise-good Tamworth properties."},{q:"Do you cover areas outside Tamworth?",a:"Yes â we cover Lichfield, Sutton Coldfield, Burton-on-Trent, Atherstone, Nuneaton, Cannock, Rugeley, Hinckley, Coalville, Swadlincote, Walsall, Birmingham and the surrounding villages from our Tamworth showroom on Cavendish."}],ctaHeading:"Get a Fixed Bathroom Installation Quote for Your Tamworth Home",ctaSubtext:"Free home survey, itemised written quote within 3 working days, VAT included, no pressure. Most Tamworth surveys booked within the same week.",nearbyAreas:[{name:"Lichfield",slug:"lichfield"},{name:"Sutton Coldfield",slug:"sutton-coldfield"},{name:"Burton-on-Trent",slug:"burton-on-trent"},{name:"Atherstone",slug:"atherstone"},{name:"Cannock",slug:"cannock"}]},S4=()=>r.jsx(H,{data:k4}),j4={slug:"tamworth-accessible-bathrooms",name:"Tamworth",title:"Accessible Bathroom Fitters Tamworth | Walk-In Baths Fitted",metaDescription:"Accessible bathroom fitters in Tamworth. Walk-in baths, walk-in showers & level-access wet rooms fitted in 5â10 days. 4.9â
from 38+ Google reviews. Free home assessment.",heroHeadline:"Accessible & Mobility Bathroom Specialists in Tamworth",heroSubheadline:"Walk-in baths, walk-in showers, level-access wet rooms and disabled-friendly bathroom installations â designed, supplied and fitted by a Tamworth-based team for elderly, disabled and reduced-mobility homeowners.",trustMicro:"Free home assessment · Employed fitters, no subcontractors · Sensitive, respectful install · Tamworth showroom on Cavendish",localRelevanceContent:["We're a Tamworth-based bathroom company specialising in accessible bathrooms for elderly homeowners, disabled residents, wheelchair users and anyone whose mobility has changed. Most enquiries we take are from sons, daughters or carers searching for an accessible bath fitter or walk-in shower installer in Tamworth on behalf of a parent â we understand the conversation, the sensitivities and the urgency.","Our showroom on Cavendish, Tamworth B79 7XH has live walk-in bath and walk-in shower displays you can step into and try before committing. We'll bring brochures, finishes and measuring kit to your home if visiting the showroom isn't practical â home assessments across Tamworth, Glascote, Wilnecote, Amington, Hopwas, Fazeley and the surrounding villages are always free.","Every accessible bathroom we install in Tamworth is designed around the person who'll actually use it: reach distances, transfer points, grab rail positions, anti-slip flooring, lever taps, comfort-height WCs and lighting that works for ageing eyes. We don't fit generic 'disabled bathrooms' â every layout is bespoke."],propertyTypes:"Bungalows, semis, ex-council homes, sheltered housing, family homes adapting for elderly parents",responseTime:"Free home assessment booked within 3â5 days · Most installs in 2â4 weeks",commonNeeds:"Walk-in baths, walk-in showers, level-access wet rooms, grab rails, comfort-height WCs, anti-slip flooring",services:[{name:"Walk-In Baths (Tamworth)",path:"/services/accessible-bathrooms",description:"Low-threshold walk-in baths with door seals, built-in seats, thermostatic controls and quick-drain options. Suitable for arthritis, hip and knee issues, balance concerns and Parkinson's."},{name:"Walk-In Showers & Low-Step Showers (Tamworth)",path:"/services/walk-in-shower-installation",description:"Step-free or low-step shower enclosures replacing tired baths, with fold-down seats, grab rails, slip-resistant trays and lever-operated thermostatic mixers."},{name:"Level-Access Wet Rooms (Tamworth)",path:"/services/wet-room-installation",description:"Fully tanked, level-access wet rooms with drainage falls built into the floor â wheelchair-accessible with no thresholds, grades or trays."},{name:"Disabled & Mobility Bathroom Installations",path:"/services/accessible-bathrooms",description:"Full disabled bathroom installations: grab rails, drop-down rails, comfort-height WCs, height-adjustable basins, lever taps, contrasting tile bands for partially sighted users."},{name:"Senior & Elderly Bathrooms",path:"/services/accessible-bathrooms",description:"Bathroom adaptations for elderly homeowners staying in their home longer â designed for safety today and future-proofed for changing needs."}
318,{name:"Accessible Bathroom Showroom (Tamworth)",path:"/services/bathroom-showroom",description:"Live walk-in bath and walk-in shower displays at our Cavendish showroom. Step in, try the seat, test the controls before deciding."},{name:"Bathroom Design & 3D Planning",path:"/services/bathroom-design-planning",description:"Free 3D design so families and carers can see the new layout â grab rail positions, transfer space, turning circles â before any work starts."},{name:"Tamworth Area Page",path:"/areas/tamworth",description:"Everything we do across Tamworth, Glascote, Wilnecote, Amington, Hopwas, Fazeley and surrounding villages."}],whyChooseUsContent:["We install accessible bathrooms in Tamworth for elderly homeowners, disabled users, wheelchair users, stroke survivors, hip and knee replacement patients, MS and Parkinson's sufferers, and families caring for ageing parents. Every install starts with a conversation about what's actually difficult right now â getting in and out of the bath, standing for a shower, reaching the taps, balance, transfers, dignity â and we design backwards from that.","Our fitters are employed by us, not subcontracted. The same team you meet at the survey is the team in the house â important when the resident is vulnerable, anxious about strangers, or living with dementia. We work cleanly, quietly, and treat the home with respect. Dust sheets, daily clean-down, and a working toilet kept available where possible throughout the install.","We supply all the major accessible bathroom brands â AKW, Mira, Triton, Roca Access, Ideal Standard Concept Freedom, Impey wet room formers, plus walk-in baths from established UK manufacturers. We don't push a single brand because we don't take brand commission â we recommend what fits the person and the room.","Most accessible bathroom installs in Tamworth take 5â10 working days. Walk-in bath swaps are usually 4â6 days. Level-access wet rooms are 8â12 days because of tanking and drainage. We give you a written day-by-day schedule before we start so you know exactly when the bathroom will be out of use."],localProblemsHeading:"Common Accessibility Issues in Tamworth Bathrooms",localProblemsContent:["Step-over baths in 1950s and 1960s Tamworth semis â Belgrave, Glascote, Wilnecote, Two Gates â are the single biggest cause of falls we're called out for. Standard UK bath rim is 510â560mm off the floor, which is unsafe for anyone with reduced hip mobility. A walk-in bath drops the step-over to 130â150mm; a walk-in shower removes it entirely.","Upstairs-only bathrooms in older terraces around Tamworth town centre and Amington create a daily problem when stairs become difficult. We frequently convert downstairs cloakrooms, utility rooms or under-stair spaces into compact accessible wet rooms â often the difference between staying at home and moving out.","Cold, slippery ceramic floors are a major fall risk. We use R11-rated slip-resistant porcelain or vinyl safety flooring in every accessible bathroom we fit, and most clients add electric underfloor heating â warm feet, dry floor, no slip.","Standard 400mm-high WCs are uncomfortable for anyone with hip, knee or back problems. A comfort-height (450mm) or raised-height (480mm) WC with a grab rail beside it is a small swap that transforms daily use. We can fit one in a day without disturbing the rest of the bathroom.","Tap reach and grip â round chrome taps are difficult for arthritic hands. We swap to long-lever or single-lever thermostatic mixers as standard in every accessible install. Costs about £80â£140 a tap; makes the bathroom usable for another decade."],processSteps:[{title:"Phone or Email Conversation",description:"Tell us who the bathroom is for, what's difficult now, and what you're hoping to change. No pressure, no sales script. 10 minutes."},{title:"Free Home Assessment in Tamworth",description:"We visit, measure, talk to the resident (and family or carer if helpful), and discuss layouts. We can bring sample brassware, grab rails and tile finishes."},{title:"3D Design & Fixed Itemised Quote",description:"Within a week you'll have a 3D visual of the new bathroom plus a line-by-line written quote. No vague figures, no surprises."},{title:"Showroom Sign-Off (Optional)",description:"Visit our Cavendish showroom to step into walk-in bath and walk-in shower displays before final sign-off. Families and carers welcome."},{title:"Sensitive, Clean Installation",description:"Employed team, daily clean-down, working toilet kept available where possible. 5â12 working days depending on scope."},{title:"Handover & Aftercare",description:"We walk the resident through every control, fit any additional grab rails once they've lived with it for a week, and leave written instructions in large print."}],faqs:[{q:"Who installs accessible bathrooms in Tamworth?",a:"Blue Sky Luxury Bathrooms is a Tamworth-based company specialising in accessible, disabled, mobility and senior-friendly bathroom installations. We're based on Cavendish, B79 7XH, with a showroom displaying live walk-in bath and walk-in shower models. All fitters are employed by us â no subcontractors."},{q:"Who installs walk-in baths in Tamworth?",a:"We do â walk-in baths are one of our most common installs across Tamworth, Lichfield, Sutton Coldfield, Burton-on-Trent and surrounding villages. We supply low-threshold walk-in baths with door seals, built-in seats, thermostatic controls and quick-drain options from established UK manufacturers."},{q:"Who installs walk-in showers in Tamworth?",a:"We design and fit walk-in showers, low-step showers and level-access shower enclosures throughout Tamworth. Most bath-to-shower conversions take 5â7 working days with anti-slip trays, grab rails, fold-down seats and lever thermostatic mixers."},{q:"Who installs accessible wet rooms in Tamworth?",a:"We install fully tanked, level-access wet rooms across Tamworth â wheelchair-accessible with built-in floor falls, no trays and no thresholds. Wet room installs typically take 8â12 working days because of waterproofing and drainage work."},{q:"How much does an accessible bathroom cost in Tamworth?",a:"Walk-in shower conversions typically start around £6,500 supply-and-fit. Walk-in baths from around £8,500 supply-and-fit including removal of the old suite. Full level-access wet rooms from £11,000. Every quote is itemised and includes VAT, waste removal and certification."},{q:"Do you fit grab rails, comfort-height WCs and lever taps on their own?",a:"Yes. We're happy to do single-item accessibility upgrades â grab rails, raised WCs, lever taps, drop-down rails, anti-slip flooring â without a full bathroom install. Often the right starting point for someone whose needs are changing."},{q:"Are your installs suitable for wheelchair users?",a:"Yes. We design wheelchair-accessible bathrooms with level-access drainage, 1500mm turning circles where possible, height-adjustable or wall-hung basins, side-transfer WCs and full-width grab rail provision."},{q:"Can the resident stay in the home during the install?",a:"Almost always, yes. We keep at least one working toilet available, dust-sheet the route from front door to bathroom, clean down every evening, and work with the family on timing if the resident has dementia, anxiety or shift-pattern carers."},{q:"Do you help with Disabled Facilities Grants (DFG)?",a:"We can quote on the format Staffordshire and Lichfield district councils require for DFG applications. We'll also liaise with occupational therapists if recommendations have already been issued."},{q:"Do you cover Lichfield, Sutton Coldfield, Burton-on-Trent and surrounding areas?",a:"Yes. From our Tamworth base we cover Lichfield, Sutton Coldfield, Burton-on-Trent, Atherstone, Nuneaton, Cannock, Rugeley, Coalville, Ashby-de-la-Zouch, Swadlincote, Hinckley and the surrounding villages."}],ctaHeading:"Talk to a Tamworth Accessible Bathroom Specialist",ctaSubtext:"Book a free, no-pressure home assessment. We'll listen, measure, and design a bathroom around what's actually difficult right now â for you, your parent, or the person you care for.",nearbyAreas:[{name:"Lichfield",slug:"lichfield"},{name:"Sutton Coldfield",slug:"sutton-coldfield"},{name:"Atherstone",slug:"atherstone"},{name:"Burton-on-Trent",slug:"burton-on-trent"},{name:"Tamworth",slug:"tamworth"}]},C4=()=>r.jsx(H,{data:j4}),T4={slug:"lichfield-accessible-bathrooms",name:"Lichfield",title:"Accessible Bathroom Fitters Lichfield | Walk-In Baths",metaDescription:"Accessible bathroom fitters covering Lichfield. Walk-in baths, low-step showers & wet rooms for elderly and disabled users. 4.9â
, 38+ Google reviews. Free home visit.",heroHeadline:"Accessible & Mobility Bathroom Specialists in Lichfield",heroSubheadline:"Walk-in baths, walk-in showers, level-access wet rooms and disabled-friendly bathroom installations â designed and fitted for elderly, disabled and reduced-mobility homeowners across Lichfield.",trustMicro:"Free home assessment · Employed fitters, no subcontractors · Sensitive, respectful install · Tamworth showroom 10 minutes from Lichfield",localRelevanceContent:["We install accessible bathrooms throughout Lichfield â the city centre, Boley Park, Streethay, Curborough, Stowe, Burntwood and the surrounding villages. Most enquiries we take are from sons, daughters or carers searching on behalf of an elderly parent â we understand the conversation and treat every survey with discretion.","Our showroom on Cavendish in Tamworth (10 minutes from Lichfield) has live walk-in bath and walk-in shower displays you can step into and try before committing. We'll happily bring brochures, finishes and measuring kit to your Lichfield home if visiting the showroom isn't practical â home assessments are always free.","Every accessible bathroom we install in Lichfield is designed around the person who'll actually use it: reach distances, transfer points, grab rail positions, anti-slip flooring, lever taps, comfort-height WCs and lighting that works for ageing eyes. No generic 'disabled bathrooms' â every layout is bespoke."],propertyTypes:"Georgian terraces near the cathedral, 1930s semis, ex-council bungalows, modern Boley Park family homes adapting for elderly parents",responseTime:"Free home assessment booked within 3â5 days · Most installs in 2â4 weeks",commonNeeds:"Walk-in baths, walk-in showers, level-access wet rooms, grab rails, comfort-height WCs, anti-slip flooring",services:[{name:"Walk-In Baths (Lichfield)",path:"/services/accessible-bathrooms",description:"Low-threshold walk-in baths with door seals, built-in seats, thermostatic controls and quick-drain options. Suitable for arthritis, hip and knee issues, balance concerns and Parkinson's."},{name:"Walk-In Showers & Low-Step Showers (Lichfield)",path:"/services/walk-in-shower-installation",description:"Step-free or low-step shower enclosures replacing tired baths, with fold-down seats, grab rails, slip-resistant trays and lever-operated thermostatic mixers."},{name:"Level-Access Wet Rooms (Lichfield)",path:"/services/wet-room-installation",description:"Fully tanked, level-access wet rooms with drainage falls built into the floor â wheelchair-accessible with no thresholds, grades or trays."},{name:"Disabled & Mobility Bathroom Installations",path:"/services/accessible-bathrooms",description:"Full disabled bathroom installations: grab rails, drop-down rails, comfort-height WCs, height-adjustable basins, lever taps, contrasting tile bands for partially sighted users."},{name:"Senior & Elderly Bathrooms",path:"/services/accessible-bathrooms",description:"Bathroom adaptations for elderly Lichfield homeowners staying in their home longer â designed for safety today and future-proofed for changing needs."}
318,{name:"Accessible Bathroom Showroom",path:"/services/bathroom-showroom",description:"Live walk-in bath and walk-in shower displays at our Cavendish showroom in Tamworth, 10 minutes from Lichfield."},{name:"Bathroom Design & 3D Planning",path:"/services/bathroom-design-planning",description:"Free 3D design so families and carers can see the new layout â grab rail positions, transfer space, turning circles â before any work starts."},{name:"Lichfield Area Page",path:"/areas/lichfield",description:"Everything we do across Lichfield, Boley Park, Streethay, Burntwood and the surrounding villages."}],whyChooseUsContent:["We install accessible bathrooms in Lichfield for elderly homeowners, disabled users, wheelchair users, stroke survivors, hip and knee replacement patients, MS and Parkinson's sufferers, and families caring for ageing parents. Every install starts with a conversation about what's actually difficult right now â getting in and out of the bath, standing for a shower, reaching the taps, balance, transfers, dignity â and we design backwards from that.","Our fitters are employed by us, not subcontracted. The same team you meet at the survey is the team in the Lichfield home â important when the resident is vulnerable, anxious about strangers, or living with dementia. We work cleanly, quietly, and treat the home with respect.","We supply all the major accessible bathroom brands â AKW, Mira, Triton, Roca Access, Ideal Standard Concept Freedom, Impey wet room formers, plus walk-in baths from established UK manufacturers. We don't push a single brand because we don't take brand commission â we recommend what fits the person and the room.","Most accessible bathroom installs in Lichfield take 5â10 working days. Walk-in bath swaps are usually 4â6 days. Level-access wet rooms are 8â12 days because of tanking and drainage. We give you a written day-by-day schedule before we start so you know exactly when the bathroom will be out of use."],localProblemsHeading:"Common Accessibility Issues in Lichfield Bathrooms",localProblemsContent:["Step-over baths in 1950s and 1960s Lichfield semis â particularly around Boley Park, Stowe and the Curborough estates â are the single biggest cause of falls we're called out for. Standard UK bath rim is 510â560mm off the floor, which is unsafe for anyone with reduced hip mobility. A walk-in bath drops the step-over to 130â150mm; a walk-in shower removes it entirely.","Upstairs-only bathrooms in older Lichfield terraces near the cathedral and Bird Street create a daily problem when stairs become difficult. We frequently convert downstairs cloakrooms or under-stair spaces into compact accessible wet rooms â often the difference between staying at home and moving out.","Cold, slippery period-property floors are a major fall risk. We use R11-rated slip-resistant porcelain or vinyl safety flooring in every accessible bathroom we fit, and most clients add electric underfloor heating â warm feet, dry floor, no slip.","Standard 400mm-high WCs are uncomfortable for anyone with hip, knee or back problems. A comfort-height (450mm) or raised-height (480mm) WC with a grab rail beside it is a small swap that transforms daily use.","Tap reach and grip â round chrome taps are difficult for arthritic hands. We swap to long-lever or single-lever thermostatic mixers as standard in every accessible install."],processSteps:[{title:"Phone or Email Conversation",description:"Tell us who the bathroom is for, what's difficult now, and what you're hoping to change. No pressure, no sales script. 10 minutes."},{title:"Free Home Assessment in Lichfield",description:"We visit, measure, talk to the resident (and family or carer if helpful), and discuss layouts. We can bring sample brassware, grab rails and tile finishes."},{title:"3D Design & Fixed Itemised Quote",description:"Within a week you'll have a 3D visual of the new bathroom plus a line-by-line written quote. No vague figures, no surprises."},{title:"Showroom Sign-Off (Optional)",description:"Visit our Cavendish showroom in Tamworth â 10 minutes from Lichfield â to step into walk-in bath and walk-in shower displays before final sign-off."},{title:"Sensitive, Clean Installation",description:"Employed team, daily clean-down, working toilet kept available where possible. 5â12 working days depending on scope."},{title:"Handover & Aftercare",description:"We walk the resident through every control, fit any additional grab rails once they've lived with it for a week, and leave written instructions in large print."}],faqs:[{q:"Who installs accessible bathrooms in Lichfield?",a:"Blue Sky Luxury Bathrooms covers Lichfield from our Tamworth base, 10 minutes away. We specialise in accessible, disabled, mobility and senior-friendly bathroom installations. All fitters are employed by us â no subcontractors."},{q:"Who installs walk-in baths in Lichfield?",a:"We do â walk-in baths are one of our most common installs across Lichfield, Boley Park, Streethay, Burntwood and the surrounding villages. We supply low-threshold walk-in baths with door seals, built-in seats, thermostatic controls and quick-drain options from established UK manufacturers."},{q:"Who installs walk-in showers in Lichfield?",a:"We design and fit walk-in showers, low-step showers and level-access shower enclosures throughout Lichfield. Most bath-to-shower conversions take 5â7 working days with anti-slip trays, grab rails, fold-down seats and lever thermostatic mixers."},{q:"Who installs accessible wet rooms in Lichfield?",a:"We install fully tanked, level-access wet rooms across Lichfield â wheelchair-accessible with built-in floor falls, no trays and no thresholds. Wet room installs typically take 8â12 working days."},{q:"How much does an accessible bathroom cost in Lichfield?",a:"Walk-in shower conversions typically start around £6,500 supply-and-fit. Walk-in baths from around £8,500 supply-and-fit including removal of the old suite. Full level-access wet rooms from £11,000. Every quote is itemised and includes VAT, waste removal and certification."},{q:"Do you fit grab rails, comfort-height WCs and lever taps on their own?",a:"Yes. We're happy to do single-item accessibility upgrades â grab rails, raised WCs, lever taps, drop-down rails, anti-slip flooring â without a full bathroom install."},{q:"Are your installs suitable for wheelchair users?",a:"Yes. We design wheelchair-accessible bathrooms with level-access drainage, 1500mm turning circles where possible, height-adjustable or wall-hung basins, side-transfer WCs and full-width grab rail provision."},{q:"Can the resident stay in the home during the install?",a:"Almost always, yes. We keep at least one working toilet available, dust-sheet the route from front door to bathroom, clean down every evening, and work with the family on timing if the resident has dementia or anxiety."},{q:"Do you help with Disabled Facilities Grants (DFG)?",a:"We can quote on the format Lichfield District Council requires for DFG applications. We'll also liaise with occupational therapists if recommendations have already been issued."},{q:"Do you cover Burntwood, Boley Park and the surrounding villages?",a:"Yes â Burntwood, Boley Park, Streethay, Curborough, Stowe, Whittington, Shenstone, Fradley and all the surrounding villages."}],ctaHeading:"Talk to a Lichfield Accessible Bathroom Specialist",ctaSubtext:"Book a free, no-pressure home assessment. We'll listen, measure, and design a bathroom around what's actually difficult right now â for you, your parent, or the person you care for.",nearbyAreas:[{name:"Tamworth",slug:"tamworth"},{name:"Sutton Coldfield",slug:"sutton-coldfield"},{name:"Burton-on-Trent",slug:"burton-on-trent"},{name:"Cannock",slug:"cannock"},{name:"Rugeley",slug:"rugeley"}]},B4=()=>r.jsx(H,{data:T4}),W4={slug:"sutton-coldfield-accessible-bathrooms",name:"Sutton Coldfield",title:"Accessible Bathroom Fitters Sutton Coldfield | Walk-In Baths",metaDescription:"Walk-in baths, walk-in showers and level-access wet rooms fitted across Sutton Coldfield. 4.9â
from 38+ Google reviews. Free home assessment, employed fitters.",heroHeadline:"Accessible & Mobility Bathroom Specialists in Sutton Coldfield",heroSubheadline:"Walk-in baths, walk-in showers, level-access wet rooms and disabled-friendly bathroom installations â designed and fitted for elderly, disabled and reduced-mobility homeowners across Sutton Coldfield, Four Oaks and Mere Green.",trustMicro:"Free home assessment · Employed fitters, no subcontractors · Sensitive, respectful install · Showroom 15 minutes away in Tamworth",localRelevanceContent:["We install accessible bathrooms throughout Sutton Coldfield â the town centre, Four Oaks, Mere Green, Wylde Green, Walmley, Boldmere, Streetly and Little Aston. Many of our enquiries are from families looking after parents in the larger detached properties around Four Oaks and Mere Green, where space allows generous walk-in showers and wet rooms but the existing 1960s and 1970s bathrooms are no longer safe.","Our showroom on Cavendish in Tamworth (15 minutes from Sutton Coldfield) has live walk-in bath and walk-in shower displays you can step into and try before committing. We'll bring brochures, finishes and measuring kit to your Sutton Coldfield home if visiting the showroom isn't practical â home assessments are always free.","Every accessible bathroom we install in Sutton Coldfield is designed around the person who'll actually use it. We don't fit generic 'disabled bathrooms' â reach distances, transfer points, grab rail positions, anti-slip flooring, lever taps, comfort-height WCs and lighting are all chosen for the individual."],propertyTypes:"Four Oaks and Mere Green detached homes, Walmley and Boldmere semis, Wylde Green bungalows, town-centre flats adapting for elderly residents",responseTime:"Free home assessment booked within 3â5 days · Most installs in 2â4 weeks",commonNeeds:"Walk-in baths, walk-in showers, level-access wet rooms, grab rails, comfort-height WCs, anti-slip flooring",services:[{name:"Walk-In Baths (Sutton Coldfield)",path:"/services/accessible-bathrooms",description:"Low-threshold walk-in baths with door seals, built-in seats, thermostatic controls and quick-drain options. Suitable for arthritis, hip and knee issues, balance concerns and Parkinson's."},{name:"Walk-In Showers & Low-Step Showers",path:"/services/walk-in-shower-installation",description:"Step-free shower enclosures replacing tired baths, with fold-down seats, grab rails, slip-resistant trays and lever thermostatic mixers."},{name:"Level-Access Wet Rooms",path:"/services/wet-room-installation",description:"Fully tanked, level-access wet rooms â wheelchair-accessible with no thresholds, grades or trays. Particularly well-suited to the larger family bathrooms in Four Oaks and Mere Green."},{name:"Disabled & Mobility Bathroom Installations",path:"/services/accessible-bathrooms",description:"Full disabled bathroom installations: grab rails, drop-down rails, comfort-height WCs, height-adjustable basins, lever taps, contrasting tile bands for partially sighted users."},{name:"Senior & Elderly Bathrooms",path:"/services/accessible-bathrooms",description:"Bathroom adaptations for elderly Sutton Coldfield homeowners staying in their home longer â designed for safety today and future-proofed for changing needs."}
318,{name:"Accessible Bathroom Showroom",path:"/services/bathroom-showroom",description:"Live walk-in bath and walk-in shower displays at our Cavendish showroom in Tamworth, 15 minutes from Sutton Coldfield."},{name:"Bathroom Design & 3D Planning",path:"/services/bathroom-design-planning",description:"Free 3D design so families and carers can see the new layout before any work starts."},{name:"Sutton Coldfield Area Page",path:"/areas/sutton-coldfield",description:"Everything we do across Sutton Coldfield, Four Oaks, Mere Green, Walmley and the surrounding suburbs."}],whyChooseUsContent:["We install accessible bathrooms in Sutton Coldfield for elderly homeowners, disabled users, wheelchair users, stroke survivors, hip and knee replacement patients, MS and Parkinson's sufferers, and families caring for ageing parents. Every install starts with a conversation about what's actually difficult right now â and we design backwards from that.","Our fitters are employed by us, not subcontracted. The same team you meet at the survey is the team in the Sutton Coldfield home â important when the resident is vulnerable, anxious about strangers, or living with dementia.","We supply all the major accessible bathroom brands â AKW, Mira, Triton, Roca Access, Ideal Standard Concept Freedom, Impey wet room formers, plus walk-in baths from established UK manufacturers. No brand commission, no pushing â we recommend what fits the person and the room.","Most accessible bathroom installs in Sutton Coldfield take 5â10 working days. Walk-in bath swaps are usually 4â6 days. Level-access wet rooms are 8â12 days because of tanking and drainage. Written day-by-day schedule before we start."],localProblemsHeading:"Common Accessibility Issues in Sutton Coldfield Bathrooms",localProblemsContent:["Step-over baths in the 1930s, 1960s and 1970s semis across Boldmere, Walmley, Wylde Green and the older Four Oaks streets are the single biggest cause of falls we're called out for. A walk-in bath drops the step-over to 130â150mm; a walk-in shower removes it entirely.","Many of the larger detached homes around Four Oaks, Mere Green and Little Aston have generous family bathrooms that have become impractical for an elderly resident living alone. We frequently convert these into spacious level-access wet rooms with the existing footprint â no extension needed.","Cold, slippery ceramic floors are a major fall risk. We use R11-rated slip-resistant porcelain or vinyl safety flooring in every accessible bathroom we fit, and most clients add electric underfloor heating.","Standard 400mm-high WCs are uncomfortable for anyone with hip, knee or back problems. A comfort-height (450mm) or raised-height (480mm) WC with a grab rail beside it is a small swap that transforms daily use.","Tap reach and grip â round chrome taps are difficult for arthritic hands. We swap to long-lever or single-lever thermostatic mixers as standard in every accessible install."],processSteps:[{title:"Phone or Email Conversation",description:"Tell us who the bathroom is for, what's difficult now, and what you're hoping to change. No pressure, no sales script."},{title:"Free Home Assessment in Sutton Coldfield",description:"We visit, measure, talk to the resident (and family or carer if helpful), and discuss layouts."},{title:"3D Design & Fixed Itemised Quote",description:"Within a week you'll have a 3D visual of the new bathroom plus a line-by-line written quote."},{title:"Showroom Sign-Off (Optional)",description:"Visit our Cavendish showroom in Tamworth â 15 minutes from Sutton Coldfield â to try the displays before final sign-off."},{title:"Sensitive, Clean Installation",description:"Employed team, daily clean-down, working toilet kept available where possible. 5â12 working days depending on scope."},{title:"Handover & Aftercare",description:"We walk the resident through every control and fit any additional grab rails once they've lived with it for a week."}],faqs:[{q:"Who installs accessible bathrooms in Sutton Coldfield?",a:"Blue Sky Luxury Bathrooms covers Sutton Coldfield from our Tamworth base, 15 minutes away. We specialise in accessible, disabled, mobility and senior-friendly bathroom installations. All fitters are employed by us â no subcontractors."},{q:"Who installs walk-in baths in Sutton Coldfield?",a:"We do â walk-in baths are one of our most common installs across Sutton Coldfield, Four Oaks, Mere Green, Walmley and Boldmere. Low-threshold walk-in baths with door seals, built-in seats, thermostatic controls and quick-drain options."},{q:"Who installs walk-in showers in Sutton Coldfield?",a:"We design and fit walk-in showers, low-step showers and level-access shower enclosures throughout Sutton Coldfield. Most bath-to-shower conversions take 5â7 working days."},{q:"Who installs accessible wet rooms in Sutton Coldfield?",a:"We install fully tanked, level-access wet rooms across Sutton Coldfield â particularly well-suited to the larger family bathrooms in Four Oaks, Mere Green and Little Aston. Typically 8â12 working days."},{q:"How much does an accessible bathroom cost in Sutton Coldfield?",a:"Walk-in shower conversions typically start around £6,500 supply-and-fit. Walk-in baths from around £8,500 supply-and-fit. Full level-access wet rooms from £11,000. Every quote is itemised and includes VAT, waste removal and certification."},{q:"Do you fit grab rails, comfort-height WCs and lever taps on their own?",a:"Yes. We're happy to do single-item accessibility upgrades without a full bathroom install."},{q:"Are your installs suitable for wheelchair users?",a:"Yes. We design wheelchair-accessible bathrooms with level-access drainage, 1500mm turning circles where possible, height-adjustable or wall-hung basins and side-transfer WCs."},{q:"Can the resident stay in the home during the install?",a:"Almost always, yes. We keep at least one working toilet available, dust-sheet the route from front door to bathroom, and clean down every evening."},{q:"Do you help with Disabled Facilities Grants (DFG)?",a:"We can quote on the format Birmingham City Council requires for DFG applications and liaise with occupational therapists where recommendations have been issued."},{q:"Do you cover Four Oaks, Mere Green and Walmley?",a:"Yes â Four Oaks, Mere Green, Walmley, Boldmere, Wylde Green, Streetly, Little Aston and all the surrounding suburbs."}],ctaHeading:"Talk to a Sutton Coldfield Accessible Bathroom Specialist",ctaSubtext:"Book a free, no-pressure home assessment. We'll listen, measure, and design a bathroom around what's actually difficult right now.",nearbyAreas:[{name:"Tamworth",slug:"tamworth"},{name:"Lichfield",slug:"lichfield"},{name:"Birmingham",slug:"birmingham"},{name:"Walsall",slug:"walsall"},{name:"Cannock",slug:"cannock"}]},N4=()=>r.jsx(H,{data:W4}),A4={slug:"burton-accessible-bathrooms",name:"Burton-on-Trent",title:"Accessible Bathroom Fitters Burton-on-Trent | Walk-In Baths",metaDescription:"Accessible bathroom installer
318s in Burton-on-Trent. Walk-in baths, low-step showers, wet rooms & grab rails. 4.9â
from 38+ Google reviews. Free home assessment.",heroHeadline:"Accessible & Mobility Bathroom Specialists in Burton-on-Trent",heroSubheadline:"Walk-in baths, walk-in showers, level-access wet rooms and disabled-friendly bathroom installations across Burton-on-Trent, Stretton, Branston, Stapenhill and the surrounding villages.",trustMicro:"Free home assessment · Employed fitters, no subcontractors · Sensitive, respectful install · Tamworth showroom 25 minutes away",localRelevanceContent:["We install accessible bathrooms throughout Burton-on-Trent â the town centre, Stretton, Branston, Stapenhill, Winshill, Horninglow and the surrounding villages out to Barton-under-Needwood and Rolleston. Most enquiries are from sons, daughters or carers searching on behalf of an elderly parent â we treat every conversation with discretion.","Our showroom on Cavendish in Tamworth (25 minutes from Burton) has live walk-in bath and walk-in shower displays you can step into and try before committing. We'll happily bring brochures, finishes and measuring kit to your Burton home â home assessments are always free.","Every accessible bathroom we install in Burton-on-Trent is designed around the person who'll actually use it. Reach distances, transfer points, grab rail positions, anti-slip flooring, lever taps, comfort-height WCs and lighting are all chosen for the individual â no generic 'disabled bathrooms'."],propertyTypes:"Victorian terraces near the town centre, 1930s and 1960s semis across Stapenhill and Winshill, modern Stretton family homes, rural bungalows in Barton and Rolleston",responseTime:"Free home assessment booked within 3â5 days · Most installs in 2â4 weeks",commonNeeds:"Walk-in baths, walk-in showers, level-access wet rooms, grab rails, comfort-height WCs, anti-slip flooring",services:[{name:"Walk-In Baths (Burton-on-Trent)",path:"/services/accessible-bathrooms",description:"Low-threshold walk-in baths with door seals, built-in seats, thermostatic controls and quick-drain options."},{name:"Walk-In Showers & Low-Step Showers",path:"/services/walk-in-shower-installation",description:"Step-free shower enclosures replacing tired baths, with fold-down seats, grab rails, slip-resistant trays and lever thermostatic mixers."},{name:"Level-Access Wet Rooms",path:"/services/wet-room-installation",description:"Fully tanked, level-access wet rooms â wheelchair-accessible with no thresholds, grades or trays."},{name:"Disabled & Mobility Bathroom Installations",path:"/services/accessible-bathrooms",description:"Full disabled bathroom installations: grab rails, drop-down rails, comfort-height WCs, height-adjustable basins, lever taps."},{name:"Senior & Elderly Bathrooms",path:"/services/accessible-bathrooms",description:"Bathroom adaptations for elderly Burton homeowners staying in their home longer."}
318,{name:"Accessible Bathroom Showroom",path:"/services/bathroom-showroom",description:"Live walk-in bath and walk-in shower displays at our Cavendish showroom in Tamworth."},{name:"Bathroom Design & 3D Planning",path:"/services/bathroom-design-planning",description:"Free 3D design so families and carers can see the new layout before any work starts."},{name:"Burton-on-Trent Area Page",path:"/areas/burton-on-trent",description:"Everything we do across Burton-on-Trent and the surrounding villages."}],whyChooseUsContent:["We install accessible bathrooms in Burton-on-Trent for elderly homeowners, disabled users, wheelchair users, stroke survivors, hip and knee replacement patients, MS and Parkinson's sufferers, and families caring for ageing parents.","Our fitters are employed by us, not subcontracted. The same team you meet at the survey is the team in the Burton home â important when the resident is vulnerable, anxious about strangers, or living with dementia.","We supply all the major accessible bathroom brands â AKW, Mira, Triton, Roca Access, Ideal Standard Concept Freedom, Impey wet room formers, plus walk-in baths from established UK manufacturers. No brand commission.","Most accessible bathroom installs in Burton take 5â10 working days. Walk-in bath swaps are usually 4â6 days. Level-access wet rooms are 8â12 days. Written day-by-day schedule before we start."],localProblemsHeading:"Common Accessibility Issues in Burton Bathrooms",localProblemsContent:["Step-over baths in 1950s and 1960s Burton semis â particularly around Stapenhill, Winshill and Horninglow â are the single biggest cause of falls we're called out for. A walk-in bath drops the step-over to 130â150mm; a walk-in shower removes it entirely.","Upstairs-only bathrooms in older Burton terraces create a daily problem when stairs become difficult. We frequently convert downstairs cloakrooms or under-stair spaces into compact accessible wet rooms.","Cold, slippery ceramic floors are a major fall risk. R11-rated slip-resistant porcelain or vinyl safety flooring in every accessible bathroom we fit, with underfloor heating as a popular add-on.","Standard 400mm-high WCs are uncomfortable for anyone with hip, knee or back problems. Comfort-height (450mm) or raised-height (480mm) WCs with grab rails alongside transform daily use.","Round chrome taps are difficult for arthritic hands. We swap to long-lever or single-lever thermostatic mixers as standard in every accessible install."],processSteps:[{title:"Phone or Email Conversation",description:"Tell us who the bathroom is for and what's difficult now. 10 minutes, no pressure."},{title:"Free Home Assessment in Burton",description:"We visit, measure, talk to the resident and discuss layouts."},{title:"3D Design & Fixed Itemised Quote",description:"Within a week you'll have a 3D visual plus a line-by-line written quote."},{title:"Showroom Sign-Off (Optional)",description:"Visit our Cavendish showroom in Tamworth to try the displays before final sign-off."},{title:"Sensitive, Clean Installation",description:"Employed team, daily clean-down, working toilet kept available where possible."},{title:"Handover & Aftercare",description:"We walk the resident through every control and fit additional grab rails once they've lived with it for a week."}],faqs:[{q:"Who installs accessible bathrooms in Burton-on-Trent?",a:"Blue Sky Luxury Bathrooms covers Burton from our Tamworth base, 25 minutes away. We specialise in accessible, disabled, mobility and senior-friendly bathroom installations. All fitters are employed by us."},{q:"Who installs walk-in baths in Burton?",a:"We do â walk-in baths are one of our most common installs across Burton, Stretton, Branston, Stapenhill and the surrounding villages."},{q:"Who installs walk-in showers in Burton?",a:"We design and fit walk-in showers, low-step showers and level-access shower enclosures throughout Burton-on-Trent. Most bath-to-shower conversions take 5â7 working days."},{q:"Who installs accessible wet rooms in Burton?",a:"We install fully tanked, level-access wet rooms across Burton â wheelchair-accessible with built-in floor falls. Typically 8â12 working days."},{q:"How much does an accessible bathroom cost in Burton?",a:"Walk-in shower conversions typically start around £6,500 supply-and-fit. Walk-in baths from around £8,500. Full level-access wet rooms from £11,000. Every quote is itemised."},{q:"Do you fit grab rails, comfort-height WCs and lever taps on their own?",a:"Yes. Single-item accessibility upgrades are available without a full bathroom install."},{q:"Are your installs suitable for wheelchair users?",a:"Yes. We design wheelchair-accessible bathrooms with level-access drainage, 1500mm turning circles where possible and side-transfer WCs."},{q:"Can the resident stay in the home during the install?",a:"Almost always, yes. We keep a working toilet available, dust-sheet the route from front door to bathroom, and clean down every evening."},{q:"Do you help with Disabled Facilities Grants (DFG)?",a:"We can quote on the format East Staffordshire Borough Council requires for DFG applications and liaise with occupational therapists."},{q:"Do you cover Stretton, Branston and the surrounding villages?",a:"Yes â Stretton, Branston, Stapenhill, Winshill, Horninglow, Barton-under-Needwood, Rolleston and all the surrounding villages."}],ctaHeading:"Talk to a Burton Accessible Bathroom Specialist",ctaSubtext:"Book a free, no-pressure home assessment. We'll listen, measure, and design a bathroom around what's actually difficult right now.",nearbyAreas:[{name:"Tamworth",slug:"tamworth"},{name:"Lichfield",slug:"lichfield"},{name:"Swadlincote",slug:"swadlincote"},{name:"Derby",slug:"derby"},{name:"Rugeley",slug:"rugeley"}]},E4=()=>r.jsx(H,{data:A4}),F4={slug:"atherstone-accessible-bathrooms",name:"Atherstone",title:"Accessible Bathroom Fitters Atherstone | Walk-In Baths",metaDescription:"Walk-in baths, walk-in showers and level-access wet rooms fitted in Atherstone. 4.9â
from 38+ Google reviews. Free home assessment, no subcontractors.",heroHeadline:"Accessible & Mobility Bathroom Specialists in Atherstone",heroSubheadline:"Walk-in baths, walk-in showers, level-access wet rooms and disabled-friendly bathroom installations across Atherstone, Mancetter, Hartshill, Grendon and the surrounding villages.",trustMicro:"Free home assessment · Employed fitters, no subcontractors · Sensitive, respectful install · Tamworth showroom 10 minutes away",localRelevanceContent:["We install accessible bathrooms throughout Atherstone â the town centre, Mancetter, Hartshill, Grendon, Witherley, Sheepy Magna and the surrounding North Warwickshire villages. Many enquiries come from families looking after parents in the older terraces along Long Street and the ex-mining housing around Mancetter and Hartshill, where original 1960s bathrooms are no longer safe.","Our showroom on Cavendish in Tamworth (10 minutes from Atherstone) has live walk-in bath and walk-in shower displays you can step into and try before committing. We'll bring brochures, finishes and measuring kit to your Atherstone home â home assessments are always free.","Every accessible bathroom we install in Atherstone is designed around the person who'll actually use it. No generic 'disabled bathrooms' â every layout is bespoke."],propertyTypes:"Long Street Victorian terraces, ex-mining semis in Mancetter and Hartshill, modern Grendon family homes, rural cottages across North Warwickshire",responseTime:"Free home assessment booked within 3â5 days · Most installs in 2â4 weeks",commonNeeds:"Walk-in baths, walk-in showers, level-access wet rooms, grab rails, comfort-height WCs, anti-slip flooring",services:[{name:"Walk-In Baths (Atherstone)",path:"/services/accessible-bathrooms",description:"Low-threshold walk-in baths with door seals, built-in seats, thermostatic controls and quick-drain options."},{name:"Walk-In Showers & Low-Step Showers",path:"/services/walk-in-shower-installation",description:"Step-free shower enclosures with fold-down seats, grab rails, slip-resistant trays and lever thermostatic mixers."},{name:"Level-Access Wet Rooms",path:"/services/wet-room-installation",description:"Fully tanked, level-access wet rooms â wheelchair-accessible with no thresholds."},{name:"Disabled & Mobility Bathroom Installations",path:"/services/accessible-bathrooms",description:"Full disabled bathroom installations: grab rails, drop-down rails, comfort-height WCs, height-adjustable basins, lever taps."},{name:"Senior & Elderly Bathrooms",path:"/services/accessible-bathrooms",description:"Bathroom adaptations for elderly Atherstone homeowners staying in their home longer."}
318,{name:"Accessible Bathroom Showroom",path:"/services/bathroom-showroom",description:"Live walk-in bath and walk-in shower displays at our Cavendish showroom in Tamworth, 10 minutes from Atherstone."},{name:"Bathroom Design & 3D Planning",path:"/services/bathroom-design-planning",description:"Free 3D design so families and carers can see the new layout before any work starts."},{name:"Atherstone Area Page",path:"/areas/atherstone",description:"Everything we do across Atherstone and the surrounding villages."}],whyChooseUsContent:["We install accessible bathrooms in Atherstone for elderly homeowners, disabled users, wheelchair users, stroke survivors, hip and knee replacement patients, MS and Parkinson's sufferers, and families caring for ageing parents.","Our fitters are employed by us, not subcontracted. The same team you meet at the survey is the team in the Atherstone home â important when the resident is vulnerable or living with dementia.","We supply all the major accessible bathroom brands â AKW, Mira, Triton, Roca Access, Ideal Standard Concept Freedom, Impey wet room formers, plus walk-in baths from established UK manufacturers.","Most accessible bathroom installs in Atherstone take 5â10 working days. Walk-in bath swaps are usually 4â6 days. Level-access wet rooms are 8â12 days. Written day-by-day schedule before we start."],localProblemsHeading:"Common Accessibility Issues in Atherstone Bathrooms",localProblemsContent:["Step-over baths in the ex-mining housing around Mancetter, Hartshill and the older Atherstone terraces are the single biggest cause of falls we're called out for. A walk-in bath drops the step-over to 130â150mm; a walk-in shower removes it entirely.","Upstairs-only bathrooms in older Atherstone terraces along Long Street and Sheepy Road create a daily problem when stairs become difficult. We frequently convert downstairs spaces into compact accessible wet rooms.","Cold, slippery ceramic floors are a major fall risk. R11-rated slip-resistant flooring in every accessible bathroom we fit, with underfloor heating as a popular add-on.","Standard 400mm-high WCs are uncomfortable for anyone with hip, knee or back problems. Comfort-height (450mm) WCs with grab rails transform daily use.","Round chrome taps are difficult for arthritic hands. We swap to long-lever or single-lever thermostatic mixers as standard in every accessible install."],processSteps:[{title:"Phone or Email Conversation",description:"Tell us who the bathroom is for and what's difficult now. 10 minutes, no pressure."},{title:"Free Home Assessment in Atherstone",description:"We visit, measure, talk to the resident and discuss layouts."},{title:"3D Design & Fixed Itemised Quote",description:"Within a week you'll have a 3D visual plus a line-by-line written quote."},{title:"Showroom Sign-Off (Optional)",description:"Visit our Cavendish showroom in Tamworth â 10 minutes from Atherstone â to try the displays before final sign-off."},{title:"Sensitive, Clean Installation",description:"Employed team, daily clean-down, working toilet kept available where possible."},{title:"Handover & Aftercare",description:"We walk the resident through every control and fit additional grab rails once they've lived with it for a week."}],faqs:[{q:"Who installs accessible bathrooms in Atherstone?",a:"Blue Sky Luxury Bathrooms covers Atherstone from our Tamworth base, 10 minutes away. We specialise in accessible, disabled, mobility and senior-friendly bathroom installations. All fitters are employed by us."},{q:"Who installs walk-in baths in Atherstone?",a:"We do â walk-in baths are one of our most common installs across Atherstone, Mancetter, Hartshill, Grendon and the surrounding villages."},{q:"Who installs walk-in showers in Atherstone?",a:"We design and fit walk-in showers, low-step showers and level-access shower enclosures throughout Atherstone. Most bath-to-shower conversions take 5â7 working days."},{q:"Who installs accessible wet rooms in Atherstone?",a:"We install fully tanked, level-access wet rooms across Atherstone â wheelchair-accessible with built-in floor falls. Typically 8â12 working days."},{q:"How much does an accessible bathroom cost in Atherstone?",a:"Walk-in shower conversions typically start around £6,500 supply-and-fit. Walk-in baths from around £8,500. Full level-access wet rooms from £11,000. Every quote is itemised."},{q:"Do you fit grab rails, comfort-height WCs and lever taps on their own?",a:"Yes. Single-item accessibility upgrades are available without a full bathroom install."},{q:"Are your installs suitable for wheelchair users?",a:"Yes. We design wheelchair-accessible bathrooms with level-access drainage and side-transfer WCs."},{q:"Can the resident stay in the home during the install?",a:"Almost always, yes. We keep a working toilet available, dust-sheet the route from front door to bathroom, and clean down every evening."},{q:"Do you help with Disabled Facilities Grants (DFG)?",a:"We can quote on the format North Warwickshire Borough Council requires for DFG applications."},{q:"Do you cover Mancetter, Hartshill and Grendon?",a:"Yes â Mancetter, Hartshill, Grendon, Witherley, Sheepy Magna and all the surrounding villages."}],ctaHeading:"Talk to an Atherstone Accessible Bathroom Specialist",ctaSubtext:"Book a free, no-pressure home assessment. We'll listen, measure, and design a bathroom around what's actually difficult right now.",nearbyAreas:[{name:"Tamworth",slug:"tamworth"},{name:"Nuneaton",slug:"nuneaton"},{name:"Hinckley",slug:"hinckley"},{name:"Coalville",slug:"coalville"},{name:"Lichfield",slug:"lichfield"}]},q4=()=>r.jsx(H,{data:F4}),P4={slug:"nuneaton-accessible-bathrooms",name:"Nuneaton",title:"Accessible Bathroom Fitters Nuneaton | Walk-In Baths",metaDescription:"Accessible bathroom fitters in Nuneaton. Walk-in baths, low-step showers, wet rooms and grab rails. 4.9â
from 38+ Google reviews. Free home assessment.",heroHeadline:"Accessible & Mobility Bathroom Specialists in Nuneaton",heroSubheadline:"Walk-in baths, walk-in showers, level-access wet rooms and disabled-friendly bathroom installations across Nuneaton, Bedworth, Bulkington, Stockingford and the surrounding villages.",trustMicro:"Free home assessment · Employed fitters, no subcontractors · Sensitive, respectful install · Tamworth showroom 20 minutes away",localRelevanceContent:["We install accessible bathrooms throughout Nuneaton â the town centre, Bedworth, Bulkington, Stockingford, Chilver
318s Coton, Whitestone, Weddington and the surrounding villages. Many enquiries come from families looking after parents in the older terraces around Coton Road and the post-war estates around Stockingford and Camp Hill.","Our showroom on Cavendish in Tamworth (20 minutes from Nuneaton) has live walk-in bath and walk-in shower displays you can step into and try before committing. We'll bring brochures, finishes and measuring kit to your Nuneaton home â home assessments are always free.","Every accessible bathroom we install in Nuneaton is designed around the person who'll actually use it. No generic 'disabled bathrooms' â every layout is bespoke."],propertyTypes:"Coton Road Victorian terraces, post-war Stockingford and Camp Hill semis, Weddington and Whitestone family homes, modern Bedworth bungalows",responseTime:"Free home assessment booked within 3â5 days · Most installs in 2â4 weeks",commonNeeds:"Walk-in baths, walk-in showers, level-access wet rooms, grab rails, comfort-height WCs, anti-slip flooring",services:[{name:"Walk-In Baths (Nuneaton)",path:"/services/accessible-bathrooms",description:"Low-threshold walk-in baths with door seals, built-in seats, thermostatic controls and quick-drain options."},{name:"Walk-In Showers & Low-Step Showers",path:"/services/walk-in-shower-installation",description:"Step-free shower enclosures with fold-down seats, grab rails, slip-resistant trays and lever thermostatic mixers."},{name:"Level-Access Wet Rooms",path:"/services/wet-room-installation",description:"Fully tanked, level-access wet rooms â wheelchair-accessible with no thresholds."},{name:"Disabled & Mobility Bathroom Installations",path:"/services/accessible-bathrooms",description:"Full disabled bathroom installations: grab rails, drop-down rails, comfort-height WCs, height-adjustable basins, lever taps."},{name:"Senior & Elderly Bathrooms",path:"/services/accessible-bathrooms",description:"Bathroom adaptations for elderly Nuneaton homeowners staying in their home longer."}
318,{name:"Accessible Bathroom Showroom",path:"/services/bathroom-showroom",description:"Live walk-in bath and walk-in shower displays at our Cavendish showroom in Tamworth, 20 minutes from Nuneaton."},{name:"Bathroom Design & 3D Planning",path:"/services/bathroom-design-planning",description:"Free 3D design so families and carers can see the new layout before any work starts."},{name:"Nuneaton Area Page",path:"/areas/nuneaton",description:"Everything we do across Nuneaton, Bedworth, Bulkington and the surrounding villages."}],whyChooseUsContent:["We install accessible bathrooms in Nuneaton for elderly homeowners, disabled users, wheelchair users, stroke survivors, hip and knee replacement patients, MS and Parkinson's sufferers, and families caring for ageing parents.","Our fitters are employed by us, not subcontracted. The same team you meet at the survey is the team in the Nuneaton home â important when the resident is vulnerable or living with dementia.","We supply all the major accessible bathroom brands â AKW, Mira, Triton, Roca Access, Ideal Standard Concept Freedom, Impey wet room formers, plus walk-in baths from established UK manufacturers.","Most accessible bathroom installs in Nuneaton take 5â10 working days. Walk-in bath swaps are usually 4â6 days. Level-access wet rooms are 8â12 days. Written day-by-day schedule before we start."],localProblemsHeading:"Common Accessibility Issues in Nuneaton Bathrooms",localProblemsContent:["Step-over baths in 1950s and 1960s Nuneaton semis â particularly around Stockingford, Camp Hill and Chilvers Coton â are the single biggest cause of falls we're called out for. A walk-in bath drops the step-over to 130â150mm; a walk-in shower removes it entirely.","Upstairs-only bathrooms in older Nuneaton terraces around Coton Road and Queens Road create a daily problem when stairs become difficult. We frequently convert downstairs cloakrooms into compact accessible wet rooms.","Cold, slippery ceramic floors are a major fall risk. R11-rated slip-resistant flooring in every accessible bathroom we fit, with underfloor heating as a popular add-on.","Standard 400mm-high WCs are uncomfortable for anyone with hip, knee or back problems. Comfort-height (450mm) WCs with grab rails transform daily use.","Round chrome taps are difficult for arthritic hands. We swap to long-lever or single-lever thermostatic mixers as standard in every accessible install."],processSteps:[{title:"Phone or Email Conversation",description:"Tell us who the bathroom is for and what's difficult now. 10 minutes, no pressure."},{title:"Free Home Assessment in Nuneaton",description:"We visit, measure, talk to the resident and discuss layouts."},{title:"3D Design & Fixed Itemised Quote",description:"Within a week you'll have a 3D visual plus a line-by-line written quote."},{title:"Showroom Sign-Off (Optional)",description:"Visit our Cavendish showroom in Tamworth â 20 minutes from Nuneaton â to try the displays before final sign-off."},{title:"Sensitive, Clean Installation",description:"Employed team, daily clean-down, working toilet kept available where possible."},{title:"Handover & Aftercare",description:"We walk the resident through every control and fit additional grab rails once they've lived with it for a week."}],faqs:[{q:"Who installs accessible bathrooms in Nuneaton?",a:"Blue Sky Luxury Bathrooms covers Nuneaton from our Tamworth base, 20 minutes away. We specialise in accessible, disabled, mobility and senior-friendly bathroom installations. All fitters are employed by us."},{q:"Who installs walk-in baths in Nuneaton?",a:"We do â walk-in baths are one of our most common installs across Nuneaton, Bedworth, Bulkington, Stockingford and the surrounding villages."},{q:"Who installs walk-in showers in Nuneaton?",a:"We design and fit walk-in showers, low-step showers and level-access shower enclosures throughout Nuneaton. Most bath-to-shower conversions take 5â7 working days."},{q:"Who installs accessible wet rooms in Nuneaton?",a:"We install fully tanked, level-access wet rooms across Nuneaton â wheelchair-accessible with built-in floor falls. Typically 8â12 working days."},{q:"How much does an accessible bathroom cost in Nuneaton?",a:"Walk-in shower conversions typically start around £6,500 supply-and-fit. Walk-in baths from around £8,500. Full level-access wet rooms from £11,000. Every quote is itemised."},{q:"Do you fit grab rails, comfort-height WCs and lever taps on their own?",a:"Yes. Single-item accessibility upgrades are available without a full bathroom install."},{q:"Are your installs suitable for wheelchair users?",a:"Yes. We design wheelchair-accessible bathrooms with level-access drainage and side-transfer WCs."},{q:"Can the resident stay in the home during the install?",a:"Almost always, yes. We keep a working toilet available, dust-sheet the route from front door to bathroom, and clean down every evening."},{q:"Do you help with Disabled Facilities Grants (DFG)?",a:"We can quote on the format Nuneaton and Bedworth Borough Council requires for DFG applications."},{q:"Do you cover Bedworth, Bulkington and the surrounding villages?",a:"Yes â Bedworth, Bulkington, Stockingford, Chilver
318s Coton, Whitestone, Weddington and all the surrounding villages."}],ctaHeading:"Talk to a Nuneaton Accessible Bathroom Specialist",ctaSubtext:"Book a free, no-pressure home assessment. We'll listen, measure, and design a bathroom around what's actually difficult right now.",nearbyAreas:[{name:"Tamworth",slug:"tamworth"},{name:"Atherstone",slug:"atherstone"},{name:"Hinckley",slug:"hinckley"},{name:"Coalville",slug:"coalville"},{name:"Sutton Coldfield",slug:"sutton-coldfield"}]},R4=()=>r.jsx(H,{data:P4}),L4={slug:"cannock-accessible-bathrooms",name:"Cannock",title:"Accessible Bathroom Fitters Cannock | Walk-In Baths",metaDescription:"Accessible bathroom fitters covering Cannock. Walk-in baths, walk-in showers & level-access wet rooms. 4.9â
from 38+ Google reviews. Free home assessment.",heroHeadline:"Accessible & Mobility Bathroom Specialists in Cannock",heroSubheadline:"Walk-in baths, walk-in showers, level-access wet rooms and disabled-friendly bathroom installations across Cannock, Hednesford, Heath Hayes, Norton Canes and the surrounding villages.",trustMicro:"Free home assessment · Employed fitters, no subcontractors · Sensitive, respectful install · Tamworth showroom 20 minutes away",localRelevanceContent:["We install accessible bathrooms throughout Cannock â the town centre, Hednesford, Heath Hayes, Norton Canes, Bridgtown, Cannock Wood and the surrounding villages. Many enquiries come from families looking after parents in the ex-mining housing across Hednesford and Heath Hayes, where original 1960s and 1970s bathrooms are no longer safe.","Our showroom on Cavendish in Tamworth (20 minutes from Cannock) has live walk-in bath and walk-in shower displays you can step into and try before committing. We'll bring brochures, finishes and measuring kit to your Cannock home â home assessments are always free.","Every accessible bathroom we install in Cannock is designed around the person who'll actually use it. No generic 'disabled bathrooms' â every layout is bespoke."],propertyTypes:"Ex-mining semis across Hednesford and Heath Hayes, post-war Cannock estates, modern Norton Canes family homes, rural bungalows on Cannock Chase fringes",responseTime:"Free home assessment booked within 3â5 days · Most installs in 2â4 weeks",commonNeeds:"Walk-in baths, walk-in showers, level-access wet rooms, grab rails, comfort-height WCs, anti-slip flooring",services:[{name:"Walk-In Baths (Cannock)",path:"/services/accessible-bathrooms",description:"Low-threshold walk-in baths with door seals, built-in seats, thermostatic controls and quick-drain options."},{name:"Walk-In Showers & Low-Step Showers",path:"/services/walk-in-shower-installation",description:"Step-free shower enclosures with fold-down seats, grab rails, slip-resistant trays and lever thermostatic mixers."},{name:"Level-Access Wet Rooms",path:"/services/wet-room-installation",description:"Fully tanked, level-access wet rooms â wheelchair-accessible with no thresholds."},{name:"Disabled & Mobility Bathroom Installations",path:"/services/accessible-bathrooms",description:"Full disabled bathroom installations: grab rails, drop-down rails, comfort-height WCs, height-adjustable basins, lever taps."},{name:"Senior & Elderly Bathrooms",path:"/services/accessible-bathrooms",description:"Bathroom adaptations for elderly Cannock homeowners staying in their home longer."}
318,{name:"Accessible Bathroom Showroom",path:"/services/bathroom-showroom",description:"Live walk-in bath and walk-in shower displays at our Cavendish showroom in Tamworth, 20 minutes from Cannock."},{name:"Bathroom Design & 3D Planning",path:"/services/bathroom-design-planning",description:"Free 3D design so families and carers can see the new layout before any work starts."},{name:"Cannock Area Page",path:"/areas/cannock",description:"Everything we do across Cannock, Hednesford, Heath Hayes and the surrounding villages."}],whyChooseUsContent:["We install accessible bathrooms in Cannock for elderly homeowners, disabled users, wheelchair users, stroke survivors, hip and knee replacement patients, MS and Parkinson's sufferers, and families caring for ageing parents.","Our fitters are employed by us, not subcontracted. The same team you meet at the survey is the team in the Cannock home â important when the resident is vulnerable or living with dementia.","We supply all the major accessible bathroom brands â AKW, Mira, Triton, Roca Access, Ideal Standard Concept Freedom, Impey wet room formers, plus walk-in baths from established UK manufacturers.","Most accessible bathroom installs in Cannock take 5â10 working days. Walk-in bath swaps are usually 4â6 days. Level-access wet rooms are 8â12 days. Written day-by-day schedule before we start."],localProblemsHeading:"Common Accessibility Issues in Cannock Bathrooms",localProblemsContent:["Step-over baths in the ex-mining housing around Hednesford, Heath Hayes and Bridgtown are the single biggest cause of falls we're called out for. A walk-in bath drops the step-over to 130â150mm; a walk-in shower removes it entirely.","Upstairs-only bathrooms in older Cannock terraces create a daily problem when stairs become difficult. We frequently convert downstairs cloakrooms into compact accessible wet rooms.","Cold, slippery ceramic floors are a major fall risk. R11-rated slip-resistant flooring in every accessible bathroom we fit, with underfloor heating as a popular add-on.","Standard 400mm-high WCs are uncomfortable for anyone with hip, knee or back problems. Comfort-height (450mm) WCs with grab rails transform daily use.","Round chrome taps are difficult for arthritic hands. We swap to long-lever or single-lever thermostatic mixers as standard in every accessible install."],processSteps:[{title:"Phone or Email Conversation",description:"Tell us who the bathroom is for and what's difficult now. 10 minutes, no pressure."},{title:"Free Home Assessment in Cannock",description:"We visit, measure, talk to the resident and discuss layouts."},{title:"3D Design & Fixed Itemised Quote",description:"Within a week you'll have a 3D visual plus a line-by-line written quote."},{title:"Showroom Sign-Off (Optional)",description:"Visit our Cavendish showroom in Tamworth â 20 minutes from Cannock â to try the displays before final sign-off."},{title:"Sensitive, Clean Installation",description:"Employed team, daily clean-down, working toilet kept available where possible."},{title:"Handover & Aftercare",description:"We walk the resident through every control and fit additional grab rails once they've lived with it for a week."}],faqs:[{q:"Who installs accessible bathrooms in Cannock?",a:"Blue Sky Luxury Bathrooms covers Cannock from our Tamworth base, 20 minutes away. We specialise in accessible, disabled, mobility and senior-friendly bathroom installations. All fitters are employed by us."},{q:"Who installs walk-in baths in Cannock?",a:"We do â walk-in baths are one of our most common installs across Cannock, Hednesford, Heath Hayes, Norton Canes and the surrounding villages."},{q:"Who installs walk-in showers in Cannock?",a:"We design and fit walk-in showers, low-step showers and level-access shower enclosures throughout Cannock. Most bath-to-shower conversions take 5â7 working days."},{q:"Who installs accessible wet rooms in Cannock?",a:"We install fully tanked, level-access wet rooms across Cannock â wheelchair-accessible with built-in floor falls. Typically 8â12 working days."},{q:"How much does an accessible bathroom cost in Cannock?",a:"Walk-in shower conversions typically start around £6,500 supply-and-fit. Walk-in baths from around £8,500. Full level-access wet rooms from £11,000. Every quote is itemised."},{q:"Do you fit grab rails, comfort-height WCs and lever taps on their own?",a:"Yes. Single-item accessibility upgrades are available without a full bathroom install."},{q:"Are your installs suitable for wheelchair users?",a:"Yes. We design wheelchair-accessible bathrooms with level-access drainage and side-transfer WCs."},{q:"Can the resident stay in the home during the install?",a:"Almost always, yes. We keep a working toilet available, dust-sheet the route from front door to bathroom, and clean down every evening."},{q:"Do you help with Disabled Facilities Grants (DFG)?",a:"We can quote on the format Cannock Chase District Council requires for DFG applications."},{q:"Do you cover Hednesford, Heath Hayes and Norton Canes?",a:"Yes â Hednesford, Heath Hayes, Norton Canes, Bridgtown, Cannock Wood and all the surrounding villages."}],ctaHeading:"Talk to a Cannock Accessible Bathroom Specialist",ctaSubtext:"Book a free, no-pressure home assessment. We'll listen, measure, and design a bathroom around what's actually difficult right now.",nearbyAreas:[{name:"Tamworth",slug:"tamworth"},{name:"Lichfield",slug:"lichfield"},{name:"Rugeley",slug:"rugeley"},{name:"Walsall",slug:"walsall"},{name:"Sutton Coldfield",slug:"sutton-coldfield"}]},M4=()=>r.jsx(H,{data:L4}),D4=()=>r.jsxs(r.Fragment,{children:[r.jsx(Se,{title:"Customer Reviews | 4.9-Star Rated | Blue Sky Tamworth",description:"Genuine reviews from homeowners across Tamworth, Lichfield, Sutton Coldfield and the Midlands. See why 1000+ customers trust Blue Sky for bathrooms.",schemaJ
318son:{"@context":"https://schema.org","@type":"LocalBusiness",name:"Blue Sky Luxury Bathrooms",aggregateRating:{"@type":"AggregateRating",ratingValue:"4.9",reviewCount:"38",bestRating:"5",worstRating:"1"}}}),r.jsx(Be,{}),r.jsxs("main",{className:"pt-28 md:pt-32",children:[r.jsx("section",{className:"section-dark section-padding",children:r.jsxs("div",{className:"container-narrow text-center",children:[r.jsx("p",{className:"text-sm font-semibold tracking-widest uppercase text-secondary mb-3",children:"Client Reviews"}),r.jsx("h1",{className:"font-heading text-3xl md:text-5xl font-bold text-primary-foreground mb-4 text-balance-heading",children:"What Our Clients Say"}),r.jsx("p",{className:"text-lg text-primary-foreground/80 max-w-2xl mx-auto mb-6",children:"Don't take our word for it. Hear from homeowners across the Midlands who trusted Blue Sky with their bathroom, kitchen, and plumbing projects."}),r.jsxs("a",{href:"https://search.google.com/local/writereview?placeid=ChIJhxN-6rg_FS8RghVyTxJYVis",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 bg-secondary text-secondary-foreground px-7 py-3 text-sm font-semibold tracking-wide hover:bg-steel-light transition-colors",children:["Leave Us a Review ",r.jsx(Qs,{className:"h-4 w-4"})]})]})}),r.jsx("section",{className:"section-padding",children:r.jsx("div",{className:"container-narrow",children:r.jsx(Sb,{})})}),r.jsx("section",{className:"section-dark section-padding",children:r.jsxs("div",{className:"container-narrow text-center",children:[r.jsx("h2",{className:"font-heading text-2xl md:text-3xl font-bold text-primary-foreground mb-4",children:"Ready to Join Our Happy Clients?"}),r.jsx("p",{className:"text-primary-foreground/80 max-w-xl mx-auto mb-8",children:"Book your free design consultation and discover why homeowners across the Midlands choose Blue Sky."}),r.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 justify-center",children:[r.jsx(S,{to:"/contact",className:"bg-secondary text-secondary-foreground px-7 py-3 text-sm font-semibold tracking-wide hover:bg-steel-light transition-colors",children:"Request Free Estimate"}),r.jsxs("a",{href:"tel:03300432234",className:"flex items-center justify-center gap-2 text-primary-foreground font-bold",children:[r.jsx(me,{className:"h-4 w-4"})," 0330 043 2234"]})]})]})})]}),r.jsx(We,{}),r.jsx(Ve,{})]}),I4=[{title:"Complete Bathroom Renovation",location:"Tamworth, B79",description:"Full strip-out and redesign of a dated family bathroom. Installed walk-in shower enclosure, wall-hung vanity, heated towel rail, and floor-to-ceiling porcelain tiling. Completed in 10 working days.",services:["Bathroom Installation","Tiling Services","Plumbing Services"],servicePaths:["/services/bathroom-installation","/services/tiling-services","/services/plumbing-services"],images:cr.bathroomRenovation},{title:"Luxury Freestanding Bath & Walk-In Shower",location:"Lichfield, WS13",description:"Designed and installed a luxury bathroom featuring a freestanding bath, walk-in shower with hexagonal mosaic feature wall, dark herringbone floor tiling, and chrome freestanding brassware.",services:["Luxury Bathroom Renovations","Walk-In Shower Installation","Tiling Services"],servicePaths:["/services/luxury-bathroom-renovations","/services/walk-in-shower-installation","/services/tiling-services"],images:cr.freestandingBath},{title:"Wet Room Installation",location:"Sutton Coldfield, B73",description:"Converted a standard bathroom into a fully tanked wet room with textured white wall tiles, patterned encaustic-style floor, walk-in glass screen, and traditional-style shower fittings.",services:["Wet Room Installation","Tiling Services"],servicePaths:["/services/wet-room-installation","/services/tiling-services"],images:cr.wetRoom},{title:"Walk-In Shower Suite",location:"Burton-on-Trent, DE14",description:"Installed a spacious walk-in shower with marble-effect porcelain wall tiling, frameless glass screen, and matching floor tiles. Paired with a modern vanity unit and heated towel rail.",services:["Walk-In Shower Installation","Bathroom Installation"],servicePaths:["/services/walk-in-shower-installation","/services/bathroom-installation"],images:cr.walk
318InShower},{title:"Cloakroom & Ensuite Package",location:"Nuneaton, CV11",description:"Installed a compact downstairs cloakroom with illuminated mirror and patterned tile niche, plus a first-floor ensuite with wall-hung WC and corner basin. Completed in 8 working days.",services:["Cloakroom & Ensuite","Tiling Services"],servicePaths:["/services/cloakroom-ensuite","/services/tiling-services"],images:cr.cloakroomEnsuite},{title:"Luxury Bathroom with Gold Brassware",location:"Cannock, WS11",description:"Premium bathroom renovation featuring onyx-effect wall tiling, brushed gold shower fittings, gold heated towel rail, and an oak vanity unit with gold basin mixer. A true luxury finish.",services:["Luxury Bathroom Renovations","Plumbing Services"],servicePaths:["/services/luxury-bathroom-renovations","/services/plumbing-services"],images:cr.luxuryBathroom},{title:"Traditional Metro-Tile Bathroom",location:"Tamworth, B77",description:"Classic-style family bathroom finished with white metro wall tiles, dark grout, patterned encaustic floor, shaker vanity unit, matt-black towel rail and a bath shower screen with overhead rainfall shower. Completed in 9 working days.",services:["Bathroom Installation","Tiling Services","Bathroom Refurbishments"],servicePaths:["/services/bathroom-installation","/services/tiling-services","/services/bathroom-refurbishments"],images:cr.traditionalBathroom}],H4=()=>r.jsxs(r.Fragment,{children:[r.jsx(Se,{title:"Our Work | Completed Bathroom Projects Tamworth | Blue Sky",description:"Browse completed bathroom installations, wet rooms and luxury renovations across Tamworth, Lichfield and the Midlands. Real projects by our in-house team."}),r.jsx(Be,{}),r.jsxs("main",{className:"pt-28 md:pt-32",children:[r.jsxs("section",{className:"relative section-dark section-padding overflow-hidden",children:[r.jsxs("div",{className:"absolute inset-0",children:[r.jsx("img",{src:kb.ourWork,alt:"",className:"h-full w-full object-cover opacity-20",width:1920,height:800}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-primary/80 to-primary"})]}),r.jsxs("div",{className:"relative container-narrow text-center",children:[r.jsx("p",{className:"text-sm font-semibold tracking-widest uppercase text-secondary mb-3",children:"Real Client Homes"}),r.jsxs("h1",{className:"font-heading text-3xl md:text-5xl font-bold text-primary-foreground mb-4 text-balance-heading",children:["Projects That Speak",r.jsx("br",{className:"hidden sm:block"})," for Themselves"]}),r.jsxs("p",{className:"text-lg text-primary-foreground/80 max-w-2xl mx-auto",children:["Every photo on this page was taken in a real client's home after completion. All materials are supplied and installed by us â no client-supplied products, no subcontractors. To see professional showroom photography, ",r.jsx(S,{to:"/services/bathroom-showroom",className:"underline underline-offset-2 hover:text-primary-foreground",children:"visit our Tamworth showroom page"}),"."]})]})]}),r.jsx("section",{className:"section-padding",children:r.jsx("div",{className:"container-narrow",children:r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-8",children:I4.map(e=>r.jsxs("div",{className:"bg-card border border-border overflow-hidden",children:[r.jsxs("div",{className:"relative h-56 overflow-hidden",children:[r.jsx("img",{src:e.images[0],alt:`${e.title} completed by Blue Sky Luxury Bathrooms in ${e.location}`,className:"h-full w-full object-cover hover:scale-105 transition-transform duration-500",loading:"lazy",width:600,height:224}),e.images.length>1&&r.jsx("div",{className:"absolute bottom-2 right-2 flex gap-1",children:e.images.slice(1,4).map((t,o)=>r.jsx("div",{className:"w-14 h-14 border-2 border-card overflow-hidden",children:r.jsx("img",{src:t,alt:`${e.title} detail ${o+2}`,className:"h-full w-full object-cover",loading:"lazy",width:56,height:56})},o))})]}),r.jsxs("div",{className:"p-6",children:[r.jsx("p",{className:"text-xs font-semibold tracking-widest uppercase text-secondary mb-1",children:e.location}),r.jsx("h3",{className:"font-heading text-xl font-bold text-foreground mb-3",children:e.title}),r.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed mb-4",children:e.description}),r.jsx("div",{className:"flex flex-wrap gap-2",children:e.services.map((t,o)=>r.jsx(S,{to:e.servicePaths[o],className:"text-xs bg-muted text-muted-foreground px-3 py-1 hover:text-foreground transition-colors",children:t},t))})]})]},e.title))})})}),r.jsx("section",{className:"py-12 bg-muted/30",children:r.jsxs("div",{className:"container-narrow",children:[r.jsx("p",{className:"text-sm font-semibold tracking-widest uppercase text-secondary mb-2 text-center",children:"More of Our Work"}),r.jsx("h2",{className:"font-heading text-2xl md:text-3xl font-bold text-foreground mb-8 text-center",children:"Recent Installations Across the Midlands"}),r.jsx("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-3",children:os.filter(e=>!e.categories.includes("showroom")).slice(0,12).map((e,t)=>r.jsx("div",{className:"aspect-square overflow-hidden",children:r.jsx("img",{src:e.src,alt:e.alt,className:"h-full w-full object-cover hover:scale-105 transition-transform duration-500",loading:"lazy",width:300,height:300})},t))})]})}),r.jsx("section",{className:"py-12 bg-background",children:r.jsxs("div",{className:"container-narrow",children:[r.jsx("p",{className:"text-sm font-semibold tracking-widest uppercase text-secondary mb-2 text-center",children:"Inside Our Showroom"}),r.jsx("h2",{className:"font-heading text-2xl md:text-3xl font-bold text-foreground mb-3 text-center",children:"Professional Showroom Photography"}),r.jsx("p",{className:"text-sm text-muted-foreground max-w-2xl mx-auto text-center mb-8",children:"These are our Tamworth showroom displays â every product shown can be supplied and installed by our in-house team, backed by one Blue Sky warranty."}),r.jsx("div",{className:"grid grid-cols-2 md:grid-cols-3 gap-3",children:ct.map((e,t)=>r.jsx("div",{className:"aspect-[4/3] overflow-hidden",children:r.jsx("img",{src:e.src,alt:e.alt,className:"h-full w-full object-cover hover:scale-105 transition-transform duration-500",loading:"lazy",width:500,height:375})},t))})]})}),r.jsxs("section",{className:"relative section-padding bg-secondary overflow-hidden",children:[r.jsxs("div",{className:"absolute inset-0",children:[r.jsx("img",{src:er.src,alt:er.alt,className:"h-full w-full object-cover opacity-15",loading:"lazy",width:1600,height:900}),r.jsx("div",{className:"absolute inset-0 bg-secondary/90"})]}),r.jsxs("div",{className:"relative container-narrow text-center",children:[r.jsx("h2",{className:"font-heading text-2xl md:text-3xl font-bold text-secondary-foreground mb-4",children:"Want Results Like These?"}
318),r.jsx("p",{className:"text-secondary-foreground/80 max-w-xl mx-auto mb-8",children:"Book your free design consultation and let us show you what's possible for your home."}),r.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 justify-center",children:[r.jsx(S,{to:"/contact",className:"bg-primary text-primary-foreground px-7 py-3 text-sm font-semibold tracking-wide hover:bg-navy-light transition-colors",children:"Request Free Estimate"}),r.jsxs("a",{href:"tel:03300432234",className:"flex items-center justify-center gap-2 text-secondary-foreground font-bold",children:[r.jsx(me,{className:"h-4 w-4"})," 0330 043 2234"]})]})]})]})]}),r.jsx(We,{}),r.jsx(Ve,{})]}),O4=[{icon:o2,title:"Free Design Consultation",subtitle:"Worth £250",description:"Our design specialist visits your home, discusses your vision, takes measurements, and provides a detailed, no-obligation estimate â completely free of charge.",benefits:["Home visit at a time that suits you","3D design concepts included","Detailed, itemised quotation","No pressure, no obligation"]},{icon:Dt,title:"Priority Scheduling",subtitle:"For consultations booked this month",description:"Book your consultation this month and receive priority scheduling on your installation date. Ideal if you have a deadline or want to avoid peak-season delays.",benefits:["Guaranteed start date","Dedicated project manager","Weekly progress updates","Fast-tracked material ordering"]},{icon:Ha,title:"Extended Workmanship Guarantee",subtitle:"On all installations",description:"Every Blue Sky installation comes with our comprehensive written guarantee. You're covered for workmanship and materials long after we've completed your project.",benefits:["Written guarantee on every job","Covers workmanship and materials","Single point of contact for aftercare","Peace of mind for years to come"]},{icon:il,title:"Complete Project Management",subtitle:"Included as standard",description:"We manage every aspect of your installation â plumbing, electrics, tiling, waste removal, and finishing â under one roof and one warranty. No subcontractors.",benefits:["One team handles everything","No coordinating multiple trades","Single warranty covers all work","Clean, tidy site guaranteed"]}],_4=()=>r.jsxs(r.Fragment,{children:[r.jsx(Se,{title:"Free Design Consultation & Offers | Blue Sky Tamworth",description:"Claim your free bathroom design consultation worth £250. Priority scheduling, extended warranties and full project management on every Tamworth installation."}),r.jsx(Be,{}),r.jsxs("main",{className:"pt-28 md:pt-32",children:[r.jsx("section",{className:"section-dark section-padding",children:r.jsxs("div",{className:"container-narrow text-center",children:[r.jsx("p",{className:"text-sm font-semibold tracking-widest uppercase text-secondary mb-3",children:"Exclusive Offers"}),r.jsx("h1",{className:"font-heading text-3xl md:text-5xl font-bold text-primary-foreground mb-4 text-balance-heading",children:"More Value, Not Discounts"}),r.jsx("p",{className:"text-lg text-primary-foreground/80 max-w-2xl mx-auto mb-8",children:"We don't cut prices â we add value. Every Blue Sky project includes premium materials, expert installation, and guarantees that protect your investment."}),r.jsx(S,{to:"/contact",className:"bg-secondary text-secondary-foreground px-7 py-3 text-sm font-semibold tracking-wide hover:bg-steel-light transition-colors inline-block",children:"Claim Your Free Consultation"})]})}),r.jsx("section",{className:"section-padding",children:r.jsx("div",{className:"container-narrow",children:r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-8",children:O4.map(e=>r.jsxs("div",{className:"bg-card border border-border p-8",children:[r.jsxs("div",{className:"flex items-center gap-4 mb-4",children:[r.jsx("div",{className:"flex items-center justify-center h-12 w-12 bg-secondary/10 shrink-0",children:r.jsx(e.icon,{className:"h-6 w-6 text-secondary"})}),r.jsxs("div",{children:[r.jsx("h3",{className:"font-heading text-xl font-bold text-foreground",children:e.title}),r.jsx("p",{className:"text-xs font-semibold tracking-widest uppercase text-secondary",children:e.subt
318itle})]})]}),r.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed mb-4",children:e.description}),r.jsx("ul",{className:"space-y-2",children:e.benefits.map(t=>r.jsxs("li",{className:"flex items-start gap-2 text-sm text-foreground/80",children:[r.jsx(Ia,{className:"h-4 w-4 text-secondary mt-0.5 shrink-0"}),t]},t))})]},e.title))})})}),r.jsx("section",{className:"section-dark section-padding",children:r.jsxs("div",{className:"container-narrow text-center",children:[r.jsx("h2",{className:"font-heading text-2xl md:text-3xl font-bold text-primary-foreground mb-4",children:"Ready to Get Started?"}),r.jsx("p",{className:"text-primary-foreground/80 max-w-xl mx-auto mb-8",children:"Book your free design consultation today and experience the Blue Sky difference."}),r.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 justify-center",children:[r.jsx(S,{to:"/contact",className:"bg-secondary text-secondary-foreground px-7 py-3 text-sm font-semibold tracking-wide hover:bg-steel-light transition-colors",children:"Request Free Estimate"}),r.jsxs("a",{href:"tel:03300432234",className:"flex items-center justify-center gap-2 text-primary-foreground font-bold",children:[r.jsx(me,{className:"h-4 w-4"})," 0330 043 2234"]})]})]})})]}),r.jsx(We,{}),r.jsx(Ve,{})]}),U4=()=>{const e={"@context":"https://schema.org","@type":"LocalBusiness","@id":"https://blueskybathrooms.co.uk/#localbusiness",name:"Blue Sky Luxury Bathrooms",image:"https://blueskybathrooms.co.uk/logo-512.png",url:"https://blueskybathrooms.co.uk/contact",telephone:"+44 330 043 2234",email:"[email protected]",priceRange:"££-£££",address:{"@type":"PostalAddress",streetAddress:"Unit 7 Cavendish",addressLocality:"Tamworth",addressRegion:"Staffordshire",postalCode:"B79 7XH",addressCountry:"GB"},geo:{"@type":"GeoCoordinates",latitude:52.6347,longitude:-1.6912},openingHoursSpecification:[{"@type":"OpeningHoursSpecification",dayOfWeek:["Monday","Tuesday","Wednesday","Thursday","Friday"],opens:"09:00",closes:"17:00"},{"@type":"OpeningHoursSpecification",dayOfWeek:"Saturday",opens:"09:00",closes:"13:00"},{"@type":"OpeningHoursSpecification",dayOfWeek:"Sunday",opens:"10:00",closes:"14:00"}],sameAs:["https://maps.app.goo.gl/YmAzgNJNETDk2GCv7","https://www.facebook.com/BlueSky23uk","https://www.instagram.com/bluesky23bathrooms/","https://www.checkatrade.com/trades/bluesky23ltd411522","https://www.trustatrader.com/traders/blue-sky-23-ltd-bathroom-fitters-tamworth","https://www.yell.com/biz/blue-sky-23-ltd-tamworth-8947818/"],areaServed:["Tamworth","Lichfield","Rugeley","Swadlincote","Burton-on-Trent","Sutton Coldfield","Atherstone","Nuneaton","Birmingham","Cannock","Walsall","Coalville","Hinckley","Derby","West Bromwich"].map(t=>({"@type":"City",name:t})),aggregateRating:{"@type":"AggregateRating",ratingValue:"4.9",reviewCount:"38",bestRating:"5"}};return r.jsxs(r.Fragment,{children:[r.jsx(Se,{title:"Contact Blue Sky Luxury Bathrooms | Free Estimate Tamworth",description:"Request your free, no-obligation bathroom estimate. Call 0330 043 2234 or use our enquiry form. Based in Tamworth, serving 15 areas across the Midlands.",schemaJson:e}),r.jsx(Be,{}),r.jsxs("main",{className:"pt-28 md:pt-32",children:[r.jsx("section",{className:"section-dark section-padding pb-12",children:r.jsxs("div",{className:"container-narrow text-center",children:[r.jsx("p",{className:"text-sm font-semibold tracking-widest uppercase text-secondary mb-3",children:"Get in Touch"}),r.jsx("h1",{className:"font-heading text-3xl md:text-5xl font-bold text-primary-foreground mb-4 text-balance-heading",children:"Let's Discuss Your Project"}),r.jsx("p",{className:"text-lg text-primary-foreground/80 max-w-2xl mx-auto",children:"Fill in the form below or call us directly. We respond to every enquiry within one working day."})]})}),r.jsx("section",{className:"section-padding pt-0 -mt-8",children:r.jsx("div",{className:"container-narrow",children:r.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-5 gap-8",children:[r.jsx("div",{className:"lg:col-span-3 bg-card border border-border rounded-xl overflow-hidden",children:r.jsx("iframe",{src:"https://portal.scalesuite.co.uk/widget/form/n8m861XxgM9QrsysmNIO",style:{width:"100%",height:"582px",border:"none",borderRadius:"12px"},id:"contact-inline-n8m861XxgM9QrsysmNIO","data-layout":"{'id':'INLINE'}","data-trigger-type":"alwaysShow","data-trigger-value":"","data-activation-type":"alwaysActivated","data-activation-value":"","data-deactivation-type":"neverDeactivate","data-deactivation-value":"","data-form-name":"New Enquiry Form","data-height":"582","data-layout-iframe-id":"
318contact-inline-n8m861XxgM9QrsysmNIO","data-form-id":"n8m861XxgM9QrsysmNIO",title:"New Enquiry Form"})}),r.jsxs("div",{className:"lg:col-span-2 space-y-6",children:[r.jsxs("div",{className:"bg-card border border-border p-6",children:[r.jsx("h2",{className:"font-heading text-lg font-semibold text-foreground mb-4",children:"Contact Details"}),r.jsxs("ul",{className:"space-y-4 text-sm",children:[r.jsx("li",{children:r.jsxs("a",{href:"tel:03300432234",className:"flex items-center gap-3 text-foreground font-bold hover:text-secondary transition-colors",children:[r.jsx(me,{className:"h-5 w-5 text-secondary shrink-0"}),"0330 043 2234"]})}),r.jsx("li",{children:r.jsxs("a",{href:"mailto:[email protected]",className:"flex items-center gap-3 text-muted-foreground hover:text-foreground transition-colors",children:[r.jsx(Gy,{className:"h-5 w-5 text-secondary shrink-0"}),"[email protected]"]})}),r.jsxs("li",{className:"flex items-start gap-3 text-muted-foreground",children:[r.jsx(mo,{className:"h-5 w-5 text-secondary shrink-0 mt-0.5"}),r.jsxs("span",{children:["Unit 7 Cavendish,",r.jsx("br",{}),"Tamworth B79 7XH"]})]}),r.jsxs("li",{className:"flex items-start gap-3 text-muted-foreground",children:[r.jsx(Dt,{className:"h-5 w-5 text-secondary shrink-0 mt-0.5"}),r.jsxs("span",{children:["MonâFri: 9 AM â 5 PM",r.jsx("br",{}),"Sat: 9 AM â 1 PM",r.jsx("br",{}),"Sun: 10 AM â 2 PM (by appointment only)"]})]}),r.jsx("li",{children:r.jsxs("a",{href:"https://www.facebook.com/BlueSky23uk?rdid=rxl6EOVPb1D0xmnh&share_url=https%3A%2F%2Fwww.facebook.com%2Fshare%2F1MMLdf7mf8%2F",target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-3 text-muted-foreground hover:text-foreground transition-colors",children:[r.jsx($y,{className:"h-5 w-5 text-secondary shrink-0"}),"Follow us on Facebook"]})})]})]}),r.jsxs("div",{className:"bg-card border border-border p-6",children:[r.jsx("h2",{className:"font-heading text-lg font-semibold text-foreground mb-4",children:"Areas We Serve"}),r.jsx("div",{className:"flex flex-wrap gap-2",children:["Tamworth","Lichfield","Rugeley","Swadlincote","Burton-on-Trent","Sutton Coldfield","Atherstone","Nuneaton","Birmingham","Cannock","Walsall","Coalville","Hinckley","Derby","West Bromwich"].map(t=>r.jsx(S,{to:`/areas/${t.toLowerCase().replace(/\s+/g,"-")}`,className:"text-xs bg-muted text-muted-foreground px-3 py-1 hover:text-foreground transition-colors",children:t},t))})]}),r.jsx("div",{className:"bg-card border border-border overflow-hidden",children:r.jsx("iframe",{src:"https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d2421.5!2d-1.6912!3d52.6347!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x0%3A0x0!2zNTLCsDM4JzA0LjkiTiAxwrA0MScyOC4zIlc!5e0!3m2!1sen!2suk!4v1",width:"100%",height:"250",style:{border:0},allowFullScreen:!0,loading:"lazy",referrerPolicy:"no-referrer-when-downgrade",title:"Blue Sky Luxury Bathrooms location"})})]})]})})})]}),r.jsx(We,{}),r.jsx(Ve,{})]})},$4=()=>(b.useEffect(()=>{[{src:"https://fast.wistia.com/player.js",type:""},{src:"https://fast.wistia.com/embed/vtyhlcbem9.js",type:"module"}].forEach(({src:t,type:o})=>{if(document.querySelector(`script[src="${t}"]`))return;const a=document.createElement("script");a.src=t,a.async=!0,o&&(a.type=o),document.body.appendChild(a)})},[]),r.jsxs(r.Fragment,{children:[r.jsx(Se,{title:"Thank You | Blue Sky Luxury Bathrooms",description:"Thank you for contacting Blue Sky Luxury Bathrooms. We'll respond within one working day.",noindex:!0}),r.jsx(Be,{}),r.jsx("main",{className:"pt-24 md:pt-28",children:r.jsx("section",{className:"px-4 py-4 md:py-6",children:r.jsxs("div",{className:"container-narrow text-center",children:[r.jsx(Ia,{className:"h-8 w-8 md:h-10 md:w-10 text-secondary mx-auto mb-2"}),r.jsx("h1",{className:"font-heading text-xl md:text-3xl font-bold text-foreground mb-1 md:mb-2",children:"Thank You for Your Enquiry"}),r.jsx("p",{className:"text-sm md:text-base text-muted-foreground max-w-xl mx-auto mb-3 md:mb-4",children:"Please watch this short message while we prepare your response â we'll be in touch within one working day."}),r.jsxs("div",{className:"mx-auto mb-3 md:mb-4 w-full max-w-[min(100%,calc((70vh-220px)*16/9))] sm:max-w-[min(100%,calc((75vh-220px)*16/9))] md:max-w-[min(100%,calc((80vh-260px)*16/9))]",children:[r.jsx("style",{children:"wistia-player[media-id='vtyhlcbem9']:not(:defined) { background: center / contain no-repeat url('https://fast.wistia.com/embed/medias/vtyhlcbem9/swatch'); display: block; filter: blur(5px); padding-top:56.25%; }"}
318),r.jsx("wistia-player",{"media-id":"vtyhlcbem9",aspect:"1.7777777777777777"})]}),r.jsxs("div",{className:"flex flex-col sm:flex-row gap-2 sm:gap-3 justify-center",children:[r.jsx(S,{to:"/",className:"bg-secondary text-secondary-foreground px-5 py-2 text-xs sm:text-sm font-semibold tracking-wide hover:bg-steel-light transition-colors",children:"Return to Homepage"}),r.jsxs("a",{href:"tel:03300432234",className:"flex items-center justify-center gap-2 text-foreground font-bold border border-border px-5 py-2 text-xs sm:text-sm",children:[r.jsx(me,{className:"h-4 w-4"})," 0330 043 2234"]})]})]})})}),r.jsx(We,{})]})),z4=()=>r.jsxs(r.Fragment,{children:[r.jsx(Se,{title:"Privacy Policy | Blue Sky Luxury Bathrooms Tamworth",description:"How Blue Sky Luxury Bathrooms collects, uses, and protects your personal information. Read our full GDPR-compliant privacy policy."}),r.jsx(Be,{}),r.jsx("main",{className:"pt-28 md:pt-32",children:r.jsx("section",{className:"section-padding",children:r.jsxs("div",{className:"container-narrow max-w-3xl mx-auto",children:[r.jsx("h1",{className:"font-heading text-3xl md:text-4xl font-bold text-foreground mb-8",children:"Privacy Policy"}),r.jsxs("div",{className:"prose prose-sm max-w-none text-muted-foreground space-y-6",children:[r.jsxs("p",{children:[r.jsx("strong",{children:"Last updated:"})," ",new Date().toLocaleDateString("en-GB",{month:"long",year:"numeric"})]}),r.jsx("h2",{className:"font-heading text-xl font-bold text-foreground mt-8 mb-3",children:"1. Who We Are"}),r.jsx("p",{children:'Blue Sky Luxury Bathrooms ("we", "our", "us") is a bathroom design and installation company registered in England (Company No. 16079781). Our registered address is Unit 7 Cavendish, Tamworth B79 7XH.'}),r.jsx("h2",{className:"font-heading text-xl font-bold text-foreground mt-8 mb-3",children:"2. Information We Collect"}),r.jsx("p",{children:"We may collect the following personal information when you contact us, request an estimate, or use our website:"}),r.jsxs("ul",{className:"list-disc pl-6 space-y-1",children:[r.jsx("li",{children:"Name, email address, and phone number"}),r.jsx("li",{children:"Property address (for site visits and estimates)"}),r.jsx("li",{children:"Details of your enquiry or project requirements"}),r.jsx("li",{children:"Website usage data via cookies and analytics"})]}),r.jsx("h2",{className:"font-heading text-xl font-bold text-foreground mt-8 mb-3",children:"3. How We Use Your Information"}),r.jsx("p",{children:"We use your information to:"}),r.jsxs("ul",{className:"list-disc pl-6 space-y-1",children:[r.jsx("li",{children:"Respond to enquiries and provide estimates"}),r.jsx("li",{children:"Schedule and deliver our services"}),r.jsx("li",{children:"Communicate about your project"}),r.jsx("li",{children:"Improve our website and services"}),r.jsx("li",{children:"Comply with legal obligations"})]}),r.jsx("h2",{className:"font-heading text-xl font-bold text-foreground mt-8 mb-3",children:"4. Legal Basis for Processing"}),r.jsx("p",{children:"We process your data based on: your consent (when you submit a form), contractual necessity (to deliver services), and legitimate interests (to improve our business)."}),r.jsx("h2",{className:"font-heading text-xl font-bold text-foreground mt-8 mb-3",children:"5. Data Sharing"}),r.jsx("p",{children:"We do not sell, rent, or share your personal information with third parties for marketing purposes. We may share data with trusted service providers who assist in operating our website or business, subject to confidentiality agreements."}),r.jsx("h2",{className:"font-heading text-xl font-bold text-foreground mt-8 mb-3",children:"6. Data Retention"}),r.jsx("p",{children:"We retain your personal data only for as long as necessary to fulfil the purposes outlined in this policy, or as required by law. Enquiry data is typically retained for up to 24 months."}),r.jsx("h2",{className:"font-heading text-xl font-bold text-foreground mt-8 mb-3",children:"7. Your Rights"}),r.jsx("p",{children:"Under UK GDPR, you have the right to:"}),r.jsxs("ul",{className:"list-disc pl-6 space-y-1",children:[r.jsx("li",{children:"Access your personal data"}),r.jsx("li",{children:"Request correction of inaccurate data"}
318),r.jsx("li",{children:"Request deletion of your data"}),r.jsx("li",{children:"Object to or restrict processing"}),r.jsx("li",{children:"Data portability"})]}),r.jsxs("p",{children:["To exercise any of these rights, contact us at ",r.jsx("a",{href:"mailto:[email protected]",className:"text-secondary hover:underline",children:"[email protected]"}),"."]}),r.jsx("h2",{className:"font-heading text-xl font-bold text-foreground mt-8 mb-3",children:"8. Cookies"}),r.jsx("p",{children:"Our website uses cookies to improve your browsing experience and analyse website traffic. You can control cookies through your browser settings."}),r.jsxs("p",{children:[r.jsx("strong",{children:"Google Ads conversion tracking."}),' We use Google Ads (Google Ireland Ltd / Google LLC) to measure which of our adverts lead to visits and enquiries and to optimise our advertising. This sets cookies and shares data such as your IP address, device/browser information, pages visited and ad-click identifiers with Google. For visitors in the UK and EEA this only happens if you click "Accept" on our cookie notice. We keep a record of your choice, when it was made and the notice version shown. You can withdraw or change your choice at any time using "Cookie Settings" in the website footer.']}),r.jsx("h2",{className:"font-heading text-xl font-bold text-foreground mt-8 mb-3",children:"9. Contact Us"}),r.jsx("p",{children:"For questions about this privacy policy, contact us at:"}),r.jsxs("p",{children:["Blue Sky Luxury Bathrooms",r.jsx("br",{}),"Unit 7 Cavendish, Tamworth B79 7XH",r.jsx("br",{}),"Email: ",r.jsx("a",{href:"mailto:[email protected]",className:"text-secondary hover:underline",children:"[email protected]"}),r.jsx("br",{}),"Phone: ",r.jsx("a",{href:"tel:03300432234",className:"text-secondary hover:underline",children:"0330 043 2234"})]})]})]})})}),r.jsx(We,{})]}),G4=()=>r.jsxs(r.Fragment,{children:[r.jsx(Se,{title:"Terms & Conditions | Blue Sky Luxury Bathrooms Tamworth",description:"Terms & conditions for Blue Sky Luxury Bathrooms â service terms, payment terms and workmanship guarantee for installations across Tamworth and the Midlands."}),r.jsx(Be,{}),r.jsx("main",{className:"pt-28 md:pt-32",children:r.jsx("section",{className:"section-padding",children:r.jsxs("div",{className:"container-narrow max-w-3xl mx-auto",children:[r.jsx("h1",{className:"font-heading text-3xl md:text-4xl font-bold text-foreground mb-8",children:"Terms & Conditions"}),r.jsxs("div",{className:"prose prose-sm max-w-none text-muted-foreground space-y-6",children:[r.jsxs("p",{children:[r.jsx("strong",{children:"Last updated:"})," ",new Date().toLocaleDateString("en-GB",{month:"long",year:"numeric"})]}),r.jsx("h2",{className:"font-heading text-xl font-bold text-foreground mt-8 mb-3",children:"1. Introduction"}),r.jsx("p",{children:"These terms and conditions govern your use of the Blue Sky Luxury Bathrooms website and our provision of services. By using our website or engaging our services, you agree to these terms."}),r.jsx("h2",{className:"font-heading text-xl font-bold text-foreground mt-8 mb-3",children:"2. Services"}),r.jsx("p",{children:"Blue Sky Luxury Bathrooms provides bathroom design, installation, kitchen fitting, plumbing, boiler replacement, and related home improvement services across Tamworth and the wider Midlands region."}),r.jsx("h2",{className:"font-heading text-xl font-bold text-foreground mt-8 mb-3",children:"3. Estimates and Quotations"}),r.jsx("p",{children:"All estimates provided are valid for 30 days from the date of issue unless otherwise stated. Estimates are based on the information available at the time of assessment. Should unforeseen work be required, we will discuss additional costs with you before proceeding."}),r.jsx("h2",{className:"font-heading text-xl font-bold text-foreground mt-8 mb-3",children:"4. Payment Terms"}),r.jsx("p",{children:"Payment terms are agreed upon acceptance of a quotation. A deposit may be required before work commences. Final payment is due upon satisfactory completion of the work. We accept bank transfer and other payment methods as agreed."}),r.jsx("h2",{className:"font-heading text-xl font-bold text-foreground mt-8 mb-3",children:"5. Workmanship Guarantee"}),r.jsx("p",{children:"All installations carried out by Blue Sky Luxury Bathrooms are covered by our written workmanship guarantee. The specific guarantee period will be detailed in your quotation. This guarantee covers defects in workmanship and does not cover damage caused by misuse, neglect, or third-party interference."}),r.jsx("h2",{className:"font-heading text-xl font-bold text-foreground mt-8 mb-3",children:"6. Cancellation"}),r.jsx("p",{children:"If you wish to cancel a confirmed project, please notify us in writing as soon as possible. Cancellation charges may apply if materials have been ordered or work has commenced. Consumer rights under the Consumer Contracts Regulations 2013 are not affected."}),r.jsx("h2",{className:"font-heading text-xl font-bold text-foreground mt-8 mb-3",children:"7. Liability"}),r.jsx("p",{children:"Blue Sky Luxury Bathrooms holds comprehensive public liability insurance. We are responsible for any damage caused by our team during the course of work. We are not liable for pre-existing defects or issues unrelated to our scope of work."}),r.jsx("h2",{className:"font-heading text-xl font-bold text-foreground mt-8 mb-3",children:"8. Intellectual Property"}),r.jsx("p",{children:"All content on this website, including text, images, and design, is the property of Blue Sky Luxury Bathrooms and may not be reproduced without written permission."}),r.jsx("h2",{className:"font-heading text-xl font-bold text-foreground mt-8 mb-3",children:"9. Governing Law"}),r.jsx("p",{children:"These terms are governed by the laws of England and Wales. Any disputes will be subject to the exclusive jurisdiction of the courts of England and Wales."}),r.jsx("h2",{className:"font-heading text-xl font-bold text-foreground mt-8 mb-3",children:"10. Contact"}),r.jsx("p",{children:"For questions about these terms, contact us at:"}),r.jsxs("p",{children:["Blue Sky Luxury Bathrooms",r.jsx("br",{}),"Unit 7 Cavendish, Tamworth B79 7XH",r.jsx("br",{}),"Email: ",r.jsx("a",{href:"mailto:[email protected]",className:"text-secondary hover:underline",children:"[email protected]"}),r.jsx("br",{}),"Phone: ",r.jsx("a",{href:"tel:03300432234",className:"text-secondary hover:underline",children:"0330 043 2234"})]})]})]})})}),r.jsx(We,{})]}),V4=()=>r.jsxs(r.Fragment,{children:[r.jsx(Se,{title:"Cookie Policy | Blue Sky Luxury Bathrooms Tamworth",description:"How Blue Sky Luxury Bathrooms uses cookies on our website, the types of cookies we set, and how you can control them in your browser."}),r.jsx(Be,{}),r.jsx("main",{className:"pt-28 md:pt-32",children:r.jsx("section",{className:"section-padding",children:r.jsxs("div",{className:"container-narrow max-w-3xl mx-auto",children:[r.jsx("h1",{className:"font-heading text-3xl md:text-4xl font-bold text-foreground mb-8",children:"Cookie Policy"}),r.jsxs("div",{className:"prose prose-sm max-w-none text-muted-foreground space-y-6",children:[r.jsxs("p",{children:[r.jsx("strong",{children:"Last updated:"})," ",new Date().toLocaleDateString("en-GB",{month:"long",year:"numeric"})]}),r.jsx("h2",{className:"font-heading text-xl font-bold text-foreground mt-8 mb-3",children:"1. What Are Cookies?"}),r.jsx("p",{children:"Cookies are small text files placed on your device when you visit a website. They are widely used to make websites work, to remember your preferences, and to provide information to site owners about how their site is used."}),r.jsx("h2",{className:"font-heading text-xl font-bold text-foreground mt-8 mb-3",children:"2. Cookies We Use"}),r.jsxs("ul",{className:"list-disc pl-6 space-y-1",children:[r.jsxs("li",{children:[r.jsx("strong",{children:"Strictly necessary cookies"})," â required for the website to function, such as remembering your cookie choice and securing form submissions. These do not require consent."]}),r.jsxs("li",{children:[r.jsx("strong",{children:"Analytics cookies"})," â help us understand how visitors use the site so we can improve it. These are only set if you accept."]}),r.jsxs("li",{children:[r.jsx("strong",{children:"Third-party cookies"})," â embedded content such as our Google Maps showroom map and Wistia video testimonials may set their own cookies when loaded."]})]}),r.jsx("h2",{className:"font-heading text-xl font-bold text-foreground mt-8 mb-3",children:"3. Your Choices"}),r.jsx("p",{children:"When you first visit our website, you can accept or reject optional cookies using the cookie notice. If you reject, only strictly necessary cookies are used."}),r.jsx("p",{children:"You can also control or delete cookies at any time through your browser settings. Blocking all cookies may affect how parts of this website work."}),r.jsx("h2",{className:"font-heading text-xl font-bold text-foreground mt-8 mb-3",children:"4. Changing Your Mind"}),r.jsx("p",{children:"To change your cookie preference, clear this website's site data in your browser settings and reload the page â the cookie notice will appear again."}),r.jsx("h2",{className:"font-heading text-xl font-bold text-foreground mt-8 mb-3",children:"5. More Information"}),r.jsxs("p",{children:["For details on how we handle personal data, see our ",r.jsx("a",{href:"/privacy-policy",className:"text-secondary hover:underline",children:"Privacy Policy"}),". Questions about cookies can be sent to ",r.jsx("a",{href:"mailto:[email protected]",className:"text-secondary hover:underline",children:"[email protected]"}),"."]})]})]})})}),r.jsx(We,{})]}),fp="AW-17739177018",oh="bsb-ad-consent",Y4="2026-09-v1",Q4=new Set(["GB","UK","IE","AT","BE","BG","HR","CY","CZ","DK","EE","FI","FR","DE","GR","HU","IT","LV","LT","LU","MT","NL","PL","PT","RO","SK","SI","ES","SE","IS","LI","NO","CH"]),Cb=()=>{const e=window.location.hostname;return!(e==="localhost"||e==="127.0.0.1"||e.endsWith(".lovable.app")||e.endsWith(".lovableproject.com")||e.endsWith(".lovable.dev"))},Pi=()=>{try{const e=localStorage.getItem(oh);return e?JSON.parse(e):null}catch{return null}},K4=e=>{const t=Pi(),o=new Date().toISOString(),a=[...(t==null?void 0:t.history)??[],...t?[{choice:t.choice,at:t.at,notice:t.notice}]:[]],n={choice:e,at:o,notice:Y4,history:a};try{localStorage.setItem(oh,JSON.stringify(n))}catch{}xc()};let ad=null;const Tb=()=>(ad||(ad=(async()=>{var e;try{const t=new AbortController,o=setTimeout(()=>t.abort(),2e3),a=await fetch("/cdn-cgi/trace",{signal:t.signal});if(clearTimeout(o),!a.ok)return!0;const n=(e=/loc=([A-Z0-9]+)/.exec(await a.text()))==null?void 0:e[1];return!n||n==="XX"||n==="T1"?!0:Q4.has(n)}catch{return!0}})()),ad);let na=!1;const gp=()=>{const e=window;if(e.dataLayer=e.dataLayer||[],e.gtag=function(){e.dataLayer.push(arguments)},e.gtag("consent","default",{ad_storage:"denied",ad_user_data:"denied",ad_personalization:"denied"}),na)return;na=!0;const t=document.createElement("script");
318t.async=!0,t.src=`https://www.googletagmanager.com/gtag/js?id=${fp}`,document.head.appendChild(t),e.gtag("js",new Date),e.gtag("config",fp)},Es=e=>{var o;const t=e?"granted":"denied";(o=window.gtag)==null||o.call(window,"consent","update",{ad_storage:t,ad_user_data:t,ad_personalization:t})},xc=async()=>{if(!Cb())return;const e=await Tb(),t=Pi();if(e)(t==null?void 0:t.choice)==="accepted"?(na||gp(),Es(!0)):na&&Es(!1);else{if((t==null?void 0:t.choice)==="rejected"){na&&Es(!1);return}na||gp(),Es(!0)}},X4=()=>{xc(),window.addEventListener("storage",e=>{e.key===oh&&xc()})},J4=()=>{var n;const[e,t]=b.useState(!1);b.useEffect(()=>{X4();const s=()=>t(!0);return window.addEventListener("bsb-open-cookie-settings",s),Cb()&&!Pi()&&Tb().then(i=>i&&t(!0)),()=>window.removeEventListener("bsb-open-cookie-settings",s)},[]);const o=s=>{K4(s),t(!1)};if(!e)return null;const a=(n=Pi())==null?void 0:n.choice;return r.jsxs("div",{role:"dialog","aria-label":"Cookie notice",className:"fixed z-[9999] bottom-52 left-2 right-2 lg:bottom-4 lg:left-4 lg:right-auto lg:max-w-sm rounded-lg border border-border bg-card shadow-lg p-3",children:[r.jsxs("p",{className:"text-xs leading-relaxed text-muted-foreground",children:["With your permission, we use Google Ads cookies to measure which adverts lead to enquiries."," ",r.jsx(S,{to:"/cookie-policy",className:"text-secondary hover:underline",children:"Cookie Policy"}),a&&r.jsxs(r.Fragment,{children:[" · Current choice: ",a]})]}),r.jsxs("div",{className:"mt-2.5 flex gap-2",children:[r.jsx("button",{type:"button",onClick:()=>o("accepted"),className:"flex-1 rounded-md bg-primary px-3 py-1.5 text-xs font-semibold text-primary-foreground",children:"Accept"}),r.jsx("button",{type:"button",onClick:()=>o("rejected"),className:"flex-1 rounded-md border border-border px-3 py-1.5 text-xs font-semibold text-foreground",children:"Reject"})]})]})},Z4=new F0,eA=()=>r.jsx(P0,{client:Z4,children:r.jsx(uy,{children:r.jsxs(NC,{children:[r.jsx($2,{}),r.jsx(O1,{}),r.jsxs(Ek,{children:[r.jsx(EC,{}),r.jsxs(jk,{children:[r.jsx(q,{path:"/",element:r.jsx(AB,{})}),r.jsx(q,{path:"/about",element:r.jsx(EB,{})}),r.jsx(q,{path:"/services",element:r.jsx(HB,{})}),r.jsx(q,{path:"/services/bathroom-showroom",element:r.jsx(_B,{})}),r.jsx(q,{path:"/bathroom-showroom-open-sunday-tamworth",element:r.jsx($B,{})}),r.jsx(q,{path:"/services/bathroom-installation",element:r.jsx(GB,{})}),r.jsx(q,{path:"/services/kitchen-installation",element:r.jsx(YB,{})}),r.jsx(q,{path:"/services/boiler-replacement",element:r.jsx(KB,{})}),r.jsx(q,{path:"/services/bathroom-design-planning",element:r.jsx(JB,{})}),r.jsx(q,{path:"/services/wet-room-installation",element:r.jsx(eW,{})}),r.jsx(q,{path:"/services/walk-in-shower-installation",element:r.jsx(oW,{})}),r.jsx(q,{path:"/services/luxury-bathroom-renovations",element:r.jsx(aW,{})}),r.jsx(q,{path:"/services/accessible-bathrooms",element:r.jsx(sW,{})}),r.jsx(q,{path:"/services/plumbing-services",element:r.jsx(lW,{})}),r.jsx(q,{path:"/services/tiling-services",element:r.jsx(cW,{})}),r.jsx(q,{path:"/services/underfloor-heating",element:r.jsx(hW,{})}),r.jsx(q,{path:"/services/bathroom-refurbishments",element:r.jsx(pW,{})}),r.jsx(q,{path:"/services/cloakroom-ensuite",element:r.jsx(gW,{})}),r.jsx(q,{path:"/areas",element:r.jsx(vW,{})}),r.jsx(q,{path:"/areas/tamworth",element:r.jsx(qN,{})}),r.jsx(q,{path:"/areas/lichfield",element:r.jsx(RN,{})}),r.jsx(q,{path:"/areas/rugeley",element:r.jsx(MN,{})}),r.jsx(q,{path:"/areas/swadlincote",element:r.jsx(IN,{})}),r.jsx(q,{path:"/areas/burton-on-trent",element:r.jsx(ON,{})}),r.jsx(q,{path:"/areas/sutton-coldfield",element:r.jsx(UN,{})}),r.jsx(q,{path:"/areas/atherstone",element:r.jsx(zN,{})}),r.jsx(q,{path:"/areas/nuneaton",element:r.jsx(VN,{})}),r.jsx(q,{path:"/areas/birmingham",element:r.jsx(QN,{})}),r.jsx(q,{path:"/areas/cannock",element:r.jsx(XN,{})}),r.jsx(q,{path:"/areas/walsall",element:r.jsx(ZN,{})}),r.jsx(q,{path:"/areas/coalville",element:r.jsx(t3,{})}),r.jsx(q,{path:"/areas/hinckley",element:r.jsx(r3,{})}),r.jsx(q,{path:"/areas/derby",element:r.jsx(n3,{})}),r.jsx(q,{path:"/areas/west-bromwich",element:r.jsx(i3,{})}),r.jsx(q,{path:"/areas/staffordshire",element:r.jsx(d3,{})}),r.jsx(q,{path:"/areas/warwickshire",element:r.jsx(u3,{})}),r.jsx(q,{path:"/areas/west-midlands",element:r.jsx(m3,{})}),r.jsx(q,{path:"/tamworth/bathroom-fitters",element:r.jsx(f3,{})}),r.jsx(q,{path:"/lichfield/bathroom-fitters",element:r.jsx(y3,{})}),r.jsx(q,{path:"/sutton-coldfield/bathroom-fitters",element:r.jsx(b3,{})}),r.jsx(q,{path:"/burton-on-trent/bathroom-fitters",element:r.jsx(x3,{})}),r.jsx(q,{path:"/cannock/bathroom-fitters",element:r.jsx(S3,{})}),r.jsx(q,{path:"/atherstone/bathroom-fitters",element:r.jsx(C3,{})}),r.jsx(q,{path:"/nuneaton/bathroom-fitters",element:r.jsx(B3,{})}),r.jsx(q,{path:"/rugeley/bathroom-fitters",element:r.jsx(N3,{})}),r.jsx(q,{path:"/swadlincote/bathroom-fitters",element:r.jsx(E3,{})}),r.jsx(q,{path:"/hinckley/bathroom-fitters",element:r.jsx(q3,{})}),r.jsx(q,{path:"/coalville/bathroom-fitters",element:r.jsx(R3,{})}),r.jsx(q,{path:"/ashby-de-la-zouch/bathroom-fitters",element:r.jsx(M3,{})}),r.jsx(q,{path:"/uttoxeter/bathroom-fitters",element:r.jsx(I3,{})}),r.jsx(q,{path:"/walsall/bathroom-fitters",element:r.jsx(O3,{})}),r.jsx(q,{path:"/birmingham/bathroom-fitters",element:r.jsx(U3,{})}),r.jsx(q,{path:"/west-bromwich/bathroom-fitters",element:r.jsx(z3,{})}),r.jsx(q,{path:"/cannock/bathroom-extensions",element:r.jsx(V3,{})}),r.jsx(q,{path:"/walsall/bathroom-extensions",element:r.jsx(Q3,{})}),r.jsx(q,{path:"/west-bromwich/bathroom-extensions",element:r.jsx(X3,{})}),r.jsx(q,{path:"/derby/bathroom-fitters",element:r.jsx(Z3,{})}),r.jsx(q,{path:"/four-oaks/bathroom-fitters",element:r.jsx(t4,{})}),r.jsx(q,{path:"/mere-green/bathroom-fitters",element:r.jsx(r4,{})}),r.jsx(q,{path:"/shenstone/bathroom-fitters",element:r.jsx(n4,{})}),r.jsx(q,{path:"/fazeley/bathroom-fitters",element:r.jsx(i4,{})}),r.jsx(q,{path:"/polesworth/bathroom-fitters",element:r.jsx(d4,{})}),r.jsx(q,{path:"/measham/bathroom-fitters",element:r.jsx(u4,{})}),r.jsx(q,{path:"/lichfield/bathroom-refurbishment",element:r.jsx(m4,{})}),r.jsx(q,{path:"/sutton-coldfield/bathroom-installation",element:r.jsx(f4,{})}),r.jsx(q,{path:"/burton-on-trent/bathroom-showroom",element:r.jsx(y4,{})}),r.jsx(q,{path:"/atherstone/bathroom-showroom",element:r.jsx(b4,{})}),r.jsx(q,{path:"/nuneaton/bathroom-showroom",element:r.jsx(x4,{})}),r.jsx(q,{path:"/tamworth/bathroom-installation-cost",element:r.jsx(S4,{})}),r.jsx(q,{path:"/tamworth/accessible-bathrooms",element:r.jsx(C4,{})}),r.jsx(q,{path:"/lichfield/accessible-bathrooms",element:r.jsx(B4,{})}),r.jsx(q,{path:"/sutton-coldfield/accessible-bathrooms",element:r.jsx(N4,{})}),r.jsx(q,{path:"/burton-on-trent/accessible-bathrooms",element:r.jsx(E4,{})}),r.jsx(q,{path:"/atherstone/accessible-bathrooms",element:r.jsx(q4,{})}),r.jsx(q,{path:"/nuneaton/accessible-bathrooms",element:r.jsx(R4,{})}),r.jsx(q,{path:"/cannock/accessible-bathrooms",element:r.jsx(M4,{})}),r.jsx(q,{path:"/reviews",element:r.jsx(D4,{})}),r.jsx(q,{path:"/our-work",element:r.jsx(H4,{})}),r.jsx(q,{path:"/specials",element:r.jsx(_4,{})}),r.jsx(q,{path:"/contact",element:r.jsx(U4,{})}),r.jsx(q,{path:"/thank-you",element:r.jsx($4,{})}),r.jsx(q,{path:"/privacy-policy",element:r.jsx(z4,{})}),r.jsx(q,{path:"/terms-conditions",element:r.jsx(G4,{})}),r.jsx(q,{path:"/cookie-policy",element:r.jsx(V4,{})}),r.jsx(q,{path:"/blog",element:r.jsx(FB,{})}),r.jsx(q,{path:"/blog/bathroom-renovation-tamworth-guide",element:r.jsx(qB,{})}),r.jsx(q,{path:"/blog/wet-room-installation-tamworth",element:r.jsx(PB,{})}),r.jsx(q,{path:"/blog/boiler-replacement-tamworth-guide",element:r.jsx(RB,{})}),r.jsx(q,{path:"/blog/accessible-bathrooms-tamworth-guide",element:r.jsx(LB,{})}),r.jsx(q,{path:"*",element:r.jsx(MB,{})})]}),r.jsx(J4,{})]})]})})});Hg(document.getElementById("root")).render(r.jsx(eA,{}));
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.