Photographer Website HTML Template — Free CSS & JS Snippet

Photographer 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 photographer website page: Simple Sticky Navbar, Image Background Hero, Filterable Image Gallery, Pricing List Rows, Testimonial Carousel, Blog Post Cards, Product Grid, Contact Form With Details, Floating Social Share Bar, Minimal 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 7-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 Photographer Website That Lets the Photos Lead and the Packages Close the Booking

Screenshot of the Photographer Website Template snippet rendered live

For a photographer the work is the pitch, so this layout gets out of its way. A full-bleed image hero, a dark palette that makes photographs glow, and a filterable gallery where a visitor can look only at weddings, portraits or landscapes. What a gallery alone does not do is answer "how much?", so the page follows with session packages as clean price rows, followed by quotes from couples and clients that speak to the experience of being photographed, which is often what people are most nervous about.

Stories (blog cards) give search engines text to read and prospective clients a deeper look at a shoot. A small product grid lets you sell prints or presets. The booking form closes the page with the details a photographer needs: date, type of session and location.

Replace the sample images with your own best work and keep the gallery tight. It is the layout of the Photographer Website template; open it in the Website Builder to change fonts and colours, upload your images and export.

Built from website section templates

The 10 Sections Behind This Photographer 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 simple sticky bar so the booking link is always close while visitors browse the work
  2. Image Background Heroa full-bleed photograph as the hero: the first impression is the product itself
  3. Filterable Image Gallerya filterable gallery so a wedding couple sees weddings and a brand sees commercial work
  4. Pricing List Rowssession packages as price rows, so the cost question is answered without a phone call
  5. Testimonial Carouselquotes from clients about the experience of being photographed, which is what people worry about
  6. Blog Post Cardsstories from recent shoots, giving search engines text to read and clients a deeper look
  7. Product Grida print and preset grid for selling work beyond the shoot itself
  8. Contact Form With Detailsa booking form that asks for the date, session type and location you need to give a quote
  9. Floating Social Share Bara floating share bar so a favourite gallery is easy to send to a partner or family
  10. Minimal Footera minimal footer with your socials and copyright

Step by step

How to Use

  1. 1
    Open the template in the Website BuilderPress "Start using this template" to open the Photographer Website in the Website Builder. Everything is edited with forms in a side panel; no code is needed.
  2. 2
    Curate the gallery to your best twelveUpload only the images you want more of, tag each with its filter category, and let the strongest set the tone in the first row.
  3. 3
    Write your packages as real pricesEdit the price rows to your actual sessions, with what is included (hours, edited images, delivery time) so enquiries arrive qualified.
  4. 4
    Ask the booking questions you needAdjust the form fields to the details you need for a quote, and route submissions to your email through Formspree or your own endpoint.
  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

A portfolio and booking site in one
Show the work, list the packages and take bookings from a single page with no platform fees.
Wedding, portrait and brand photographers
Use the gallery filter to give each client type their own corner of the work.
Learn filterable galleries
See how a gallery filters with small amounts of JavaScript while the images stay lazy-loaded and responsive.

Got questions?

Frequently Asked Questions

Fewer than you think. A tight set of your best work, grouped by category, persuades more than an exhaustive archive.

Showing starting prices pre-qualifies enquiries and saves time on both sides. List what is included in each package so it is easy to compare.

Resize and compress images before uploading, and keep the hero image to a sensible width. The builder resizes uploaded images in the browser.

It is assembled from 10 templates in the free Website Section Templates library: Simple Sticky Navbar, Image Background Hero, Filterable Image Gallery, Pricing List Rows, Testimonial Carousel, Blog Post Cards, Product Grid, Contact Form With Details, Floating Social Share Bar, Minimal 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="smvnkxd8nh95v">
      <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="M14.5 4h-5L7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3l-2.5-3z" /><circle cx="12" cy="13" r="3" /></svg></span><span>Mira Lens</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="#pricing"><span>Sessions</span></a></li>
            <li data-menu-item><a class="nb-link" href="#blog"><span>Stories</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="#contact"><span>Contact</span></a></li>
          </ul>
          <div class="nb-actions" data-menu-item>
            <a class="st-btn nb-cta" href="#contact"><span>Book a session</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-image-background-hero" data-uid="smvnkxd8ns1c8">
      <div class="ib-bg" role="img" aria-label="Background photo" style="background-image:url('https://webdevpuneet.com/images/section-templates/hero-landscape.jpg')"></div>
      <div class="ib-shade" aria-hidden="true"></div>
      <div class="ib st-wrap">
        <div class="ib-copy">
          <span class="st-eyebrow ib-eyebrow" data-anim="item">Wedding &amp; portrait photography</span>
          <h1 class="ib-title" data-anim="item" data-anim-text>Honest photos of <span class="hl">your best days</span></h1>
          <p class="st-lead ib-lead" data-anim="item">Natural, unposed photography across Portugal and beyond, for couples, families and brands.</p>
          <div class="st-btns" data-anim="item">
            <a class="st-btn" href="#contact"><span>Check availability</span></a>
            <a class="st-btn st-btn--ghost ib-ghost" href="#pricing"><span>View packages</span></a>
          </div>
        </div>
        <div class="ib-stats" data-anim="media">
          <div><strong>400+</strong><span>weddings</span></div>
          <div><strong>12</strong><span>years</span></div>
          <div><strong>5.0</strong><span>average rating</span></div>
        </div>
      </div>
    </section>
    <section id="gallery" class="st st-gallery-grid" data-uid="smvnkxd8o0d4l">
      <div class="st-wrap">
        <header class="st-head">
          <p class="st-eyebrow" data-anim="item">Selected work</p>
          <h2 class="st-h2" data-anim="item" data-anim-text>Stories from <span class="hl">recent sessions</span></h2>
          <p class="st-lead" data-anim="item">Weddings, portraits and brand shoots from the last season. Pick a category or tap a photo to see it larger.</p>
        </header>
        <div class="gg-filters" data-gallery-filters role="group" aria-label="Filter photos" hidden data-all="Everything"></div>
        <ul class="gg-grid" data-gallery>
          <li class="gg-item" data-anim="item" data-tag="Weddings">
            <img class="gg-img" width="1200" height="900" loading="lazy" src="https://webdevpuneet.com/images/section-templates/tpl-wedding.jpg" alt="A wedding scene in soft purple tones">
            <p class="gg-cap"><strong class="gg-title">Quinta da Serra</strong><span class="gg-text">A June wedding above Sintra</span></p>
          </li>
          <li class="gg-item" data-anim="item" data-tag="Weddings">
            <img class="gg-img" width="1200" height="900" loading="lazy" src="https://webdevpuneet.com/images/section-templates/wed-dinner.jpg" alt="A long dinner table set with candles">
            <p class="gg-cap"><strong class="gg-title">Dinner for sixty</strong><span class="gg-text">Candles, long tables and slow courses</span></p>
          </li>
          <li class="gg-item" data-anim="item" data-tag="Weddings">
            <img class="gg-img" width="1200" height="900" loading="lazy" src="https://webdevpuneet.com/images/section-templates/wed-party.jpg" alt="String lights over a dance floor at night">
            <p class="gg-cap"><strong class="gg-title">The last dance</strong><span class="gg-text">Lisbon, an October evening</span></p>
          </li>
          <li class="gg-item" data-anim="item" data-tag="Portraits">
            <img class="gg-img" width="1200" height="900" loading="lazy" src="https://webdevpuneet.com/images/section-templates/tpl-nature.jpg" alt="Green hills at sunrise">
            <p class="gg-cap"><strong class="gg-title">Golden hour</strong><span class="gg-text">A family session on the hills at dawn</span></p>
          </li>
          <li class="gg-item" data-anim="item" data-tag="Portraits">
            <img class="gg-img" width="1200" height="900" loading="lazy" src="https://webdevpuneet.com/images/section-templates/tpl-salon.jpg" alt="A bright studio with arched mirrors">
            <p class="gg-cap"><strong class="gg-title">Studio light</strong><span class="gg-text">Natural window light, no flash</span></p>
          </li>
          <li class="gg-item" data-anim="item" data-tag="Brands">
            <img class="gg-img" width="1200" height="900" loading="lazy" src="https://webdevpuneet.com/images/section-templates/tpl-product.jpg" alt="A pair of headphones on a pale background">
            <p class="gg-cap"><strong class="gg-title">Product day</strong><span class="gg-text">A launch shoot for a small audio brand</span></p>
          </li>
        </ul>
      </div>
    </section>
    <section id="pricing" class="st st-pricing-rows" data-uid="smvnkxd8olswm">
      <div class="st-wrap">
        <div class="pl-top">
          <header class="st-head st-head--left pl-head">
            <p class="st-eyebrow" data-anim="item">Sessions</p>
            <h2 class="st-h2" data-anim="item" data-anim-text>Packages for <span class="hl">every story</span></h2>
            <p class="st-lead" data-anim="item">Every package includes an online gallery and full-resolution downloads.</p>
          </header>
        </div>
        <div class="pl-rows">
          <article class="pl-row" data-anim="item">
            <div class="pl-info">
              <h3 class="pl-name"><span>Portrait session</span></h3>
              <p class="pl-desc">One hour, one location, perfect for families and headshots.</p>
            </div>
            <ul class="pl-chips"><li>1 hour</li><li>40+ edited photos</li><li>Online gallery</li></ul>
            <p class="pl-price">
              <span class="st-pm"><b class="pl-amt">€350</b><span class="pl-per">per session</span></span>
              <span class="st-py"><b class="pl-amt">$790</b><span class="pl-per">per session</span></span>
            </p>
            <a class="st-btn" href="https://webdevpuneet.com/contact"><span>Book</span></a>
          </article>
          <article class="pl-row" data-anim="item">
            <div class="pl-info">
              <h3 class="pl-name"><span>Wedding day</span><span class="pl-badge">Most booked</span></h3>
              <p class="pl-desc">Full-day coverage from getting ready to the first dance.</p>
            </div>
            <ul class="pl-chips"><li>10 hours</li><li>600+ photos</li><li>Second shooter</li><li>Printed album</li></ul>
            <p class="pl-price">
              <span class="st-pm"><b class="pl-amt">€2,900</b><span class="pl-per">per wedding</span></span>
              <span class="st-py"><b class="pl-amt">$790</b><span class="pl-per">per wedding</span></span>
            </p>
            <a class="st-btn" href="https://webdevpuneet.com/contact"><span>Check dates</span></a>
          </article>
          <article class="pl-row" data-anim="item">
            <div class="pl-info">
              <h3 class="pl-name"><span>Brand shoot</span></h3>
              <p class="pl-desc">Lifestyle and product photos for your website and socials.</p>
            </div>
            <ul class="pl-chips"><li>Half day</li><li>80+ photos</li><li>Commercial licence</li></ul>
            <p class="pl-price">
              <span class="st-pm"><b class="pl-amt">€1,200</b><span class="pl-per">per shoot</span></span>
              <span class="st-py"><b class="pl-amt">$790</b><span class="pl-per">per shoot</span></span>
            </p>
            <a class="st-btn" href="https://webdevpuneet.com/contact"><span>Enquire</span></a>
          </article>
        </div>
      </div>
    </section>
    <section id="customers" class="st st-testimonials-carousel" data-uid="smvnkxd8o56pa">
      <div class="st-wrap">
        <div class="tc-top">
          <header class="st-head st-head--left tc-head">
            <p class="st-eyebrow" data-anim="item">Client love</p>
            <h2 class="st-h2" data-anim="item" data-anim-text>Moments they’ll <span class="hl">keep forever</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="blog" class="st st-blog-cards" data-uid="smvnkxd8o3mjf">
      <div class="st-wrap">
        <div class="bc-top">
          <header class="st-head st-head--left bc-head">
            <p class="st-eyebrow" data-anim="item">Stories</p>
            <h2 class="st-h2" data-anim="item" data-anim-text>Recent <span class="hl">weddings and shoots</span></h2>
          </header>
          <a class="bc-all" data-anim="item" href="/blog/"><span>View all posts</span> <span aria-hidden="true">→</span></a>
        </div>
        <ul class="bc-grid">
          <li class="bc-card" data-anim="item">
            <a class="bc-cover" tabindex="-1" aria-hidden="true" href="/blog/faster-pages/"><img width="1200" height="750" loading="lazy" src="https://webdevpuneet.com/images/section-templates/blog-4.jpg" alt=""></a>
            <p class="bc-meta"><span class="bc-cat">Engineering</span><span>Oct 14, 2026</span><span class="bc-sep" aria-hidden="true">·</span><span>8 min read</span></p>
            <h3 class="bc-title"><a href="/blog/faster-pages/"><span>How we cut page load time in half</span></a></h3>
            <p class="bc-excerpt">Lazy hydration, smarter caching and one surprising database index: the full story of our performance sprint.</p>
            <p class="bc-author"><img width="64" height="64" loading="lazy" src="https://webdevpuneet.com/images/section-templates/avatar-1.jpg" alt=""><span>Leo Martins</span></p>
          </li>
          <li class="bc-card" data-anim="item">
            <a class="bc-cover" tabindex="-1" aria-hidden="true" href="/blog/live-reports/"><img width="1200" height="750" loading="lazy" src="https://webdevpuneet.com/images/section-templates/blog-6.jpg" alt=""></a>
            <p class="bc-meta"><span class="bc-cat">Product</span><span>Oct 9, 2026</span><span class="bc-sep" aria-hidden="true">·</span><span>5 min read</span></p>
            <h3 class="bc-title"><a href="/blog/live-reports/"><span>Introducing live reports</span></a></h3>
            <p class="bc-excerpt">Dashboards that update as your team works, with no spreadsheets and no Friday afternoon status updates.</p>
            <p class="bc-author"><img width="64" height="64" loading="lazy" src="https://webdevpuneet.com/images/section-templates/avatar-5.jpg" alt=""><span>Nora Quinn</span></p>
          </li>
          <li class="bc-card" data-anim="item">
            <a class="bc-cover" tabindex="-1" aria-hidden="true" href="/blog/four-day-sprints/"><img width="1200" height="750" loading="lazy" src="https://webdevpuneet.com/images/section-templates/blog-1.jpg" alt=""></a>
            <p class="bc-meta"><span class="bc-cat">Culture</span><span>Oct 2, 2026</span><span class="bc-sep" aria-hidden="true">·</span><span>6 min read</span></p>
            <h3 class="bc-title"><a href="/blog/four-day-sprints/"><span>What four-day sprints taught us</span></a></h3>
            <p class="bc-excerpt">A year of shorter weeks: what changed in our output, our planning and how the team feels.</p>
            <p class="bc-author"><img width="64" height="64" loading="lazy" src="https://webdevpuneet.com/images/section-templates/avatar-6.jpg" alt=""><span>Aisha Bello</span></p>
          </li>
        </ul>
      </div>
    </section>
    <section class="st st-product-grid" data-uid="smvnkxd8ofred">
      <div class="st-wrap">
        <div class="pg-top">
          <header class="st-head st-head--left pg-head">
            <p class="st-eyebrow" data-anim="item">Prints &amp; albums</p>
            <h2 class="st-h2" data-anim="item" data-anim-text>Take <span class="hl">the day home</span></h2>
          </header>
          <a class="pg-all" data-anim="item" href="#contact"><span>See all prints</span> <span aria-hidden="true">→</span></a>
        </div>
        <ul class="pg-grid">
          <li class="pg-card" data-anim="item">
            <a class="pg-media" tabindex="-1" aria-hidden="true" href="#contact">
              <img class="pg-img" width="800" height="1000" loading="lazy" src="https://webdevpuneet.com/images/section-templates/tpl-nature.jpg" alt="Green hills at sunrise, framed print">
              <span class="pg-badge">Best seller</span>
            </a>
            <div class="pg-body">
              <h3 class="pg-name"><a href="#contact"><span>Golden hour print</span></a></h3>
              <p class="pg-text">Fine-art paper, 30 × 40 cm</p>
              <p class="pg-rating"><span aria-hidden="true">★</span> <span>4.9</span><span class="pg-reviews">(<span>64</span>)</span></p>
              <p class="pg-price"><strong>€85</strong></p>
              <a class="st-btn pg-btn" href="#contact"><span>Order a print</span></a>
            </div>
          </li>
          <li class="pg-card" data-anim="item">
            <a class="pg-media" tabindex="-1" aria-hidden="true" href="#contact">
              <img class="pg-img" width="800" height="1000" loading="lazy" src="https://webdevpuneet.com/images/section-templates/wed-dinner.jpg" alt="A candlelit wedding dinner table, framed print">
            </a>
            <div class="pg-body">
              <h3 class="pg-name"><a href="#contact"><span>Candlelit dinner print</span></a></h3>
              <p class="pg-text">Fine-art paper, 30 × 40 cm</p>
              <p class="pg-rating"><span aria-hidden="true">★</span> <span>4.8</span><span class="pg-reviews">(<span>41</span>)</span></p>
              <p class="pg-price"><strong>€85</strong></p>
              <a class="st-btn pg-btn" href="#contact"><span>Order a print</span></a>
            </div>
          </li>
          <li class="pg-card" data-anim="item">
            <a class="pg-media" tabindex="-1" aria-hidden="true" href="#contact">
              <img class="pg-img" width="800" height="1000" loading="lazy" src="https://webdevpuneet.com/images/section-templates/tpl-wedding.jpg" alt="A wedding album with a linen cover">
              <span class="pg-badge">New</span>
            </a>
            <div class="pg-body">
              <h3 class="pg-name"><a href="#contact"><span>Wedding album</span></a></h3>
              <p class="pg-text">30 pages, linen cover, lay-flat</p>
              <p class="pg-rating"><span aria-hidden="true">★</span> <span>5.0</span><span class="pg-reviews">(<span>27</span>)</span></p>
              <p class="pg-price"><strong>€420</strong></p>
              <a class="st-btn pg-btn" href="#contact"><span>Ask about albums</span></a>
            </div>
          </li>
          <li class="pg-card" data-anim="item">
            <a class="pg-media" tabindex="-1" aria-hidden="true" href="#contact">
              <img class="pg-img" width="800" height="1000" loading="lazy" src="https://webdevpuneet.com/images/section-templates/wed-party.jpg" alt="A gift voucher for a photo session">
            </a>
            <div class="pg-body">
              <h3 class="pg-name"><a href="#contact"><span>Session gift voucher</span></a></h3>
              <p class="pg-text">A portrait session for two</p>
              <p class="pg-price"><strong>€150</strong></p>
              <a class="st-btn pg-btn" href="#contact"><span>Buy a voucher</span></a>
            </div>
          </li>
        </ul>
      </div>
    </section>
    <section id="contact" class="st st-contact-split-form" data-uid="smvnkxd8ow1jf">
      <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">Contact</p>
            <h2 class="st-h2" data-anim="item" data-anim-text>Tell me about <span class="hl">your day</span></h2>
            <p class="st-lead" data-anim="item">Share your date, place and a little about you. I’ll reply with availability within 24 hours.</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>How can we help?</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>Check availability</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-floating-social-share" data-uid="smvnkxd8olwg4">
      <div class="ss" data-ss data-side="left" data-align="center" style="--ss-top:50%" data-mobile="bar" data-look="network" data-shape="attached" data-size="default" data-tips="on" data-start="open" data-copied="Link copied">
        <div class="ss-panel" role="group" aria-label="Share this page">
          <ul class="ss-list"><li class="ss-item"><a class="ss-btn" data-net="pinterest" data-share="https://www.pinterest.com/pin/create/button/?url={url}&amp;media={image}&amp;description={title}" href="https://www.pinterest.com/pin/create/button/" target="_blank" rel="noopener noreferrer" style="--c:#E60023" aria-label="Share on Pinterest (opens in a new tab)"><svg class="ss-ic" viewBox="0 0 24 24" width="22" height="22" aria-hidden="true" focusable="false" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="M10.600 18l1.400-6"/><path d="M9.600 12.800C8.700 10 10.300 7.500 12.800 7.500c2.200 0 3.500 1.500 3.500 3.300 0 2.400-1.400 4-3.200 4-.8 0-1.500-.4-1.700-1.100"/></svg><span class="ss-tip" aria-hidden="true">Pinterest</span></a></li><li class="ss-item"><a class="ss-btn" data-net="facebook" data-share="https://www.facebook.com/sharer/sharer.php?u={url}" href="https://www.facebook.com/sharer/sharer.php" target="_blank" rel="noopener noreferrer" style="--c:#1877F2" aria-label="Share on Facebook (opens in a new tab)"><svg class="ss-ic" viewBox="0 0 24 24" width="22" height="22" aria-hidden="true" focusable="false" fill="currentColor"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"/></svg><span class="ss-tip" aria-hidden="true">Facebook</span></a></li><li class="ss-item"><a class="ss-btn" data-net="x" data-share="https://x.com/intent/post?url={url}&amp;text={title}&amp;via={via}&amp;hashtags={tags}" href="https://x.com/intent/post" target="_blank" rel="noopener noreferrer" style="--c:#111111" aria-label="Share on X (opens in a new tab)"><svg class="ss-ic" viewBox="0 0 24 24" width="22" height="22" aria-hidden="true" focusable="false" fill="currentColor"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"/></svg><span class="ss-tip" aria-hidden="true">X</span></a></li><li class="ss-item"><button type="button" class="ss-btn" data-net="copy" style="--c:#0F7B3F" aria-label="Copy link"><svg class="ss-ic" viewBox="0 0 24 24" width="22" height="22" aria-hidden="true" focusable="false" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="13" height="13" x="8" y="8" rx="2.500"/><path d="M16 8V6.500A2.500 2.500 0 0 0 13.500 4h-7A2.500 2.500 0 0 0 4 6.500v7A2.500 2.500 0 0 0 6.500 16H8"/></svg><svg class="ss-ic ss-ic--done" viewBox="0 0 24 24" width="22" height="22" aria-hidden="true" focusable="false" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6 9 17l-5-5"/></svg><span class="ss-tip" aria-hidden="true">Copy link</span></button></li><li class="ss-item ss-item--hide"><button type="button" class="ss-hide" data-ss-hide aria-expanded="true" aria-label="Hide share buttons"><svg class="ss-ic ss-ic--hide" viewBox="0 0 24 24" width="22" height="22" aria-hidden="true" focusable="false" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m11 17-5-5 5-5"/><path d="m18 17-5-5 5-5"/></svg></button></li></ul>
        </div>
        <button type="button" class="ss-tab" data-ss-show aria-expanded="true" aria-label="Show share buttons"><svg class="ss-ic" viewBox="0 0 24 24" width="22" height="22" aria-hidden="true" focusable="false" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="18" cy="5" r="3"/><circle cx="6" cy="12" r="3"/><circle cx="18" cy="19" r="3"/><path d="m8.600 13.500 6.800 4M15.400 6.500l-6.800 4"/></svg><span class="ss-tab-text" aria-hidden="true">Share</span></button>
        <span class="ss-live" role="status" aria-live="polite"></span>
      </div>
    </section>
    <section class="st st-footer-minimal" data-uid="smvnkxd8oevnr">
      <footer class="st-wrap fm">
        <div class="fm-row" 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="M14.5 4h-5L7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3l-2.5-3z" /><circle cx="12" cy="13" r="3" /></svg></span><span>Mira Lens</span></span>
          </a>
          <nav aria-label="Footer"><ul class="fm-links"><li><a href="#pricing">Sessions</a></li><li><a href="#customers">Reviews</a></li><li><a href="#blog">Stories</a></li><li><a href="#contact">Contact</a></li></ul></nav>
          <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>
            </ul></div>
        </div>
        <p class="fm-copy">© 2026 Mira Lens Photography</p>
      </footer>
    </section>
Design your website