Local Service Business Website Template — Free Snippet

Local Service Business Website template · 10 website sections · Plain HTML, CSS & JS · Customise it in the Website Builder

What's included

Features

10 ready-made website sections assembled into one finished local service business website page: Simple Sticky Navbar, SaaS Split Hero, Icon Grid Features, How It Works Steps, Before & After Slider, Animated Stats Counters, Testimonial Carousel, FAQ Accordion, Contact Form With Details, Multi-Column Footer
Every section links to its own page in the Website Section Templates library, where you can edit it on its own
One theme drives the whole page (colours, fonts, corner radius, width), so changing the brand takes a minute
Container-query responsive: each section adapts to the width it is placed in, from phone to desktop
GSAP entrance animations and scroll effects load from a CDN, and switch off for visitors who prefer reduced motion
Also available as a 5-page website in the builder, sharing one navbar, footer and theme
Plain HTML, CSS and JavaScript: copy the code here or export it to React, Vue, Angular or Tailwind

About this UI Snippet

A Local Service Website That Earns the Phone Call: Trust First, Quote Form Last

Screenshot of the Local Service Business Website Template snippet rendered live

Someone looking for a plumber, cleaner or gardener is often in a hurry and wary of strangers. This layout puts trust ahead of design. The hero makes one clear promise with a quote button, the services grid shows what you do, and a "how booking works" step list answers the next question: what happens after I contact you? Before-and-after images prove the quality of the work, and animated counters (jobs done, years trading, average rating) give the numbers a stranger looks for.

Reviews in a carousel and a FAQ remove the last doubts: are you insured, do you give fixed quotes, how quickly can you come? The page ends on a contact form built to get a quote request with enough detail to reply to, plus your phone number and service area.

Replace the sample business with yours and keep the structure. It is the layout of the Local Service Business Website template; open it in the Website Builder to change copy, colours and photos and export.

Built from website section templates

The 10 Sections Behind This Local Service Business Website Page

This page is not one big block of code: it is stacked from ready-made sections in the free Website Section Templates library, in this order. Open any of them to edit it on its own, or start with the whole page.

  1. Simple Sticky Navbara sticky bar with your phone number and a Get a quote button, because many visitors call first
  2. SaaS Split Heroone clear promise and a quote button, with your service area stated
  3. Icon Grid Featureswhat you do, in plain terms: the jobs a customer would search for
  4. How It Works Stepshow booking works in three steps, answering what happens after someone gets in touch
  5. Before & After Sliderbefore-and-after photos that prove the quality of the work
  6. Animated Stats Counterscounters for jobs completed, years trading and average rating, the numbers a stranger looks for
  7. Testimonial Carouselreviews in a carousel, ideally with the job type and area so they feel local
  8. FAQ Accordionanswers on insurance, fixed quotes and call-out times, the last doubts before a call
  9. Contact Form With Detailsa quote form with job details, plus your phone number and service area
  10. Multi-Column Footera multi-column footer with areas covered, accreditations and legal links

Step by step

How to Use

  1. 1
    Open the template in the Website BuilderPress "Start using this template" to open the Local Service Business Website in the Website Builder. Everything is edited with forms in a side panel; no code is needed.
  2. 2
    Show your service area and phone numberAdd your real phone number to the navbar and hero and list the towns or postcodes you cover so local customers know you work near them.
  3. 3
    Use real before-and-after photosReplace the slider images with your own jobs, so the proof is true to your work and matches the services you list.
  4. 4
    Write honest answers in the FAQCover insurance, guarantees, how you price jobs and how fast you can attend, with answers that match how you actually work.
  5. 5
    Export and publishDownload one HTML file or a ZIP (or one HTML file per page for the multi-page version) and upload it to Netlify, Vercel, Cloudflare Pages, GitHub Pages or your own host. Or copy the code from this page and export it to React, Vue, Angular or Tailwind with the buttons above the editor.

Real-world uses

Common Use Cases

Plumbers, electricians, cleaners and gardeners
Give a local trade a credible web presence that wins calls and quote requests.
A page for one service in one area
Make a focused page for a single service and town, which suits local search and paid ads.
Learn a count-up and a quote form
See how animated counters and a request form with validation are built and made accessible.

Got questions?

Frequently Asked Questions

A phone number, your service area, a list of services, proof of work, reviews and an easy way to request a quote.

Set the contact form to send to Formspree or your own endpoint, which emails each request to you.

It tells customers what to expect after they get in touch, which lowers hesitation, especially for strangers letting someone into their home.

It is assembled from 10 templates in the free Website Section Templates library: Simple Sticky Navbar, SaaS Split Hero, Icon Grid Features, How It Works Steps, Before & After Slider, Animated Stats Counters, Testimonial Carousel, FAQ Accordion, Contact Form With Details, Multi-Column Footer. Each one has its own page where you can edit it separately.

It is the same page. Here you read and edit the HTML, CSS and JavaScript directly with a live preview; in the Website Builder you edit it with forms, change the theme once for the whole page, add pages and export a finished site.

Source Code


    <section class="st st-navbar-simple" data-uid="smvnkxdaru4mp">
      <header class="st-wrap nb">
        <a class="st-brand" href="#">
          <span class="st-brand-mark"><span class="st-brand-icon"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z" /><path d="M20 3v4" /><path d="M22 5h-4" /><path d="M4 17v2" /><path d="M5 18H3" /></svg></span><span>Sparkle &amp; Co</span></span>
        </a>
        <nav class="nb-nav" data-menu aria-label="Main">
          <ul class="nb-links">
            <li data-menu-item><a class="nb-link" href="#features"><span>Services</span></a></li>
            <li data-menu-item><a class="nb-link" href="#how-it-works"><span>How it works</span></a></li>
            <li data-menu-item><a class="nb-link" href="#customers"><span>Reviews</span></a></li>
            <li data-menu-item><a class="nb-link" href="#faq"><span>FAQ</span></a></li>
          </ul>
          <div class="nb-actions" data-menu-item>
            <a class="st-btn nb-cta" href="#contact"><span>Get a quote</span></a>
          </div>
        </nav>
        <button type="button" class="st-burger" data-menu-toggle aria-expanded="false" aria-label="Open menu"><span></span><span></span><span></span></button>
      </header>
      <i hidden data-sticky-flag></i>
    </section>
    <section class="st st-saas-split-hero" data-uid="smvnkxdaryuo4">
      <div class="sh st-wrap">
        <div class="sh-copy">
          <a class="st-pill sh-badge" data-anim="item" href="#features"><span>Insured &amp; background-checked cleaners</span></a>
          <h1 class="sh-title" data-anim="item" data-anim-text>A spotless home, <span class="hl">without lifting a finger</span></h1>
          <p class="st-lead sh-lead" data-anim="item">Trusted home and office cleaning across the city. Book in 60 seconds and love the result, or we’ll come back for free.</p>
          <div class="st-btns" data-anim="item">
            <a class="st-btn" href="#contact"><span>Get a free quote</span></a>
            <a class="st-btn st-btn--ghost" href="#features"><span>See services</span></a>
          </div>
          <p class="sh-proof" data-anim="item">★★★★★ 4.9 from 2,300+ local customers</p>
        </div>
        <div class="sh-media" data-anim="media">
          <div class="sh-frame"><img width="1200" height="820" src="https://webdevpuneet.com/images/section-templates/tpl-booking.png" alt="Booking calendar with an available slot selected"></div>
        </div>
      </div>
    </section>
    <section id="features" class="st st-features-icon-grid" data-uid="smvnkxdar37w9">
      <div class="st-wrap">
        <header class="st-head">
          <p class="st-eyebrow" data-anim="item">Services</p>
          <h2 class="st-h2" data-anim="item" data-anim-text>Cleaning for <span class="hl">every space</span></h2>
          <p class="st-lead" data-anim="item">Regular or one-off, homes or offices, always by the same friendly team.</p>
        </header>
        <div class="fg-grid">
          <article class="fg-card" data-anim="item">
            <span class="st-icon"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8" /><path d="M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z" /></svg></span>
            <h3 class="fg-title">Regular home cleaning</h3>
            <p class="fg-text">Weekly or fortnightly visits from your own cleaner.</p>
          </article>
          <article class="fg-card" data-anim="item">
            <span class="st-icon"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z" /><path d="M20 3v4" /><path d="M22 5h-4" /><path d="M4 17v2" /><path d="M5 18H3" /></svg></span>
            <h3 class="fg-title">Deep cleaning</h3>
            <p class="fg-text">Top-to-bottom cleans for spring or special occasions.</p>
          </article>
          <article class="fg-card" data-anim="item">
            <span class="st-icon"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2" /><path d="M15 18H9" /><path d="M19 18h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.624l-3.48-4.35A1 1 0 0 0 17.52 8H14" /><circle cx="17" cy="18" r="2" /><circle cx="7" cy="18" r="2" /></svg></span>
            <h3 class="fg-title">Move in / move out</h3>
            <p class="fg-text">Get your deposit back with an end-of-tenancy clean.</p>
          </article>
          <article class="fg-card" data-anim="item">
            <span class="st-icon"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z" /><path d="M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2" /><path d="M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2" /><path d="M10 6h4" /><path d="M10 10h4" /><path d="M10 14h4" /><path d="M10 18h4" /></svg></span>
            <h3 class="fg-title">Office cleaning</h3>
            <p class="fg-text">Early-morning or evening cleans that fit your hours.</p>
          </article>
          <article class="fg-card" data-anim="item">
            <span class="st-icon"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M11 20A7 7 0 0 1 9.8 6.1C15.5 5 17 4.48 19 2c1 2 2 4.18 2 8 0 5.5-4.78 10-10 10Z" /><path d="M2 21c0-3 1.85-5.36 5.08-6C9.5 14.52 12 13 13 12" /></svg></span>
            <h3 class="fg-title">Eco products</h3>
            <p class="fg-text">Non-toxic products, safe for kids and pets.</p>
          </article>
          <article class="fg-card" data-anim="item">
            <span class="st-icon"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z" /><path d="m9 12 2 2 4-4" /></svg></span>
            <h3 class="fg-title">Happiness guarantee</h3>
            <p class="fg-text">Not perfect? We’ll return within 24 hours, free.</p>
          </article>
        </div>
      </div>
    </section>
    <section id="how-it-works" class="st st-features-steps" data-uid="smvnkxdarnkq0">
      <div class="st-wrap">
        <header class="st-head">
          <p class="st-eyebrow" data-anim="item">How it works</p>
          <h2 class="st-h2" data-anim="item" data-anim-text>Booked in <span class="hl">three easy steps</span></h2>
          <p class="st-lead" data-anim="item">No phone calls needed, unless you’d like one.</p>
        </header>
        <ol class="fp-steps">
          <li class="fp-step" data-anim="item">
            <div class="fp-badge"><span class="fp-num" aria-hidden="true"></span><span class="st-icon"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z" /><path d="M14 2v4a2 2 0 0 0 2 2h4" /><path d="M10 9H8" /><path d="M16 13H8" /><path d="M16 17H8" /></svg></span></div>
            <h3 class="fp-title">Get a quote</h3>
            <p class="fp-text">Tell us about your space and get a fixed price instantly.</p>
          </li>
          <li class="fp-step" data-anim="item">
            <div class="fp-badge"><span class="fp-num" aria-hidden="true"></span><span class="st-icon"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M8 2v4" /><path d="M16 2v4" /><rect width="18" height="18" x="3" y="4" rx="2" /><path d="M3 10h18" /></svg></span></div>
            <h3 class="fp-title">Pick a time</h3>
            <p class="fp-text">Choose a day and time that suits you, even weekends.</p>
          </li>
          <li class="fp-step" data-anim="item">
            <div class="fp-badge"><span class="fp-num" aria-hidden="true"></span><span class="st-icon"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z" /><path d="M20 3v4" /><path d="M22 5h-4" /><path d="M4 17v2" /><path d="M5 18H3" /></svg></span></div>
            <h3 class="fp-title">Relax</h3>
            <p class="fp-text">Your vetted cleaner arrives with everything needed.</p>
          </li>
        </ol>
        <div class="fp-cta" data-anim="item">
          <a class="st-btn" href="https://webdevpuneet.com/signup"><span>Get a free quote</span></a>
          <p class="fp-note">Free for teams up to 10 people</p>
        </div>
      </div>
    </section>
    <section id="gallery" class="st st-before-after-slider" data-uid="smvnkxdar21xa">
      <div class="st-wrap">
        <header class="st-head">
          <p class="st-eyebrow" data-anim="item">The difference</p>
          <h2 class="st-h2" data-anim="item" data-anim-text>Spotless, <span class="hl">every time</span></h2>
          <p class="st-lead" data-anim="item">Drag the handle to see the same room before and after one of our visits.</p>
        </header>
        <ul class="ba-grid">
          <li class="ba-item" data-anim="item">
            <div class="ba-compare" data-compare>
              <img class="ba-img ba-after" width="1200" height="800" loading="lazy" src="https://webdevpuneet.com/images/section-templates/room-1.jpg" alt="After photo (sample image)">
              <img class="ba-img ba-before" width="1200" height="800" loading="lazy" src="https://webdevpuneet.com/images/section-templates/room-2.jpg" alt="Before photo (sample image)">
              <span class="ba-tag ba-tag-before">Before</span>
              <span class="ba-tag ba-tag-after">After</span>
              <span class="ba-handle" aria-hidden="true"><span class="ba-knob"><svg viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="m9 7-5 5 5 5M15 7l5 5-5 5"/></svg></span></span>
              <input class="ba-range" type="range" min="0" max="100" value="50" aria-label="Drag to compare before and after">
            </div>
            <h3 class="ba-title">Kitchen deep clean</h3>
            <p class="ba-cap">Four hours, two cleaners and an oven made new.</p>
          </li>
          <li class="ba-item" data-anim="item">
            <div class="ba-compare" data-compare>
              <img class="ba-img ba-after" width="1200" height="800" loading="lazy" src="https://webdevpuneet.com/images/section-templates/tpl-salon.jpg" alt="After photo (sample image)">
              <img class="ba-img ba-before" width="1200" height="800" loading="lazy" src="https://webdevpuneet.com/images/section-templates/tpl-restaurant.jpg" alt="Before photo (sample image)">
              <span class="ba-tag ba-tag-before">Before</span>
              <span class="ba-tag ba-tag-after">After</span>
              <span class="ba-handle" aria-hidden="true"><span class="ba-knob"><svg viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="m9 7-5 5 5 5M15 7l5 5-5 5"/></svg></span></span>
              <input class="ba-range" type="range" min="0" max="100" value="50" aria-label="Drag to compare before and after">
            </div>
            <h3 class="ba-title">Office, weekly clean</h3>
            <p class="ba-cap">Desks, floors and kitchenette ready for Monday.</p>
          </li>
        </ul>
      </div>
    </section>
    <section id="results" class="st st-stats-counters" data-uid="smvnkxdarg6vz">
      <div class="st-wrap">
        <header class="st-head">
          <p class="st-eyebrow" data-anim="item">Trusted locally</p>
          <h2 class="st-h2" data-anim="item" data-anim-text>Cleaning homes <span class="hl">since 2015</span></h2>
          <p class="st-lead" data-anim="item"></p>
        </header>
        <dl class="sc-grid">
          <div class="sc-stat" data-anim="item">
            <dt class="sc-label">Cleans completed</dt>
            <dd class="sc-value" data-count>18,000+</dd>
            <dd class="sc-note">and counting</dd>
          </div>
          <div class="sc-stat" data-anim="item">
            <dt class="sc-label">Average rating</dt>
            <dd class="sc-value" data-count>4.9/5</dd>
            <dd class="sc-note">2,300+ reviews</dd>
          </div>
          <div class="sc-stat" data-anim="item">
            <dt class="sc-label">To book online</dt>
            <dd class="sc-value" data-count>60 sec</dd>
            <dd class="sc-note">fixed prices</dd>
          </div>
          <div class="sc-stat" data-anim="item">
            <dt class="sc-label">Insured</dt>
            <dd class="sc-value" data-count>100%</dd>
            <dd class="sc-note">and vetted staff</dd>
          </div>
        </dl>
      </div>
    </section>
    <section id="customers" class="st st-testimonials-carousel" data-uid="smvnkxdarut6d">
      <div class="st-wrap">
        <div class="tc-top">
          <header class="st-head st-head--left tc-head">
            <p class="st-eyebrow" data-anim="item">Reviews</p>
            <h2 class="st-h2" data-anim="item" data-anim-text>Loved by <span class="hl">local families</span></h2>
            <p class="st-lead" data-anim="item">Thousands of teams plan and ship with us every day. Here is what a few of them say.</p>
          </header>
          <div class="tc-arrows" data-anim="item">
            <button type="button" class="tc-arrow" data-carousel-prev><span class="tc-sr">Previous testimonials</span><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m15 18-6-6 6-6"/></svg></button>
            <button type="button" class="tc-arrow" data-carousel-next><span class="tc-sr">Next testimonials</span><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m9 18 6-6-6-6"/></svg></button>
          </div>
        </div>
        <div class="tc-track" data-carousel tabindex="0" role="region" aria-label="Testimonials">
          <figure class="tc-card" data-anim="item">
            <p class="st-stars" role="img" aria-label="Rated 5 out of 5"><span aria-hidden="true">★★★★★</span></p>
            <blockquote class="tc-quote"><p>Our launch checklist used to live in five places. Now it lives in one, and we haven’t missed a step since.</p></blockquote>
            <figcaption><div class="st-person">
                <img class="st-avatar" width="96" height="96" loading="lazy" src="https://webdevpuneet.com/images/section-templates/avatar-5.jpg" alt="">
                <div><p class="st-person-name">Priya Raman</p><p class="st-person-role">Product Marketing, Orbit</p></div>
              </div></figcaption>
          </figure>
          <figure class="tc-card" data-anim="item">
            <p class="st-stars" role="img" aria-label="Rated 5 out of 5"><span aria-hidden="true">★★★★★</span></p>
            <blockquote class="tc-quote"><p>The best onboarding I’ve seen. Our whole team was productive on day one without a single training session.</p></blockquote>
            <figcaption><div class="st-person">
                <img class="st-avatar" width="96" height="96" loading="lazy" src="https://webdevpuneet.com/images/section-templates/avatar-4.jpg" alt="">
                <div><p class="st-person-name">Marcus Webb</p><p class="st-person-role">COO, Fernhill</p></div>
              </div></figcaption>
          </figure>
          <figure class="tc-card" data-anim="item">
            <p class="st-stars" role="img" aria-label="Rated 5 out of 5"><span aria-hidden="true">★★★★★</span></p>
            <blockquote class="tc-quote"><p>Reports that used to take me Friday afternoon now build themselves. I got my Fridays back.</p></blockquote>
            <figcaption><div class="st-person">
                <img class="st-avatar" width="96" height="96" loading="lazy" src="https://webdevpuneet.com/images/section-templates/avatar-3.jpg" alt="">
                <div><p class="st-person-name">Lena Fischer</p><p class="st-person-role">Project Lead, Alder &amp; Co</p></div>
              </div></figcaption>
          </figure>
          <figure class="tc-card" data-anim="item">
            <p class="st-stars" role="img" aria-label="Rated 5 out of 5"><span aria-hidden="true">★★★★★</span></p>
            <blockquote class="tc-quote"><p>It scales with us. Twelve people last year, ninety this year, and it still feels fast and simple.</p></blockquote>
            <figcaption><div class="st-person">
                <img class="st-avatar" width="96" height="96" loading="lazy" src="https://webdevpuneet.com/images/section-templates/avatar-7.jpg" alt="">
                <div><p class="st-person-name">Tom Alvarez</p><p class="st-person-role">VP Engineering, Quill</p></div>
              </div></figcaption>
          </figure>
          <figure class="tc-card" data-anim="item">
            <p class="st-stars" role="img" aria-label="Rated 5 out of 5"><span aria-hidden="true">★★★★★</span></p>
            <blockquote class="tc-quote"><p>Clients can follow progress with a view-only link. Fewer status emails, happier clients.</p></blockquote>
            <figcaption><div class="st-person">
                <img class="st-avatar" width="96" height="96" loading="lazy" src="https://webdevpuneet.com/images/section-templates/avatar-8.jpg" alt="">
                <div><p class="st-person-name">Grace Kim</p><p class="st-person-role">Agency Owner, Studio Kim</p></div>
              </div></figcaption>
          </figure>
        </div>
      </div>
    </section>
    <section id="faq" class="st st-faq-accordion" data-uid="smvnkxdarbjem">
      <div class="st-wrap">
        <header class="st-head">
          <p class="st-eyebrow" data-anim="item">FAQ</p>
          <h2 class="st-h2" data-anim="item" data-anim-text>Good to <span class="hl">know</span></h2>
          <p class="st-lead" data-anim="item">Everything you need to know about plans, billing and getting started.</p>
        </header>
        <div class="fq-list" data-accordion="single first">
          <details class="st-acc" data-anim="item">
            <summary class="st-acc-q"><span>Which areas do you cover?</span><span class="st-acc-icon" aria-hidden="true"></span></summary>
            <div class="st-acc-a"><p>The whole city and surrounding towns within 15 miles. Enter your postcode in the quote form to check.</p></div>
          </details>
          <details class="st-acc" data-anim="item">
            <summary class="st-acc-q"><span>Do I need to provide supplies?</span><span class="st-acc-icon" aria-hidden="true"></span></summary>
            <div class="st-acc-a"><p>No. Your cleaner brings eco-friendly products and equipment.</p></div>
          </details>
          <details class="st-acc" data-anim="item">
            <summary class="st-acc-q"><span>Are your cleaners insured?</span><span class="st-acc-icon" aria-hidden="true"></span></summary>
            <div class="st-acc-a"><p>Yes. Every cleaner is background-checked, trained and fully insured.</p></div>
          </details>
          <details class="st-acc" data-anim="item">
            <summary class="st-acc-q"><span>Can I cancel or reschedule?</span><span class="st-acc-icon" aria-hidden="true"></span></summary>
            <div class="st-acc-a"><p>Yes, free of charge with 24 hours’ notice.</p></div>
          </details>
        </div>
        <p class="fq-contact" data-anim="item"><span>Still have a question?</span> <a href="mailto:hello@webdevpuneet.com"><span>Talk to our team</span> <span aria-hidden="true">→</span></a></p>
      </div>
    </section>
    <section id="contact" class="st st-contact-split-form" data-uid="smvnkxdarsodq">
      <div class="st-wrap cs2">
        <div class="cs2-info">
          <header class="st-head st-head--left cs2-head">
            <p class="st-eyebrow" data-anim="item">Free quote</p>
            <h2 class="st-h2" data-anim="item" data-anim-text>Get your <span class="hl">fixed price</span></h2>
            <p class="st-lead" data-anim="item">Tell us about your home or office and we’ll reply with a fixed quote within the hour.</p>
          </header>
          <ul class="cs2-methods">
            <li class="cs2-method" data-anim="item">
              <span class="st-icon"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect width="20" height="16" x="2" y="4" rx="2" /><path d="m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7" /></svg></span>
              <div><p class="cs2-label">Email us</p><a class="cs2-value" href="mailto:hello@northstar.studio"><span>hello@northstar.studio</span></a></div>
            </li>
            <li class="cs2-method" data-anim="item">
              <span class="st-icon"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z" /></svg></span>
              <div><p class="cs2-label">Call us</p><a class="cs2-value" href="tel:+442079460958"><span>+44 20 7946 0958</span></a></div>
            </li>
            <li class="cs2-method" data-anim="item">
              <span class="st-icon"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0" /><circle cx="12" cy="10" r="3" /></svg></span>
              <div><p class="cs2-label">Visit us</p><a class="cs2-value" href="https://www.openstreetmap.org/search?query=Clerkenwell%20Road%20London"><span>12 Clerkenwell Road, London</span></a></div>
            </li>
            <li class="cs2-method" data-anim="item">
              <span class="st-icon"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="10" /><polyline points="12 6 12 12 16 14" /></svg></span>
              <div><p class="cs2-label">Office hours</p><p class="cs2-value">Mon–Fri, 9am–6pm GMT</p></div>
            </li>
          </ul>
        </div>
        <div class="cs2-card" data-anim="media">
          <form class="st-form" method="post" data-form action="https://formspree.io/f/your-form-id">
            <div class="st-form-fields" data-form-fields>
              <div class="st-form-row">
                <label class="st-field"><span>Your name</span><input name="name" type="text" required autocomplete="name"></label>
                <label class="st-field"><span>Email</span><input name="email" type="email" required autocomplete="email"></label>
              </div>
              <label class="st-field"><span>Your address and what needs cleaning</span><textarea name="message" rows="5" required></textarea></label>
              <input class="st-hp" type="text" name="_gotcha" tabindex="-1" autocomplete="off" aria-hidden="true">
              <button class="st-btn st-form-btn" type="submit"><span>Get my quote</span></button>
              <p class="st-form-note">We reply within one business day.</p>
              <p class="st-form-error" data-form-error hidden role="alert">Sorry, something went wrong. Please try again or email us directly.</p>
            </div>
            <div class="st-form-success" data-form-success hidden tabindex="-1" role="status">
              <span class="st-icon"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg></span>
              <h3>Thanks, message sent!</h3>
              <p>We’ll get back to you within one business day.</p>
            </div>
          </form>
        </div>
      </div>
    </section>
    <section class="st st-footer-columns" data-uid="smvnkxdargdd8">
      <footer class="st-wrap fo">
        <div class="fo-top">
          <div class="fo-brand" data-anim="item">
            <a class="st-brand" href="#">
              <span class="st-brand-mark"><span class="st-brand-icon"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z" /><path d="M20 3v4" /><path d="M22 5h-4" /><path d="M4 17v2" /><path d="M5 18H3" /></svg></span><span>Sparkle &amp; Co</span></span>
            </a>
            <p class="fo-tagline">Friendly, reliable cleaning for homes and offices since 2015.</p>
            <div><ul class="st-socials">
                <li><a class="st-social" href="https://x.com/" aria-label="X (Twitter)"><span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6 2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4-.9-4.2 4-6.6 7-3.8 1.1 0 3-1.2 3-1.2z" /></svg></span></a></li>
                <li><a class="st-social" href="https://www.linkedin.com/" aria-label="LinkedIn"><span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z" /><rect width="4" height="12" x="2" y="9" /><circle cx="4" cy="4" r="2" /></svg></span></a></li>
                <li><a class="st-social" href="https://github.com/" aria-label="GitHub"><span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4" /><path d="M9 18c-4.51 2-5-2-7-2" /></svg></span></a></li>
                <li><a class="st-social" href="https://www.youtube.com/" aria-label="YouTube"><span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M2.5 17a24.12 24.12 0 0 1 0-10 2 2 0 0 1 1.4-1.4 49.56 49.56 0 0 1 16.2 0A2 2 0 0 1 21.5 7a24.12 24.12 0 0 1 0 10 2 2 0 0 1-1.4 1.4 49.55 49.55 0 0 1-16.2 0A2 2 0 0 1 2.5 17" /><path d="m10 15 5-3-5-3z" /></svg></span></a></li>
              </ul></div>
          </div>
          <div class="fo-cols">
            <nav class="fo-col" data-anim="item" aria-label="Services">
              <h2 class="fo-col-title">Services</h2>
              <ul class="fo-links"><li><a href="#features">Home cleaning</a></li><li><a href="#features">Deep cleaning</a></li><li><a href="#features">Office cleaning</a></li></ul>
            </nav>
            <nav class="fo-col" data-anim="item" aria-label="Company">
              <h2 class="fo-col-title">Company</h2>
              <ul class="fo-links"><li><a href="#how-it-works">How it works</a></li><li><a href="#customers">Reviews</a></li><li><a href="#contact">Contact</a></li></ul>
            </nav>
          </div>
        </div>
        <div class="fo-bottom">
          <p class="fo-copy">© 2026 Sparkle &amp; Co Cleaning Ltd.</p>
          <ul class="fo-legal"><li><a href="/privacy/">Privacy</a></li><li><a href="/terms/">Terms</a></li><li><a href="/cookies/">Cookies</a></li></ul>
          <a class="fo-totop" href="#" data-totop><span>Back to top</span> <span aria-hidden="true">↑</span></a>
        </div>
      </footer>
    </section>
Design your website