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(); })();

Proudly Serving Northern New Jersey

Rose Cleaning Service provides professional residential and commercial cleaning throughout Bergen, Passaic, Essex, Union, and Morris County, NJ. Browse our featured service area pages below, or give us a call to confirm coverage in your town.

Bergen County

Bergenfield, Dumont, Fair Lawn, Franklin Lakes, Glen Rock, New Milford, Oradell, Palisades Park, Paramus, Ridgewood, Saddle Brook, Saddle River, Teaneck, Tenafly, Upper Saddle River, Waldwick, Westwood, Wyckoff

Passaic County

Clifton, Little Falls, North Haledon, Pompton Lakes, Wanaque, Wayne

Essex County

Cedar Grove, Essex Fells, Fairfield, Livingston, Millburn, Montclair, Roseland, Short Hills

Union County

Cranford, Mountainside, Scotch Plains, Springfield, Summit

Morris County

Chatham Township, Madison

Don’t see your town listed? We’re always expanding our service area. Call us at (862) 237-5370 or request a free estimate to confirm availability near you.