Rose Cleaning Service logo on white background
Rose Cleaning Service logo on white background
#rcc-root{--rcc-blue:#EFEAE2;--rcc-blue-dark:#173C78;--rcc-light:#E8EFF9;--rcc-text:#123047;--rcc-muted:#5C6B7A;--rcc-border:#D3DEEA;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--rcc-text);line-height:1.4}
#rcc-root{--rcc-blue:#1F4E9C;--rcc-blue-dark:#173C78;--rcc-light:#E8EFF9;--rcc-text:#1B2A3A;--rcc-muted:#5C6B7A;--rcc-border:#D3DEEA;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--rcc-text);line-height:1.4} #rcc-root *{box-sizing:border-box} #rcc-root button,#rcc-root select,#rcc-root input{font-family:inherit} #rcc-root .rcc-open{background:var(--rcc-blue);color:#fff;border:0;border-radius:999px;padding:14px 28px;font-size:17px;font-weight:600;cursor:pointer;box-shadow:0 4px 14px rgba(31,78,156,.3);transition:background .15s,transform .15s} #rcc-root .rcc-open:hover{background:var(--rcc-blue-dark);transform:translateY(-1px)} #rcc-root .rcc-overlay{position:fixed;inset:0;background:rgba(15,30,50,.55);display:none;align-items:center;justify-content:center;padding:16px;z-index:999999} #rcc-root .rcc-overlay.show{display:flex} #rcc-root .rcc-modal{background:#fff;border-radius:16px;max-width:480px;width:100%;max-height:92vh;overflow-y:auto;padding:28px 24px 22px;position:relative;box-shadow:0 20px 50px rgba(0,0,0,.25)} #rcc-root .rcc-close{position:absolute;top:10px;right:14px;background:none;border:0;font-size:28px;color:var(--rcc-muted);cursor:pointer;line-height:1;padding:4px} #rcc-root h2{margin:0 0 2px;font-size:23px;color:var(--rcc-blue);font-weight:700} #rcc-root .rcc-sub{margin:0 0 20px;color:var(--rcc-muted);font-size:14px} #rcc-root .rcc-field{display:block;margin-bottom:16px} #rcc-root .rcc-label{display:block;font-size:14px;font-weight:600;margin-bottom:6px} #rcc-root select{width:100%;padding:11px 12px;border:1px solid var(--rcc-border);border-radius:10px;font-size:15px;background:#fff;color:var(--rcc-text)} #rcc-root select:focus,#rcc-root input:focus{outline:2px solid var(--rcc-blue);outline-offset:1px} #rcc-root .rcc-seg{display:flex;background:var(--rcc-light);border-radius:10px;padding:4px} #rcc-root .rcc-seg button{flex:1;border:0;background:none;padding:10px;border-radius:8px;font-size:15px;font-weight:600;color:var(--rcc-muted);cursor:pointer} #rcc-root .rcc-seg button.on{background:var(--rcc-blue);color:#fff} #rcc-root .rcc-extras{display:grid;grid-template-columns:1fr 1fr;gap:8px} #rcc-root .rcc-extras label,#rcc-root .rcc-win{display:flex;align-items:center;gap:8px;border:1px solid var(--rcc-border);border-radius:10px;padding:9px 10px;font-size:14px;cursor:pointer} #rcc-root .rcc-extras input{accent-color:var(--rcc-blue);width:16px;height:16px;margin:0;flex:none} #rcc-root .rcc-extras small,#rcc-root .rcc-win small{color:var(--rcc-muted)} #rcc-root .rcc-extras small{margin-left:auto;white-space:nowrap} #rcc-root .rcc-win{margin-top:8px;justify-content:space-between} #rcc-root .rcc-win input{width:70px;padding:7px 8px;border:1px solid var(--rcc-border);border-radius:8px;font-size:15px;text-align:center} #rcc-root .rcc-result{background:var(--rcc-light);border-radius:12px;padding:16px;text-align:center;margin:6px 0 14px} #rcc-root .rcc-result-label{display:block;font-size:13px;color:var(--rcc-muted);text-transform:uppercase;letter-spacing:.04em} #rcc-root .rcc-price{display:block;font-size:32px;font-weight:800;color:var(--rcc-blue);margin:4px 0} #rcc-root .rcc-note{display:block;font-size:13px;color:var(--rcc-muted);min-height:1em} #rcc-root .rcc-cta{display:block;text-align:center;background:var(--rcc-blue);color:#fff!important;text-decoration:none!important;padding:14px;border-radius:10px;font-weight:700;font-size:16px} #rcc-root .rcc-cta:hover{background:var(--rcc-blue-dark)} #rcc-root .rcc-disclaimer{font-size:12px;color:var(--rcc-muted);text-align:center;margin:10px 0 0} @media (max-width:420px){#rcc-root .rcc-extras{grid-template-columns:1fr}#rcc-root .rcc-modal{padding:24px 16px 18px}} (function(){ /* ======================= PRICES – EDIT HERE ======================= Each price is [without bed change, with bed change]. If both numbers are the same, the price is fixed. */ var MINIMUM = 160; var SIZES = [ { id: "s1", name: "1–2 bedrooms / 1 bathroom" }, { id: "s2", name: "3 bedrooms / 2 bathrooms" }, { id: "s3", name: "4 bedrooms / 2–3 bathrooms" }, { id: "s4", name: "5+ bedrooms", startingAt: true } ]; var SERVICES = [ { id: "weekly", name: "Weekly", label: "per visit", prices: { s1:[160,175], s2:[185,205], s3:[235,270], s4:[275,295] } }, { id: "biweekly", name: "Every 2 weeks", label: "per visit", prices: { s1:[180,195], s2:[205,230], s3:[260,300], s4:[305,330] } }, { id: "monthly", name: "Monthly", label: "per visit", prices: { s1:[200,200], s2:[250,250], s3:[320,320], s4:[395,395] } }, { id: "deep", name: "Deep Cleaning", label: "one-time", prices: { s1:[300,320], s2:[390,410], s3:[500,700], s4:[700,920] } }, { id: "move", name: "Move-in / Move-out", label: "one-time", prices: { s1:[600,640], s2:[780,820], s3:[1000,1400], s4:[1400,1840] } } ]; var EXTRAS = [ { id: "fridge", name: "Inside fridge", price: [50,50] }, { id: "oven", name: "Inside oven", price: [50,50] }, { id: "basement", name: "Basement", price: [50,75] }, { id: "organize", name: "Decluttering before cleaning", price: [30,30] } ]; var PRICE_PER_WINDOW = 10; var BOOKING_LINK = "https://rosecleaningservicepro.com/contact/"// put your booking page, contact form or WhatsApp link here /* ================================================================== */ var root = document.getElementById("rcc-root"); var $ = function(s){ return root.querySelector(s); }; var overlay = $("#rcc-overlay"); var bedChange = "no"; SERVICES.forEach(function(s, i){ var o = document.createElement("option"); o.value = s.id; o.textContent = s.name; if (s.id === "biweekly") o.selected = true; $("#rcc-service").appendChild(o); }); SIZES.forEach(function(s){ var o = document.createElement("option"); o.value = s.id; o.textContent = s.name; $("#rcc-size").appendChild(o); }); EXTRAS.forEach(function(e){ var l = document.createElement("label"); var tag = e.price[0] === e.price[1] ? "+$"+e.price[0] : "+$"+e.price[0]+"–"+e.price[1]; l.innerHTML = ' '+e.name+' '+tag+''; $("#rcc-extras").appendChild(l); }); $("#rcc-cta").href = BOOKING_LINK; function money(n){ return "$" + Math.round(n).toLocaleString("en-US"); } function calc(){ var svc = SERVICES.filter(function(s){ return s.id === $("#rcc-service").value; })[0]; var size = SIZES.filter(function(s){ return s.id === $("#rcc-size").value; })[0]; var base = svc.prices[size.id]; var b = bedChange === "yes" ? base[1] : base[0]; var lo = b, hi = b; root.querySelectorAll("#rcc-extras input:checked").forEach(function(c){ EXTRAS.forEach(function(e){ if (e.id === c.value){ lo += e.price[0]; hi += e.price[1]; } }); }); var win = Math.max(0, parseInt($("#rcc-win").value, 10) || 0); lo += win * PRICE_PER_WINDOW; hi += win * PRICE_PER_WINDOW; lo = Math.max(lo, MINIMUM); hi = Math.max(hi, MINIMUM); var txt = lo === hi ? money(lo) : money(lo) + " – " + money(hi); if (size.startingAt) txt = "From " + money(lo); $("#rcc-price").textContent = txt; $("#rcc-result-label").textContent = svc.label === "one-time" ? "Your estimate" : "Your estimate per cleaning"; $("#rcc-note").textContent = size.startingAt ? "Larger homes are quoted after a quick conversation." : ""; } root.querySelectorAll("#rcc-beds button").forEach(function(btn){ btn.addEventListener("click", function(){ root.querySelectorAll("#rcc-beds button").forEach(function(x){ x.classList.remove("on"); }); btn.classList.add("on"); bedChange = btn.getAttribute("data-v"); calc(); }); }); root.addEventListener("change", calc); $("#rcc-win").addEventListener("input", calc); function open(){ overlay.classList.add("show"); overlay.setAttribute("aria-hidden","false"); calc(); } function close(){ overlay.classList.remove("show"); overlay.setAttribute("aria-hidden","true"); } $("#rcc-open").addEventListener("click", open); $("#rcc-close").addEventListener("click", close); overlay.addEventListener("click", function(e){ if (e.target === overlay) close(); }); document.addEventListener("keydown", function(e){ if (e.key === "Escape") close(); }); calc(); })();

Trusted House Cleaning in Short Hills, NJ

Home to The Mall at Short Hills and some of Essex County’s largest estate properties, Short Hills residents expect an exceptional level of care for their homes. Rose Cleaning Service specializes in detailed cleaning for Short Hills’ spacious houses, working around busy family and travel schedules since 2018.

Our Cleaning Services in Short Hills

✓
Recurring House Cleaning
Weekly, bi-weekly, or monthly service for large homes and estates.
✓
Deep Cleaning
Comprehensive cleans for multi-room homes, ideal before or after entertaining.
✓
Move-In / Move-Out Cleaning
Full-property cleaning for Short Hills’ luxury real estate market.
✓
Commercial Cleaning
Offices and professional spaces throughout the area.

Why Short Hills Homeowners Choose Rose Cleaning Service

We’re a locally owned, insured cleaning company based in Newark, NJ, trusted by families across Short Hills and greater Millburn Township. With a 4.9-star rating and dozens of five-star reviews, we bring the same careful attention to every home, no matter the size.

Ready for a spotless home?

Call (862) 237-5370or request your free estimate today.