<!DOCTYPE html><html lang="en" style="--color-primary:20 24 23;--color-primary-dark:0 0 0;--color-accent:182 106 68;--color-ink:20 24 23;--color-muted:108 114 118;--color-surface:244 242 236;--color-surface-alt:220 226 226;--color-band:20 24 23;--color-accent2:53 77 95;--font-heading:'Oswald';--font-body:'Inter';--font-label:'Oswald';--radius:0px" data-ambition="expressive" data-elevation="flat"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><script>
      /* Reveal animations are an enhancement. Flag JS so the hidden resting states
         apply (and can be revealed); a load failsafe reveals everything even if the
         bundled reveal script never runs, so text is never permanently hidden on a
         normal-motion browser. */
      document.documentElement.classList.add('reveal-on');
      addEventListener('load', function () {
        setTimeout(function () {
          document.querySelectorAll('.reveal, .reveal-stagger, .title-wipe, .draw-line, .plan-frame, .plan-connector')
            .forEach(function (el) { el.classList.add('is-in'); });
        }, 1500);
      });
    </script><title>KTS Haircuts | Fresh cuts and easy walk-ins in Sydenham, Christchurch</title><meta name="description" content="KTS Haircuts is a walk-in barbershop and salon in Sydenham, Christchurch. Sharp men's, women's and children's cuts, fades, colour and foils. No appointment needed."><meta property="og:title" content="KTS Haircuts | Fresh cuts and easy walk-ins in Sydenham, Christchurch"><meta property="og:description" content="KTS Haircuts is a walk-in barbershop and salon in Sydenham, Christchurch. Sharp men's, women's and children's cuts, fades, colour and foils. No appointment needed."><meta property="og:type" content="website"><link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Oswald:wght@400;500;600;700;800&family=Inter:wght@400;500;600;700;800&display=swap"><link rel="stylesheet" href="/_astro/about.DjEmeh7_.css">
<link rel="stylesheet" href="/_astro/index.BSpK1tpM.css"><script type="module" src="/_astro/hoisted.TAI4IgAQ.js"></script></head> <body> <div class="scroll-progress" aria-hidden="true"></div> <div class="ford-scroll-rail" aria-hidden="true" data-parallax="320"></div>  <header class="sticky top-0 z-50 border-b border-ink/10 bg-surface/95 backdrop-blur" data-ford-comp="Nav" data-nav-variant="sticky" data-nav-mobile="inline"> <nav class="container-x flex h-16 items-center justify-between" aria-label="Primary"> <!-- [v3.3] BRAND SLOT: business.logo (site.json path) renders as a real image, height-driven so a
         wide wordmark reads at full width and a square emblem stays a sane 40px chip; the name text is
         the no-logo fallback. NOTE the nav copy is deliberately SMALL -- when the master shows the brand
         LARGE in the hero, that is plan hero.logo_treatment:"hero-lockup", built IN the hero (pack 04),
         never by inflating this bar. --> <a href="/" class="flex items-center gap-2 font-heading text-lg font-extrabold tracking-tight"> <img src="/assets/logo-lockup.png" alt="KTS Haircuts" class="h-10 w-auto max-w-[220px] object-contain"> </a> <!-- Desktop nav --> <!-- [v3.5.8] desktop nav shows at lg, not md: at 768px a 6-8 item nav + CTA cannot fit and
     pushed the CTA off-screen on TWO fires (ground-effects 37px, jp-aircon 77px) -- both builders
     independently raised this breakpoint mid-fire; it is the template default now. --> <div class="hidden items-center gap-8 lg:flex"> <a href="/#prices" class="text-sm font-medium text-muted transition-colors hover:text-ink"> Price </a><a href="/our-work" class="text-sm font-medium text-muted transition-colors hover:text-ink"> Our Work </a><a href="/areas" class="text-sm font-medium text-muted transition-colors hover:text-ink"> Areas </a><a href="/#reviews" class="text-sm font-medium text-muted transition-colors hover:text-ink"> Reviews </a><a href="/faq" class="text-sm font-medium text-muted transition-colors hover:text-ink"> FAQ </a><a href="/blog" class="text-sm font-medium text-muted transition-colors hover:text-ink"> Blog </a> </div> <div class="flex items-center gap-2"> <a href="/contact" class="btn-primary px-5 py-2 text-sm">Walk In Today</a> <!-- mobile='drawer' -> the tested MobileNav slide-in; else the hamburger toggling the panel below. --> <button type="button" id="navToggle" class="inline-flex h-10 w-10 items-center justify-center rounded-theme border border-ink/15 text-ink lg:hidden" aria-controls="mobileMenu" aria-expanded="false" aria-label="Open menu"> <svg class="nav-open h-5 w-5" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"> <path d="M4 7h16M4 12h16M4 17h16" stroke-linecap="round"></path> </svg> <svg class="nav-close hidden h-5 w-5" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"> <path d="M6 6l12 12M18 6L6 18" stroke-linecap="round"></path> </svg> </button> </div> </nav> <!-- Mobile menu panel (inline mobile variant only) --> <div id="mobileMenu" class="hidden border-t border-ink/10 bg-surface lg:hidden" hidden> <ul class="container-x space-y-1 py-4"> <li> <a href="/#prices" class="block rounded-theme px-2 py-3 text-base font-medium text-ink hover:bg-surface-alt">Price</a> </li><li> <a href="/our-work" class="block rounded-theme px-2 py-3 text-base font-medium text-ink hover:bg-surface-alt">Our Work</a> </li><li> <a href="/areas" class="block rounded-theme px-2 py-3 text-base font-medium text-ink hover:bg-surface-alt">Areas</a> </li><li> <a href="/#reviews" class="block rounded-theme px-2 py-3 text-base font-medium text-ink hover:bg-surface-alt">Reviews</a> </li><li> <a href="/faq" class="block rounded-theme px-2 py-3 text-base font-medium text-ink hover:bg-surface-alt">FAQ</a> </li><li> <a href="/blog" class="block rounded-theme px-2 py-3 text-base font-medium text-ink hover:bg-surface-alt">Blog</a> </li> <li class="pt-2"> <a href="/contact" class="btn-primary w-full">Walk In Today</a> </li> </ul> </div> </header>  <main> <div class="ford-scroll-rail pointer-events-none fixed right-5 top-0 z-0 hidden h-screen w-px opacity-40 lg:block" aria-hidden="true" style="background:linear-gradient(to bottom, rgb(182 106 68 / 0), rgb(182 106 68 / 0.9) 45%, rgb(182 106 68 / 0));"></div> <!-- ============ HOME-HERO ============ --> <section id="home-hero" data-ford-hero class="relative min-h-[92vh] overflow-hidden bg-band text-white"> <img src="/assets/hero.png" alt="A client mid-cut in the KTS Haircuts chair" class="absolute inset-0 h-full w-full object-cover object-right"> <div class="absolute inset-0" style="background:linear-gradient(100deg, rgb(20 24 23 / 0.94) 0%, rgb(20 24 23 / 0.78) 42%, rgb(20 24 23 / 0.25) 100%);"></div> <div class="container-x relative z-10 flex min-h-[92vh] flex-col justify-center pt-24 pb-16"> <div class="max-w-3xl"> <p class="eyebrow">239 B Colombo Street, Sydenham, Christchurch</p> <h1 class="poster mt-4 text-[17vw] leading-[0.98] sm:text-[13vw] lg:text-[10.5rem]"> <span class="block">Cuts</span> <span class="block">Fades</span> <span class="block italic text-accent">Colour</span> </h1> <p class="mt-6 max-w-md text-lg text-white/80">Fresh cuts, easy walk-ins. No appointment needed, just walk in and take a seat.</p> <span class="copper-rule" data-detail="copper-underline-rule"></span> <div class="mt-8 flex flex-wrap items-center gap-4"> <a href="/contact" class="btn-plate--copper btn-plate" data-detail="skewed-cta-plate" data-construction="skewed-cta-plate-shape" data-hero-item>Walk In Today <span class="arrow">&rarr;</span></a> <a href="/#prices" class="btn-plate--light btn-plate" data-hero-item>View Prices <span class="arrow">&rarr;</span></a> </div> </div> </div> <!-- walk-ins hours card, lower-right, on the hero --> <div class="container-x pointer-events-none absolute inset-x-0 bottom-8 z-10 hidden lg:block"> <div class="ml-auto w-72 border border-white/15 bg-black/40 p-6 backdrop-blur-sm"> <p class="kicker">Walk-ins welcome</p> <dl class="mt-4 space-y-1.5 text-sm text-white/85"> <div class="flex justify-between"><dt>Tue and Wed</dt><dd class="tabular">9:00 - 17:30</dd></div> <div class="flex justify-between"><dt>Thursday</dt><dd class="tabular">9:00 - 18:00</dd></div> <div class="flex justify-between"><dt>Friday</dt><dd class="tabular">9:00 - 17:30</dd></div> <div class="flex justify-between"><dt>Saturday</dt><dd class="tabular">9:00 - 15:00</dd></div> <div class="flex justify-between"><dt>Sun and Mon</dt><dd class="tabular">Closed</dd></div> </dl> </div> </div> </section> <div class="ford-divider pointer-events-none relative block w-full overflow-hidden leading-none " style="height:clamp(48px, 7vw, 120px);margin-bottom:-1px;" data-ford-comp="SectionDivider" data-ford-divider="paired-section-slashes" aria-hidden="true"><div class="clip-paired-section-slashes" style="height:100%;width:100%;background:rgb(var(--color-band));"></div></div> <!-- ============ HOME-BAND-02 · walk-ins strip ============ --> <section id="home-band-02" class="cut-accent relative bg-band text-white" data-construction="copper-diagonal-accent-line"> <div class="container-x grid gap-8 py-14 md:grid-cols-3 md:items-center"> <div class="md:col-span-2"> <p class="eyebrow">Open Tuesday to Saturday</p> <h2 class="poster mt-3 text-4xl sm:text-5xl">Just walk in. We will sort you out.</h2> <p class="mt-4 max-w-xl text-white/70">No booking, no fuss. Pop in when it suits you and one of our stylists will get you looking fresh. Find us right in the heart of Sydenham.</p> </div> <div class="md:justify-self-end"> <a href="/contact" class="btn-plate--copper btn-plate">Find Us In Sydenham <span class="arrow">&rarr;</span></a> </div> </div> </section> <!-- ============ HOME-BAND-03 · services menu (#menu) ============ --> <section id="menu" class="relative bg-surface"> <div class="container-wide grid gap-12 py-24 lg:grid-cols-2 lg:items-center"> <div> <p class="eyebrow">Services and prices</p> <h2 class="poster mt-3 text-5xl sm:text-6xl text-ink">The menu</h2> <p class="mt-4 max-w-md text-muted">Fresh cuts and honest prices. Walk in any day, no appointment needed.</p> <ul class="mt-8 divide-y divide-ink/10"> <li class="flex items-center gap-4 py-4"> <svg class="svc-icon" data-detail="service-line-icons" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="6" cy="6" r="2.4"/><circle cx="6" cy="18" r="2.4"/><line x1="8" y1="7.5" x2="20" y2="16"/><line x1="8" y1="16.5" x2="20" y2="8"/></svg> <div class="flex-1"> <p class="font-heading text-xl uppercase tracking-tight text-ink">Men&#39;s Cuts</p> <p class="text-sm text-muted">Clean, sharp men&#39;s cuts tailored to how you like it, finished the way you asked for.</p> </div> <div class="text-right"> <span class="from-kicker" data-detail="from-price-kicker">From</span> <span class="font-heading text-2xl text-ink tabular">$20</span> </div> </li><li class="flex items-center gap-4 py-4"> <svg class="svc-icon" data-detail="service-line-icons" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 8h18"/><line x1="6" y1="8" x2="6" y2="15"/><line x1="10" y1="8" x2="10" y2="15"/><line x1="14" y1="8" x2="14" y2="15"/><line x1="18" y1="8" x2="18" y2="15"/></svg> <div class="flex-1"> <p class="font-heading text-xl uppercase tracking-tight text-ink">Women&#39;s Cuts</p> <p class="text-sm text-muted">Cut, shape and style for women, from a tidy trim to a full restyle.</p> </div> <div class="text-right"> <span class="from-kicker" data-detail="from-price-kicker">From</span> <span class="font-heading text-2xl text-ink tabular">$20</span> </div> </li><li class="flex items-center gap-4 py-4"> <svg class="svc-icon" data-detail="service-line-icons" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="6" cy="6" r="2.4"/><circle cx="6" cy="18" r="2.4"/><line x1="8" y1="7.5" x2="20" y2="16"/><line x1="8" y1="16.5" x2="20" y2="8"/></svg> <div class="flex-1"> <p class="font-heading text-xl uppercase tracking-tight text-ink">Children&#39;s Cuts</p> <p class="text-sm text-muted">Quick, friendly cuts for kids 12 and under, in and out without the fuss.</p> </div> <div class="text-right"> <span class="from-kicker" data-detail="from-price-kicker">From</span> <span class="font-heading text-2xl text-ink tabular">$25</span> </div> </li><li class="flex items-center gap-4 py-4"> <svg class="svc-icon" data-detail="service-line-icons" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M14 3l7 7-4 1-8 8-4-4 8-8z"/><line x1="4" y1="20" x2="8" y2="16"/></svg> <div class="flex-1"> <p class="font-heading text-xl uppercase tracking-tight text-ink">Fades</p> <p class="text-sm text-muted">Skin fades, tapers and blends done clean and even, every single time.</p> </div> <div class="text-right"> <span class="from-kicker" data-detail="from-price-kicker">From</span> <span class="font-heading text-2xl text-ink tabular">$38</span> </div> </li><li class="flex items-center gap-4 py-4"> <svg class="svc-icon" data-detail="service-line-icons" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 20c3 0 4-2 4-4"/><path d="M14 4l6 6-7 6-5-5z"/></svg> <div class="flex-1"> <p class="font-heading text-xl uppercase tracking-tight text-ink">Colour and Foils</p> <p class="text-sm text-muted">Colour, foils and refresh work, kept natural and done with care.</p> </div> <div class="text-right"> <span class="from-kicker" data-detail="from-price-kicker">From</span> <span class="font-heading text-2xl text-ink tabular">$30</span> </div> </li> </ul> <a href="/#prices" class="btn-plate mt-8">View All Prices <span class="arrow">&rarr;</span></a> </div> <!-- three diagonally-sliced photos, copper seams (dominant construction) --> <div class="svc-parallax grid h-[34rem] grid-cols-3 gap-1.5" data-construction="diagonal-photo-slash"> <div class="slash-photo slash-seam h-full img-grade"><img src="/assets/kts-colour-red.jpg" alt="Vivid red colour work by the KTS team"></div> <div class="slash-photo slash-seam h-full img-grade"><img src="/assets/kts-colour-blonde.jpg" alt="Blonde balayage colour work by the KTS team"></div> <div class="slash-photo slash-seam h-full img-grade"><img src="/assets/stock-ktshaircy-4.jpg" alt="Straight-razor line-up (sample image)"></div> </div> </div> </section> <div class="ford-divider pointer-events-none relative block w-full overflow-hidden leading-none " style="height:clamp(48px, 7vw, 120px);margin-bottom:-1px;" data-ford-comp="SectionDivider" data-ford-divider="paired-section-slashes" aria-hidden="true"><div class="clip-paired-section-slashes" style="height:100%;width:100%;background:rgb(var(--color-band));"></div></div> <!-- ============ PRICING-HOME (#prices) ============ --> <section id="prices" class="cut-accent relative bg-band text-white"> <div class="container-x py-24"> <p class="eyebrow">Price list</p> <h2 class="poster mt-3 text-5xl sm:text-6xl">Know the price before you sit</h2> <p class="mt-4 max-w-md text-white/70">Simple, honest pricing. Rates start from the figures below; your stylist will confirm on the day.</p> <div class="mt-10 grid gap-x-16 gap-y-12 lg:grid-cols-2"> <div> <h3 class="font-heading text-3xl uppercase tracking-tight text-accent">Men</h3> <div class="mt-4 divide-y divide-white/12 border-y border-white/12"> <div class="flex items-baseline justify-between gap-6 py-3.5"> <span class="font-heading text-xl uppercase tracking-tight sm:text-2xl">Buzz</span> <span class="hidden flex-1 translate-y-[-4px] border-b border-dashed border-white/20 sm:block"></span> <span class="font-heading text-xl text-accent tabular sm:text-2xl">$20</span> </div><div class="flex items-baseline justify-between gap-6 py-3.5"> <span class="font-heading text-xl uppercase tracking-tight sm:text-2xl">Golden</span> <span class="hidden flex-1 translate-y-[-4px] border-b border-dashed border-white/20 sm:block"></span> <span class="font-heading text-xl text-accent tabular sm:text-2xl">$25</span> </div><div class="flex items-baseline justify-between gap-6 py-3.5"> <span class="font-heading text-xl uppercase tracking-tight sm:text-2xl">Style</span> <span class="hidden flex-1 translate-y-[-4px] border-b border-dashed border-white/20 sm:block"></span> <span class="font-heading text-xl text-accent tabular sm:text-2xl">$30</span> </div><div class="flex items-baseline justify-between gap-6 py-3.5"> <span class="font-heading text-xl uppercase tracking-tight sm:text-2xl">Re-Style</span> <span class="hidden flex-1 translate-y-[-4px] border-b border-dashed border-white/20 sm:block"></span> <span class="font-heading text-xl text-accent tabular sm:text-2xl">$40</span> </div><div class="flex items-baseline justify-between gap-6 py-3.5"> <span class="font-heading text-xl uppercase tracking-tight sm:text-2xl">Fade</span> <span class="hidden flex-1 translate-y-[-4px] border-b border-dashed border-white/20 sm:block"></span> <span class="font-heading text-xl text-accent tabular sm:text-2xl">$38</span> </div><div class="flex items-baseline justify-between gap-6 py-3.5"> <span class="font-heading text-xl uppercase tracking-tight sm:text-2xl">Beard</span> <span class="hidden flex-1 translate-y-[-4px] border-b border-dashed border-white/20 sm:block"></span> <span class="font-heading text-xl text-accent tabular sm:text-2xl">$15</span> </div><div class="flex items-baseline justify-between gap-6 py-3.5"> <span class="font-heading text-xl uppercase tracking-tight sm:text-2xl">Shampoo and Condition</span> <span class="hidden flex-1 translate-y-[-4px] border-b border-dashed border-white/20 sm:block"></span> <span class="font-heading text-xl text-accent tabular sm:text-2xl">$15</span> </div> </div> </div><div> <h3 class="font-heading text-3xl uppercase tracking-tight text-accent">Women</h3> <div class="mt-4 divide-y divide-white/12 border-y border-white/12"> <div class="flex items-baseline justify-between gap-6 py-3.5"> <span class="font-heading text-xl uppercase tracking-tight sm:text-2xl">Buzz</span> <span class="hidden flex-1 translate-y-[-4px] border-b border-dashed border-white/20 sm:block"></span> <span class="font-heading text-xl text-accent tabular sm:text-2xl">$20</span> </div><div class="flex items-baseline justify-between gap-6 py-3.5"> <span class="font-heading text-xl uppercase tracking-tight sm:text-2xl">Golden</span> <span class="hidden flex-1 translate-y-[-4px] border-b border-dashed border-white/20 sm:block"></span> <span class="font-heading text-xl text-accent tabular sm:text-2xl">$35</span> </div><div class="flex items-baseline justify-between gap-6 py-3.5"> <span class="font-heading text-xl uppercase tracking-tight sm:text-2xl">Style</span> <span class="hidden flex-1 translate-y-[-4px] border-b border-dashed border-white/20 sm:block"></span> <span class="font-heading text-xl text-accent tabular sm:text-2xl">$43</span> </div><div class="flex items-baseline justify-between gap-6 py-3.5"> <span class="font-heading text-xl uppercase tracking-tight sm:text-2xl">Re-Style</span> <span class="hidden flex-1 translate-y-[-4px] border-b border-dashed border-white/20 sm:block"></span> <span class="font-heading text-xl text-accent tabular sm:text-2xl">$48</span> </div><div class="flex items-baseline justify-between gap-6 py-3.5"> <span class="font-heading text-xl uppercase tracking-tight sm:text-2xl">Wash and Blow-dry</span> <span class="hidden flex-1 translate-y-[-4px] border-b border-dashed border-white/20 sm:block"></span> <span class="font-heading text-xl text-accent tabular sm:text-2xl">$55</span> </div> </div> </div><div> <h3 class="font-heading text-3xl uppercase tracking-tight text-accent">Children</h3> <div class="mt-4 divide-y divide-white/12 border-y border-white/12"> <div class="flex items-baseline justify-between gap-6 py-3.5"> <span class="font-heading text-xl uppercase tracking-tight sm:text-2xl">13yrs and under</span> <span class="hidden flex-1 translate-y-[-4px] border-b border-dashed border-white/20 sm:block"></span> <span class="font-heading text-xl text-accent tabular sm:text-2xl">$25</span> </div><div class="flex items-baseline justify-between gap-6 py-3.5"> <span class="font-heading text-xl uppercase tracking-tight sm:text-2xl">16yrs and under</span> <span class="hidden flex-1 translate-y-[-4px] border-b border-dashed border-white/20 sm:block"></span> <span class="font-heading text-xl text-accent tabular sm:text-2xl">$28</span> </div> </div> </div><div> <h3 class="font-heading text-3xl uppercase tracking-tight text-accent">Colour</h3> <div class="mt-4 divide-y divide-white/12 border-y border-white/12"> <div class="flex items-baseline justify-between gap-6 py-3.5"> <span class="font-heading text-xl uppercase tracking-tight sm:text-2xl">New growth</span> <span class="hidden flex-1 translate-y-[-4px] border-b border-dashed border-white/20 sm:block"></span> <span class="font-heading text-xl text-accent tabular sm:text-2xl">$60</span> </div><div class="flex items-baseline justify-between gap-6 py-3.5"> <span class="font-heading text-xl uppercase tracking-tight sm:text-2xl">Global</span> <span class="hidden flex-1 translate-y-[-4px] border-b border-dashed border-white/20 sm:block"></span> <span class="font-heading text-xl text-accent tabular sm:text-2xl">$90</span> </div><div class="flex items-baseline justify-between gap-6 py-3.5"> <span class="font-heading text-xl uppercase tracking-tight sm:text-2xl">Hi-lite Cap</span> <span class="hidden flex-1 translate-y-[-4px] border-b border-dashed border-white/20 sm:block"></span> <span class="font-heading text-xl text-accent tabular sm:text-2xl">$60</span> </div><div class="flex items-baseline justify-between gap-6 py-3.5"> <span class="font-heading text-xl uppercase tracking-tight sm:text-2xl">15 Foils</span> <span class="hidden flex-1 translate-y-[-4px] border-b border-dashed border-white/20 sm:block"></span> <span class="font-heading text-xl text-accent tabular sm:text-2xl">$80</span> </div><div class="flex items-baseline justify-between gap-6 py-3.5"> <span class="font-heading text-xl uppercase tracking-tight sm:text-2xl">Full Head</span> <span class="hidden flex-1 translate-y-[-4px] border-b border-dashed border-white/20 sm:block"></span> <span class="font-heading text-xl text-accent tabular sm:text-2xl">$160</span> </div><div class="flex items-baseline justify-between gap-6 py-3.5"> <span class="font-heading text-xl uppercase tracking-tight sm:text-2xl">Half</span> <span class="hidden flex-1 translate-y-[-4px] border-b border-dashed border-white/20 sm:block"></span> <span class="font-heading text-xl text-accent tabular sm:text-2xl">$110</span> </div><div class="flex items-baseline justify-between gap-6 py-3.5"> <span class="font-heading text-xl uppercase tracking-tight sm:text-2xl">Toner</span> <span class="hidden flex-1 translate-y-[-4px] border-b border-dashed border-white/20 sm:block"></span> <span class="font-heading text-xl text-accent tabular sm:text-2xl">$30</span> </div> </div> </div> </div> <p class="mt-8 text-sm text-white/70">All services receive a complimentary quick dry and product.</p> </div> </section> <!-- ============ HOME-BAND-04 · reviews (#reviews) ============ --> <section id="reviews" class="relative bg-surface-alt"> <div class="container-wide relative z-10 py-24"> <div class="max-w-2xl"> <p class="eyebrow" data-detail="copper-eyebrow-label">Real people</p> <h2 class="poster mt-3 text-5xl text-ink sm:text-6xl">Sharp results</h2> <p class="mt-4 text-muted">Walk-ins are what we do. Consistent cuts, friendly service, every time.</p> </div> <div class="mt-12 grid gap-8 md:grid-cols-3"> <figure class="border-t-2 border-ink/10 pt-5"> <div class="mb-3 flex gap-1 text-accent" data-detail="copper-star-rating" aria-label="Five out of five stars"> <svg class="h-4 w-4" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2l3 6.5 7 .6-5.3 4.6 1.6 6.8L12 17.3 5.7 20.5l1.6-6.8L2 9.1l7-.6L12 2z"></path></svg><svg class="h-4 w-4" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2l3 6.5 7 .6-5.3 4.6 1.6 6.8L12 17.3 5.7 20.5l1.6-6.8L2 9.1l7-.6L12 2z"></path></svg><svg class="h-4 w-4" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2l3 6.5 7 .6-5.3 4.6 1.6 6.8L12 17.3 5.7 20.5l1.6-6.8L2 9.1l7-.6L12 2z"></path></svg><svg class="h-4 w-4" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2l3 6.5 7 .6-5.3 4.6 1.6 6.8L12 17.3 5.7 20.5l1.6-6.8L2 9.1l7-.6L12 2z"></path></svg><svg class="h-4 w-4" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2l3 6.5 7 .6-5.3 4.6 1.6 6.8L12 17.3 5.7 20.5l1.6-6.8L2 9.1l7-.6L12 2z"></path></svg> </div> <blockquote class="text-lg text-ink">&ldquo;Best fade I&#39;ve had in Christchurch. Clean, quick and exactly what I asked for.&rdquo;</blockquote> <figcaption class="mt-4 text-sm font-semibold text-muted">Liam T.</figcaption> </figure><figure class="border-t-2 border-ink/10 pt-5"> <div class="mb-3 flex gap-1 text-accent" data-detail="copper-star-rating" aria-label="Five out of five stars"> <svg class="h-4 w-4" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2l3 6.5 7 .6-5.3 4.6 1.6 6.8L12 17.3 5.7 20.5l1.6-6.8L2 9.1l7-.6L12 2z"></path></svg><svg class="h-4 w-4" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2l3 6.5 7 .6-5.3 4.6 1.6 6.8L12 17.3 5.7 20.5l1.6-6.8L2 9.1l7-.6L12 2z"></path></svg><svg class="h-4 w-4" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2l3 6.5 7 .6-5.3 4.6 1.6 6.8L12 17.3 5.7 20.5l1.6-6.8L2 9.1l7-.6L12 2z"></path></svg><svg class="h-4 w-4" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2l3 6.5 7 .6-5.3 4.6 1.6 6.8L12 17.3 5.7 20.5l1.6-6.8L2 9.1l7-.6L12 2z"></path></svg><svg class="h-4 w-4" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2l3 6.5 7 .6-5.3 4.6 1.6 6.8L12 17.3 5.7 20.5l1.6-6.8L2 9.1l7-.6L12 2z"></path></svg> </div> <blockquote class="text-lg text-ink">&ldquo;Walked in on a Saturday morning, no wait. Great cut and friendly team. Sorted.&rdquo;</blockquote> <figcaption class="mt-4 text-sm font-semibold text-muted">Jordan K.</figcaption> </figure><figure class="border-t-2 border-ink/10 pt-5"> <div class="mb-3 flex gap-1 text-accent" data-detail="copper-star-rating" aria-label="Five out of five stars"> <svg class="h-4 w-4" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2l3 6.5 7 .6-5.3 4.6 1.6 6.8L12 17.3 5.7 20.5l1.6-6.8L2 9.1l7-.6L12 2z"></path></svg><svg class="h-4 w-4" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2l3 6.5 7 .6-5.3 4.6 1.6 6.8L12 17.3 5.7 20.5l1.6-6.8L2 9.1l7-.6L12 2z"></path></svg><svg class="h-4 w-4" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2l3 6.5 7 .6-5.3 4.6 1.6 6.8L12 17.3 5.7 20.5l1.6-6.8L2 9.1l7-.6L12 2z"></path></svg><svg class="h-4 w-4" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2l3 6.5 7 .6-5.3 4.6 1.6 6.8L12 17.3 5.7 20.5l1.6-6.8L2 9.1l7-.6L12 2z"></path></svg><svg class="h-4 w-4" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2l3 6.5 7 .6-5.3 4.6 1.6 6.8L12 17.3 5.7 20.5l1.6-6.8L2 9.1l7-.6L12 2z"></path></svg> </div> <blockquote class="text-lg text-ink">&ldquo;Been coming here for years. Consistent, professional and always on point.&rdquo;</blockquote> <figcaption class="mt-4 text-sm font-semibold text-muted">Matt D.</figcaption> </figure> </div> <div class="mt-12 flex flex-wrap gap-4"> <a href="/our-work" class="cta-primary btn-plate">See Our Work <span class="arrow">&rarr;</span></a> <a href="https://www.google.com/maps/place/KTS+haircuts+limited/@-43.5525643,172.6341333,1169m/data=!3m1!1e3!4m8!3m7!1s0x6d318a086c5b6379:0xcc0a3f00256c8f92!8m2!3d-43.5525643!4d172.6367136!9m1!1b1!16s%2Fg%2F11gbnddpm0?entry=ttu" target="_blank" rel="noopener" class="btn-plate">Leave a Review <span class="arrow">&rarr;</span></a> </div> </div> </section> <!-- ============ HOME-X-TRUST ============ --> <section id="home-x-trust" class="bg-surface"> <div class="container-wide py-20"> <p class="eyebrow">Why walk in</p> <h2 class="poster mt-3 text-4xl text-ink sm:text-5xl">Simple, consistent, sorted</h2> <div class="mt-10 grid gap-8 md:grid-cols-3"> <div class="border-l-2 border-accent pl-5"> <p class="font-heading text-xl uppercase tracking-tight text-ink">No appointment needed</p> <p class="mt-2 text-muted">Walk in Tuesday to Saturday, whenever it suits you. No booking, no waiting on a callback.</p> </div> <div class="border-l-2 border-accent pl-5"> <p class="font-heading text-xl uppercase tracking-tight text-ink">Experienced stylists</p> <p class="mt-2 text-muted">Cuts, fades and colour done by people who do this all day, every day.</p> </div> <div class="border-l-2 border-accent pl-5"> <p class="font-heading text-xl uppercase tracking-tight text-ink">The same result every time</p> <p class="mt-2 text-muted">Tell us once. We keep your cut consistent so you leave happy on every visit.</p> </div> </div> </div> </section> <div class="ford-divider pointer-events-none relative block w-full overflow-hidden leading-none " style="height:clamp(48px, 7vw, 120px);margin-bottom:-1px;" data-ford-comp="SectionDivider" data-ford-divider="paired-section-slashes" aria-hidden="true"><div class="clip-paired-section-slashes" style="height:100%;width:100%;background:rgb(var(--color-band));"></div></div> <!-- ============ HOME-BAND-05 · gallery (#work) ============ --> <section id="home-band-05" class="relative overflow-hidden bg-band text-white"> <div class="container-wide py-24"> <div class="flex flex-wrap items-end justify-between gap-6"> <div> <p class="eyebrow">Precision in every detail</p> <h2 class="poster mt-3 text-6xl sm:text-7xl">Cut<span class="dot-accent breathe-accent" data-detail="copper-period-accents">.</span> Style<span class="dot-accent">.</span> Finish<span class="dot-accent">.</span></h2> </div> <a href="/our-work" class="btn-plate--light btn-plate">See The Full Gallery <span class="arrow">&rarr;</span></a> </div> <div class="mt-12"> <div class="ford-gallery is-4 " data-ford-comp="Gallery" data-gallery data-astro-cid-hiybvzjp><button type="button" class="ford-gallery__item" aria-label="View A cut by the KTS team" data-astro-cid-hiybvzjp><img class="ford-gallery__img" src="/assets/work/kts-01.jpg" data-lightbox-src="/assets/work/kts-01.jpg" data-caption="Cut by KTS" alt="A cut by the KTS team" loading="lazy" draggable="false" data-astro-cid-hiybvzjp></button><button type="button" class="ford-gallery__item" aria-label="View A cut by the KTS team" data-astro-cid-hiybvzjp><img class="ford-gallery__img" src="/assets/work/kts-02.jpg" data-lightbox-src="/assets/work/kts-02.jpg" data-caption="Cut by KTS" alt="A cut by the KTS team" loading="lazy" draggable="false" data-astro-cid-hiybvzjp></button><button type="button" class="ford-gallery__item" aria-label="View A cut by the KTS team" data-astro-cid-hiybvzjp><img class="ford-gallery__img" src="/assets/work/kts-03.jpg" data-lightbox-src="/assets/work/kts-03.jpg" data-caption="Cut by KTS" alt="A cut by the KTS team" loading="lazy" draggable="false" data-astro-cid-hiybvzjp></button><button type="button" class="ford-gallery__item" aria-label="View A cut by the KTS team" data-astro-cid-hiybvzjp><img class="ford-gallery__img" src="/assets/work/kts-04.jpg" data-lightbox-src="/assets/work/kts-04.jpg" data-caption="Cut by KTS" alt="A cut by the KTS team" loading="lazy" draggable="false" data-astro-cid-hiybvzjp></button></div> <div id="ford-lightbox" class="ford-lb" data-ford-comp="Lightbox" role="dialog" aria-modal="true" aria-label="Image viewer" hidden data-astro-cid-tjb6mwsf> <div class="ford-lb__backdrop" data-lb-close data-astro-cid-tjb6mwsf></div> <div class="ford-lb__stage" data-lb-stage data-astro-cid-tjb6mwsf> <img class="ford-lb__img" alt="" data-lb-img draggable="false" data-astro-cid-tjb6mwsf> </div> <figcaption class="ford-lb__caption" data-lb-caption data-astro-cid-tjb6mwsf></figcaption> <!-- Controls --> <button type="button" class="ford-lb__btn ford-lb__close" data-lb-close aria-label="Close image viewer" data-astro-cid-tjb6mwsf> <svg viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true" data-astro-cid-tjb6mwsf> <path d="M6 6l12 12M18 6L6 18" stroke-linecap="round" data-astro-cid-tjb6mwsf></path> </svg> </button> <div class="ford-lb__zoom" role="group" aria-label="Zoom controls" data-astro-cid-tjb6mwsf> <button type="button" class="ford-lb__btn" data-lb-zoom-out aria-label="Zoom out" data-astro-cid-tjb6mwsf> <svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true" data-astro-cid-tjb6mwsf><path d="M5 12h14" stroke-linecap="round" data-astro-cid-tjb6mwsf></path></svg> </button> <button type="button" class="ford-lb__btn" data-lb-zoom-in aria-label="Zoom in" data-astro-cid-tjb6mwsf> <svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true" data-astro-cid-tjb6mwsf><path d="M12 5v14M5 12h14" stroke-linecap="round" data-astro-cid-tjb6mwsf></path></svg> </button> </div> <button type="button" class="ford-lb__btn ford-lb__nav ford-lb__prev" data-lb-prev aria-label="Previous image" hidden data-astro-cid-tjb6mwsf> <svg viewBox="0 0 24 24" width="26" height="26" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true" data-astro-cid-tjb6mwsf><path d="M15 6l-6 6 6 6" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-tjb6mwsf></path></svg> </button> <button type="button" class="ford-lb__btn ford-lb__nav ford-lb__next" data-lb-next aria-label="Next image" hidden data-astro-cid-tjb6mwsf> <svg viewBox="0 0 24 24" width="26" height="26" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true" data-astro-cid-tjb6mwsf><path d="M9 6l6 6-6 6" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-tjb6mwsf></path></svg> </button> <p class="ford-lb__counter" data-lb-counter aria-live="polite" data-astro-cid-tjb6mwsf></p> </div>   </div> </div> </section> <!-- ============ HOME-BAND-06 · find us ============ --> <section id="home-band-06" class="relative bg-surface"> <div class="container-wide grid gap-12 py-24 lg:grid-cols-2 lg:items-center"> <div> <p class="eyebrow">Find us</p> <h2 class="poster mt-3 text-6xl text-ink sm:text-7xl">Sydenham</h2> <p class="mt-4 max-w-md text-muted">Easy to find, easy to walk in to. Right in the heart of Sydenham and close to central Christchurch.</p> <ul class="mt-8 space-y-3 text-ink"> <li class="flex items-center gap-3"><span class="h-1.5 w-1.5 rotate-45 bg-accent"></span> In the heart of Sydenham</li> <li class="flex items-center gap-3"><span class="h-1.5 w-1.5 rotate-45 bg-accent"></span> Close to bus routes</li> <li class="flex items-center gap-3"><span class="h-1.5 w-1.5 rotate-45 bg-accent"></span> Walk in anytime, we have got you</li> </ul> <a href="/contact" class="btn-plate mt-8">Get Directions <span class="arrow">&rarr;</span></a> </div> <div class="find-parallax relative"> <div class="overflow-hidden border border-ink/10"> <iframe title="Map of KTS Haircuts in Sydenham, Christchurch" src="https://maps.google.com/maps?q=Sydenham+Christchurch&z=14&output=embed" class="h-[24rem] w-full" loading="lazy" referrerpolicy="no-referrer-when-downgrade"></iframe> </div> <div class="map-pin absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2" data-detail="map-pin-badge"><span>KTS</span></div> </div> </div> </section> <div class="ford-divider pointer-events-none relative block w-full overflow-hidden leading-none " style="height:clamp(48px, 7vw, 120px);margin-bottom:-1px;" data-ford-comp="SectionDivider" data-ford-divider="paired-section-slashes" aria-hidden="true"><div class="clip-paired-section-slashes" style="height:100%;width:100%;background:rgb(var(--color-band));"></div></div> <!-- ============ HOME-X-CTA ============ --> <section id="home-x-cta" class="relative overflow-hidden bg-band text-white"> <img src="/assets/stock-ktshaircy-5.jpg" alt="" aria-hidden="true" class="absolute inset-0 h-full w-full object-cover opacity-25"> <div class="absolute inset-0" style="background:linear-gradient(90deg, rgb(20 24 23 / 0.92), rgb(20 24 23 / 0.6));"></div> <div class="container-x relative z-10 py-28 text-center"> <p class="eyebrow">Ready for a fresh cut?</p> <h2 class="poster mx-auto mt-4 max-w-3xl text-6xl sm:text-7xl">Walk in today</h2> <p class="mx-auto mt-5 max-w-md text-white/75">No appointment needed. Come in, take a seat, and leave looking fresh.</p> <div class="mt-8 flex justify-center"> <a href="/contact" class="btn-plate--copper btn-plate">Walk In Today <span class="arrow">&rarr;</span></a> </div> </div> </section> <!-- ============ HOME-BAND-07 · closing sign-off ============ --> <section id="home-band-07" class="cut-accent relative bg-band text-white"> <div class="container-x flex flex-wrap items-center justify-between gap-6 border-t border-white/10 py-12"> <p class="font-heading text-2xl uppercase tracking-tight">KTS Haircuts · Sydenham</p> <p class="text-white/70">Call <a href="tel:033379407" class="text-accent hover:underline">03 337 9407</a> or just walk in.</p> </div> </section> </main> <footer class="section-band"> <div class="container-x py-16"> <div class="grid gap-10 md:grid-cols-4"> <div class="md:col-span-2"> <div class="font-heading text-2xl font-extrabold">KTS Haircuts</div> <p class="mt-3 max-w-sm text-sm text-white/75">Fresh cuts, easy walk-ins</p> <ul role="list" class="mt-6 space-y-1 text-sm text-white/80"> <li>03 337 9407</li> <li></li> <li>239 B Colombo Street, Sydenham, Christchurch</li> <li>Open Tue to Sat. Closed Sun and Mon.</li> </ul> </div> <div> <p class="font-label text-xs uppercase tracking-widest text-white/70">Explore</p> <ul class="mt-4 space-y-2 text-sm text-white/80"> <li><a href="/#prices" class="hover:text-white">Price</a></li><li><a href="/our-work" class="hover:text-white">Our Work</a></li><li><a href="/areas" class="hover:text-white">Areas</a></li><li><a href="/#reviews" class="hover:text-white">Reviews</a></li><li><a href="/faq" class="hover:text-white">FAQ</a></li><li><a href="/blog" class="hover:text-white">Blog</a></li><li><a href="/contact" class="hover:text-white">Contact</a></li> </ul> </div> <div> <p class="font-label text-xs uppercase tracking-widest text-white/70">Services</p> <ul class="mt-4 space-y-2 text-sm text-white/80"> <li><a href="/services/mens-cuts" class="hover:text-white">Men&#39;s Cuts</a></li><li><a href="/services/womens-cuts" class="hover:text-white">Women&#39;s Cuts</a></li><li><a href="/services/childrens-cuts" class="hover:text-white">Children&#39;s Cuts</a></li><li><a href="/services/fades" class="hover:text-white">Fades</a></li><li><a href="/services/colour-and-foils" class="hover:text-white">Colour and Foils</a></li> </ul> </div> </div> <div class="mt-12 flex flex-col items-center justify-between gap-2 border-t border-white/10 pt-8 text-xs text-white/70 sm:flex-row"> <p>© 2026 KTS Haircuts. All rights reserved.</p>  </div> </div> </footer>   <script src="https://cdn.jsdelivr.net/npm/lenis@1/dist/lenis.min.js" defer></script> <script src="https://cdn.jsdelivr.net/npm/gsap@3.13.0/dist/gsap.min.js" defer></script> <script src="https://cdn.jsdelivr.net/npm/gsap@3.13.0/dist/ScrollTrigger.min.js" defer></script> <script src="https://cdn.jsdelivr.net/npm/gsap@3.13.0/dist/SplitText.min.js" defer></script> <script src="https://cdn.jsdelivr.net/npm/gsap@3.13.0/dist/Draggable.min.js" defer></script> <script src="https://cdn.jsdelivr.net/npm/gsap@3.13.0/dist/InertiaPlugin.min.js" defer></script> <script src="https://cdn.jsdelivr.net/npm/gsap@3.13.0/dist/Flip.min.js" defer></script> <script src="https://cdn.jsdelivr.net/npm/gsap@3.13.0/dist/Observer.min.js" defer></script> <script src="https://cdn.jsdelivr.net/npm/gsap@3.13.0/dist/MorphSVGPlugin.min.js" defer></script> <script src="https://cdn.jsdelivr.net/npm/gsap@3.13.0/dist/DrawSVGPlugin.min.js" defer></script> <script src="https://cdn.jsdelivr.net/npm/gsap@3.13.0/dist/CustomEase.min.js" defer></script> <script src="/motion/motion-layer.js" defer></script>  </body> </html> 