Gym & Fitness Website HTML Template — Free Snippet

Gym & Fitness Website template · 12 website sections · Plain HTML, CSS & JS · Customise it in the Website Builder

What's included

Features

12 ready-made website sections assembled into one finished gym & fitness website page: Simple Sticky Navbar, Image Background Hero, Icon Grid Features, Class Timetable, Three-Tier Pricing, Team Grid, Testimonial Marquee, Before & After Slider, FAQ Accordion, Gradient CTA Banner, Popup & Promo Modal, 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 10-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 Gym Website That Sells Memberships: Classes, Timetable, Coaches and a Free-Trial Offer

Screenshot of the Gym & Fitness Website Template snippet rendered live

People choosing a gym compare three things: what classes run when, what it costs, and whether they will fit in. The page is built around those. The icon grid lists what you offer, the class timetable lets a visitor see that a 6 pm Tuesday class exists (often the deciding fact), and the pricing section uses a monthly/yearly switch so the saving from annual membership is visible rather than buried in small print.

The belonging question is handled by people. Coaches appear in a grid with real photos, member reviews scroll by in a marquee and a before/after slider gives proof of results without a wall of testimonials. The FAQ then handles the usual blockers (contracts, freezing a membership, beginners), and a free-trial banner and popup push toward the action that converts best for gyms: coming in once.

Replace the black-and-lime palette with your brand colours in one place. This is the layout of the Gym & Fitness Website template; open it in the Website Builder to edit the timetable, prices and copy and export clean HTML.

Built from website section templates

The 12 Sections Behind This Gym & Fitness 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 a Free trial button that follows the visitor down the page
  2. Image Background Heroa bold black-and-lime hero with one promise and one free-trial button
  3. Icon Grid Featureswhat you offer in short blocks: classes, equipment, coaching and recovery
  4. Class Timetablethe timetable, because "is there a class after work?" is often the deciding question
  5. Three-Tier Pricingmemberships with a monthly/yearly switch that makes the annual saving visible
  6. Team Gridthe coaches with real photos, so a nervous beginner meets a person before the first visit
  7. Testimonial Marqueemember reviews in a marquee, social proof that is seen even without stopping to read
  8. Before & After Slidera before-and-after slider that shows results without a wall of testimonials
  9. FAQ Accordionanswers on contracts, freezing a membership and starting as a beginner
  10. Gradient CTA Bannera gradient banner that closes on the free-trial offer
  11. Popup & Promo Modala promo popup for a joining offer or a challenge, easy to turn off
  12. Minimal Footera minimal footer with address, opening hours and socials

Step by step

How to Use

  1. 1
    Open the template in the Website BuilderPress "Start using this template" to open the Gym & Fitness Website in the Website Builder. Everything is edited with forms in a side panel; no code is needed.
  2. 2
    Rebuild the timetable with your real classesEdit the class timetable day by day with real times, class names and coaches, and keep it as text so it stays searchable and easy to update.
  3. 3
    Set the membership prices and the annual savingEdit the three tiers with your actual prices, check the yearly toggle shows the true saving and highlight the plan you most want people to choose.
  4. 4
    Show real coaches and real resultsAdd photos and short bios of your coaches, and use genuine before-and-after images with the member's permission.
  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 site for a gym, studio or boutique class brand
Sell memberships and free trials with a timetable and pricing visitors can understand in one scroll.
A personal trainer or small group page
Swap the class timetable for your training slots and use the coaches grid to present yourself.
Learn a pricing toggle and a before/after slider
See how a billing switch and an image-comparison slider are built with a few lines of JavaScript.

Got questions?

Frequently Asked Questions

A visible timetable, clear prices, real coaches and an easy trial offer. Visitors want to know they can fit in and what it costs.

Open the template in the Website Builder and edit each day and class as list items in the side panel; no code changes are needed.

Yes. The pricing section has a monthly/yearly switch; enter both prices for each tier and the toggle swaps them.

It is assembled from 12 templates in the free Website Section Templates library: Simple Sticky Navbar, Image Background Hero, Icon Grid Features, Class Timetable, Three-Tier Pricing, Team Grid, Testimonial Marquee, Before & After Slider, FAQ Accordion, Gradient CTA Banner, Popup & Promo Modal, 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="smvnkxda1r27m">
      <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="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z" /></svg></span><span>IRONHOUSE</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>Classes</span></a></li>
            <li data-menu-item><a class="nb-link" href="#timetable"><span>Timetable</span></a></li>
            <li data-menu-item><a class="nb-link" href="#pricing"><span>Membership</span></a></li>
            <li data-menu-item><a class="nb-link" href="#team"><span>Coaches</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="nb-login" href="https://webdevpuneet.com/login"><span>Member login</span></a>
            <a class="st-btn nb-cta" href="#pricing"><span>Free trial</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="smvnkxda2wh49">
      <div class="ib-bg" role="img" aria-label="Background photo" style="background-image:url('https://webdevpuneet.com/images/section-templates/tpl-fitness.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">Strength · Conditioning · Community</span>
          <h1 class="ib-title" data-anim="item" data-anim-text>Stronger every <span class="hl">single week</span></h1>
          <p class="st-lead ib-lead" data-anim="item">Coached classes, open gym and a community that shows up. Your first week is on us.</p>
          <div class="st-btns" data-anim="item">
            <a class="st-btn" href="#pricing"><span>Start free trial</span></a>
            <a class="st-btn st-btn--ghost ib-ghost" href="#features"><span>See classes</span></a>
          </div>
        </div>
        <div class="ib-stats" data-anim="media">
          <div><strong>60+</strong><span>classes a week</span></div>
          <div><strong>24/7</strong><span>open gym</span></div>
          <div><strong>900</strong><span>members</span></div>
        </div>
      </div>
    </section>
    <section id="features" class="st st-features-icon-grid" data-uid="smvnkxda2n9kw">
      <div class="st-wrap">
        <header class="st-head">
          <p class="st-eyebrow" data-anim="item">Classes</p>
          <h2 class="st-h2" data-anim="item" data-anim-text>Find <span class="hl">your training</span></h2>
          <p class="st-lead" data-anim="item">Every class is coached and scaled to your level.</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="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z" /></svg></span>
            <h3 class="fg-title">HIIT</h3>
            <p class="fg-text">45 minutes of intervals that leave you buzzing.</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"><polyline points="22 7 13.5 15.5 8.5 10.5 2 17" /><polyline points="16 7 22 7 22 13" /></svg></span>
            <h3 class="fg-title">Strength</h3>
            <p class="fg-text">Barbell programming with progress tracked every week.</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="M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z" /></svg></span>
            <h3 class="fg-title">Conditioning</h3>
            <p class="fg-text">Rowing, bikes and sleds for a stronger engine.</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="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2" /><circle cx="9" cy="7" r="4" /><path d="M22 21v-2a4 4 0 0 0-3-3.87" /><path d="M16 3.13a4 4 0 0 1 0 7.75" /></svg></span>
            <h3 class="fg-title">Bootcamp</h3>
            <p class="fg-text">Outdoor group sessions, rain or shine.</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">Mobility</h3>
            <p class="fg-text">Stretch, recover and move better.</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"><circle cx="12" cy="12" r="10" /><circle cx="12" cy="12" r="6" /><circle cx="12" cy="12" r="2" /></svg></span>
            <h3 class="fg-title">Personal training</h3>
            <p class="fg-text">One-to-one coaching built around your goals.</p>
          </article>
        </div>
      </div>
    </section>
    <section id="timetable" class="st st-class-timetable" data-uid="smvnkxda23u0q">
      <div class="st-wrap">
        <header class="st-head">
          <p class="st-eyebrow" data-anim="item">Timetable</p>
          <h2 class="st-h2" data-anim="item" data-anim-text>This week at <span class="hl">IRONHOUSE</span></h2>
          <p class="st-lead" data-anim="item">Coached classes from 6:30am to 8pm. Book your spot in the app or at the front desk.</p>
        </header>
        <div class="tt-box" data-anim="media">
          <table class="tt">
            <thead>
              <tr><th scope="col">Day</th><th scope="col">Time</th><th scope="col">Class</th><th scope="col">Coach</th><th scope="col">Level</th></tr>
            </thead>
            <tbody>
              <tr class="tt-row">
                <td class="tt-day" data-label="Day">Monday</td>
                <td class="tt-time" data-label="Time">06:30 – 07:15</td>
                <th class="tt-name" scope="row" data-label="Class">HIIT Express</th>
                <td class="tt-coach" data-label="Coach">Zara Ahmed</td>
                <td class="tt-level-cell" data-label="Level"><span class="tt-level">All levels</span></td>
              </tr>
              <tr class="tt-row">
                <td class="tt-day" data-label="Day">Monday</td>
                <td class="tt-time" data-label="Time">18:30 – 19:30</td>
                <th class="tt-name" scope="row" data-label="Class">Strength Foundations</th>
                <td class="tt-coach" data-label="Coach">Marcus Webb</td>
                <td class="tt-level-cell" data-label="Level"><span class="tt-level">Beginner</span></td>
              </tr>
              <tr class="tt-row">
                <td class="tt-day" data-label="Day">Tuesday</td>
                <td class="tt-time" data-label="Time">07:00 – 07:45</td>
                <th class="tt-name" scope="row" data-label="Class">Mobility &amp; Core</th>
                <td class="tt-coach" data-label="Coach">Lena Fischer</td>
                <td class="tt-level-cell" data-label="Level"><span class="tt-level">All levels</span></td>
              </tr>
              <tr class="tt-row">
                <td class="tt-day" data-label="Day">Wednesday</td>
                <td class="tt-time" data-label="Time">18:00 – 19:00</td>
                <th class="tt-name" scope="row" data-label="Class">Barbell Club</th>
                <td class="tt-coach" data-label="Coach">Marcus Webb</td>
                <td class="tt-level-cell" data-label="Level"><span class="tt-level">Advanced</span></td>
              </tr>
              <tr class="tt-row">
                <td class="tt-day" data-label="Day">Thursday</td>
                <td class="tt-time" data-label="Time">12:15 – 12:45</td>
                <th class="tt-name" scope="row" data-label="Class">Lunch Burn</th>
                <td class="tt-coach" data-label="Coach">Ben Carter</td>
                <td class="tt-level-cell" data-label="Level"><span class="tt-level">All levels</span></td>
              </tr>
              <tr class="tt-row">
                <td class="tt-day" data-label="Day">Saturday</td>
                <td class="tt-time" data-label="Time">09:00 – 10:00</td>
                <th class="tt-name" scope="row" data-label="Class">Outdoor Bootcamp</th>
                <td class="tt-coach" data-label="Coach">Zara Ahmed</td>
                <td class="tt-level-cell" data-label="Level"><span class="tt-level">Intermediate</span></td>
              </tr>
            </tbody>
          </table>
        </div>
        <div class="tt-foot" data-anim="item">
          <p class="tt-note">Arrive 10 minutes early for your first class. Timetable changes are posted in the app.</p>
          <a class="st-btn" href="#pricing"><span>Start free trial</span></a>
        </div>
      </div>
    </section>
    <section id="pricing" class="st st-pricing-three-tier" data-uid="smvnkxda2frpu">
      <div class="st-wrap">
        <header class="st-head">
          <p class="st-eyebrow" data-anim="item">Membership</p>
          <h2 class="st-h2" data-anim="item" data-anim-text>Simple, <span class="hl">flexible</span> plans</h2>
          <p class="st-lead" data-anim="item">No joining fee. Cancel any time with 30 days’ notice.</p>
          <div class="st-billing" data-anim="item" role="group" aria-label="Billing period">
            <button type="button" class="st-bill-btn" data-billing="monthly" aria-pressed="true"><span class="st-bill-pill" aria-hidden="true"></span><span>Monthly</span></button>
            <button type="button" class="st-bill-btn" data-billing="yearly" aria-pressed="false"><span>Yearly</span><span class="st-save">Save 20%</span></button>
          </div>
        </header>
        <div class="p3-grid">
          <article class="p3-card" data-anim="item">
            <h3 class="p3-name">Open Gym</h3>
            <p class="p3-desc">Train on your own schedule.</p>
            <p class="p3-price">
              <span class="st-pm"><b class="p3-amt">£39</b><span class="p3-per">/month</span></span>
              <span class="st-py"><b class="p3-amt">£32</b><span class="p3-per">/month, billed yearly</span></span>
            </p>
            <a class="st-btn p3-btn" href="https://webdevpuneet.com/signup"><span>Get started</span></a>
            <ul class="st-checks p3-list"><li>24/7 gym access</li><li>Free induction</li><li>App workouts</li></ul>
          </article>
          <article class="p3-card" data-anim="item">
            <span class="p3-badge">Most popular</span>
            <h3 class="p3-name">Unlimited</h3>
            <p class="p3-desc">All classes and open gym.</p>
            <p class="p3-price">
              <span class="st-pm"><b class="p3-amt">£79</b><span class="p3-per">/month</span></span>
              <span class="st-py"><b class="p3-amt">£65</b><span class="p3-per">/month, billed yearly</span></span>
            </p>
            <a class="st-btn p3-btn" href="https://webdevpuneet.com/signup"><span>Start free trial</span></a>
            <ul class="st-checks p3-list"><li>Unlimited classes</li><li>24/7 gym access</li><li>Monthly progress check</li><li>Member events</li></ul>
          </article>
          <article class="p3-card" data-anim="item">
            <h3 class="p3-name">Coached</h3>
            <p class="p3-desc">Unlimited plus personal training.</p>
            <p class="p3-price">
              <span class="st-pm"><b class="p3-amt">£149</b><span class="p3-per">/month</span></span>
              <span class="st-py"><b class="p3-amt">£125</b><span class="p3-per">/month, billed yearly</span></span>
            </p>
            <a class="st-btn p3-btn" href="https://webdevpuneet.com/signup"><span>Book a consult</span></a>
            <ul class="st-checks p3-list"><li>Everything in Unlimited</li><li>4 PT sessions a month</li><li>Nutrition plan</li></ul>
          </article>
        </div>
        <p class="p3-note" data-anim="item">Students and NHS staff get 20% off. Prices include VAT.</p>
      </div>
    </section>
    <section id="team" class="st st-team-grid" data-uid="smvnkxda2vy3e">
      <div class="st-wrap">
        <header class="st-head">
          <p class="st-eyebrow" data-anim="item">Coaches</p>
          <h2 class="st-h2" data-anim="item" data-anim-text>Coaches who <span class="hl">care</span></h2>
          <p class="st-lead" data-anim="item">Qualified, experienced and genuinely invested in your progress.</p>
        </header>
        <ul class="tm2-grid">
          <li class="tm2-card" data-anim="item">
            <div class="tm2-photo">
              <img width="400" height="400" loading="lazy" src="https://webdevpuneet.com/images/section-templates/avatar-4.jpg" alt="">
              <div class="tm2-social">
              </div>
            </div>
            <h3 class="tm2-name">Marcus Webb</h3>
            <p class="tm2-role">Head Coach</p>
            <p class="tm2-bio">Strength &amp; conditioning, 10 years coaching.</p>
          </li>
          <li class="tm2-card" data-anim="item">
            <div class="tm2-photo">
              <img width="400" height="400" loading="lazy" src="https://webdevpuneet.com/images/section-templates/avatar-2.jpg" alt="">
              <div class="tm2-social">
              </div>
            </div>
            <h3 class="tm2-name">Zara Ahmed</h3>
            <p class="tm2-role">HIIT &amp; Bootcamp</p>
            <p class="tm2-bio">Brings the energy at 6am.</p>
          </li>
          <li class="tm2-card" data-anim="item">
            <div class="tm2-photo">
              <img width="400" height="400" loading="lazy" src="https://webdevpuneet.com/images/section-templates/avatar-7.jpg" alt="">
              <div class="tm2-social">
              </div>
            </div>
            <h3 class="tm2-name">Ben Carter</h3>
            <p class="tm2-role">Personal Trainer</p>
            <p class="tm2-bio">Specialist in fat loss and rehab.</p>
          </li>
          <li class="tm2-card" data-anim="item">
            <div class="tm2-photo">
              <img width="400" height="400" loading="lazy" src="https://webdevpuneet.com/images/section-templates/avatar-3.jpg" alt="">
              <div class="tm2-social">
              </div>
            </div>
            <h3 class="tm2-name">Lena Fischer</h3>
            <p class="tm2-role">Mobility Coach</p>
            <p class="tm2-bio">Yoga and movement teacher.</p>
          </li>
        </ul>
      </div>
    </section>
    <section id="customers" class="st st-testimonials-marquee" data-uid="smvnkxda2lowv">
      <div class="st-wrap">
        <header class="st-head">
          <p class="st-eyebrow" data-anim="item">Members</p>
          <h2 class="st-h2" data-anim="item" data-anim-text>Results that <span class="hl">speak</span></h2>
          <p class="st-lead" data-anim="item">★ 4.9 from 900+ member reviews</p>
        </header>
      </div>
      <div class="tm-rows" data-anim="media">
        <div class="tm-row" role="region" aria-label="Testimonials" tabindex="0">
          <div class="tm-track" data-marquee data-speed="38">
            <figure class="tm-card">
              <p class="st-stars" role="img" aria-label="Rated 5 out of 5"><span aria-hidden="true">★★★★★</span></p>
              <blockquote class="tm-quote"><p>Down 9 kg and deadlifting twice my body weight. The coaches actually know your name.</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 S.</p><p class="st-person-role">Member for 2 years</p></div>
                </div></figcaption>
            </figure>
            <figure class="tm-card">
              <p class="st-stars" role="img" aria-label="Rated 5 out of 5"><span aria-hidden="true">★★★★★</span></p>
              <blockquote class="tm-quote"><p>The 6:30am HIIT crew is the best start to my day.</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">Callum R.</p><p class="st-person-role">Unlimited member</p></div>
                </div></figcaption>
            </figure>
            <figure class="tm-card">
              <p class="st-stars" role="img" aria-label="Rated 5 out of 5"><span aria-hidden="true">★★★★★</span></p>
              <blockquote class="tm-quote"><p>Came in nervous as a total beginner, now I never miss a week.</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-2.jpg" alt="">
                  <div><p class="st-person-name">Jade M.</p><p class="st-person-role">Member since 2025</p></div>
                </div></figcaption>
            </figure>
          </div>
        </div>
        <div class="tm-row" role="region" aria-label="More testimonials" tabindex="0">
          <div class="tm-track" data-marquee="reverse" data-speed="32">
            <figure class="tm-card">
              <p class="st-stars" role="img" aria-label="Rated 5 out of 5"><span aria-hidden="true">★★★★★</span></p>
              <blockquote class="tm-quote"><p>Physio-friendly coaching got me back to running after my knee injury.</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 W.</p><p class="st-person-role">Coached plan</p></div>
                </div></figcaption>
            </figure>
            <figure class="tm-card">
              <p class="st-stars" role="img" aria-label="Rated 5 out of 5"><span aria-hidden="true">★★★★★</span></p>
              <blockquote class="tm-quote"><p>Clean, friendly and open when I need it. Worth every penny.</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-6.jpg" alt="">
                  <div><p class="st-person-name">Aisha K.</p><p class="st-person-role">Open Gym member</p></div>
                </div></figcaption>
            </figure>
            <figure class="tm-card">
              <p class="st-stars" role="img" aria-label="Rated 5 out of 5"><span aria-hidden="true">★★★★★</span></p>
              <blockquote class="tm-quote"><p>The community events turned training into the best part of my week.</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-1.jpg" alt="">
                  <div><p class="st-person-name">Sam L.</p><p class="st-person-role">Member for 3 years</p></div>
                </div></figcaption>
            </figure>
          </div>
        </div>
      </div>
    </section>
    <section id="gallery" class="st st-before-after-slider" data-uid="smvnkxda27shf">
      <div class="st-wrap">
        <header class="st-head">
          <p class="st-eyebrow" data-anim="item">Member progress</p>
          <h2 class="st-h2" data-anim="item" data-anim-text>Twelve weeks, <span class="hl">real change</span></h2>
          <p class="st-lead" data-anim="item">Drag the handle to compare week one and week twelve. Shared with each member’s permission.</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="Week twelve photo (sample image)">
              <img class="ba-img ba-before" width="1200" height="800" loading="lazy" src="https://webdevpuneet.com/images/section-templates/room-3.jpg" alt="Week one photo (sample image)">
              <span class="ba-tag ba-tag-before">Week 1</span>
              <span class="ba-tag ba-tag-after">Week 12</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">Dan: strength block</h3>
            <p class="ba-cap">Three sessions a week with the IRONHOUSE barbell club.</p>
          </li>
        </ul>
      </div>
    </section>
    <section id="faq" class="st st-faq-accordion" data-uid="smvnkxda22egs">
      <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>Before you <span class="hl">start</span></h2>
          <p class="st-lead" data-anim="item">Free trials, beginners, freezing your membership and the changing rooms.</p>
        </header>
        <div class="fq-list" data-accordion="single first">
          <details class="st-acc" data-anim="item">
            <summary class="st-acc-q"><span>Is the free trial really free?</span><span class="st-acc-icon" aria-hidden="true"></span></summary>
            <div class="st-acc-a"><p>Yes. Seven days of unlimited classes and open gym, no card needed.</p></div>
          </details>
          <details class="st-acc" data-anim="item">
            <summary class="st-acc-q"><span>I’m a complete beginner. Is that OK?</span><span class="st-acc-icon" aria-hidden="true"></span></summary>
            <div class="st-acc-a"><p>Absolutely. Every class is scaled, and your first session starts with an induction.</p></div>
          </details>
          <details class="st-acc" data-anim="item">
            <summary class="st-acc-q"><span>Can I freeze my membership?</span><span class="st-acc-icon" aria-hidden="true"></span></summary>
            <div class="st-acc-a"><p>Yes, for up to three months a year, for holidays or injury.</p></div>
          </details>
          <details class="st-acc" data-anim="item">
            <summary class="st-acc-q"><span>Do you have showers and lockers?</span><span class="st-acc-icon" aria-hidden="true"></span></summary>
            <div class="st-acc-a"><p>Yes, with towels, lockers and hair dryers included.</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="get-started" class="st st-cta-gradient-banner" data-uid="smvnkxda2ugih">
      <div class="st-wrap">
        <div class="cb" data-spotlight data-anim="media">
          <h2 class="st-h2 cb-title" data-anim="item" data-anim-text>Your first week is <span class="hl">on us</span></h2>
          <p class="cb-lead" data-anim="item">Seven days of unlimited classes and open gym. No card, no commitment.</p>
          <div class="st-btns cb-btns" data-anim="item">
            <a class="st-btn" data-magnetic href="https://webdevpuneet.com/signup"><span>Start free trial</span></a>
            <a class="st-btn st-btn--ghost" data-magnetic href="https://webdevpuneet.com/contact"><span>Talk to a coach</span></a>
          </div>
          <p class="cb-note" data-anim="item">Join 900 members training this week</p>
        </div>
      </div>
    </section>
    <section class="st st-popup-modal" data-uid="smvnkxda28t9q">
      <div class="pu" data-pu data-trigger="scroll" data-delay="8" data-scroll="40" data-days="7" data-pos="center" data-layout="left" data-autoplay="0" data-pu-id="pewc8w">
        <div class="pu-backdrop" data-pu-close hidden></div>
        <div class="pu-dialog" role="dialog" aria-modal="true" aria-labelledby="pu-heading" tabindex="-1" hidden>
          <button type="button" class="pu-x" data-pu-close aria-label="Close popup"><svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" aria-hidden="true"><path d="M6 6l12 12M18 6 6 18"/></svg></button>
          <div class="pu-media">
            <img class="pu-img" loading="lazy" src="https://webdevpuneet.com/images/section-templates/tpl-fitness.jpg" alt="Members training at IRONHOUSE">
          </div>
          <div class="pu-body">
            <p class="st-eyebrow">Try us free</p>
            <h2 class="pu-h" id="pu-heading">Get a <span class="hl">free 7-day pass</span></h2>
            <p class="pu-lead">Train at any IRONHOUSE class or on the gym floor for a week. No contract and no card.</p>
            <form class="pu-form" data-form method="post" action="https://webdevpuneet.com/subscribe">
              <div class="pu-row" data-form-fields>
                <input class="pu-input" type="email" required autocomplete="email" name="email" placeholder="you@example.com" aria-label="you@example.com">
                <button class="st-btn pu-btn" type="submit"><span>Send my pass</span></button>
              </div>
              <p class="pu-note" data-form-fields>We respect your inbox.</p>
              <p class="pu-ok" data-form-success hidden tabindex="-1" role="status">Thanks! Your pass is on its way.</p>
              <p class="pu-err" data-form-error hidden role="alert">Something went wrong. Please try again.</p>
            </form>
            <button type="button" class="pu-no" data-pu-close><span>No thanks</span></button>
          </div>
        </div>
      </div>
    </section>
    <section class="st st-footer-minimal" data-uid="smvnkxda2ln1g">
      <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="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z" /></svg></span><span>IRONHOUSE</span></span>
          </a>
          <nav aria-label="Footer"><ul class="fm-links"><li><a href="#features">Features</a></li><li><a href="#pricing">Pricing</a></li><li><a href="#faq">FAQ</a></li><li><a href="/contact/">Contact</a></li><li><a href="/privacy/">Privacy</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 Ironhouse Fitness</p>
      </footer>
    </section>
Design your website