skip to main content
  • Page CSS: /* Target your specific template structure */ #main.container, .container, .row, .col-xs-12, .com-content-article.item-page { margin-top: 0 !important; padding-top: 0 !important; } /* Ensure full coverage */ body { margin: 0 !important; padding: 0 !important; } /* Pull content up if needed */ .com-content-article.item-page { margin-top: -15px !important; }:root{ --brand:#2fb673; --brand-600:#23945c; --ink:#111827; --ink-light:#374151; --muted:#4b5563; --white:#ffffff; --maxw:1140px; --radius:20px; --radius-sm:12px; --shadow:0 20px 40px rgba(0,0,0,.14); --shadow-lg:0 25px 50px rgba(0,0,0,.2); /* a bit tighter section padding */ --padY:clamp(16px,3.2vw,28px); --padX:clamp(18px,3.6vw,32px); --blue:linear-gradient(135deg,#123a47 0%, #1a4a57 100%); --hero-grey: linear-gradient(180deg,#E5ECF3 0%, #EEF3F8 55%, #F8FAFC 100%); } *{box-sizing:border-box} html,body{ margin:0; background:#fff; color:var(--ink); font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif; line-height:1.65; overflow-x:hidden; } .band{width:100%; padding-block:var(--padY)} .content-band,.contact-band{background:#fff} .inner{max-width:var(--maxw); margin-inline:auto; padding-inline:var(--padX)} /* Hero (full-bleed bg, centered) */ .hero-band{position:relative; background:transparent} .hero-band::before{ content:""; position:absolute; inset:0; left:50%; width:100vw; transform:translateX(-50%); background:var(--hero-grey); z-index:0; } .hero-band > .inner{position:relative; z-index:1} /* Type */ h1,h2,h3{margin:0 0 1rem; line-height:1.1; letter-spacing:-.02em; font-weight:800} .hero-band h1{font-size:clamp(36px,6vw,52px) !important} .content-band h2,.contact-band h2,.checklist-band h2,.split-band h2,.exp-band h2,.budget-band h2{font-size:clamp(26px,4.2vw,34px) !important} .content-band h3,.contact-band h3,.checklist-band h3,.split-band h3,.exp-band h3,.budget-band h3{font-size:clamp(20px,3.5vw,22px) !important} p{margin:0 0 1.1rem; font-size:clamp(16px,1.8vw,18px); color:var(--ink-light)} a{color:var(--brand-600); text-decoration:none} a:hover{text-decoration:underline} .muted{color:var(--muted)} /* Hero layout */ .hero{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(20px,4.2vw,40px); align-items:center; } .kicker{ display:inline-block; font-size:.875rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:#0d2a23; background:rgba(47,182,115,.15); border:1px solid rgba(47,182,115,.35); padding:.45rem .9rem; border-radius:999px; margin-bottom:.9rem; backdrop-filter:blur(10px); } .media-img{ border-radius:var(--radius); overflow:hidden; border:1px solid rgba(0,0,0,.08); background:#f5f7f6; box-shadow:var(--shadow-lg); aspect-ratio:4/3; max-height:420px; } .media-img img{width:100%; height:100%; object-fit:cover; display:block} /* Buttons */ .actions{ display:flex; flex-wrap:wrap; gap:.8rem; margin-top:.9rem; justify-content:flex-start; /* left on desktop */ } .btn{ display:inline-flex; align-items:center; justify-content:center; gap:.6rem; padding:.9rem 1.4rem; border-radius:999px; font-weight:800; border:2px solid transparent; box-shadow:var(--shadow); cursor:pointer; } .btn-primary{background:var(--brand); color:#062610; border-color:var(--brand)} .btn-primary:hover{background:var(--brand-600); border-color:var(--brand-600)} .btn-ghost{background:#fff; color:var(--ink); border:2px solid rgba(0,0,0,.12)} .btn-ghost:hover{background:#f1f5f4} /* CHECKLIST band */ .checklist-band{position:relative; background:transparent} .checklist-band::before{ content:""; position:absolute; inset:0; left:50%; width:100vw; transform:translateX(-50%); background:#E5E7EB; /* neutral grey */ z-index:0; } .checklist-band > .inner{position:relative; z-index:1} .check-intro{ max-width:56ch; color:var(--ink-light); margin-bottom:.6rem; } .checklist{ margin:0; padding:0; list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:10px 24px; } .checklist li{ display:flex; gap:10px; align-items:flex-start; background:#fff; border:1px solid rgba(0,0,0,.06); border-radius:16px; padding:10px 12px; box-shadow:0 6px 18px rgba(0,0,0,.06); } .checklist li::before{ content:"✓"; display:grid; place-items:center; width:22px; height:22px; min-width:22px; border-radius:999px; background:rgba(47,182,115,.18); border:1px solid rgba(47,182,115,.45); color:var(--brand); font-weight:900; line-height:1; transform:translateY(1px); } /* =========================== MATCH VACATION STYLE =========================== */ /* BUDGET band (full-bleed blue, split layout like Vacation, uniform heights) */ .budget-band{position:relative; color:#fff; background:transparent} .budget-band::before{ content:""; position:absolute; inset:0; left:50%; width:100vw; transform:translateX(-50%); background:var(--blue); z-index:0; } .budget-band > .inner{position:relative; z-index:1} /* Use the exact same grid for Budget + all Split sections */ .budget, .split{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(16px,3.6vw,32px); align-items:stretch; /* uniform row height */ } /* 👉 Move-In ONLY: vertically center text next to the image on wide screens */ .split.center-y{ align-items:center; } .budget h2,.budget h3{color:#fff} .budget p{color:#e8faf5} .budget .photo{ border-radius:0; overflow:hidden; border:none; box-shadow:none; height:100%; min-height:0; background:#0f2630; } .budget .photo img{width:100%; height:100%; object-fit:cover; display:block} /* SPLIT visuals */ .split-band{position:relative; background:transparent} .split-band::before{ content:""; position:absolute; inset:0; left:50%; width:100vw; transform:translateX(-50%); background:#ffffff; z-index:0; } .split-soft::before{ background:#f7faf8; } .split-band > .inner{position:relative; z-index:1} .split .photo{ border-radius:0; overflow:hidden; box-shadow:none; background:#eef4f2; height:100%; min-height:0; } .split .photo img{width:100%; height:100%; object-fit:cover; display:block} .split p{ color:var(--ink-light); } /* EXPERIENCE band (no image, subtle/fun background) */ .exp-band{position:relative; background:transparent} .exp-band::before{ content:""; position:absolute; inset:0; left:50%; width:100vw; transform:translateX(-50%); background: radial-gradient(1000px 500px at 10% 20%, rgba(47,182,115,.08), transparent 60%), radial-gradient(900px 450px at 90% 80%, rgba(18,58,71,.07), transparent 60%), #f7faf8; z-index:0; } .exp-band > .inner{ position:relative; z-index:1; text-align:center; max-width:900px; } /* Contact (single column Service Areas + Jobber) */ .contact-band{ position:relative; } .contact-band > .inner{ position:relative; z-index:1; } /* Service Areas + Jobber container: WHITE background (no blue) */ .service-areas{ background:#fff; color:var(--ink); border:1px solid rgba(0,0,0,.08); border-radius:var(--radius); padding:clamp(12px,2.8vw,18px); box-shadow:var(--shadow); } .service-areas h2, .service-areas h3{margin-top:0; color:var(--ink)} .service-areas ul{margin:0; padding-left:1.2rem; color:var(--ink-light)} .service-areas li{margin-bottom:.35rem} .map-embed{ margin-top:.6rem; border-radius:var(--radius-sm); overflow:hidden; border:1px solid rgba(0,0,0,.15); background:#fff; } .map-embed iframe{ width:100%; height:250px; /* shorter map height */ border:0; } /* a touch tighter on hero/contact bands */ .hero-band{ padding-top:clamp(28px,5vw,52px); padding-bottom:clamp(24px,4.5vw,46px) } .contact-band{ padding-top:clamp(24px,4.5vw,46px); padding-bottom:clamp(32px,6vw,68px) } /* === MOBILE/TABLET: stack sections, keep text LEFT, center buttons === */ @media (max-width: 968px){ .hero{grid-template-columns:1fr;} .media-img{max-width:620px; margin-inline:auto} .actions{ justify-content:center; } /* center buttons on mobile/tablet */ .checklist{ grid-template-columns:1fr; gap:10px; } .budget{ grid-template-columns:1fr; } .budget .photo{ order:-1; height: clamp(240px,56vw,360px); min-height:unset; } .split{ grid-template-columns:1fr; } /* left-aligned text on iPad/mobile */ .split .photo{ height: clamp(240px,56vw,360px); order:-1; /* image first when stacked */ } /* Reset the special centering when stacked */ .split.center-y{ align-items:unset; } /* Ensure text stays left on mobile/tablet */ .budget, .split { text-align:left; } /* Lists stay left-aligned on mobile/tablet */ .split ul, .split ol, .checklist, .checklist li{ text-align:left; } .split ul, .split ol{ margin-left:1.1rem; padding-left:.2rem; } }
Residential Cleaning

Residential Cleaning in Asheville, NC

At Asheville Pristine Clean, we believe your home deserves the same care and attention you would give it yourself—perhaps even more. With over 100,000 successfully completed jobs and growing daily, our professional team brings expertise and dedication to every residence we clean.

Customized Cleaning Solutions

Deep Clean / Move-Out Clean

Our comprehensive top-to-bottom service leaves no surface untouched:

  • Complete kitchen and bathroom cleaning, including inside appliances
  • Thorough dusting from ceiling to floor in all rooms
  • Removal of wall marks and window smudges
  • Cleaning of furniture tops and sides
  • Door and trim detailing
  • Deep floor cleaning and treatment

Perfect for moving in, moving out, or whenever your home needs a complete refresh.

Budget-Friendly Options

Time-Based Cleaning — Provide your priority list and choose how many hours you'd like us to work. We’ll start at the top and complete as many tasks as possible within your timeframe—so your most important areas always get attention while respecting your budget.

Rotational Cleaning — Select different areas for cleaning on a rotation schedule. For example, we might focus on bathrooms and kitchen during week two, then address bedrooms and living areas during week four.

Routine Maintenance

We begin with a comprehensive deep clean to establish your baseline of cleanliness. Then, we return on your preferred schedule for regular maintenance, keeping your home consistently fresh and clean.

There's nothing quite like coming home to a spotless house! With our routine cleaning service, you can experience that feeling regularly without lifting a finger.

Flexible Scheduling Options

Asheville Pristine Clean works around your life with cleaning services available:

  • Daily
  • Weekly
  • Bi-weekly
  • Monthly
  • Seasonal
  • Holiday preparation
  • Move-in/move-out

New Home Move-In Service

  1. We perform a deep clean before your boxes arrive.
  2. Once you're unpacked, we return for a follow-up cleaning.
  3. From there, we establish a convenient maintenance schedule.

You might never need to clean again—we've got you covered!

Experience the Pristine Difference

With Asheville Pristine Clean, you're not just getting a cleaning service—you're investing in your quality of life. Our highly-trained professionals use only non-toxic, eco-friendly products that are safe for your family, pets, and the environment.

Ready to transform your home? Contact us today at 828-215-9634 for a free estimate and discover why so many Asheville residents trust us with their homes.

Service Areas

  • Asheville & Buncombe County
  • Weaverville · Black Mountain
  • Arden · Fletcher · Candler
  • North Asheville · West Asheville