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

Terms of Use

1. Terms

By accessing the Rose Cleaning Service website, you agree to be bound by these terms of service, all applicable laws and regulations, and agree that you are responsible for compliance with any failed local laws. If you do not agree to any of these terms, you are prohibited from using or accessing this website. The materials on this site are protected by copyright and trademark laws.

2. Use license

Permission is granted to temporarily download one copy of the materials (information or software) on Rose Cleaning Service web site for personal, non-commercial transitory viewing only. This is the grant of a license, not a transfer of title, and under this license you may not:

modify or copy the materials;
use the materials for any commercial purpose or public display (commercial or non-commercial);
attempt to decompile or reverse engineer any software content on the Rose Cleaning Service website;
remove any copyright or other proprietary notations from the materials; you
transfer the materials to another person or ‘mirror’ the materials on any other server.
2. This license will automatically terminate if you violate any of these restrictions and may be terminated by Rose Cleaning Service at any time. Upon ceasing to view these materials or upon expiration of this license, you must destroy all downloaded materials in your possession, whether in electronic or printed format.

3. Disclaimer

1. The materials on the Rose Cleaning Service website are provided “as is”. Rose Cleaning Service makes no warranties, express or implied, and hereby disclaims and disclaims all other warranties, including, without limitation, implied warranties or conditions of control, compliance with a particular specification, or non-infringement of intellectual or other property. . violation. of rights.
2. Furthermore, Rose Cleaning Service does not guarantee or make any representations regarding the accuracy, verifiable results or reliability of the use of the materials on its website or otherwise related to these materials or at websites linked to this website.

4. Limitations

In no event shall Rose Cleaning Service or its suppliers be liable for any damages (including, without limitation, damages for loss of data or profit or due to business interruption) arising out of the use or inability to use the materials on the Rose Cleaning Service website, even if Rose Cleaning Service or a Rose Cleaning Service authorized representative has been advised orally or in writing of the possibility of such damage. Because some jurisdictions do not allow limitation of implied warranties or limitation of liability for consequential or incidental damages, these restrictions may not apply to you.

5. Accuracy of materials

The materials appearing on Rose Cleaning Service website could include technical, typographical, or photographic errors. Rose Cleaning Service does not warrant that any of the materials on its website are accurate, complete, or current. Rose Cleaning Service may make changes to the materials contained on its website at any time without notice. Dupla Pintura does not, however, make any commitment to update the materials.

6. Links

Rose Cleaning Service has not reviewed all of the sites linked to its site and is not responsible for the content of any linked site. The inclusion of any link does not imply endorsement by Rose Cleaning Service of the site. Use of any linked site is at the user’s own risk.

7. Modifications

Rose Cleaning Service may refer to these terms of service on its website at any time without notice. By using this website, you agree to be bound by the current version of these terms of service.

8. Applicable Law

These terms and conditions are governed by and construed in accordance with the laws of Rose Cleaning Service and you irrevocably submit to the jurisdiction of the courts of that state or locality.