{"id":326,"date":"2026-09-28T20:35:25","date_gmt":"2026-09-28T20:35:25","guid":{"rendered":"https:\/\/stagingloom.com\/jml\/booking\/"},"modified":"2026-09-28T20:35:25","modified_gmt":"2026-09-28T20:35:25","slug":"booking","status":"publish","type":"page","link":"https:\/\/stagingloom.com\/jml\/booking\/","title":{"rendered":"Get an Instant Quote and Book"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"326\" class=\"elementor elementor-326\">\n\t\t\t\t<div class=\"elementor-element elementor-element-244e90a e-con e-atomic-element e-flexbox-base e-default-div e-2ec41da \" data-id=\"244e90a\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"244e90a\">\n    \t\t<div class=\"elementor-element elementor-element-751ee9b elementor-widget elementor-widget-html\" data-id=\"751ee9b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- WEB_CONTENT_START -->\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Bricolage+Grotesque:opsz,wght@12..96,400;12..96,500;12..96,600;12..96,700;12..96,800&family=Figtree:wght@400;500;600;700&family=Instrument+Serif:ital@0;1&display=swap\" rel=\"stylesheet\">\n<style>\n\/* ===== JML inner-page kit - every selector scoped to #jml-pg ===== *\/\n#jml-pg{\n  --ink:#132312; --ink2:#42563F; --ink3:#6B7C67;\n  --green:#265525; --green-d:#16330F; --green-l:#31702F; --green-x:#0D2109;\n  --sage:#B5CFB4; --sage-t:#E6F0E4; --sage-d:#8FB58D;\n  --blush:#F9C6C5; --blush-t:#FDEDEC; --blush-d:#E9A5A3;\n  --paper:#FBF9F5; --paper2:#F2EFE7; --line:#E3DFD5; --line2:#D3CEC1;\n  --dsp:'Bricolage Grotesque','Helvetica Neue',Arial,sans-serif;\n  --ser:'Instrument Serif',Georgia,'Times New Roman',serif;\n  --ui:'Figtree',-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;\n  --wrap:1220px; --r:22px;\n  display:block; box-sizing:border-box;\n  font-family:var(--ui); font-size:16.5px; font-weight:400; font-style:normal;\n  line-height:1.68; color:var(--ink); background:var(--paper);\n  letter-spacing:normal; word-spacing:normal; text-transform:none; text-align:left;\n  text-indent:0; text-shadow:none; text-decoration:none; white-space:normal;\n  margin:0; padding:0; border:0; overflow-x:clip; -webkit-font-smoothing:antialiased;\n}\n#jml-pg *,#jml-pg *::before,#jml-pg *::after{box-sizing:border-box}\n#jml-pg :where(div,section,article,aside,header,footer,nav,span,p,h1,h2,h3,h4,h5,h6,ul,ol,li,dl,dt,dd,\na,img,svg,picture,figure,figcaption,table,caption,colgroup,col,thead,tbody,tfoot,tr,th,td,details,summary,\nbutton,input,select,textarea,option,optgroup,form,output,progress,meter,datalist,\nlabel,fieldset,legend,iframe,video,audio,canvas,object,embed,main,address,hgroup,menu,dialog,\nem,strong,b,i,u,s,abbr,del,ins,kbd,samp,var,big,tt,center,font,\nsmall,sub,sup,blockquote,cite,q,hr,pre,code,time,mark,ruby,rt,rp,bdi,bdo,wbr,noscript){\n  margin:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none;outline:0;\n  font:inherit;font-size:inherit;font-weight:inherit;font-style:inherit;font-family:inherit;\n  color:inherit;letter-spacing:inherit;word-spacing:inherit;text-transform:inherit;text-align:inherit;\n  text-indent:0;text-decoration:none;text-shadow:none;line-height:inherit;white-space:inherit;\n  list-style:none;vertical-align:baseline;float:none;clear:none;position:static;\n  width:auto;height:auto;min-width:0;min-height:0;max-width:none;max-height:none;\n  transform:none;filter:none;opacity:1;visibility:visible;\n}\n#jml-pg strong,#jml-pg b{font-weight:700}\n#jml-pg em,#jml-pg i{font-style:italic}\n#jml-pg table{border-collapse:collapse}\n#jml-pg summary{display:block}\n#jml-pg img,#jml-pg svg{display:block;max-width:100%}\n#jml-pg img{height:auto}\n#jml-pg a{color:var(--green);text-decoration:none;cursor:pointer}\n#jml-pg h1,#jml-pg h2,#jml-pg h3,#jml-pg h4{font-family:var(--dsp);font-weight:800;letter-spacing:-.025em;line-height:1.1;color:var(--green-d)}\n#jml-pg p{margin:0 0 16px}\n#jml-pg p:last-child{margin-bottom:0}\n#jml-pg em.s{font-family:var(--ser);font-style:italic;font-weight:400;letter-spacing:0;color:var(--green-l)}\n#jml-pg .wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 24px}\n#jml-pg .sec{padding:96px 0;position:relative}\n#jml-pg .sec.tight{padding:64px 0}\n#jml-pg .alt{background:var(--paper2)}\n#jml-pg .white{background:#fff}\n#jml-pg .dark{background:var(--green-d);color:#DCE7D7}\n#jml-pg .dark h2,#jml-pg .dark h3,#jml-pg .dark h4{color:#fff}\n#jml-pg .dark p{color:#B9C9B3}\n#jml-pg .dark a{color:var(--blush)}\n#jml-pg .dark em.s{color:var(--blush)}\n\n\/* ---------- hero ---------- *\/\n#jml-pg .hero{position:relative;background:var(--green-x);color:#E7EFE3;overflow:hidden;isolation:isolate}\n#jml-pg .hero-bg{position:absolute;inset:0;z-index:0}\n#jml-pg .hero-bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.42}\n#jml-pg .hero-bg::after{content:\"\";position:absolute;inset:0;\n  background:linear-gradient(104deg,rgba(13,33,9,.97) 0%,rgba(13,33,9,.9) 42%,rgba(13,33,9,.5) 100%)}\n#jml-pg .hero .wrap{position:relative;z-index:1}\n#jml-pg .hero-in{padding:112px 0 96px;display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:54px;align-items:end}\n#jml-pg .hero-in>*{min-width:0}\n#jml-pg .crumb{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-bottom:22px;font-size:13px;color:#9DB497}\n#jml-pg .crumb a{color:#9DB497;text-decoration:none}\n#jml-pg .crumb a:hover{color:var(--blush)}\n#jml-pg .crumb i{font-style:normal;opacity:.5}\n#jml-pg .crumb span{color:#E7EFE3}\n#jml-pg .hero h1{font-size:clamp(33px,4.6vw,58px);line-height:1.04;color:#fff;margin-bottom:20px}\n#jml-pg .hero h1 em.s{color:var(--sage)}\n#jml-pg .hero .hl{font-size:19px;color:#C3D4BD;margin-bottom:28px}\n#jml-pg .hero-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:30px}\n#jml-pg .hero-tags span{display:inline-flex;align-items:center;gap:8px;background:rgba(181,207,180,.12);\n  border:1px solid rgba(181,207,180,.26);border-radius:999px;padding:8px 15px;font-size:13.4px;font-weight:600;color:#DCE7D7}\n#jml-pg .hero-tags svg{width:14px;height:14px;flex:0 0 14px;stroke:var(--sage);fill:none;stroke-width:2.2}\n#jml-pg .hero-btns{display:flex;flex-wrap:wrap;gap:12px}\n#jml-pg .hero-card{background:rgba(255,255,255,.07);border:1px solid rgba(181,207,180,.24);border-radius:var(--r);\n  padding:28px 26px;backdrop-filter:blur(8px)}\n#jml-pg .hero-card h2{font-size:17px;color:#fff;margin-bottom:16px;letter-spacing:-.02em;max-width:none}\n#jml-pg .hero-card .kv{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);gap:14px;align-items:baseline;\n  padding-bottom:13px;margin-bottom:13px;border-bottom:1px solid rgba(181,207,180,.16)}\n#jml-pg .hero-card .kv:last-child{border-bottom:0;padding-bottom:0;margin-bottom:0}\n#jml-pg .hero-card dt{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--sage);font-weight:700;white-space:nowrap}\n#jml-pg .hero-card dd{font-size:14.6px;color:#E7EFE3;text-align:right}\n\n\/* ---------- buttons ---------- *\/\n#jml-pg .btn{display:inline-flex;align-items:center;gap:9px;font-weight:700;font-size:15.4px;padding:15px 26px;\n  border-radius:999px;border:1px solid transparent;transition:transform .18s,background .18s,box-shadow .18s;white-space:nowrap;text-decoration:none}\n#jml-pg .btn svg{width:15px;height:15px;flex:0 0 15px;stroke:currentColor;fill:none;stroke-width:2.2}\n#jml-pg .btn-p{background:var(--green);color:#fff;box-shadow:0 10px 26px rgba(38,85,37,.3)}\n#jml-pg .btn-p:hover{background:var(--green-l);transform:translateY(-2px)}\n#jml-pg .btn-s{background:#fff;color:var(--green-d);border-color:var(--line2)}\n#jml-pg .btn-s:hover{background:var(--blush-t);border-color:var(--blush-d);transform:translateY(-2px)}\n#jml-pg .btn-g{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(181,207,180,.35)}\n#jml-pg .btn-g:hover{background:#fff;color:var(--green-d)}\n\n\/* ---------- section heads + prose ---------- *\/\n#jml-pg .eb{display:inline-flex;align-items:center;gap:9px;font-size:11.5px;font-weight:700;letter-spacing:.16em;\n  text-transform:uppercase;color:var(--green-l);margin-bottom:15px}\n#jml-pg .eb svg{width:14px;height:14px;flex:0 0 14px;stroke:var(--blush-d);fill:none;stroke-width:2.2}\n#jml-pg .dark .eb{color:var(--blush)}\n#jml-pg .dark .eb svg{stroke:var(--sage)}\n#jml-pg h2{font-size:clamp(27px,3.4vw,40px);max-width:22ch}\n#jml-pg h3{font-size:clamp(19px,2vw,23px);letter-spacing:-.02em}\n#jml-pg h4{font-size:17px;letter-spacing:-.015em}\n#jml-pg .lead{font-size:18px;color:var(--ink2)}\n#jml-pg .dark .lead{color:#B9C9B3}\n#jml-pg .shead{margin-bottom:34px}\n#jml-pg .shead.row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:26px 48px;align-items:end}\n#jml-pg .shead.row>*{min-width:0}\n#jml-pg .ans{background:var(--sage-t);border-left:4px solid var(--green);border-radius:0 14px 14px 0;\n  padding:19px 24px;margin:0 0 24px;font-size:17px;font-weight:600;color:var(--green-d);line-height:1.6}\n#jml-pg .ans b{display:block;font-family:var(--ui);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;\n  color:var(--green-l);font-weight:700;margin-bottom:7px}\n#jml-pg .dark .ans{background:rgba(181,207,180,.12);border-left-color:var(--blush);color:#EDF3EA}\n#jml-pg .dark .ans b{color:var(--blush)}\n#jml-pg .prose p{font-size:16.6px;color:var(--ink2)}\n#jml-pg .dark .prose p{color:#B9C9B3}\n#jml-pg .prose a{font-weight:600;text-decoration:underline;text-decoration-color:var(--sage-d);text-underline-offset:3px}\n#jml-pg .prose a:hover{color:var(--green-d);text-decoration-color:var(--green)}\n#jml-pg .dark .prose a{text-decoration-color:rgba(249,198,197,.5)}\n\n\/* ---------- lists ---------- *\/\n#jml-pg .bl li{display:flex;gap:11px;font-size:15.8px;color:var(--ink2);margin-bottom:11px;line-height:1.55}\n#jml-pg .bl li:last-child{margin-bottom:0}\n#jml-pg .bl svg{width:17px;height:17px;flex:0 0 17px;margin-top:4px;stroke:var(--green);fill:none;stroke-width:2.5}\n#jml-pg .dark .bl li{color:#C7D6C1}\n#jml-pg .dark .bl svg{stroke:var(--sage)}\n#jml-pg .bl.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 26px}\n#jml-pg .bl.two>li{min-width:0}\n\n\/* ---------- split rows (balanced by construction) ---------- *\/\n#jml-pg .split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:52px;align-items:stretch}\n#jml-pg .split.wide{grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr)}\n#jml-pg .split.narrow{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}\n#jml-pg .split>*{min-width:0}\n#jml-pg .sc{min-width:0;align-self:stretch;display:flex;flex-direction:column}\n#jml-pg .split .sc>.cards{flex:1;grid-auto-rows:1fr}\n#jml-pg .split .sc>.note,#jml-pg .split .sc>.tabs,#jml-pg .split .sc>.tw{align-self:stretch}\n#jml-pg .media{align-self:stretch;min-height:420px;min-width:0}\n#jml-pg .media .mb{position:relative;top:0;height:min(560px,100%);min-height:420px;border-radius:var(--r);\n  overflow:hidden;background:var(--paper2)}\n#jml-pg .media.sticky .mb{position:sticky;top:112px}\n#jml-pg .media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}\n#jml-pg .mtag{position:absolute;left:18px;right:18px;bottom:18px;background:rgba(255,255,255,.95);\n  border-radius:15px;padding:14px 16px;display:flex;align-items:center;gap:12px}\n#jml-pg .mtag .mi{width:38px;height:38px;flex:0 0 38px;border-radius:11px;background:var(--sage-t);\n  display:flex;align-items:center;justify-content:center}\n#jml-pg .mtag svg{width:18px;height:18px;stroke:var(--green);fill:none;stroke-width:2}\n#jml-pg .mtag b{display:block;font-family:var(--dsp);font-size:14.4px;color:var(--green-d);letter-spacing:-.01em;line-height:1.25}\n#jml-pg .mtag span{font-size:12.8px;color:var(--ink3);line-height:1.4}\n\n\/* ---------- cards ---------- *\/\n#jml-pg .cards{display:grid;gap:16px}\n#jml-pg .cards>*{min-width:0}\n#jml-pg .c2{grid-template-columns:repeat(2,minmax(0,1fr))}\n#jml-pg .c3{grid-template-columns:repeat(3,minmax(0,1fr))}\n#jml-pg .c4{grid-template-columns:repeat(4,minmax(0,1fr))}\n#jml-pg .card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px 22px;\n  transition:transform .2s,box-shadow .2s,border-color .2s;display:block;height:100%}\n#jml-pg .white .card{background:var(--paper)}\n#jml-pg a.card:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(19,35,18,.1);border-color:var(--sage-d)}\n#jml-pg .card .ci{width:42px;height:42px;border-radius:13px;background:var(--sage-t);display:flex;\n  align-items:center;justify-content:center;margin-bottom:14px}\n#jml-pg .card .ci svg{width:20px;height:20px;stroke:var(--green);fill:none;stroke-width:1.9}\n#jml-pg .card h3{font-size:17px;margin-bottom:8px}\n#jml-pg .card p{font-size:14.4px;color:var(--ink3);line-height:1.55;margin:0}\n#jml-pg .card .go{display:inline-flex;align-items:center;gap:6px;margin-top:13px;font-size:13px;font-weight:700;color:var(--green)}\n#jml-pg .card .go svg{width:13px;height:13px;flex:0 0 13px;stroke:currentColor;fill:none;stroke-width:2.4}\n#jml-pg a.card:hover .go{gap:10px}\n#jml-pg .dark .card{background:rgba(181,207,180,.08);border-color:rgba(181,207,180,.2)}\n#jml-pg .dark .card p{color:#A9BDA4}\n#jml-pg .dark .card .ci{background:rgba(181,207,180,.14)}\n#jml-pg .dark .card .ci svg{stroke:var(--sage)}\n\n\/* ---------- step rail (real sequences only) ---------- *\/\n#jml-pg .steps{counter-reset:st;display:grid;gap:16px}\n#jml-pg .steps.c4{grid-template-columns:repeat(4,minmax(0,1fr))}\n#jml-pg .steps.c3{grid-template-columns:repeat(3,minmax(0,1fr))}\n#jml-pg .steps>div{min-width:0;background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px 22px}\n#jml-pg .steps>div::before{counter-increment:st;content:counter(st);width:30px;height:30px;border-radius:50%;\n  background:var(--green);color:#fff;font-family:var(--dsp);font-weight:800;font-size:13.5px;\n  display:flex;align-items:center;justify-content:center;margin-bottom:13px}\n#jml-pg .steps h3{font-size:16.5px;margin-bottom:7px}\n#jml-pg .steps p{font-size:14.2px;color:var(--ink3);margin:0;line-height:1.55}\n#jml-pg .dark .steps>div{background:rgba(181,207,180,.08);border-color:rgba(181,207,180,.2)}\n#jml-pg .dark .steps p{color:#A9BDA4}\n\n\/* ---------- tab explorer (CSS radio) ---------- *\/\n#jml-pg .tabs{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:8px}\n#jml-pg .tabs>input{position:static;appearance:none;-webkit-appearance:none;opacity:0;width:0;height:0;\n  margin:0;padding:0;border:0;pointer-events:none}\n#jml-pg .tnav{display:grid;gap:4px;background:var(--paper2);border-radius:15px;padding:5px}\n#jml-pg .tnav>label{min-width:0;text-align:center;padding:12px 8px;border-radius:11px;font-size:13.6px;\n  font-weight:700;color:var(--ink2);cursor:pointer;transition:all .16s;user-select:none;line-height:1.3}\n#jml-pg .tnav>label:hover{background:rgba(255,255,255,.75)}\n#jml-pg .tpane{display:none;padding:26px 22px 22px}\n#jml-pg .tpane h3{font-size:19px;margin-bottom:7px}\n#jml-pg .tpane .tsub{font-size:14px;color:var(--ink2);margin-bottom:17px}\n#jml-pg .tpane .tgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 26px}\n#jml-pg .tpane .tgrid>li{min-width:0}\n#jml-pg .dark .tabs{background:rgba(181,207,180,.07);border-color:rgba(181,207,180,.2)}\n#jml-pg .dark .tnav{background:rgba(13,33,9,.45)}\n#jml-pg .dark .tnav>label{color:#C7D6C1}\n\n\/* ---------- tables ---------- *\/\n#jml-pg .tw{overflow-x:auto;border:1px solid var(--line);border-radius:18px;background:#fff;-webkit-overflow-scrolling:touch}\n#jml-pg table{width:100%;min-width:620px;font-size:14.6px}\n#jml-pg thead th{background:var(--green-d);color:#fff;text-align:left;padding:14px 16px;font-family:var(--dsp);\n  font-size:13.3px;font-weight:700;white-space:nowrap}\n#jml-pg tbody td{padding:13px 16px;border-top:1px solid var(--line);color:var(--ink2);vertical-align:top;line-height:1.5}\n#jml-pg tbody tr:nth-child(even) td{background:var(--paper)}\n#jml-pg tbody td:first-child{font-weight:700;color:var(--green-d)}\n#jml-pg .tnote{font-size:13.2px;color:var(--ink2);margin:12px 0 0}\n\n\/* ---------- folds (details) ---------- *\/\n#jml-pg .folds{display:grid;gap:12px}\n#jml-pg .fold{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}\n#jml-pg .fold>summary{display:block;position:relative;padding:19px 58px 19px 22px;font-family:var(--dsp);\n  font-weight:700;font-size:16.4px;color:var(--green-d);cursor:pointer;letter-spacing:-.015em;line-height:1.35;list-style:none}\n#jml-pg .fold>summary::-webkit-details-marker{display:none}\n#jml-pg .fold>summary::marker{content:\"\"}\n#jml-pg .fold>summary::after{content:\"\";position:absolute;right:21px;top:23px;width:11px;height:11px;\n  border-right:2.4px solid var(--green);border-bottom:2.4px solid var(--green);transform:rotate(45deg);\n  transition:transform .22s;pointer-events:none}\n#jml-pg .fold[open]>summary::after{transform:rotate(-135deg);top:27px}\n#jml-pg .fb{padding:0 22px 21px;font-size:15.2px;color:var(--ink2);line-height:1.62}\n#jml-pg .fb p{font-size:15.2px;margin:0 0 12px}\n#jml-pg .fb p:last-child{margin:0}\n#jml-pg .dark .fold{background:rgba(181,207,180,.08);border-color:rgba(181,207,180,.2)}\n#jml-pg .dark .fold>summary{color:#fff}\n#jml-pg .dark .fold>summary::after{border-color:var(--sage)}\n#jml-pg .dark .fb{color:#B9C9B3}\n\n\/* ---------- FAQ ---------- *\/\n#jml-pg .faq{display:grid;gap:12px 24px;align-items:start}\n#jml-pg .faq.f1{grid-template-columns:minmax(0,1fr)}\n#jml-pg .faq.f2{grid-template-columns:repeat(2,minmax(0,1fr))}\n#jml-pg .faq>details{min-width:0}\n\n\/* ---------- chips \/ suburb strip ---------- *\/\n#jml-pg .chips{display:flex;flex-wrap:wrap;gap:8px}\n#jml-pg .chips a,#jml-pg .chips span{font-size:13.2px;font-weight:500;color:var(--ink2);background:#fff;\n  border:1px solid var(--line);border-radius:999px;padding:7px 14px;transition:all .15s;display:inline-block}\n#jml-pg .chips a:hover{background:var(--green);color:#fff;border-color:var(--green)}\n#jml-pg .dark .chips a,#jml-pg .dark .chips span{background:rgba(181,207,180,.1);border-color:rgba(181,207,180,.2);color:#C7D6C1}\n#jml-pg .dark .chips a:hover{background:var(--sage);color:var(--green-d);border-color:var(--sage)}\n\n\/* ---------- stat band ---------- *\/\n#jml-pg .stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:rgba(181,207,180,.22)}\n#jml-pg .stats>div{min-width:0;background:var(--green-d);padding:30px 22px;text-align:center}\n#jml-pg .stats .n{font-family:var(--dsp);font-size:clamp(26px,3.4vw,38px);font-weight:800;color:#fff;\n  letter-spacing:-.03em;line-height:1}\n#jml-pg .stats .n span{color:var(--blush)}\n#jml-pg .stats .l{font-size:13.2px;color:#AFC2A9;margin-top:9px;line-height:1.45}\n\n\/* ---------- callout \/ quote ---------- *\/\n#jml-pg .note{background:var(--blush-t);border:1px solid #F3DCDA;border-radius:18px;padding:24px 26px}\n#jml-pg .note h3{font-size:17px;margin-bottom:9px}\n#jml-pg .note p{font-size:15px;color:var(--ink2);margin:0 0 12px}\n#jml-pg .note p:last-child{margin:0}\n#jml-pg .quote{font-family:var(--ser);font-style:italic;font-size:22px;line-height:1.45;color:var(--green-d)}\n#jml-pg .qa{font-size:13.4px;color:var(--ink2);font-weight:600;margin-top:12px}\n\n\/* ---------- CTA ---------- *\/\n#jml-pg .cta{background:var(--sage-t);border-radius:var(--r);padding:52px 48px;display:grid;\n  grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:44px;align-items:center}\n#jml-pg .cta>*{min-width:0}\n#jml-pg .cta h2{margin-bottom:13px;max-width:none}\n#jml-pg .cta p{font-size:16.4px;color:var(--ink2)}\n#jml-pg .cta .cb{display:flex;flex-direction:column;gap:11px}\n#jml-pg .cta .cb .btn{justify-content:center}\n\n\/* ---------- related ---------- *\/\n#jml-pg .rel{display:grid;gap:14px}\n#jml-pg .rel.r1{grid-template-columns:minmax(0,1fr)}\n#jml-pg .rel.r2{grid-template-columns:repeat(2,minmax(0,1fr))}\n#jml-pg .rel.r3{grid-template-columns:repeat(3,minmax(0,1fr))}\n#jml-pg .rel>a{min-width:0;display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);\n  border-radius:15px;padding:16px 18px;transition:all .18s}\n#jml-pg .rel>a:hover{border-color:var(--sage-d);transform:translateY(-3px);box-shadow:0 14px 30px rgba(19,35,18,.08)}\n#jml-pg .rel b{font-family:var(--dsp);font-size:14.6px;color:var(--green-d);letter-spacing:-.01em;line-height:1.3;flex:1}\n#jml-pg .rel svg{width:15px;height:15px;flex:0 0 15px;stroke:var(--green);fill:none;stroke-width:2.3}\n\n\/* ---------- gallery ---------- *\/\n#jml-pg .gal{display:grid;gap:14px}\n#jml-pg .gal.g1{grid-template-columns:minmax(0,1fr)}\n#jml-pg .gal.g2{grid-template-columns:repeat(2,minmax(0,1fr))}\n#jml-pg .gal.g3{grid-template-columns:repeat(3,minmax(0,1fr))}\n#jml-pg .gal.g4{grid-template-columns:repeat(4,minmax(0,1fr))}\n#jml-pg .gal figure{min-width:0;position:relative;border-radius:16px;overflow:hidden;aspect-ratio:4\/3;background:var(--paper2)}\n#jml-pg .gal img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s}\n#jml-pg .gal figure:hover img{transform:scale(1.05)}\n#jml-pg .gal figcaption{position:absolute;left:0;right:0;bottom:0;padding:26px 14px 12px;\n  background:linear-gradient(to top,rgba(19,35,18,.95) 0%,rgba(19,35,18,.88) 48%,transparent 100%);\n  color:#fff;font-size:12.5px;font-weight:600}\n\n\/* ---------- responsive ---------- *\/\n@media(max-width:1080px){\n  #jml-pg .c4{grid-template-columns:repeat(2,minmax(0,1fr))}\n  #jml-pg .steps.c4{grid-template-columns:repeat(2,minmax(0,1fr))}\n  #jml-pg .gal.g3,#jml-pg .gal.g4{grid-template-columns:repeat(2,minmax(0,1fr))}\n  #jml-pg .hero-in{grid-template-columns:minmax(0,1fr);gap:36px;padding:92px 0 76px;align-items:start}\n  #jml-pg .rel.r3{grid-template-columns:repeat(3,minmax(0,1fr))}\n}\n@media(max-width:940px){\n  #jml-pg .sec{padding:64px 0}\n  #jml-pg .sec.tight{padding:48px 0}\n  #jml-pg .split,#jml-pg .split.wide,#jml-pg .split.narrow,#jml-pg .cta,#jml-pg .shead.row{grid-template-columns:minmax(0,1fr);gap:30px}\n  #jml-pg .media{min-height:0;align-self:start}\n  #jml-pg .split .sc>.cards{grid-auto-rows:auto}\n  #jml-pg .media .mb{position:relative;top:auto;height:0;padding-bottom:62.5%;min-height:0}\n  #jml-pg .media.sticky .mb{position:relative;top:auto}\n  #jml-pg .faq.f2{grid-template-columns:minmax(0,1fr)}\n  #jml-pg .cta{padding:38px 30px}\n  #jml-pg .stats{grid-template-columns:repeat(2,minmax(0,1fr))}\n  #jml-pg h2{max-width:none}\n}\n@media(max-width:760px){\n  #jml-pg .c3,#jml-pg .steps.c3{grid-template-columns:repeat(2,minmax(0,1fr))}\n  #jml-pg .bl.two,#jml-pg .tpane .tgrid{grid-template-columns:minmax(0,1fr)}\n  #jml-pg .tnav{display:flex;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}\n  #jml-pg .tnav::-webkit-scrollbar{display:none}\n  #jml-pg .tnav>label{flex:0 0 auto;padding:11px 17px;white-space:nowrap}\n  #jml-pg .rel.r2,#jml-pg .rel.r3{grid-template-columns:minmax(0,1fr)}\n}\n@media(max-width:560px){\n  #jml-pg .wrap{padding:0 16px}\n  #jml-pg .sec{padding:52px 0}\n  #jml-pg .c2,#jml-pg .c3,#jml-pg .c4,#jml-pg .steps.c2,#jml-pg .steps.c3,#jml-pg .steps.c4,\n  #jml-pg .gal.g2,#jml-pg .gal.g3,#jml-pg .gal.g4,#jml-pg .stats{grid-template-columns:minmax(0,1fr)}\n  #jml-pg .hero-in{padding:72px 0 56px}\n  #jml-pg .hero-card,#jml-pg .cta{padding:28px 22px}\n  #jml-pg .card,#jml-pg .steps>div{padding:20px 18px}\n  #jml-pg .ans{padding:17px 18px;font-size:16.2px}\n  #jml-pg .hero-card dd{text-align:left}\n  #jml-pg .hero-card .kv{grid-template-columns:minmax(0,1fr);gap:4px}\n}\n\n\/* ---------- verbatim review grid ---------- *\/\n#jml-pg .rvw{display:grid;gap:18px;margin-top:8px}\n#jml-pg .rvw.rv2{grid-template-columns:repeat(2,minmax(0,1fr))}\n#jml-pg .rvw.rv3{grid-template-columns:repeat(3,minmax(0,1fr))}\n#jml-pg .rvw.rv4{grid-template-columns:repeat(4,minmax(0,1fr))}\n#jml-pg .rvw>*{min-width:0}\n#jml-pg figure.rv-feat{grid-column:1 \/ -1}\n#jml-pg figure.rv-feat .quote{font-size:23px}\n#jml-pg figure.rv{background:#fff;border:1px solid var(--line);border-radius:18px;\n  padding:26px 26px 22px;display:flex;flex-direction:column;gap:10px}\n#jml-pg figure.rv .quote{font-size:18.5px;margin:0}\n#jml-pg figure.rv .qa{margin-top:auto}\n@media (max-width:900px){\n  #jml-pg .rvw.rv3,#jml-pg .rvw.rv4{grid-template-columns:repeat(2,minmax(0,1fr))}\n}\n@media (max-width:620px){\n  #jml-pg .rvw.rv2,#jml-pg .rvw.rv3,#jml-pg .rvw.rv4{grid-template-columns:minmax(0,1fr)}\n  #jml-pg figure.rv{padding:22px 20px 18px}\n  #jml-pg figure.rv .quote{font-size:17px}\n}\n\n\/* ---------- quote builder ---------- *\/\n#jml-pg .qf{display:grid;gap:22px;background:#fff;border:1px solid var(--line);\n  border-radius:var(--r);padding:34px 34px 30px}\n#jml-pg .qf>*{min-width:0}\n#jml-pg .qf fieldset{display:grid;gap:14px}\n#jml-pg .qf legend{font-family:var(--disp);font-weight:700;font-size:15px;\n  letter-spacing:.01em;color:var(--green-d);margin-bottom:12px}\n#jml-pg .qf-f{display:grid;gap:7px}\n#jml-pg .qf-f label{font-size:13.6px;font-weight:600;color:var(--ink2)}\n#jml-pg .qf-f select,#jml-pg .qf-f input,#jml-pg .qf-f textarea{\n  width:100%;box-sizing:border-box;font-family:var(--body);font-size:15.4px;color:var(--ink);\n  background:var(--porc);border:1px solid var(--line);border-radius:12px;padding:12px 14px;\n  line-height:1.4;-webkit-appearance:none;appearance:none}\n#jml-pg .qf-f select{background-image:linear-gradient(45deg,transparent 50%,var(--green) 50%),\n  linear-gradient(135deg,var(--green) 50%,transparent 50%);\n  background-position:calc(100% - 20px) calc(50% + 1px),calc(100% - 15px) calc(50% + 1px);\n  background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:42px}\n#jml-pg .qf-f textarea{resize:vertical;min-height:86px}\n#jml-pg .qf-f select:focus,#jml-pg .qf-f input:focus,#jml-pg .qf-f textarea:focus{\n  outline:2px solid var(--green);outline-offset:1px;background:#fff}\n#jml-pg .qf fieldset:nth-of-type(2) .qf-f,#jml-pg .qf fieldset:nth-of-type(4) .qf-f{min-width:0}\n#jml-pg .qf-cs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}\n#jml-pg .qf-c{display:flex;align-items:flex-start;gap:9px;background:var(--porc);\n  border:1px solid var(--line);border-radius:12px;padding:11px 13px;cursor:pointer}\n#jml-pg .qf-c input{width:17px;height:17px;flex:0 0 auto;margin-top:1px;accent-color:var(--green)}\n#jml-pg .qf-c span{font-size:14.2px;color:var(--ink2);line-height:1.35}\n#jml-pg .qf-c:has(input:checked){background:var(--sage-t);border-color:var(--sage)}\n#jml-pg .qf-out{background:var(--sage-t);border-radius:18px;padding:26px 26px 22px;\n  display:grid;gap:12px}\n#jml-pg .qf-out h3{font-size:15px}\n#jml-pg .qf-brief{font-family:var(--ser);font-style:italic;font-size:19.5px;line-height:1.45;\n  color:var(--green-d)}\n#jml-pg .qf-note{font-size:13.2px;color:var(--ink2);line-height:1.5}\n#jml-pg .qf-out .cb{margin-top:2px}\n@media (min-width:760px){\n  #jml-pg .qf{grid-template-columns:repeat(2,minmax(0,1fr))}\n  #jml-pg .qf fieldset:nth-of-type(1){grid-column:1}\n  #jml-pg .qf fieldset:nth-of-type(2){grid-column:2}\n  #jml-pg .qf fieldset:nth-of-type(3){grid-column:1}\n  #jml-pg .qf fieldset:nth-of-type(4){grid-column:2}\n  #jml-pg .qf-out{grid-column:1 \/ -1}\n}\n@media (max-width:620px){\n  #jml-pg .qf{padding:24px 20px 22px;gap:18px}\n  #jml-pg .qf-cs{grid-template-columns:minmax(0,1fr)}\n  #jml-pg .qf-out{padding:22px 20px 18px}\n  #jml-pg .qf-brief{font-size:17.5px}\n}\n\n\/* ---------- guide review line ---------- *\/\n#jml-pg .rvdate{display:flex;align-items:center;gap:8px;font-size:13.4px;color:#B9C9B4;\n  margin-top:16px;line-height:1.5}\n#jml-pg .rvdate svg{width:16px;height:16px;flex:0 0 auto;color:var(--sage)}\n#jml-pg .rvdate time{font-weight:600;color:#E7EFE3}\n\n\/* ---------- host armour ----------\n   The :where() reset above sits at ID-level specificity, which beats any theme\n   selector. It does not beat a theme's !important, so the handful of properties\n   a page builder commonly forces that way, and that would visibly break the\n   widget, are pinned here. Colour is deliberately not pinned: the kit varies it\n   by context, and the ID-level rules already outrank normal theme styles. *\/\n#jml-pg,#jml-pg *,#jml-pg *::before,#jml-pg *::after{box-sizing:border-box!important}\n#jml-pg *{float:none!important;clear:none!important}\n#jml-pg{-webkit-text-size-adjust:100%;text-size-adjust:100%}\n#jml-pg :where(ul,ol,li){list-style:none!important}\n#jml-pg img,#jml-pg svg{max-width:100%!important;filter:none!important}\n<\/style>\n<div id=\"jml-pg\">\n<section class=\"hero\"><div class=\"hero-bg\"><img fetchpriority=\"high\" src=\"https:\/\/stagingloom.com\/jml\/wp-content\/uploads\/2026\/10\/marble-splashback-kitchen-melbourne-1.webp\" width=\"1400\" height=\"900\" alt=\"Book cleaning in Melbourne: a kitchen finished on a fortnightly roster\" fetchpriority=\"high\" decoding=\"async\"><\/div><div class=\"wrap\"><div class=\"hero-in\"><div><nav class=\"crumb\"><a href=\"\/\">Home<\/a><i>\/<\/i><span>Get a Quote and Book<\/span><\/nav><h1>Get a Quote and Book Cleaning in <em class=\"s\">Melbourne<\/em><\/h1><p class=\"hl\">Four short steps and you have a written request. We reply with one fixed figure and a room by room scope, which is the document the result is measured against.<\/p><div class=\"hero-tags\"><span><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M12 2v20\"\/><path d=\"M17 7a4 4 0 0 0-4-3h-2a3.5 3.5 0 0 0 0 7h2a3.5 3.5 0 0 1 0 7h-2a4 4 0 0 1-4-3\"\/><\/svg>Fixed figure, not a range<\/span><span><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M12 8v4l3 2\"\/><circle cx=\"12\" cy=\"12\" r=\"9\"\/><\/svg>Reply usually same day<\/span><span><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M9 12l2 2 4-4\"\/><circle cx=\"12\" cy=\"12\" r=\"9\"\/><\/svg>No deposit, no contract<\/span><\/div><div class=\"hero-btns\"><a class=\"btn btn-p\" href=\"\/booking\/\">Get an instant quote <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg><\/a><a class=\"btn btn-g\" href=\"tel:+61488898917\">Call +61 488 898 917<\/a><\/div><\/div><aside class=\"hero-card\"><h2>What you get back<\/h2><dl><div class=\"kv\"><dt>One number<\/dt><dd>Fixed, against a written scope<\/dd><\/div><div class=\"kv\"><dt>How fast<\/dt><dd>Usually the same business day<\/dd><\/div><div class=\"kv\"><dt>Commitment<\/dt><dd>None until you accept<\/dd><\/div><div class=\"kv\"><dt>Changes<\/dt><dd>Free up to 24 hours before a visit<\/dd><\/div><\/dl><\/aside><\/div><\/div><\/section><section class=\"sec\"><div class=\"wrap\"><div class=\"shead row\"><div><span class=\"eb\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M12 2v20\"\/><path d=\"M17 7a4 4 0 0 0-4-3h-2a3.5 3.5 0 0 0 0 7h2a3.5 3.5 0 0 1 0 7h-2a4 4 0 0 1-4-3\"\/><\/svg>Quote builder<\/span><h2>How do you book cleaning in Melbourne?<\/h2><\/div><p class=\"lead\">Tell us four things and the request writes itself.<\/p><\/div><div class=\"ans\"><b>Short answer<\/b>Pick the service and frequency, describe the property and suburb, tick anything extra, and add your contact details. The brief below updates as you go, and the button opens your email with it already written.<\/div><div class=\"prose\"><p>Nothing here commits you. What you are building is a request precise enough to answer with one number rather than a range.<\/p><\/div><form class=\"qf\" id=\"jqf\" novalidate><fieldset><legend>1. What needs doing<\/legend><p class=\"qf-f\"><label for=\"jqf-service\">Service<\/label><select id=\"jqf-service\" data-qf=\"service\" required><option value=\"\">Choose one<\/option><option value=\"Regular house cleaning\">Regular house cleaning<\/option><option value=\"One-off deep clean\">One-off deep clean<\/option><option value=\"End of lease \/ bond clean\">End of lease \/ bond clean<\/option><option value=\"Carpet steam cleaning\">Carpet steam cleaning<\/option><option value=\"Upholstery or rug cleaning\">Upholstery or rug cleaning<\/option><option value=\"Oven cleaning\">Oven cleaning<\/option><option value=\"Commercial or strata\">Commercial or strata<\/option><option value=\"NDIS funded cleaning\">NDIS funded cleaning<\/option><\/select><\/p><p class=\"qf-f\"><label for=\"jqf-frequency\">How often<\/label><select id=\"jqf-frequency\" data-qf=\"frequency\" required><option value=\"\">Choose one<\/option><option value=\"One-off\">One-off<\/option><option value=\"Weekly\">Weekly<\/option><option value=\"Fortnightly\">Fortnightly<\/option><option value=\"Monthly\">Monthly<\/option><\/select><\/p><\/fieldset><fieldset><legend>2. The property<\/legend><p class=\"qf-f\"><label for=\"jqf-ptype\">Property type<\/label><select id=\"jqf-ptype\" data-qf=\"ptype\" required><option value=\"\">Choose one<\/option><option value=\"Apartment or unit\">Apartment or unit<\/option><option value=\"Townhouse\">Townhouse<\/option><option value=\"House\">House<\/option><option value=\"Office or commercial site\">Office or commercial site<\/option><\/select><\/p><p class=\"qf-f\"><label for=\"jqf-beds\">Bedrooms<\/label><select id=\"jqf-beds\" data-qf=\"beds\"><option value=\"\">Choose one<\/option><option value=\"Studio\">Studio<\/option><option value=\"1\">1<\/option><option value=\"2\">2<\/option><option value=\"3\">3<\/option><option value=\"4\">4<\/option><option value=\"5 or more\">5 or more<\/option><\/select><\/p><p class=\"qf-f\"><label for=\"jqf-baths\">Bathrooms<\/label><select id=\"jqf-baths\" data-qf=\"baths\"><option value=\"\">Choose one<\/option><option value=\"1\">1<\/option><option value=\"2\">2<\/option><option value=\"3\">3<\/option><option value=\"4 or more\">4 or more<\/option><\/select><\/p><p class=\"qf-f\"><label for=\"jqf-suburb\">Suburb<\/label><input id=\"jqf-suburb\" data-qf=\"suburb\" type=\"text\" placeholder=\"e.g. Brunswick\" required><\/p><\/fieldset><fieldset><legend>3. Anything extra<\/legend><div class=\"qf-cs\"><label class=\"qf-c\"><input type=\"checkbox\" data-qf=\"extra\" value=\"Oven interior\"><span>Oven interior<\/span><\/label><label class=\"qf-c\"><input type=\"checkbox\" data-qf=\"extra\" value=\"Inside cupboards\"><span>Inside cupboards<\/span><\/label><label class=\"qf-c\"><input type=\"checkbox\" data-qf=\"extra\" value=\"Interior windows\"><span>Interior windows<\/span><\/label><label class=\"qf-c\"><input type=\"checkbox\" data-qf=\"extra\" value=\"Carpet steam clean\"><span>Carpet steam clean<\/span><\/label><label class=\"qf-c\"><input type=\"checkbox\" data-qf=\"extra\" value=\"Balcony or courtyard\"><span>Balcony or courtyard<\/span><\/label><label class=\"qf-c\"><input type=\"checkbox\" data-qf=\"extra\" value=\"Inside the fridge\"><span>Inside the fridge<\/span><\/label><\/div><p class=\"qf-f\"><label for=\"jqf-date\">Preferred date<\/label><input id=\"jqf-date\" data-qf=\"date\" type=\"date\" placeholder=\"\"><\/p><\/fieldset><fieldset><legend>4. Where to send the figure<\/legend><p class=\"qf-f\"><label for=\"jqf-name\">Your name<\/label><input id=\"jqf-name\" data-qf=\"name\" type=\"text\" placeholder=\"\" required><\/p><p class=\"qf-f\"><label for=\"jqf-email\">Email<\/label><input id=\"jqf-email\" data-qf=\"email\" type=\"email\" placeholder=\"you@example.com\" required><\/p><p class=\"qf-f\"><label for=\"jqf-phone\">Phone<\/label><input id=\"jqf-phone\" data-qf=\"phone\" type=\"tel\" placeholder=\"04xx xxx xxx\"><\/p><p class=\"qf-f qf-w\"><label for=\"jqf-notes\">Anything we should know<\/label><textarea id=\"jqf-notes\" data-qf=\"notes\" rows=\"3\" placeholder=\"Access, pets, the two things that matter most\"><\/textarea><\/p><\/fieldset><div class=\"qf-out\"><h3>Your request, in plain English<\/h3><p class=\"qf-brief\" id=\"jqf-brief\">Choose a service and a property type and this line writes itself.<\/p><div class=\"cb\"><button class=\"btn btn-p\" type=\"submit\">Send this request <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg><\/button><a class=\"btn btn-s\" href=\"tel:+61488898917\">Call +61 488 898 917<\/a><\/div><p class=\"qf-note\">Opens your email with the request already written. Nothing is sent until you press send, and we reply with a fixed figure and a written scope.<\/p><\/div><\/form><script>(function(){\nvar f=document.getElementById(\"jqf\");if(!f)return;\nvar b=document.getElementById(\"jqf-brief\");\nfunction g(n){var e=f.querySelector('[data-qf=\"'+n+'\"]');return e?e.value.trim():\"\";}\nfunction ex(){return Array.prototype.filter.call(f.querySelectorAll('[data-qf=\"extra\"]'),\nfunction(c){return c.checked;}).map(function(c){return c.value.toLowerCase();});}\nfunction brief(){\nvar s=g(\"service\"),p=g(\"ptype\"),su=g(\"suburb\"),fr=g(\"frequency\"),bd=g(\"beds\"),ba=g(\"baths\"),d=g(\"date\"),x=ex();\nif(!s&&!p)return \"Choose a service and a property type and this line writes itself.\";\nvar t=(s||\"A clean\");\nif(fr&&fr!==\"One-off\")t+=\" on a \"+fr.toLowerCase()+\" roster\";else if(fr)t+=\" as a one-off\";\nif(p)t+=\", for \"+(\/^[aeiou]\/i.test(p)?\"an \":\"a \")+p.toLowerCase();\nif(bd)t+=\" with \"+(bd===\"Studio\"?\"a studio layout\":bd+\" bedroom\"+(bd===\"1\"?\"\":\"s\"));\nif(ba)t+=\" and \"+ba+\" bathroom\"+(ba===\"1\"?\"\":\"s\");\nif(su)t+=\" in \"+su;\nt+=\".\";\nif(x.length)t+=\" Please include \"+(x.length>1?x.slice(0,-1).join(\", \")+\" and \"+x[x.length-1]:x[0])+\".\";\nif(d)t+=\" Preferred date \"+d+\".\";\nreturn t;}\nfunction up(){b.textContent=brief();}\nf.addEventListener(\"input\",up);f.addEventListener(\"change\",up);up();\nf.addEventListener(\"submit\",function(e){e.preventDefault();\nvar body=\"QUOTE REQUEST\\n\\n\"+brief()+\"\\n\\nName: \"+g(\"name\")+\"\\nEmail: \"+g(\"email\")+\"\\nPhone: \"+g(\"phone\")+\"\\nNotes: \"+g(\"notes\")+\"\\n\";\nwindow.location.href=\"mailto:reception@jmlservices.com.au?subject=\"+encodeURIComponent(\"Quote request: \"+(g(\"service\")||\"cleaning\")+\" in \"+(g(\"suburb\")||\"Melbourne\"))+\"&body=\"+encodeURIComponent(body);});\n})();\n<\/script><div class=\"prose\"><p>If a field does not apply, leave it. A service and a suburb is enough to start a conversation, and anything missing gets asked rather than assumed. Your details are used to quote and nothing else, and under Australian law a paid service carries guarantees whatever a business writes in its own terms, which the <a href=\"https:\/\/www.accc.gov.au\/consumers\/buying-products-and-services\/consumer-guarantees\" rel=\"nofollow noopener\" target=\"_blank\">consumer guarantees<\/a> sets out plainly.<\/p><\/div><\/div><\/section><section class=\"sec alt\"><div class=\"wrap\"><div class=\"split\"><div class=\"media sticky\"><div class=\"mb\"><img loading=\"lazy\" src=\"https:\/\/stagingloom.com\/jml\/wp-content\/uploads\/2026\/10\/kitchen-island-stools-melbourne-1.webp\" width=\"1100\" height=\"1363\" alt=\"Kitchen island cleaned under a fixed-price scope in a Melbourne home\" loading=\"lazy\" decoding=\"async\"><div class=\"mtag\"><span class=\"mi\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M9 3h6l1 3H8z\"\/><rect x=\"4\" y=\"6\" width=\"16\" height=\"15\" rx=\"2\"\/><path d=\"M9 12h6M9 16h4\"\/><\/svg><\/span><span><b>Fixed means defined<\/b><span>A number you can hold us to needs a list behind it.<\/span><\/span><\/div><\/div><\/div><div class=\"sc\"><span class=\"eb\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M9 18h6M10 21h4\"\/><path d=\"M12 3a6 6 0 0 0-3.5 10.9c.6.5.9 1.2.9 1.9v.2h5.2v-.2c0-.7.3-1.4.9-1.9A6 6 0 0 0 12 3z\"\/><\/svg>The figure<\/span><h2>Why does a quote come back as one fixed figure?<\/h2><div class=\"ans\"><b>Short answer<\/b>Because a fixed figure makes the written scope the promise. Quote by the hour and you carry the risk of a slow visit, while care and sluggishness read identically on the invoice.<\/div><div class=\"prose\"><p>When a quote is a rate multiplied by an unknown, the only honest output is a range, and a range decides nothing between two companies. Fixing the figure forces the scope to be defined first, which is why ours arrive with a room by room list.<\/p><p>That list is the useful part. It says what is included, and just as importantly what is not: oven interiors, inside cupboards, windows and carpet all sit outside a routine clean. Reading that before the visit rather than after it removes the complaint we hear about other cleaners more than any other, which is an exclusion nobody mentioned.<\/p><p>The six things that actually move a figure are condition, wet areas, frequency, floor area, specific inclusions and access, and all six are explained in detail on <a href=\"\/pricing\/\">cleaning prices Melbourne<\/a>. For a single service in detail, read <a href=\"\/pricing\/house-cleaning-cost\/\">house cleaning cost<\/a> for domestic rosters, <a href=\"\/pricing\/end-of-lease-cleaning-cost\/\">end of lease cleaning cost<\/a> before a handover, or <a href=\"\/pricing\/carpet-cleaning-cost\/\">carpet cleaning cost<\/a> for fibre work.<\/p><\/div><\/div><\/div><\/div><\/section><section class=\"sec white\"><div class=\"wrap\"><div class=\"shead\"><span class=\"eb\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect x=\"3\" y=\"5\" width=\"18\" height=\"16\" rx=\"2\"\/><path d=\"M8 3v4M16 3v4M3 11h18\"\/><\/svg>After you send it<\/span><h2>What happens once you send the request?<\/h2><\/div><div class=\"ans\"><b>Short answer<\/b>We read it, ask anything missing, and send one figure with a room by room scope. You accept or you do not. If you accept, we confirm a date and a named cleaner, and nothing is paid until the work is done.<\/div><div class=\"steps c4\"><div><h3>We read it properly<\/h3><p>A person, not an auto-reply. If something is unclear we ask rather than guess high.<\/p><\/div><div><h3>One figure, one scope<\/h3><p>Fixed price, room by room list, exclusions named. Usually the same business day.<\/p><\/div><div><h3>You pick a date<\/h3><p>No deposit. Free to move it up to 24 hours beforehand.<\/p><\/div><div><h3>Pay after the clean<\/h3><p>Invoice on completion with the scope attached, so the two can be read together.<\/p><\/div><\/div><div class=\"prose\"><p>Availability is tightest in the last week of any month, because that is when most Melbourne leases end. If you are moving, send the request as soon as the handover date is known rather than once the removalist is booked.<\/p><\/div><\/div><\/section><section class=\"sec alt\"><div class=\"wrap\"><div class=\"shead\"><span class=\"eb\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg>Straight there<\/span><h2>Looking for a specific service?<\/h2><\/div><div class=\"ans\"><b>Short answer<\/b>Every service has its own page with the full room by room list, what sits outside the base scope, and the questions worth asking before you book. Start from whichever one you actually need.<\/div><div class=\"chips\"><a href=\"\/services\/house-cleaning-melbourne\/\">House cleaning<\/a><a href=\"\/services\/house-cleaning-melbourne\/regular-cleaning\/\">Regular cleaning<\/a><a href=\"\/services\/end-of-lease-cleaning-melbourne\/\">End of lease cleaning<\/a><a href=\"\/services\/deep-cleaning-melbourne\/\">Deep cleaning<\/a><a href=\"\/services\/carpet-cleaning-melbourne\/\">Carpet cleaning<\/a><a href=\"\/services\/upholstery-cleaning-melbourne\/\">Upholstery cleaning<\/a><a href=\"\/services\/oven-cleaning-melbourne\/\">Oven cleaning<\/a><a href=\"\/services\/commercial-cleaning-melbourne\/\">Commercial cleaning<\/a><a href=\"\/services\/ndis-cleaning-melbourne\/\">NDIS cleaning<\/a><a href=\"\/services\/airbnb-cleaning-melbourne\/\">Airbnb turnovers<\/a><a href=\"\/areas\/\">Every suburb we cover<\/a><a href=\"\/pricing\/\">All cleaning prices<\/a><\/div><\/div><\/section><section class=\"sec alt\"><div class=\"wrap\"><div class=\"faqhead\"><div class=\"shead row\"><div><span class=\"eb\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M9 18h6M10 21h4\"\/><path d=\"M12 3a6 6 0 0 0-3.5 10.9c.6.5.9 1.2.9 1.9v.2h5.2v-.2c0-.7.3-1.4.9-1.9A6 6 0 0 0 12 3z\"\/><\/svg>Questions<\/span><h2>Frequently asked questions about quotes and bookings<\/h2><\/div><p class=\"lead\">The three things people check before sending a request.<\/p><\/div><\/div><div class=\"faq f1\"><details class=\"fold\" open><summary>How quickly will I get a quote?<\/summary><div class=\"fb\"><p>Usually the same business day, and within a couple of hours for a straightforward residential request sent in the morning. Vacate cleans and commercial sites occasionally need a question or two answered first, because condition and access change the figure more than size does.<\/p><\/div><\/details><details class=\"fold\"><summary>Can I change or cancel after booking?<\/summary><div class=\"fb\"><p>Yes. Moving or cancelling a visit costs nothing up to 24 hours beforehand, and no contract term sits underneath it. Closer in than that, the first thing we try is a new date rather than a fee, because the only genuine cost to anybody is a cleaner whose day is already committed.<\/p><\/div><\/details><details class=\"fold\"><summary>How and when do I pay?<\/summary><div class=\"fb\"><p>After the clean, not before. There is no deposit on residential work. Invoices are issued on completion with the scope attached, so you are paying against a list you agreed to rather than a figure that arrived on its own.<\/p><\/div><\/details><\/div><\/div><\/section><section class=\"sec tight\"><div class=\"wrap\"><div class=\"shead\"><span class=\"eb\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg>Keep reading<\/span><h2>Where to go next<\/h2><\/div><div class=\"rel r1\"><a href=\"\/pricing\/\"><b>Cleaning Prices Melbourne<\/b><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg><\/a><\/div><\/div><\/section><section class=\"sec tight\"><div class=\"wrap\"><div class=\"cta\"><div><h2>Prefer to talk it through?<\/h2><p>The office line is open during business hours and somebody who can actually answer a scoping question picks it up. Otherwise send the form above and the figure comes back in writing, which is easier to compare against anybody else.<\/p><\/div><div class=\"cb\"><a class=\"btn btn-p\" href=\"\/booking\/\">Get an instant quote <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg><\/a><a class=\"btn btn-s\" href=\"\/contact\/\">Contact us<\/a><\/div><\/div><\/div><\/section>\n<\/div>\n<script type=\"application\/ld+json\">{\n \"@context\": \"https:\/\/schema.org\",\n \"@graph\": [\n  {\n   \"@type\": \"WebPage\",\n   \"@id\": \"https:\/\/jmlservices.com.au\/booking\/#webpage\",\n   \"url\": \"https:\/\/jmlservices.com.au\/booking\/\",\n   \"name\": \"Book a Cleaner Melbourne | Get an Instant Cleaning Quote\",\n   \"description\": \"Get an instant cleaning quote for Melbourne and book: choose the service, the property and the frequency, and a fixed figure with a written scope comes back.\",\n   \"inLanguage\": \"en-AU\",\n   \"isPartOf\": {\n    \"@id\": \"https:\/\/jmlservices.com.au\/#website\"\n   },\n   \"about\": {\n    \"@id\": \"https:\/\/jmlservices.com.au\/#business\"\n   },\n   \"breadcrumb\": {\n    \"@id\": \"https:\/\/jmlservices.com.au\/booking\/#breadcrumb\"\n   }\n  },\n  {\n   \"@type\": \"BreadcrumbList\",\n   \"@id\": \"https:\/\/jmlservices.com.au\/booking\/#breadcrumb\",\n   \"itemListElement\": [\n    {\n     \"@type\": \"ListItem\",\n     \"position\": 1,\n     \"name\": \"Home\",\n     \"item\": \"https:\/\/jmlservices.com.au\/\"\n    },\n    {\n     \"@type\": \"ListItem\",\n     \"position\": 2,\n     \"name\": \"Get a Quote and Book\",\n     \"item\": \"https:\/\/jmlservices.com.au\/booking\/\"\n    }\n   ]\n  },\n  {\n   \"@type\": \"FAQPage\",\n   \"@id\": \"https:\/\/jmlservices.com.au\/booking\/#faq\",\n   \"mainEntity\": [\n    {\n     \"@type\": \"Question\",\n     \"name\": \"How quickly will I get a quote?\",\n     \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Usually the same business day, and within a couple of hours for a straightforward residential request sent in the morning. Vacate cleans and commercial sites occasionally need a question or two answered first, because condition and access change the figure more than size does.\"\n     }\n    },\n    {\n     \"@type\": \"Question\",\n     \"name\": \"Can I change or cancel after booking?\",\n     \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Yes. Moving or cancelling a visit costs nothing up to 24 hours beforehand, and no contract term sits underneath it. Closer in than that, the first thing we try is a new date rather than a fee, because the only genuine cost to anybody is a cleaner whose day is already committed.\"\n     }\n    },\n    {\n     \"@type\": \"Question\",\n     \"name\": \"How and when do I pay?\",\n     \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"After the clean, not before. There is no deposit on residential work. Invoices are issued on completion with the scope attached, so you are paying against a list you agreed to rather than a figure that arrived on its own.\"\n     }\n    }\n   ]\n  }\n ]\n}<\/script>\n\n<!-- WEB_CONTENT_END -->\t\t\t\t<\/div>\n\t\t\n<\/div>\n\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-326","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Book a Cleaner Melbourne | Get an Instant Cleaning Quote<\/title>\n<meta name=\"description\" content=\"Get an instant cleaning quote for Melbourne and book: choose the service, the property and the frequency, and a fixed figure with a written scope comes back.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/stagingloom.com\/jml\/booking\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Book a Cleaner Melbourne | Get an Instant Cleaning Quote\" \/>\n<meta property=\"og:description\" content=\"Get an instant cleaning quote for Melbourne and book: choose the service, the property and the frequency, and a fixed figure with a written scope comes back.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/stagingloom.com\/jml\/booking\/\" \/>\n<meta property=\"og:site_name\" content=\"My website\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/stagingloom.com\\\/jml\\\/booking\\\/\",\"url\":\"https:\\\/\\\/stagingloom.com\\\/jml\\\/booking\\\/\",\"name\":\"Book a Cleaner Melbourne | Get an Instant Cleaning Quote\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/stagingloom.com\\\/jml\\\/#website\"},\"datePublished\":\"2026-09-28T20:35:25+00:00\",\"description\":\"Get an instant cleaning quote for Melbourne and book: choose the service, the property and the frequency, and a fixed figure with a written scope comes back.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/stagingloom.com\\\/jml\\\/booking\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/stagingloom.com\\\/jml\\\/booking\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/stagingloom.com\\\/jml\\\/booking\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/stagingloom.com\\\/jml\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Get an Instant Quote and Book\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/stagingloom.com\\\/jml\\\/#website\",\"url\":\"https:\\\/\\\/stagingloom.com\\\/jml\\\/\",\"name\":\"My website\",\"description\":\"My WordPress Blog\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/stagingloom.com\\\/jml\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Book a Cleaner Melbourne | Get an Instant Cleaning Quote","description":"Get an instant cleaning quote for Melbourne and book: choose the service, the property and the frequency, and a fixed figure with a written scope comes back.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/stagingloom.com\/jml\/booking\/","og_locale":"en_US","og_type":"article","og_title":"Book a Cleaner Melbourne | Get an Instant Cleaning Quote","og_description":"Get an instant cleaning quote for Melbourne and book: choose the service, the property and the frequency, and a fixed figure with a written scope comes back.","og_url":"https:\/\/stagingloom.com\/jml\/booking\/","og_site_name":"My website","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/stagingloom.com\/jml\/booking\/","url":"https:\/\/stagingloom.com\/jml\/booking\/","name":"Book a Cleaner Melbourne | Get an Instant Cleaning Quote","isPartOf":{"@id":"https:\/\/stagingloom.com\/jml\/#website"},"datePublished":"2026-09-28T20:35:25+00:00","description":"Get an instant cleaning quote for Melbourne and book: choose the service, the property and the frequency, and a fixed figure with a written scope comes back.","breadcrumb":{"@id":"https:\/\/stagingloom.com\/jml\/booking\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/stagingloom.com\/jml\/booking\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/stagingloom.com\/jml\/booking\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/stagingloom.com\/jml\/"},{"@type":"ListItem","position":2,"name":"Get an Instant Quote and Book"}]},{"@type":"WebSite","@id":"https:\/\/stagingloom.com\/jml\/#website","url":"https:\/\/stagingloom.com\/jml\/","name":"My website","description":"My WordPress Blog","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/stagingloom.com\/jml\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/stagingloom.com\/jml\/wp-json\/wp\/v2\/pages\/326","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/stagingloom.com\/jml\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/stagingloom.com\/jml\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/stagingloom.com\/jml\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/stagingloom.com\/jml\/wp-json\/wp\/v2\/comments?post=326"}],"version-history":[{"count":0,"href":"https:\/\/stagingloom.com\/jml\/wp-json\/wp\/v2\/pages\/326\/revisions"}],"wp:attachment":[{"href":"https:\/\/stagingloom.com\/jml\/wp-json\/wp\/v2\/media?parent=326"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}