1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,52195,e=>{"use strict";var t=e.i(43476),o=e.i(71645);e.s(["MicInput",0,function({name:e,label:a,rows:l=3,placeholder:i,hint:n,required:r,single:s}){let[d,c]=(0,o.useState)(""),[h,u]=(0,o.useState)(!1),[f,g]=(0,o.useState)(!1),p=(0,o.useRef)(null);(0,o.useEffect)(()=>{let e=window,t=e.SpeechRecognition||e.webkitSpeechRecognition;if(!t)return;g(!0);let o=new t;return o.lang="en-AU",o.interimResults=!1,o.continuous=!0,o.maxAlternatives=1,o.onresult=e=>{let t="";for(let o=e.resultIndex;o<e.results.length;o++)e.results[o].isFinal&&(t+=e.results[o][0].transcript);t&&c(e=>(e?e.trim()+" ":"")+t.trim())},o.onend=()=>u(!1),o.onerror=()=>u(!1),p.current=o,()=>{try{o.abort()}catch{}}},[]);let b=()=>{let e=p.current;if(e&&!h)try{e.start(),u(!0)}catch{}},m=()=>{let e=p.current;if(e&&h){try{e.stop()}catch{}u(!1)}},w="w-full rounded-xl border border-black/15 bg-white px-3.5 py-3 pr-12 text-base text-ink shadow-sm transition focus:border-brand-500 focus:outline-none focus:ring-2 focus:ring-brand-500/30";return(0,t.jsxs)("label",{className:"block",children:[(0,t.jsxs)("span",{className:"font-display text-sm font-semibold text-ink",children:[a," ",r?(0,t.jsx)("span",{className:"text-accent-600",children:"*"}):(0,t.jsx)("span",{className:"font-normal text-ink-soft",children:"(optional)"})]}),n?(0,t.jsx)("span",{className:"mt-0.5 block text-sm text-ink-soft",children:n}):null,(0,t.jsxs)("span",{className:"relative mt-1.5 block",children:[s?(0,t.jsx)("input",{name:e,value:d,required:r,placeholder:i,onChange:e=>c(e.target.value),className:w}):(0,t.jsx)("textarea",{name:e,value:d,required:r,rows:l,placeholder:i,onChange:e=>c(e.target.value),className:w}),f&&(0,t.jsx)("button",{type:"button",onPointerDown:e=>{e.preventDefault(),b()},onPointerUp:m,onPointerLeave:m,onPointerCancel:m,onKeyDown:e=>{(" "===e.key||"Enter"===e.key)&&(e.preventDefault(),b())},onKeyUp:e=>{(" "===e.key||"Enter"===e.key)&&(e.preventDefault(),m())},"aria-label":"Hold to talk (or hold Space)","aria-pressed":h,title:"Hold to talk",className:`absolute right-2 top-2.5 grid h-9 w-9 touch-none select-none place-items-center rounded-full ring-1 transition focus:outline-none focus-visible:ring-2 focus-visible:ring-brand-500 ${h?"animate-pulse bg-accent-500 text-white ring-accent-500":"bg-white text-brand-600 ring-black/15 hover:ring-brand-400"}`,children:(0,t.jsxs)("svg",{viewBox:"0 0 24 24",className:"h-5 w-5",fill:"currentColor","aria-hidden":!0,children:[(0,t.jsx)("path",{d:"M12 14a3 3 0 0 0 3-3V5a3 3 0 1 0-6 0v6a3 3 0 0 0 3 3Z"}),(0,t.jsx)("path",{d:"M19 11a1 1 0 1 0-2 0 5 5 0 0 1-10 0 1 1 0 1 0-2 0 7 7 0 0 0 6 6.92V21a1 1 0 1 0 2 0v-3.08A7 7 0 0 0 19 11Z"})]})})]}),f?(0,t.jsx)("span",{className:"mt-1 block text-sm text-ink-soft",children:h?"Listening⦠keep holding, let go when you're done.":"Hold the mic button and talk, instead of typing."}):null]})}])},24420,37690,e=>{"use strict";var t=e.i(43476),o=e.i(71645),a=e.i(72570),l=e.i(70071);let i=(e,t,o,a)=>({src:(0,l.mediaUrl)(`/photos/${e}.webp`),w:t,h:o,alt:a}),n={cellulosePumpingHose:i("cellulose-pumping-hose",1200,900,"Grey cellulose fibre insulation blowing out of the Comfort Zone installer's white blower hose into a ceiling cavity, laying down as one seamless blanket"),celluloseCeilingBlanket:i("cellulose-ceiling-blanket",1200,900,"A seamless grey blanket of pumped-in cellulose fibre insulation filling the ceiling evenly between the timber joists â Jimboomba"),celluloseHeroWynnum:i("cellulose-hero-wynnum",720,540,"Seamless grey cellulose fibre insulation laid as one continuous blanket across the ceiling under timber roof trusses â Wynnum"),celluloseManhole:i("cellulose-manhole-sunnybank",720,540,"Pale grey cellulose insulation evenly covering a ceiling with a neat protective shroud around the manhole access â Sunnybank"),celluloseLawnton:i("cellulose-lawnton",720,540,"Thick grey cellulose fibre insulation packed evenly between roof trusses under a tiled roof â Lawnton"),celluloseSeamless:i("cellulose-seamless",720,54
10,"Seamless grey cellulose insulation laid flush across ceiling joists under a metal roof, Comfort Zone install"),flameTest:i("cellulose-flame-test",720,540,"Peter holding a ball of grey cellulose in his bare hand while an oxy torch chars and glows a black crater in the middle, his hand unharmed, showing the borate-treated fibre resists flame"),battsEarthwoolGappy:i("batts-earthwool-gappy",720,540,"Brown Earthwool fibreglass batts laid between ceiling joists with visible gaps along the seams in a real roof"),battsSettledAged:i("batts-settled-aged",720,540,"Old pink fibreglass batts shrunken and gapped between ceiling joists, exposing the plasterboard, settled and no longer insulating"),battsPolyNew:i("batts-poly-new",720,540,"Bright white polyester batts laid neatly wall-to-wall between ceiling joists under a metal roof â Ashgrove"),fibreglassGaps:i("fibreglass-gaps",720,540,"Yellow fibreglass batts laid unevenly with gaps across ceiling joists, a poor competitor installation"),fibreglassGlassSplinterThumb:i("fibreglass-glass-splinter-in-thumb",720,540,"A 12 mm glass splinter pulled from a fibreglass roof-insulation batt, lodged in the installer's thumb, with a fibreglass batt and foil sarking blurred in the roof cavity behind"),polyBeautiful:i("poly-beautiful-chapel-hill",720,540,"Clean white polyester batts laid evenly across the ceiling under a tiled roof â Chapel Hill"),ratsNest:i("rats-nest",720,540,"A rat nest matted into chewed white polyester batt insulation under a roof eave â Ashgrove, 2017"),ratCeilingStain:i("rat-ceiling-stain",720,540,"Rodent urine staining and droppings soaked into a ceiling sheet, revealed when old batts were lifted during insulation removal â Ashgrove, 2017"),underfloor:i("underfloor-poly-moorooka",720,540,"White polyester insulation batts fitted between the joists under a raised timber floor â Moorooka"),acousticGreen:i("acoustic-green-wall",720,540,"Green polyester acoustic batts installed in a steel-frame internal wall cavity for soundproofing, Comfort Zone"),removal:i("removal-skip-bin",720,540,"A skip bin filled with old pink and yellow fibreglass batts removed during an insulation removal job â Strathpine, 2016"),truck:i("truck",720,540,'The Comfort Zone Insulation branded truck with "30 years cooling down QLD" signage parked at the depot â QLD'),ppeTeam:i("ppe-team",720,959,"A Comfort Zone installer in a respirator and ear protection beside bags of cellulose insulation, correct PPE on every job"),installerThumbsUp:i("installer-thumbsup",720,538,"A Comfort Zone installer in a respirator giving a thumbs-up inside a steel-frame roof during an insulation job"),guarantee:i("guarantee-lifetime",720,509,"Comfort Zone Insulation Lifetime (Life-of-House) Guarantee certificate, the cellulose warranty"),guaranteeService:i("guarantee-service",720,509,"Comfort Zone Insulation Best Service Guarantee certificate listing the company's on-the-job service promises"),climateMap:i("climate-zone-map",720,405,"The Australian National Construction Code climate-zones map showing the eight building climate zones across the country"),steelFrame:i("steel-frame-trimdeck",720,540,"A trim-deck metal roof opened mid-job showing cellulose insulation packed between the steel battens â Mapleton, 2017"),rakedRoof:i("raked-mount-burrell",720,540,"An installer's tools on a corrugated iron roof with the ridge opened to pump cellulose into a raked ceiling section â Mount Burrell"),peterBellmere:i("peter-bellmere",400,300,"Peter Johnson installing cellulose insulation on a Colorbond roof â Bellmere"),celluloseReesville:i("cellulose-reesville",720,540,"A grey cellulose fibre blanket viewed looking straight up through the centre of the roof â Reesville"),celluloseLaidley:i("cellulose-laidley",720,540,"A grey cellulose insulation blanket covering the ceiling around ducting and cabling under a timber roof â Laidley"),celluloseSeamlessAlt:i("cellulose-seamless-alt",720,540,"Seamless grey cellulose carpet laid flush across ceiling joists, alternate angle, Comfort Zone install"),underfloorSelfSupport:i("underfloor-self-support",720,540,"A self-supporting white polyester batt held firmly between steel floor joists under a raised floor â Tamborine"),underfloorStiffer:i("underfloor-stiffer",720,540,"Stiffer white polyester underfloor batts pushed firmly into place between the joists, no fixings needed â Blacksoil"),underfloorPushIn:i("underfloor-push-in",720,542,"White pol
1yester underfloor batts that push into place and self-support under a raised timber floor"),underfloorTimberJoists:i("underfloor-timber-joists",720,540,"Bright white polyester underfloor batts held up between fresh timber floor joists under a raised Queensland house, no staples or fixings needed, seen from below in the daylight subfloor"),ratStainCeiling2:i("rat-stain-ceiling-2",720,540,"Dark rodent urine trails and droppings staining a bare ceiling sheet between the joists, exposed once old batts were lifted â Ashgrove, 2017"),ratsInBatts:i("rats-in-batts-img-0231",720,540,"Pale fibreglass batts torn open and burrowed into by rodents living in the insulation under a metal roof â Edens Landing, 2016"),ratNestPoly:i("rat-nest-poly",720,540,"A rat nest matted into chewed white polyester batt insulation under a roof eave â Ashgrove, 2017"),polyWallGreen:i("poly-wall-green",720,540,"Green polyester acoustic batts installed in a steel-frame internal wall cavity for soundproofing, Comfort Zone"),polyWallCoolum:i("poly-wall-coolum",720,540,"Grey cellulose blanketing a ceiling cavity beside white polyester batts packed into the sloped knee wall for sound insulation â Coolum Beach"),soundBetweenFloors:i("sound-between-floors",720,540,"Grey sound-insulation matting stapled between the floor joists of a two-storey home, with a batt patch fitted around a downlight box â Carina, 2016"),celluloseLowPitch:i("cellulose-low-pitch",720,540,"Cellulose insulation blown into a very low-pitch roof where batts cannot be laid â Windsor, 2017"),celluloseJoistsBuried:i("cellulose-joists-buried",720,540,"Grey cellulose fibre packed up level with the tops of the roof battens mid-fill, foil sarking visible above â Comfort Zone install"),celluloseFlameTestCloseup:i("cellulose-flame-test-closeup",540,690,"A close-up of Comfort Zone's fine-milled cellulose fibre with a charred crater where a factory flame test was applied and the fibre self-extinguished"),bundabergBeachfrontRoof:i("bundaberg-beachfront-roof",1400,1050,"A charcoal concrete-tile roof on the Bundaberg beachfront insulated with cellulose fibre to keep the coastal sun out â Innes Park"),herveyBayCelluloseInstall:i("hervey-bay-cellulose-install",1400,1050,"A Comfort Zone crew member blowing cellulose insulation straight into the open roof cavity of a Pialba home â Hervey Bay"),tweedCelluloseCeiling:i("tweed-cellulose-ceiling",1400,1050,"A thick, even blanket of grey cellulose fibre insulation blown over the ceiling trusses with no gaps â Tweed Heads"),tweedFailedFoil:i("tweed-failed-foil",1400,1050,"Old silver reflective foil insulation hanging in torn, shredded tatters, failed and sagging away inside the roof â Tweed Heads"),tweedCelluloseTiles:i("tweed-cellulose-tiles",1400,1050,"Cellulose Fibre Insulation being installed into an exposed-beam tile roof, filled from above with rows of tiles lifted and stacked so the fibre packs down between the battens â the only way to insulate a roof where the beams are exposed inside the house. Tweed Heads."),pottsvilleWhirlybirdRoof:i("pottsville-whirlybird-roof",1400,1050,"A new whirlybird vent fitted on a tiled Pottsville roof to pull hot air out of the roof space before cellulose fibre insulation goes in"),cliplockInside:i("cliplock-inside",720,540,"Inside a very low-pitch cliplock metal roof showing the tight cavity Comfort Zone insulates with cellulose"),trimDeckRapOver:i("trim-deck-rap-over",720,540,"A rap-over trim-deck iron roof packed with cellulose fibre insulation for a no-cavity roof â Windsor"),wetSprayCellulose:i("wet-spray-cellulose",720,540,"Wet-spray cellulose fibre being applied to a wall during construction, Comfort Zone's own manufactured product"),roofCorrugated:i("roof-corrugated",720,514,"Close-up of a silver corrugated iron / ColorBond metal roof showing the rounded ribs and tek screws, the most common metal roof in SE QLD"),roofTile:i("roof-tile",720,400,"A terracotta tile roof showing the classic profiled clay tiles, a cement or terracotta tiled roof"),roofFlatIron:i("roof-flat-iron",720,262,"A low-pitch flat iron roof where the metal sheets wrap over from one side to the other, usually with no manhole"),roofSuperSix:i("roof-super-six",720,448,"A weathered grey corrugated fibro / Super Six asbestos-cement sheet roof"),roofMetalTile:i("roof-metal-tile",720,414,"Brown stone-coated pressed-metal roof tiles that look like clay tiles but are made of metal"),roofCliplok:i("roof-cliplok",720,421,"A white ClipLok standing-seam metal roof beside a skylight, interlocking sheets used on very flat roofs"),ceilingExposedBeam:i("ceiling-exposed-beam",720,663,"A timber-lined ceiling with pale tongue-and-groove boards running between dark-stained exposed timber beams"),ceilingSuspendedTile:i("ceiling-suspended-tile",720,570,"A suspended drop ceiling of square acoustic tiles in a metal grid, with recessed lights and a smoke detector"),ceilingScissorTruss:i("ceiling-scissor-truss",720,256,"A diagram of a timber scissor truss with crossing internal members and a sloped bottom chord on two wall supports"),ceilingAframe:i("ceiling-a-frame",480,320,"A timber A-frame house with a steep pitched metal roof and a cantilevered balcony"),fittingDownlight:i("fitting-downlight",720,479,"A round recessed downlight with a brushed metal trim glowing warm in an off-white ceiling"),fittingManhole:i("fitting-manhole",720,380,"Two hands lifting a white ceiling manhole cover out of its frame, exposing the dark roof void above"),fittingFireplace:i("fitting-fireplace",720,480,"A cast-iron wood heater with a lit fire behind a glass door, on a stone hearth beside a basket of firewood"),fittingSolar:i("fitting-solar",720,443,"Solar panels mounted across a tiled roof, viewed from below against a blue sky"),soundproofWallHoles:i("soundproof-wall-holes",720,404,"A red interior wall drilled with a neat grid of holes around a window, where Comfort Zone pumps cellulose in to soundproof an existing room"),celluloseWallBuild:i("cellulose-wall-build",720,541,"Peter Johnson smiling in front of a timber-frame wall cavity packed full of grey cellulose fibre insulation during the build, Comfort Zone"),celluloseWallSound:i("cellulose-wall-sound",720,960,"Grey cellulose fibre packed densely between timber wall studs for soundproofing during construction â Carina, 2016"),celluloseSuspended:i("cellulose-suspended",720,54
10,"Cellulose insulation held in place by stapled fabric in a ceiling cavity before the plaster goes on, Comfort Zone"),courseCelluloseBad:i("course-cellulose-bad",720,540,"Coarse, older-style cellulose fibre pulled from a roof at least 20 years old, still passing a flame test decades after it was installed"),steelFrameProduct:i("steel-frame-product",720,538,"A Comfort Zone installer in a respirator gives a thumbs-up while insulating steel-frame roof trusses with cellulose fibre â Mapleton, 2017"),polyChapelHill:i("poly-chapel-hill",720,540,"Clean white polyester batts laid evenly between timber roof trusses across the ceiling, wiring run on top â Chapel Hill"),badWorkDownlight:i("bad-work-downlight",720,540,"Loose cellulose pumped right up against taped ductwork and wiring with no fire clearance kept, the kind of unqualified work Comfort Zone never does"),competitorNoShroud:i("competitor-no-shroud",720,540,"A competitor's loose cellulose laid through a dark tile-roof cavity with no protective shroud detailing around the access. Comfort Zone always shrouds the manhole"),competitorBattsLaid:i("competitor-batts-laid",720,540,"How a competitor laid fibreglass batts: lumpy, gapped and uneven across the joists"),fibreglassBadSpringfield:i("fibreglass-bad-springfield",720,540,"Fibreglass batts installed badly with gaps between every joist, a competitor's work â Springfield"),pinkBattsGapsTallai:i("pink-batts-gaps-tallai",720,540,"Pink fibreglass batts laid with obvious gaps and an uncovered downlight box â Tallai"),foilInsulationDebris:i("old-foil-insulation-debris",720,540,"FOIL insulation (not fibreglass): old crumpled silver foil sheets torn out and strewn across a dark roof cavity with loose debris, the kind of foil we remove and dispose of"),unopenedBattPack:i("unopened-batt-pack",720,540,"An unopened R2.0 fibreglass batt pack a previous installer left in the roof instead of laying it"),whirlybirdWoodford:i("whirlybird-woodford",720,540,"Two black whirlybird roof vents on a terracotta-tile roof that still needed insulating, because vents alone don't cool a roof, Woodford QLD"),whirlybirdWrongAngle:i("whirlybird-wrong-angle",720,540,"A silver whirlybird vent mounted off-level on a corrugated metal roof, leaning so its bearings wear out early, South Toowoomba roof inspection"),whirlybirdTile:i("whirlybird-tile",720,540,"A whirlybird roof vent installed on a cement-tile roof, Chermside"),tileRoofMould:i("tile-roof-mould",720,540,"Mould growing on a terracotta tile roof, found during a Comfort Zone roof inspection"),ceilingMouldLines:i("ceiling-mould-lines",1440,1080,"Dark mould spreading in patches and lines across a fibro ceiling, mapping the cold strips where there is no insulation behind the plaster for warm moist air to condense on â found on a Comfort Zone roof inspection"),sarkingRepaired:i("sarking-repaired",720,540,"Roof sarking taped neatly back into place after cellulose was pumped beneath it, Comfort Zone finish"),heligenDownlight:i("heligen-downlight",720,960,"A fire-rated downlight viewed from inside the ceiling, safe to insulate over, Comfort Zone"),rakedDownlights:i("raked-downlights",720,540,"A roof tile lifted to reveal a downlight fitting and cabling in the cavity below, located before cellulose is pumped around it, Comfort Zone"),trimDeckRust:i("trim-deck-rust",720,540,"A trim-deck metal roof rusting along the laps where water pools, the kind of damage that traps moisture in spray foam â Windsor, 2017"),fibreglassBlanket:i("fibreglass-blanket",720,540,"A glasswool blanket fitted under a cliplock iron roof, damp against the sheets, the material that runs out to the fascia on a tank-water home"),leakIsolatedCellulose:i("leak-isolated-cellulose",720,540,"A kitchen ceiling with roof-leak water damage contained to one small patch where cellulose insulation held it back â Jimboomba, 2017"),inspectionSolarDomeCasino:i("inspection-solar-dome-casino",720,960,"A cracked solar light dome found during a roof inspection, a fault Comfort Zone reports to homeowners â Casino"),battsInPack:i("batts-in-pack",720,54
10,"Plastic-wrapped rolls of new glasswool insulation stacked in rows inside a steel shipping container"),cliplockSolar:i("cliplock-solar",720,540,"A cliplock metal roof fitted with solar panels, the roof type we insulate around the panels"),whirlybirdSolar:i("whirlybird-solar",720,540,"A whirlybird roof vent installed beside rooftop solar panels on a metal roof"),underfloorWinter:i("underfloor-winter",720,540,"Polyester batts installed under a house to keep the floor warmer in winter, Comfort Zone underfloor job"),qldTextilesGuarantee:i("qld-textiles-guarantee",1200,842,"Queensland Textiles Certificate of Guarantee â the one-page document guaranteeing the material R-values R1.5 to R3.5 as tested by BRANZ, compliant with AS/NZS 4859.1, fire-tested to AS/NZS 1530.3, for the lifetime of the building"),celluloseAndPoly:i("cellulose-and-poly",720,540,"Cellulose fibre on the ceiling and clean polyester batts in the in-ceiling wall, side by side, Comfort Zone"),celluloseAgedCliplock:i("cellulose-aged-cliplock",720,541,"A lifted cliplock roof sheet revealing a cavity densely packed with settled grey cellulose insulation, with a pump hose feeding more across the metal roof"),whirlybirdBrokenShaft:i("whirlybird-broken-shaft",720,540,"A seized, weathered whirlybird vent with its worn central spindle bored up through the dome on an old grey corrugated metal roof"),anticonRottedFoil:i("anticon-rotted-foil",720,541,"Torn, degraded foil-backed glasswool anticon blanket exposed under a lifted sheet on an old red corrugated metal roof, too damaged to reseal"),anticonSheetsLifted:i("anticon-sheets-lifted",720,960,"Metal roof sheets twisted out to reveal the yellow foil-backed anticon glasswool blanket beneath, exposed during an insulation upgrade"),celluloseTightRoof:i("cellulose-tight-roof",720,540,"A pump hose feeding grey cellulose insulation into a narrow gap beneath a lifted corrugated metal roof sheet on a tight roof"),polyesterBattsRoof:i("polyester-batts-roof",720,960,"A Comfort Zone installer feeding long white polyester insulation batts down through an opened metal roof section during a job"),tilesBrokenCorners:i("tiles-broken-corners",720,540,"A concrete-tile roof with many chipped and broken tile corners scattered across it, careless handling left behind by earlier roof work"),tileRoofGlazeGone:i("tile-roof-glaze-gone",720,541,"A weathered concrete-tile roof eroded back to bare cement, its surface glaze worn away, fitted with solar panels and a domed skylight"),ironRoofFlakyPaint:i("iron-roof-flaky-paint",720,540,"Extensively flaking and peeling white paint on an old corrugated metal roof, worn back to bare metal in places"),installerReplacingTiles:i("installer-replacing-tiles",720,540,"A Comfort Zone installer carefully replacing flat concrete roof tiles over an access opening after a ceiling insulation job"),factoryFlameTestBatch:i("factory-flame-test-batch",600,800,"Grey cellulose insulation samples on concrete with charred test burns in each clump, batch flame-testing for Australian fire-standard compliance"),super6InteriorBattens:i("super6-fibro-interior-battens",720,540,"Underside of a Super-6 fibro roof showing timber battens running below the joists that hold batts off the ceiling, roof-cavity view"),super6AfterCellulose:i("super6-fibro-after-cellulose",720,540,"A Super-6 fibro roof cavity filled with an even grey cellulose blanket after pumping, flowing into the eaves and around the timbers"),super6FlatheadScrews:i("super6-flathead-screws",720,540,"Close-up of a slotted flat-head screw and square washer fixing a painted fibro Super-6 roof sheet, paint flaking around the fastener"),fibroSuper6Roof:i("asbestos-fibro-roof",720,720,"A red-painted corrugated fibro Super-6 roof seen from a distance in daylight with a rooftop solar hot-water tank, identification shot of a hard roof type"),tileRoofEntryMethod:i("tile-roof-entry-method",720,540,"A neat rectangular access opening in a concrete tile roof, tiles slid up and two removed for entry, showing the batten and roof cavity"),solarBrokeRoofTiles:i("solar-broke-roof-tiles",720,54
10,"A concrete tile roof with several cracked and chipped tiles grouped toward the back, broken by another contractor and left out of sight"),rodentWireDamage:i("rodent-wire-damage",720,540,"A chewed electrical cable in a roof space, the outer sheath gnawed away and bare wires exposed, rodent damage found on a roof inspection"),rodentNestRoof:i("rodent-nest-roof",720,540,"A pile of dried leaves and twigs dragged between the roof timbers forming a natural rodent nest in a roof cavity, found during inspection"),dadComfortZoneShirt:i("dad-comfort-zone-shirt",522,800,"Peter Johnson's father, grey-bearded, wearing the original embroidered 'Protecting your Comfort Zone' work shirt â the family insulation trade, a generation back"),eliFactory2019:i("eli-factory-2019",720,843,"Eli Johnson as a teenager in ear protection, thumbs up, beside the blue cellulose bagging machine in the Comfort Zone factory, 2019"),qbsaLicence2006:i("qbsa-licence-2006",720,435,"Peter Johnson's Queensland Building Services Authority trade contractor licence â class Insulation, licence number 731884 â held since 2006"),truckSignage:i("truck-signage",720,404,'The Comfort Zone Insulation box truck in full livery: "Make your home a Comfort Zone, 30 years cooling down QLD" â QLD'),hipRoofOverview:i("hip-roof-overview",720,720,"A dark grey concrete-tile hip roof viewed from above mid-job, with a ladder leaning on the gutter and one tile lifted near the ridge for access"),leadHeadNailRust:i("lead-head-nail-rust",720,720,"A finger points to a rusted lead-head nail fastener bleeding rust across the corrugations of a weathered grey fibro roof sheet"),lowPitchPump:i("lowPitchPump",720,540,"Comfort Zone pumping grey cellulose fibre insulation into a very low-pitch roof where batts cannot be laid flat"),rapOverTrimDeckCello:i("rapOverTrimDeckCello",720,540,"A rap-over trim-deck iron roof packed with grey cellulose fibre insulation, a Comfort Zone install"),steelFrameTrimDeck:i("steelFrameTrimDeck",720,540,"A steel-frame trim-deck metal roof with grey cellulose insulation pumped between the steel battens, Comfort Zone"),cliplockSolarPanels:i("cliplockSolarPanels",720,540,"A clip-lock metal roof fitted with solar panels on a canal-suburb home, a coastal roof type insulated around the panels â Gold Coast"),gcFibreglassCliplock:i("gcFibreglassCliplock",720,540,"A lifted clip-lock roof sheet on a Gold Coast home revealing sagging yellow fibreglass blanket underneath, the damp material Comfort Zone replaces with cellulose"),gcLowPitchCliplock:i("gcLowPitchCliplock",720,540,"Inside a very low-pitch Gold Coast roof cavity with tight timber trusses and little headroom, where batts can't be laid flat and cellulose is pumped in instead"),gcBoxGutterCliplock:i("gcBoxGutterCliplock",720,540,"A box gutter running between a grey ribbed metal roof and a brown tiled roof, the sheet ends stopping at the gutter edge with grit and silt collected along the channel â the point every drop of roof water crosses on its way to a tank"),scSteelFrameNambour:i("scSteelFrameNambour",720,540,"Cellulose insulation packed between the steel battens of a hinterland metal roof, sheets lifted mid-job with the Blackall Range behind â Nambour"),scTileEntry:i("scTileEntry",720,540,"A neat access opening cut into a concrete-tile roof â three tiles slid up and two lifted out â the way Comfort Zone gets into a sealed tile roof that has no manhole"),scHeligenDownlight:i("scHeligenDownlight",720,960,"A sealed Heligen-type downlight seen from inside the ceiling, the IC-rated kind that can safely have cellulose insulation packed straight over the top"),downlightPumped:i("downlightPumped",720,540,"Grey cellulose insulation pumped right over a ceiling downlight fitting, sealing the gap around it where heat would otherwise pour up into the roof"),brisTileRoof:i("sg10",720,540,"A warm terracotta-tile hip roof against a blue Brisbane sky, with a timber Queenslander behind â the classic inner-suburb roof Comfort Zone insulates from inside"),brisOldBatts:i("sg6",720,54
10,"Old, dusty, sunken batts sitting gappy between the joists in a Brisbane tiled roof â the kind of failed insulation Comfort Zone tops over with cellulose or replaces"),brisCrackedPointing:i("sg7",720,540,"Cracked cement pointing on the ridge capping of a Brisbane terracotta-tile roof, the sort of roof fault Comfort Zone flags during its free roof check"),mb2Hero:i("mb2Hero",720,540,"Inside a Moreton Bay roof cavity after a blow: a deep, even blanket of grey cellulose covers the whole ceiling with no gaps around the trusses â Moreton Bay"),mb2Before:i("mb2Before",720,540,"An access opening cut into a metal roof showing patchy yellow fibreglass batts laid around the edges and a foil sarking flap pulled back over a dark, thinly-covered cavity."),mb2After:i("mb2After",720,540,"A roof cavity packed with a thick, seamless grey blanket of blown cellulose that has flowed right around the timber trusses and snugged up against a round duct collar, leaving no gaps."),mb2Before2:i("mb2Before2",720,960,"A terracotta tiled roof with a section of tiles lifted off and stacked aside, exposing the timber battens and the grey cellulose blanket sitting evenly beneath them."),mb2After2:i("mb2After2",720,540,"A roof cavity where seamless grey cellulose has been blown evenly around silver flexible air-conditioning ducting and the timber trusses, covering the ceiling right into the corners."),ip2Hero:i("ip2Hero",720,540,"An Ipswich roof space after a Comfort Zone blow-in: an unbroken blanket of grey cellulose laid wall to wall, tucked up to the trusses with no gaps â Ipswich"),ip2Before:i("ip2Before",720,540,"Looking across an old Ipswich roof space at tired glasswool batts gone grey and dusty on top, pulled apart at the joins between the timber trusses so there are dark ga
1ps where the heat pours straight through."),ip2After:i("ip2After",720,540,"An Ipswich roof space filled with blown cellulose insulation, a deep even layer packed tight around every truss and brace â Ipswich"),ip2Before2:i("ip2Before2",720,540,"An Ipswich roof opened right up with the sheets off, looking down the timber rafters at a thin, patchy layer of old grey fill that doesn't reach the timbers â you can see straight through to the street and neighbouring houses."),ip2After2:i("ip2After2",720,960,"A cross-section of a wall at another Ipswich job densely packed with grey blown cellulose, the fibre filling the whole cavity right out to the timber studs with no voids â the same dense fill we put in ceilings, done in a wall."),lo2Hero:i("lo2Hero",720,540,"A clean sage-green curved bullnose corrugated metal roof over a Logan home, palm trees and lawn behind it, gutter line running off to the right under a bright sky"),lo2Before:i("lo2Before",720,540,"Inside a roof cavity under corrugated steel: pale glasswool batts still in reasonable condition between the timbers, with a hole burrowed down into the middle of one batt where a rodent has nested"),lo2After:i("lo2After",720,540,"A roof space filled wall-to-wall with an even grey blanket of blown cellulose between the timber trusses, the manhole cover left clear in the middle, no gaps anywhere along the ceiling"),reHero:i("reHero",720,540,"A clean grey Clip-Lock standing-seam metal roof on a Redlands home, with a bank of solar panels installed across the upper section, photographed on a bright sunny day with leafy bayside suburb rooftops and palm trees in the background."),reBefore:i("reBefore",720,540,"A roof cavity packed with old yellow fibreglass batts that have slumped and pulled apart, leaving lumpy gaps between the timber joists, with daylight visible through holes in the roof above."),reAfter:i("reAfter",720,540,"Two Comfort Zone installers in hi-vis shirts blowing a fresh, even grey cellulose blanket between the ceiling joists of a roof that has been opened up for re-sheeting, on a sunny day with a Brisbane-bayside suburban street behind them."),soHero:i("soHero",720,540,"A freshly recoated charcoal-grey concrete tile hip roof on a Brisbane Valley home, photographed in bright daylight, with the ridge capping running clean down the centre and ornamental grasses and the gutter visible at the edges."),soBefore:i("soBefore",720,540,"Yellow fibreglass batts laid loosely between timber ceiling joists in a roof space, leaving bare gaps where you can see straight down to the ceiling plaster, with exposed wiring and a roof brace running across the middle."),soAfter:i("soAfter",720,540,"Grey blown cellulose insulation packed evenly and seamlessly into the cavity between the metal purlins of a very low-pitch iron roof, filling right up to the edges with no gaps, with the roof sheets lifted to show the full-contact fill."),gyHero:i("gyHero",720,540,"A freshly capped grey concrete tile roof shot from above in bright sun, the hip ridge running clean down the centre with neatly bedded ridge caps, green garden foliage and a quiet street in the background."),gyBefore:i("gyBefore",720,540,"Old pink and yellow fibreglass batts in a roof cavity, lifted off the ceiling and crumpled into humps with gaps opening up between them, wiring draped over the top and a sheet of debris alongside."),gyAfter:i("gyAfter",720,540,"An open ceiling with the tiles off, every bay between the timber battens packed level with an even grey blanket of blown cellulose that fills right into the corners with no gaps."),gyBefore2:i("gyBefore2",720,960,"Fibreglass batts in a roof pulled back off the ceiling board, the bare gyprock underneath littered with leaf litter and rodent droppings where rats have nested in under the batt."),gyAfter2:i("gyAfter2",720,960,"A timber-framed wall during construction filled flush between the studs with densely packed grey cellulose, the fibre sitting tight and even across the full cavity for sound and warmth."),sbHero:i("sbHero",720,540,"A freshly finished charcoal-grey concrete tile roof photographed in bright sun, with crisp capping along the hip and ridge and a tidy gutter line, looking down over a suburban street and garden â a clean, professional roof shot."),sbBefore:i("sbBefore",720,540,"A timber-framed roof cavity filled with yellow fibreglass batts that have been thrown in unevenly â lumpy, overlapping and pulled apart, with bare gaps showing between them and along the rafters where heat leaks straight through."),sbAfter:i("sbAfter",720,540,"A metal trim-deck roof opened up in daylight to show the bays between the steel battens packed level and edge-to-edge with grey blown cellulose â a seamless, full-contact fill that follows the frame with no gaps."),fcHero:i("fcHero",720,54
10,"A freshly cleaned charcoal-grey concrete tile roof on a Fraser Coast home, photographed from up on the ridge in bright sun. The capping tiles run dead-straight along the hip and ridge lines, the tiles are uniform and free of moss, with tropical garden foliage and the neighbouring street visible past the gutter line."),fcBefore:i("fcBefore",720,540,"A dim roof cavity where yellow fibreglass batts have been thrown in loosely between the timber rafters. The batts are lumpy, torn and bunched up, with big open gaps where bare ceiling shows through and no continuous coverage - a competitor's rushed batt job."),fcAfter:i("fcAfter",720,540,"A continuous bed of blown cellulose fibre filling a ceiling cavity wall-to-wall, with no joists or gaps showing through. The recycled-paper fibre settles into every corner as one unbroken blanket rather than sitting in separate pieces like batts."),csiroGapsLetter1992:i("csiro-gaps-letter-1992",1050,1230,"A letter on CSIRO Division of Building, Construction and Engineering letterhead dated 18 September 1992, signed by Technical Information Officer Karl Armstrong, quoting insulation researcher Robin Clarke on the effect of gaps in ceiling insulation. The typed figures read: for 1% gaps, effective thermal resistance of R3.0 batts = R2.5; for 5% gaps, R3.0 batts = R1.5, with the resistance needed to still give R3.0 effective marked \"infinite!\". The recipient's name and address are blacked out, and CSIRO's logo has been removed from the letterhead."),csiroClarkeLetter1996p1:i("csiro-clarke-letter-1996-p1",1050,1400,'Page one of a letter on CSIRO Division of Building, Construction and Engineering letterhead dated 25 July 1996, written by Robin Clarke, Project Leader of the Building Insulation Project. Highlighted passages state that the claim uncoated cellulose would blow around leaving "nothing left in 2 years" is "an erroneous statement", and that a major settlement study found "no bulk movement of material". The recipient\'s name and address are blacked out, and CSIRO\'s logo has been removed from the letterhead.'),csiroClarkeLetter1996p2:i("csiro-clarke-letter-1996-p2",1050,1400,"Page two of Robin Clarke's 25 July 1996 CSIRO letter, signed in ink. It records that all loose-fill insulations settle slightly and installers should allow about 10% extra thickness, that cellulose fibre reaches its best thermal performance at about 40 kg per cubic metre, and that R2.5 within a 90 mm space is unachievable, with R2.2 to R2.4 expected instead."),msdsCellulose2001p1:i("msds-cellulose-2001-p1",1050,1400,'Page one of the Material Safety Data Sheet for Cellulose Fibre Thermal Insulation, faxed 28 November 2001. The ingredients panel reads: shredded newsprint paper 80% by weight, boric acid 12% by weight, borax 8% by weight. Spread of Flame Index is 0, UN Number, Hazchem Code, Dangerous Goods Class and Poisons Schedule are all "Not applicable", and a note records that an independent laboratory tested the newsprint ink for PAH carcinogenic content and none were detected.'),battsGapsFromDayOne:i("batts-gaps-from-day-one",1200,900,"Pink fibreglass batts photographed from directly above with the roof sheets off, laid unevenly between timber ceiling joists. Bare ceiling sheeting shows through in four separate bays where batts are missing or have been pulled apart, every joist is left completely uncovered, black rodent droppings are scattered across the fibre, and a batt at the bottom right has been torn open."),celluloseLowPitchMetal:i("cellulose-low-pitch-metal-roof",1200,900,"Grey cellulose fibre insulation filling a very low-pitch metal roof, photographed with several roof sheets lifted off. The insulation lies as one continuous blanket over the steel battens and fills each bay right out to the edges, with the remaining fixed roof sheets running away to the right."),threeProductsSideBySide:i("three-products-side-by-side",800,258,"The three ceiling insulation products side by side in real Queensland roofs, labelled left to right: fibreglass batts laid unevenly between the joists with gaps and a duct running over them; white polyester batts fitted between timber joists; and grey cellulose fibre pumped in as one continuous blanket under the roof trusses."),frickerBrisbane2002:i("fricker-2002-p2-brisbane",1050,1400,'Page two of "The Diminishing Benefit of Extra Home Insulation" by James Fricker M.AIRAH, 7 February 2002. A table models a Brisbane home with air conditioning, showing yearly cooling cost falling from $2,179 with no roof insulation to $1,000 at R3.0 and $840 at R5.0. Below it a graph of relative cooling energy against roof R-value drops steeply to about R2 then flattens out towards R5. The closing line reads: "The lesson: Extra R does not necessarily mean extra comfort or substantially more energy cost savings or greenhouse gas reductions."'),frickerMelbourne2002:i("fricker-2002-p1-melbourne",1050,1400,"Page one of \"The Diminishing Benefit of Extra Home Insulation\" by James Fricker M.AIRAH, dated 7 February 2002, with the author's email and the fax recipient's name blacked out. It models a Melbourne home's heating cost against roof R-value and notes that going from R2.5 to R3.0 saves an extra $67 a year, while R3.0 to R3.5 saves only $48 more."),celluloseBlownOntoRoofCloseup:i("cellulose-blown-roof-closeup",1200,900,"Cellulose insulation being pumped in â the hose blows a cloud of grey fibre out across the ribbed metal roof, already dusted with settled cellulose. It goes in dry as one seamless blanket, nothing cut and fitted like a batt."),celluloseLooseFillCeilingCavity:i("cellulose-loose-fill-ceiling-cavity",1200,900,"Cellulose insulation laid evenly across the ceiling cavity between the timber trusses, filled level with the top plates. A standard 120 mm pump like this gets you about R3.0, right over the tops of the joists with no gaps."),bargeCapLiftedRoofEdgePrep:i("barge-cap-lifted-roof-edge-prep",1200,900,"Barge cap lifted along the gable edge of this corrugated roof to open up an access point for pumping in cellulose fibre insulation, timber board and packing exposed underneath while the installer works further up the roof."),celluloseTrimdeckRoofOverCavity:i("cellulose-trimdeck-roof-over-cavity",1200,900,"Wrap-over trim deck iron roof with a gap between two sheets showing the cellulose fibre insulation packed in solid between the timber blocking in the cavity below."),steelTrimdeckRoofPurlinsExposed:i("steel-trimdeck-roof-purlins-exposed",1200,900,"Steel-frame trim deck roof with two sheets lifted, showing the galvanised purlins and the cellulose fibre insulation packed in between them. Hammer left on the roof, paddock beyond the eave."),celluloseDownlightClearanceDam:i("cellulose-downlight-clearance-dam",1200,900,"Cellulose insulation packed in solid right up to this recessed downlight, held back in a neat circular gap so it can't shift or settle onto the fitting once the job's done."),sarkingRepairFoilTapePatch:i("sarking-repair-foil-tape-patch",1200,900,"Silver foil tape patches two openings cut into the pale blue sarking under terracotta roof tiles â the spots where Peter pumped cellulose insulation in underneath before sealing the sarking back up."),fibreglassBattsDrapedOverDuct:i("fibreglass-batts-draped-over-duct",1200,900,"Pink fibreglass batts bunched and draped unevenly over the timber framing around a flexible foil air-conditioning duct â the way Peter's competitors often leave batts, cut to fit and full of gaps instead of one seamless blanket."),fibreglassBattsUnopenedPacks:i("fibreglass-batts-unopened-packs",1200,900,"Two glasswool batt packs, an FBS-1 and a 16-pack of R2.5 Fat Batts, sitting on the ductwork still sealed in their plastic wrap â never even opened and laid, which is how some of Peter's competitors leave a roof."),fibreglassBattsUnevenCeiling:i("fibreglass-batts-uneven-ceiling",1200,900,"Rhino fibreglass batts laid loosely and unevenly across the ceiling joists in this garage, with gaps between sections and batts pushed up against the rafters instead of sitting flat â gaps like these are what ruin a ceiling's insulation, not the R-number on the bag."),fibreglassBlanketUnderMetalRoof:i("fibreglass-blanket-under-metal-roof",1200,900,"A gold-toned fibreglass blanket sits in the purlin cavity directly under ribbed Clip-Lock roof sheeting, fitted against the iron itself rather than pumped over the ceiling joists below."),ratNestPolyBattsCavity:i("rat-nest-poly-batts-cavity",1200,900,"A white polyester batt between the roof timbers has been pulled apart and packed into a hollow, grey-brown
1nest by rats â the kind of gap and cavity vermin move into once batts lose their shape."),rodentHoleBattsDroppings:i("rodent-hole-batts-droppings",1200,900,"A pale yellow batt over the roof framing under a corrugated metal roof, chewed clean through the middle with rat droppings scattered around the hole. Rats love batts â there's nothing stopping them tunnelling in and making a home in the fill."),ratUrineStainCeilingPanel:i("rat-urine-stain-ceiling-panel",1200,900,"Rodent urine staining and droppings soaked into a ceiling panel, with the white polyester batt lifted aside to show it. That mess sits in the batts above your ceiling and the smell comes straight through into the room below."),ratNestPolyBattsFloor:i("rat-nest-poly-batts-floor",1200,900,"A white polyester batt over timber roof framing with a matted grey-brown rat's nest bunched up underneath it, a cable and thin batten running past. Rats nest in poly batts, pulling the fill apart to build right in it."),skipBinFibreglassBatts:i("skip-bin-fibreglass-batts",1200,900,"A skip bin on the grass beside the driveway loaded with pink plastic-wrapped glasswool batts pulled out of a roof, one bag torn open showing the loose tan fibre â including packs still shrink-wrapped and unopened. Ripping fibreglass batts out fills a skip bin in no time, and there's often stock that was never even used sitting up there too."),workerRespiratorRoofSpacePPE:i("worker-respirator-roof-space-ppe",1200,1600,"A Comfort Zone installer working inside the roof cavity in a twin-cartridge respirator and yellow ear muffs, dust-covered Comfort Zone shirt from the job. Correct safety PPE is worn by all our staff on every roof."),comfortZoneServiceTruck:i("comfort-zone-service-truck",1200,900,"The Comfort Zone Insulation service truck, a white Isuzu box truck signwritten 'Make Your Home A Comfort Zone' with domestic, commercial, builders, roof insulation, roof restoration and repairs listed down the side."),polyesterBattsWallCavitySarking:i("polyester-batts-wall-cavity-sarking",1200,900,"Ceiling and wall cavity insulated with pale green polyester batts fitted snug between the steel wall studs, silver sarking running along the roofline overhead."),veryLowPitchRoofInterior:i("very-low-pitch-roof-interior",1200,900,"Inside a very low-pitch Clip-Lock roof, looking along the joists in one of the tight cavities most installers won't crawl into, with the aged foil layer overhead torn in a few spots."),cliplockRoofSolarPanels:i("cliplock-roof-solar-panels",1200,900,"Aerial view of a grey Clip-Lock standing-seam metal roof with a row of black solar panels fitted along the upper section, houses along the street below."),roofCavityFibreglassBatts:i("roof-cavity-fibreglass-batts",1200,900,"Yellow fibreglass batts laid in overlapping rows above a suspended tile ceiling, fitted between the timber battens with the corrugated metal roof overhead, the ceiling now insulated from above."),lowPitchRoofDownlight:i("low-pitch-roof-downlight",1200,900,"An extremely low roof cavity with a downlight and its wiring wedged in tight next to a timber batten, hard up against the roof sheeting."),roofTileHipCappingGreyAerial1:i("roof-tile-hip-capping-grey-aerial-1",1200,900,"Aerial view down the hip of a roof clad in grey-painted concrete tiles, ridge capping running along the hip line with a hairline gap showing in the bedding."),roofTileHipCappingGreyAerial2:i("roof-tile-hip-capping-grey-aerial-2",1200,900,"Aerial view of a grey-painted concrete tile hip roof, ridge capping running straight down the hip."),roofTileHipCappingGreyAerial3:i("roof-tile-hip-capping-grey-aerial-3",1200,900,"Same grey-painted concrete tile hip roof from a different angle, showing more of the tiled slope down to the eaves guttering."),roofTileHipCappingGreyAerial4:i("roof-tile-hip-capping-grey-aerial-4",1200,900,"Aerial view of the ridge capping down the hip on this grey-painted concrete tile roof, with a small gap in the bedding partway along."),tileRoofRidgeView:i("tile-roof-ridge-view",1200,900,"Looking straight down the ridge line of a weathered red-brown terracotta tile roof, with the bedding under the ridge capping opened up in gaps near the top of the frame."),tileRoofRidgeCrackedTile:i("tile-roof-ridge-cracked-tile",1200,900,"Close-up of terracotta ridge capping with lichen growth and open bedding gaps, sitting above a cracked roof tile."),tileRoofHoleCloseup:i("tile-roof-hole-closeup",1200,1600,"Close-up of two courses of ribbed terracotta roof tiles, weathered and grimy, with a hole punched clean through one of them."),downlightCoverCeilingCavity:i("downlight-cover-ceiling-cavity",1200,900,"A ceiling cavity showing steel trusses and battens above the plasterboard, with a black cone-shaped cover fitted over a downlight to keep insulation clear of the fitting."),mtgPro220Badge:i("mtg-pro-220-badge",1200,900,"Close-up of the yellow control panel on the MTG Pro 220, the blowing machine used to pump cellulose insulation into roofs, with its swirl-arrow logo above the model name."),mtgPro220MachineWide:i("mtg-pro-220-machine-wide",1200,1600,"The MTG Pro 220 blowing machine set up on the timber floor of a roof space, hopper and hose ready to pump cellulose insulation in as one seamless blanket, with no cutting or fitting required."),battInsulationRolledOffcut:i("batt-insulation-rolled-offcut",1200,900,"A pale cream insulation batt on concrete, one section rolled back to show the layered cross-section, with a rectangular offcut lying beside it from where it's been cut to fit."),foilBlanketTornRustStain:i("foil-blanket-torn-rust-stain",1200,900,"A torn silver foil-faced insulation blanket with a rust-brown stain running down from the tear, showing the tan fibrous material underneath where water has tracked through.")};e.s(["photos",0,n],37690);var r=e.i(57675);let s=[{value:"Metal â Corrugated / ColorBond",label:"Metal / ColorBond",photo:"roofCorrugated",blurb:"Corrugated iron or ColorBond steel sheets â the most common metal roof in SE QLD."},{value:"Tile â cement / terracotta",label:"Tile roof",photo:"roofTile",blurb:"Cement or terracotta tiles. We slide a few tiles to get in, then put them straight back."},{value:"Flat iron / wrap-over",label:"Flat iron / wrap-over",photo:"roofFlatIron",blurb:"Low-pitch sheets that run side to side, usually with no manhole."},{value:"Super Six / fibro",label:"Super Six / fibro",photo:"roofSuperSix",blurb
1:"Older fibro or asbestos-cement sheets. We handle these safely, no removal needed."},{value:"Metal tile",label:"Metal tile",photo:"roofMetalTile",blurb:"Look like tiles but are pressed metal, sometimes stone-coated."},{value:"ClipLok iron",label:"ClipLok iron",photo:"roofCliplok",blurb:"Interlocking metal sheets, used on very flat roofs."}];e.s(["RoofTypePicker",0,function({name:e="roof_type"}){let[l,i]=(0,o.useState)("");return(0,t.jsxs)("fieldset",{className:"border-0 p-0 m-0",children:[(0,t.jsx)("legend",{className:"font-display text-base font-bold text-ink",children:"What kind of roof do you have?"}),(0,t.jsx)("p",{className:"mt-1 text-sm leading-relaxed text-ink-soft",children:"The colour doesnât matter, just the shape and material. Tap the one that looks like yours."}),(0,t.jsxs)("div",{role:"group","aria-label":"Roof type",className:"mt-3 grid grid-cols-2 gap-3 sm:grid-cols-3",children:[s.map(e=>{let o=l===e.value;return(0,t.jsxs)("button",{type:"button","aria-pressed":o,onClick:()=>i(t=>t===e.value?"":e.value),className:`group relative flex flex-col overflow-hidden rounded-2xl bg-white text-left ring-1 transition duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-brand-500 2 ${o?"ring-2 ring-brand-600 shadow-lg shadow-brand-900/10":"ring-black/10 shadow-sm hover:-translate-y-0.5 hover:shadow-lg hover:ring-brand-300"}`,children:[(0,t.jsxs)("span",{className:"relative block aspect-[5/3] w-full overflow-hidden",children:[(0,t.jsx)(a.Photo,{p:n[e.photo],zoom:!1,className:"h-full w-full object-cover transition duration-300 group-hover:scale-[1.04]"}),o&&(0,t.jsx)("span",{className:"absolute right-2 top-2 grid h-6 w-6 place-items-center rounded-full bg-brand-600 text-white shadow",children:(0,t.jsx)(r.IconCheck,{className:"h-3.5 w-3.5"})})]}),(0,t.jsxs)("span",{className:"flex flex-col gap-0.5 p-3",children:[(0,t.jsx)("span",{className:"font-display text-sm font-bold text-ink",children:e.label}),(0,t.jsx)("span",{className:"text-xs leading-snug text-ink-soft",children:e.blurb})]})]},e.value)}),(0,t.jsxs)("button",{type:"button","aria-pressed":"Not sure"===l,onClick:()=>i(e=>"Not sure"===e?"":"Not sure"),className:`group relative flex flex-col overflow-hidden rounded-2xl bg-white text-left ring-1 transition duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-brand-500 3 ${"Not sure"===l?"ring-2 ring-brand-600 shadow-lg shadow-brand-900/10":"ring-black/10 shadow-sm hover:-translate-y-0.5 hover:shadow-lg hover:ring-brand-300"}`,children:[(0,t.jsxs)("span",{className:"relative grid aspect-[5/3] w-full place-items-center bg-brand-50 text-3xl",children:["ð¤","Not sure"===l&&(0,t.jsx)("span",{className:"absolute right-2 top-2 grid h-6 w-6 place-items-center rounded-full bg-brand-600 text-white shadow",children:(0,t.jsx)(r.IconCheck,{className:"h-3.5 w-3.5"})})]}),(0,t.jsxs)("span",{className:"flex flex-col gap-0.5 p-3",children:[(0,t.jsx)("span",{className:"font-display text-sm font-bold text-ink",children:"Not sure, you tell me"}),(0,t.jsx)("span",{className:"text-xs leading-snug text-ink-soft",children:"No worries, weâll work it out when we measure."})]})]})]}),(0,t.jsx)("input",{type:"hidden",name:e,value:l})]})}],24420)},25604,e=>{"use strict";var t=e.i(43476),o=e.i(71645),a=e.i(72570),l=e.i(37690),i=e.i(57675),n=e.i(52195);let r=[{value:"Foil batts",label:"Foil batts",photo:"foilInsulationDebris"},{value:"Old fibreglass batts",label:"Old fibreglass batts",photo:"battsSettledAged"},{value:"Water-damaged cellulose",label:"Water-damaged cellulose",photo:"leakIsolatedCellulose"},{value:"Not sure - I'd like advice",label:"Not sure â I'd like advice",emoji:"ð¬"}];function s({name:e="removal_type"}){let[d,c]=(0,o.useState)(""),h=e.replace(/^removal_type/,"removal_detail");return(0,t.jsxs)("fieldset",{className:"mt-4 border-0 p-0 m-0",children:[(0,t.jsxs)("legend",{className:"font-display text-sm font-bold text-ink",children:["What are we removing? ",(0,t.jsx)("span",{className:"font-normal text-ink-soft",children:"(so we bring the right gear)"})]}),(0,t.jsx)("div",{role:"group","aria-label":"What are we removing",className:"mt-3 grid grid-cols-2 gap-3 sm:grid-cols-4",children:r.map(e=>{let o,n=d===e.value;return(0,t.jsxs)("button",{type:"button","aria-pressed":n,onClick:()=>c(e.value),className:`group relative flex flex-col overflow-hidden rounded-2xl bg-white text-left ring-1 transition duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-brand-500 4 ${n?"ring-2 ring-brand-600 shadow-lg shadow-brand-900/10":"ring-black/10 shadow-sm hover:-translate-y-0.5 hover:shadow-lg hover:ring-brand-300"}`,children:[(0,t.jsxs)("span",{className:"relative block aspect-[5/4] w-full overflow-hidden",children:[e.photo?(0,t.jsx)(a.Photo,{p:(o=e.photo,l.photos[o]),zoom:!1,className:"h-full w-full object-cover transition duration-300 group-hover:scale-[1.04]"}):(0,t.jsx)("span",{className:"grid h-full w-full place-items-center bg-brand-50 text-3xl",children:e.emoji}),n&&(0,t.jsx)("span",{className:"absolute right-1.5 top-1.5 grid h-5 w-5 place-items-center rounded-full bg-brand-600 text-white shadow",children:(0,t.jsx)(i.IconCheck,{className:"h-3 w-3"})})]}),(0,t.jsx)("span",{className:"px-2.5 py-2 font-display text-xs font-bold text-ink",children:e.label})]},e.value)})}),(0,t.jsx)("input",{type:"hidden",name:e,value:d}),"Not sure - I'd like advice"===d&&(0,t.jsx)("div",{className:"mt-3",children:(0,t.jsx)(n.MicInput,{name:h,label:"Do you want some advice about your existing insulation?",rows:2,hint:"Tell us what's up there and what's worrying you â and add a photo or short video of it in the upload section below.",placeholder:"e.g. old batts, water came through, not sure if it's s
4afeâ¦"})})]})}let d=[{value:"Ceiling insulation",label:"Ceiling",photo:"celluloseHeroWynnum"},{value:"Floor (underfloor) insulation",label:"Floor",photo:"underfloorStiffer"},{value:"Wall insulation",label:"Walls",photo:"polyWallCoolum"},{value:"Soundproofing / acoustic insulation",label:"Soundproofing",photo:"soundproofWallHoles"},{value:"Fix or improve existing insulation",label:"Fix what's there",photo:"fibreglassGaps"},{value:"Remove old insulation and dispose of it",label:"Removal & disposal",photo:"removal"},{value:"Vacuum the ceiling cavity",label:"Vacuum the ceiling",photo:"celluloseAgedCliplock"},{value:"Install only - customer supplies the batts (labour only)",label:"Install only (you supply batts)",photo:"unopenedBattPack"},{value:"Insurance - inspection, condition report, or repair",label:"Insurance job",photo:"leakIsolatedCellulose"},{value:"Not sure, need advice",label:"Not sure, advise me",emoji:"ð¬"}],c=["Patchy / gaps","Settled or thin","Downlights or vents cut out","Old job done badly","Just want a recommendation","Not sure"],h=["Inspection & condition report","Vacuum or removal & reinstate","Repair a damaged section"],u=e=>`rounded-full px-3.5 py-2 text-sm font-semibold ring-1 transition focus:outline-none focus-visible:ring-2 focus-visible:ring-brand-500 ${e?"bg-brand-600 text-white ring-brand-600":"bg-white text-ink-soft ring-black/15 hover:ring-brand-300"}`;function f({legend:e,name:a,options:l}){let[i,n]=(0,o.useState)("");return(0,t.jsxs)("fieldset",{className:"border-0 p-0 m-0",children:[(0,t.jsx)("legend",{className:"font-display text-sm font-bold text-ink",children:e}),(0,t.jsx)("div",{className:"mt-2 flex flex-wrap gap-2",children:l.map(e=>(0,t.jsx)("button",{type:"button","aria-pressed":i===e,onClick:()=>n(i===e?"":e),className:u(i===e),children:e},e))}),(0,t.jsx)("input",{type:"hidden",name:a,value:i})]})}function g({sfx:e}){let[a,l]=(0,o.useState)([]),i=a.includes("Inspection & condition report");return(0,t.jsxs)("div",{className:"rounded-xl bg-mist p-4",children:[(0,t.jsxs)("fieldset",{className:"border-0 p-0 m-0",children:[(0,t.jsxs)("legend",{className:"font-display text-sm font-bold text-ink",children:["What do you need for the claim? ",(0,t.jsx)("span",{className:"font-normal text-ink-soft",children:"(tick any)"})]}),(0,t.jsx)("div",{className:"mt-2 flex flex-wrap gap-2",children:h.map(e=>(0,t.jsx)("button",{type:"button","aria-pressed":a.includes(e),onClick:()=>l(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e]),className:u(a.includes(e)),children:e},e))}),a.map(o=>(0,t.jsx)("input",{type:"hidden",name:`insurance_need${e}`,value:o},o))]}),(0,t.jsxs)("div",{className:"mt-3 grid gap-3 sm:grid-cols-3",children:[(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("span",{className:"font-display text-sm font-semibold text-ink",children:"Insurer"}),(0,t.jsx)("input",{name:`insurer${e}`,placeholder:"e.g. RACQ, Suncorp",className:"mt-1.5 w-full rounded-xl border border-black/15 bg-white px-3.5 py-3 text-base text-ink shadow-sm transition focus:border-brand-500 focus:outline-none focus:ring-2 focus:ring-brand-500/30"})]}),(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("span",{className:"font-display text-sm font-semibold text-ink",children:"Claim number"}),(0,t.jsx)("input",{name:`claim_number${e}`,placeholder:"e.g. CLM-123456",className:"mt-1.5 w-full rounded-xl border border-black/15 bg-white px-3.5 py-3 text-base text-ink shadow-sm transition focus:border-brand-500 focus:outline-none focus:ring-2 focus:ring-brand-500/30"})]}),(0,t.jsxs)("label",{className:"block",children:[(0,t.jsxs)("span",{className:"font-display text-sm font-semibold text-ink",children:["Assessor ref ",(0,t.jsx)("span",{className:"font-normal text-ink-soft",children:"(if any)"})]}),(0,t.jsx)("input",{name:`assessor_ref${e}`,placeholder:"loss adjuster job no.",className:"mt-1.5 w-full rounded-xl border border-black/15 bg-white px-3.5 py-3 text-base text-ink shadow-sm transition focus:border-brand-500 focus:outline-none focus:ring-2 focus:ring-brand-500/30"})]})]}),i&&(0,t.jsxs)("p",{className:"mt-3 rounded-lg border-l-4 border-accent-400 bg-accent-50 px-3.5 py-2.5 text-sm leading-relaxed text-ink",children:[(0,t.jsx)("strong",{children:"Heads up:"})," ","a full insurance inspection and condition report is a paid service, ",(0,t.jsx)("strong",{children:"$495"}),". If you only need the report (not a repair quote), weâll send a booking and payment link to lock it in. We document the condition, scope and ph
4otos for your claim, your insurer or their assessor decides the claim."]}),(0,t.jsx)("p",{className:"mt-2.5 text-sm leading-relaxed text-ink-soft",children:"Photos of the damage and the roof space help the claim move, add them in the upload below."})]})}e.s(["ServicesPicker",0,function({name:e="services"}){let[n,r]=(0,o.useState)([]),h=e.replace(/^services/,"");return(0,t.jsxs)("fieldset",{className:"border-0 p-0 m-0",children:[(0,t.jsxs)("legend",{className:"font-display text-base font-bold text-ink",children:["What can we quote you on today? ",(0,t.jsx)("span",{className:"font-normal text-ink-soft",children:"(tick any)"})]}),(0,t.jsx)("div",{className:"mt-3 grid grid-cols-2 gap-3 sm:grid-cols-3",children:d.map(e=>{let o,s=n.includes(e.value);return(0,t.jsxs)("button",{type:"button","aria-pressed":s,onClick:()=>{let t;return t=e.value,r(e=>e.includes(t)?e.filter(e=>e!==t):[...e,t])},className:`group relative flex flex-col overflow-hidden rounded-2xl bg-white text-left ring-1 transition duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-brand-500 5 ${s?"ring-2 ring-brand-600 shadow-lg shadow-brand-900/10":"ring-black/10 shadow-sm hover:-translate-y-0.5 hover:shadow-lg hover:ring-brand-300"}`,children:[(0,t.jsxs)("span",{className:"relative block aspect-[5/3] w-full overflow-hidden",children:[e.photo?(0,t.jsx)(a.Photo,{p:(o=e.photo,l.photos[o]),zoom:!1,className:"h-full w-full object-cover transition duration-300 group-hover:scale-[1.04]"}):(0,t.jsx)("span",{className:"grid h-full w-full place-items-center bg-brand-50 text-3xl",children:e.emoji}),s&&(0,t.jsx)("span",{className:"absolute right-2 top-2 grid h-6 w-6 place-items-center rounded-full bg-brand-600 text-white shadow",children:(0,t.jsx)(i.IconCheck,{className:"h-3.5 w-3.5"})})]}),(0,t.jsx)("span",{className:"block px-3 py-2 font-display text-sm font-bold leading-tight text-ink",children:e.label})]},e.value)})}),n.map(o=>(0,t.jsx)("input",{type:"hidden",name:e,value:o},o)),(0,t.jsxs)("div",{className:"mt-4 space-y-4",children:[n.includes("Remove old insulation and dispose of it")&&(0,t.jsx)(s,{name:`removal_type${h}`}),n.includes("Fix or improve existing insulation")&&(0,t.jsx)(f,{legend:"What's the problem? (so we bring the right fix)",name:`fix_problem${h}`,options:c}),n.includes("Install only - customer supplies the batts (labour only)")&&(0,t.jsxs)("div",{className:"rounded-xl bg-mist p-4",children:[(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("span",{className:"font-display text-sm font-bold text-ink",children:"How many packs, and what batts are they?"}),(0,t.jsx)("input",{name:`install_batts${h}`,placeholder:"e.g. 18 packs of R4.0 580mm polyester",className:"mt-1.5 w-full rounded-xl border border-black/15 bg-white px-3.5 py-3 text-base text-ink shadow-sm transition focus:border-brand-500 focus:outline-none focus:ring-2 focus:ring-brand-500/30"})]}),(0,t.jsx)("p",{className:"mt-2 text-sm leading-relaxed text-ink-soft",children:"Snap the pack label and the stack of packs in the upload below, so we can check they suit your roof and quote the labour."})]}),n.includes("Insurance - inspection, condition report, or repair")&&(0,t.jsx)(g,{sfx:h})]})]})}],25604)},95789,e=>{"use strict";var t=e.i(43476),o=e.i(71645),a=e.i(57675);let l=e=>(0,t.jsxs)("svg",{viewBox:"0 0 100 72",className:"h-full w-full text-brand-600",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinejoin:"round",strokeLinecap:"round",children:[(0,t.jsx)("line",{x1:"6",y1:"66",x2:"94",y2:"66",className:"text-ink-soft/40"}),e]}),i=[{value:"Lowset",label:"Lowset",blurb:"Single level, close to the ground. No stairs to the front door.",icon:l((0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("path",{d:"M16 40 L50 18 L84 40"}),(0,t.jsx)("rect",{x:"24",y:"40",width:"52",height:"26"}),(0,t.jsx)("rect",{x:"44",y:"50",width:"12",height:"16",className:"text-brand-400"})]}))},{value:"Highset",label:"Highset",blurb:"Up on posts with a garage or open space underneath. Stairs to get in.",icon:l((0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("path",{d:"M18 26 L50 8 L82 26"}),(0,t.jsx)("rect",{x:"24",y:"26",width:"52",height:"18"}),(0,t.jsx)("line",{x1:"30",y1:"44",x2:"30",y2:"66"}),(0,t.jsx)("line",{x1:"70",y1:"44",x2:"70",y2:"66"}),(0,t.jsx)("path",{d:"M54 66 L54 60 L60 60 L60 54 L66 54 L66 48 L72 48",className:"text-brand-300"}),(0,t.jsx)("rect",{x:"44",y:"30",width:"10",height:"14",className:"text-brand-400"})]}))},{value:"Split-level",label:"Split-level",blurb:"One house where the floor steps up or down part-way, with an in-ceiling wall between the levels.",icon:l((0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("path",{d:"M12 32 L33 18 L54 32"}),(0,t.jsx)("path",{d:"M54 32 L54 40 L72 28 L92 40"}),(0,t.jsx)("path",{d:"M20 32 L20 66 L88 66 L88 40 L54 40 L54 32"}),(0,t.jsx)("line",{x1:"54",y1:"32",x2:"54",y2:"40",className:"text-brand-300"}),(0,t.jsx)("rect",{x:"66",y:"50",width:"11",height:"16",className:"text-brand-400"})]}))},{value:"Multi-level",label:"Multi-level",blurb:"Three or more full storeys, or several levels stacked up.",icon:l((0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("path",{d:"M24 20 L50 6 L76 20"}),(0,t.jsx)("rect",{x:"30",y:"20",width:"40",height:"46"}),(0,t.jsx)("line",{x1:"30",y1:"35",x2:"70",y2:"35",className:"text-brand-300"}),(0,t.jsx)("line",{x1:"30",y1:"50",x2:"70",y2:"50",className:"text-brand-300"}),(0,t.jsx)("rect",{x:"38",y:"55",width:"10",height:"11",className:"text-brand-400"})]}))},{value:"Flat / skillion roof",label:"Flat roof",blurb:"A flat or low-slope (skillion) roof, common on modern builds and extensions.",icon:l((0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("path",{d:"M14 36 L86 28"}),(0,t.jsx)("line",{x1:"14",y1:"36",x2:"14",y2:"32"}),(0,t.jsx)("line",{x1:"86",y1:"28",x2:"86",y2:"24"}),(0,t.jsx)("rect",{x:"16",y:"36",width:"68",height:"30"}),(0,t.jsx)("rect",{x:"42",y:"50",width:"14",height:"16",className:"text-brand-400"})]}))}],n=[{value:"Detached granny flat",label:"Granny flat",icon:l((0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("path",{d:"M30 46 L50 34 L70 46"}),(0,t.jsx)("rect",{x:"36",y:"46",width:"28",height:"20"}),(0,t.jsx)("rect",{x:"46",y:"54",width:"9",height:"12",className:"text-brand-400"})]}))},{value:"Detached garage",label:"Garage",icon:l((0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("path",{d:"M24 42 L50 30 L76 42"}),(0,t.jsx)("rect",{x:"28",y:"42",width:"44",height:"24"}),(0,t.jsx)("rect",{x:"38",y:"48",width:"24",height:"18",className:"text-brand-300"}),(0,t.jsx)("line",{x1:"38",y1:"54",x2:"62",y2:"54",className:"text-brand-300"}),(0,t.jsx)("line",{x1:"38",y1:"60",x2:"62",y2:"60",className:"text-brand-300"})]}))},{value:"Shed",label:"Shed",icon:l((0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("path",{d:"M32 34 L68 42"}),(0,t.jsx)("path",{d:"M32 34 L32 66 L68 66 L68 42"}),(0,t.jsx)("rect",{x:"44",y:"52",width:"11",height:"14",className:"text-brand-400"})]}))},{value:"Pool or entertaining room",label:"Pool / entertaining",icon:l((0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("path",{d:"M22 38 L50 28 L78 38"}),(0,t.jsx)("line",{x1:"28",y1:"38",x2:"28",y2:"66"}),(0,t.jsx)("line",{x1:"72",y1:"38",x2:"72",y2:"66"}),(0,t.jsx)("line",{x1:"28",y1:"58",x2:"72",y2:"58",className:"text-brand-300"}),(0,t.jsx)("path",{d:"M36 66 q 7 -5 14 0 t 14 0",className:"text-brand-300"})]}))}];function r({p:e,active:o,onClick:l}){return(0,t.jsxs)("button",{type:"button","aria-pressed":o,onClick:l,className:`group relative flex flex-col overflow-hidden rounded-2xl bg-white text-left ring-1 transition duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-brand-500 6 ${o?"ring-2 ring-brand-600 shadow-lg shadow-brand-900/10":"ring-black/10 shadow-sm hover:-translate-y-0.5 hover:shadow-lg hover:ring-brand-300"}`,children:[(0,t.jsxs)("span",{className:"relative block aspect-[4/3] w-full bg-brand-50/60 p-4",children:[e.icon,o&&(0,t.jsx)("span",{className:"absolute right-2 top-2 grid h-7 w-7 place-items-center rounded-full bg-brand-600 text-white shadow",children:(0,t.jsx)(a.IconCheck,{className:"h-4 w-4"})})]}),(0,t.jsxs)("span",{className:"flex flex-col gap-1 p-3",children:[(0,t.jsx)("span",{className:"font-display text-sm font-bold text-ink",children:e.label}),e.blurb?(0,t.jsx)("span",{className:"text-sm leading-snug text-ink-soft",children:e.blurb}):null]})]})}e.s(["ProfilePicker",0,function({name:e="home_profile"}){let[a,l]=(0,o.useState)(""),[s,d]=(0,o.useState)([]),c=e.replace(/^home_profile/,"detached_structures");return(0,t.jsxs)("fieldset",{className:"border-0 p-0 m-0",children:[(0,t.jsx)("legend",{className:"font-display text-base font-bold text-ink",children:"Is your home lowset, highset, split-level or multi-level?"}),(0,t.jsx)("div",{role:"group","aria-label":"Home profile",className:"mt-3 grid grid-cols-2 gap-3 sm:grid-cols-3 lg:grid-cols-5",children:i.map(e=>(0,t.jsx)(r,{p:e,active:a===e.value,onClick:()=>l(t=>t===e.value?"":e.value)},e.value))}),(0,t.jsx)("input",{type:"hidden",name:e,value:a}),(0,t.jsxs)("p",{className:"mt-5 font-display text-sm font-bold text-ink",children:["Would you like a quote on anything thatâs not under one of those roofs? ",(0,t.jsx)("span",{className:"font-normal text-ink-soft",children:"(tick any and weâll quote them alongside)"})]}),(0,t.jsx)("div",{role:"group","aria-label":"Detached structures",className:"mt-2.5 grid grid-cols-2 gap-3 sm:grid-cols-4",children:n.map(e=>(0,t.jsx)(r,{p:e,active:s.includes(e.value),onClick:()=>{let t;return t=e.value,d(e=>e.includes(t)?e.filter(e=>e!==t):[...e,t])}},e.value))}),s.map(e=>(0,t.jsx)("input",{type:"hidden",name:c,value:e},e))]})}])},38360,e=>{"use strict";var t=e.i(43476),o=e.i(71645),a=e.i(72570),l=e.i(37690),i=e.i(57675);let n=[{value:"Raked / cathedral ceiling",label:"Raked",photo:"rakedRoof"},{value:"Exposed-beam ceiling",label:"Exposed beam",photo:"ceilingExposedBeam"},{value:"Suspended tile ceiling",label:"Suspended tiles",photo:"ceilingSuspendedTile"},{value:"Scissor-truss ceiling",label:"Scissor truss",photo:"ceilingScissorTruss"},{value:"In-ceiling wall / split-level",label:"In-ceiling wall",photo:"polyWallC
6oolum"},{value:"A-frame / steep roof",label:"A-frame",photo:"ceilingAframe"}];e.s(["CeilingConstructionPicker",0,function({name:e="ceiling_construction"}){let[r,s]=(0,o.useState)([]);return(0,t.jsxs)("fieldset",{className:"border-0 p-0 m-0",children:[(0,t.jsxs)("legend",{className:"font-display text-xs font-bold uppercase tracking-wide text-ink-soft",children:["Any tricky ceilings? ",(0,t.jsx)("span",{className:"font-normal normal-case tracking-normal",children:"(tick any, most homes are flat so skip if none apply)"})]}),(0,t.jsx)("div",{className:"mt-2.5 grid grid-cols-2 gap-3 sm:grid-cols-3",children:n.map(e=>{let o,n=r.includes(e.value);return(0,t.jsxs)("button",{type:"button","aria-pressed":n,onClick:()=>{let t;return t=e.value,s(e=>e.includes(t)?e.filter(e=>e!==t):[...e,t])},className:`group relative flex flex-col overflow-hidden rounded-2xl bg-white text-left ring-1 transition duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-brand-500 7 ${n?"ring-2 ring-brand-600 shadow-lg shadow-brand-900/10":"ring-black/10 shadow-sm hover:-translate-y-0.5 hover:shadow-lg hover:ring-brand-300"}`,children:[(0,t.jsxs)("span",{className:"relative block aspect-[5/4] w-full overflow-hidden",children:[(0,t.jsx)(a.Photo,{p:(o=e.photo,l.photos[o]),zoom:!1,className:"h-full w-full object-cover transition duration-300 group-hover:scale-[1.04]"}),n&&(0,t.jsx)("span",{className:"absolute right-1.5 top-1.5 grid h-5 w-5 place-items-center rounded-full bg-brand-600 text-white shadow",children:(0,t.jsx)(i.IconCheck,{className:"h-3 w-3"})})]}),(0,t.jsx)("span",{className:"break-words px-2.5 py-2 font-display text-xs font-bold leading-tight text-ink",children:e.label})]},e.value)})}),r.map(o=>(0,t.jsx)("input",{type:"hidden",name:e,value:o},o))]})}])}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.