images updated

This commit is contained in:
Selvi 2026-04-24 13:24:24 +05:30
parent 36f91a3917
commit 831dc28130
43 changed files with 40 additions and 40 deletions

View File

@ -53,9 +53,9 @@ export default function ServicesPage() {
tagline="Cedar, pressure treated & wood fence — new & existing"
description="A properly stained wood fence resists moisture penetration, UV fading, mould growth, and the surface cracking that makes wood look aged and rough in just a few seasons. We stain new fences before the grain seals up and grey sets in — and we restore older fences back to a rich, protected finish before applying fresh stain."
bgColor="bg-white"
image="/images/staining-hero.png" // Using hero image for fence as it's a fence
imageSmall1="/images/chain-link-hero.png"
imageSmall2="/assets/about-fencing.png"
image="/assets/services/service-1/top.webp"
imageSmall1="/assets/services/service-1/left.webp"
imageSmall2="/assets/services/service-1/right.webp"
photoLabel="Fence staining — before & after"
photoSub1="Cedar fence — new stain"
photoSub2="Stain detail close-up"
@ -83,10 +83,10 @@ export default function ServicesPage() {
tagline="Boards, railings, stairs & fascia — new & restoration"
description="Your deck takes more sun, foot traffic, and weather exposure than almost any other outdoor wood surface. Without the right stain applied at the right time, deck boards grey out, check, and splinter faster than they should. We stain deck boards, railings, stairs, and fascia as a complete package — not just the flat boards — so the entire structure is uniformly protected."
bgColor="bg-gray"
image="/images/stained-deck.png"
image="/assets/services/service-2/top.webp"
reverse={true}
imageSmall1="/images/stained-deck.png"
imageSmall2="/assets/manufacturing-hero.png"
imageSmall1="/assets/services/service-2/left.webp"
imageSmall2="/assets/services/service-2/right.webp"
photoLabel="Deck staining — before & after"
photoSub1="Deck boards — new finish"
photoSub2="Railing & stairs detail"
@ -114,10 +114,10 @@ export default function ServicesPage() {
tagline="Pergolas, gazebos, log cabins & cedar siding"
description="Pergolas and outdoor structures are often the last thing on a homeowner's maintenance list — and the first thing that shows its age. Sun exposure degrades unprotected wood fast, especially on horizontal surfaces like pergola rafters that collect water and hold UV damage year-round. We stain and seal all outdoor wood structures to restore appearance and stop the deterioration cycle."
bgColor="bg-navy"
image="/images/stained-pergola.png"
image="/assets/services/service-3/top.webp"
isDark={true}
imageSmall1="/images/stained-pergola.png"
imageSmall2="/assets/about-fencing.png"
imageSmall1="/assets/services/service-3/left.webp"
imageSmall2="/assets/services/service-3/right.webp"
photoLabel="Pergola & structure staining"
photoSub1="Log cabin exterior"
photoSub2="Cedar siding detail"
@ -143,9 +143,9 @@ export default function ServicesPage() {
description="The smartest way to protect a new fence is to stain the boards before a single one goes into the ground. Pre-staining lets us coat all four sides of every picket and rail — including the back face, bottom end grain, and edges that are impossible to reach once the fence is built. End grain is where moisture enters first. Pre-staining seals it before it ever gets a chance."
bgColor="bg-cream"
reverse={true}
image="/images/staining-hero.png"
imageSmall1="/images/staining-hero.png"
imageSmall2="/assets/manufacturing-hero.png"
image="/assets/services/service-4/top.webp"
imageSmall1="/assets/services/service-4/left.webp"
imageSmall2="/assets/services/service-4/right.webp"
photoLabel="Pre-staining fence boards"
photoSub1="Board edge coating"
photoSub2="Pre-stained & ready to install"
@ -173,9 +173,9 @@ export default function ServicesPage() {
tagline="Weathered, grey & neglected wood brought back to life"
description="Grey wood isn't dead wood — it's wood that hasn't been maintained. In most cases, a proper clean and brightening treatment with Expert Stain & Seal Clean & Bright removes years of weathering, pulls the grey out of the surface, and restores the open grain that allows fresh stain to penetrate and bond. The result can be dramatic — wood that looked ready to replace looking rich and fresh again."
bgColor="bg-white"
image="/images/stained-deck.png"
imageSmall1="/images/stained-deck.png"
imageSmall2="/images/chain-link-hero.png"
image="/assets/services/service-5/top.webp"
imageSmall1="/assets/services/service-5/left.webp"
imageSmall2="/assets/services/service-5/right.webp"
photoLabel="Wood restoration — before & after"
photoSub1="Grey wood before Clean & Bright"
photoSub2="After restoration staining"

View File

@ -9,7 +9,7 @@ const materialsData = [
name: "Chain Link Mesh",
desc: "The primary fencing fabric — available in galvanized and vinyl coated black finishes. Multiple gauge and mesh sizes for residential and commercial use.",
specs: ["Galvanized", "Black vinyl coated", "Multiple gauges", "2\" mesh typical"],
img: "/images/chain-link-hero.png"
img: "/assets/chain-link-fence/chain-link-mesh.webp"
},
{
num: "02",
@ -17,7 +17,7 @@ const materialsData = [
name: "Terminal Posts",
desc: "Heavy-duty end, corner, and gate posts that anchor the fence line. Larger diameter than line posts for maximum structural strength at key points.",
specs: ["End posts", "Corner posts", "Gate posts", "Multiple diameters"],
img: "/assets/about-fencing.png"
img: "/assets/chain-link-fence/terminal-post.webp"
},
{
num: "03",
@ -25,7 +25,7 @@ const materialsData = [
name: "Line Posts",
desc: "Intermediate posts set between terminal posts to support the mesh and top rail at regular intervals, typically every 10 feet.",
specs: ["Galvanized steel", "Multiple heights", "Multiple diameters"],
img: "/assets/manufacturing-hero.png"
img: "/assets/chain-link-fence/line-posts.webp"
},
{
num: "04",
@ -33,7 +33,7 @@ const materialsData = [
name: "Top Rail",
desc: "Horizontal pipe running along the top of the fence, threading through loop caps on line posts to stabilise the mesh and define the top edge.",
specs: ["Galvanized pipe", "21ft lengths", "Sleeve-joined"],
img: "/images/chain-link-hero.png"
img: "/assets/chain-link-fence/top-rail.webp"
},
{
num: "05",
@ -41,7 +41,7 @@ const materialsData = [
name: "Bottom Tension Wire",
desc: "Heavy gauge galvanized wire run along the bottom of the mesh to keep the fence taut and prevent mesh lift. Also available as bottom rail pipe.",
specs: ["Galvanized wire", "Bottom rail option", "High tension"],
img: "/assets/about-fencing.png"
img: "/assets/chain-link-fence/bottom-tension-wire.webp"
},
{
num: "06",
@ -49,7 +49,7 @@ const materialsData = [
name: "Tension Bars",
desc: "Flat steel bars woven vertically through the end of the mesh fabric and secured with tension bands to the terminal post, pulling the mesh taut.",
specs: ["Galvanized steel", "Multiple lengths"],
img: "/assets/manufacturing-hero.png"
img: "/assets/chain-link-fence/tension-bars.webp"
},
{
num: "07",
@ -57,7 +57,7 @@ const materialsData = [
name: "Tension Bands",
desc: "Clamp bands bolted around terminal posts to hold tension bars and rail ends securely in place. Spaced evenly along the post height.",
specs: ["Galvanized steel", "Various post sizes"],
img: "/images/chain-link-hero.png"
img: "/assets/chain-link-fence/tension-bands.webp"
},
{
num: "08",
@ -65,7 +65,7 @@ const materialsData = [
name: "Brace Bands",
desc: "Used to attach rail ends to line posts, securing the top rail into position around the post perimeter. Essential for top rail alignment and stability.",
specs: ["Galvanized", "All post sizes"],
img: "/assets/about-fencing.png"
img: "/assets/chain-link-fence/brace-bands.webp"
},
{
num: "09",
@ -73,7 +73,7 @@ const materialsData = [
name: "Rail Ends",
desc: "Pressed steel fittings that attach the end of the top rail to a terminal post via a tension band. Provides a neat, secure termination point for the rail.",
specs: ["Pressed steel", "Galvanized"],
img: "/assets/manufacturing-hero.png"
img: "/assets/chain-link-fence/rail-ends.webp"
},
{
num: "10",
@ -81,7 +81,7 @@ const materialsData = [
name: "Post Caps",
desc: "Loop caps thread the top rail through the line post for support. Dome caps seal the tops of terminal posts, preventing water ingress and corrosion.",
specs: ["Loop caps", "Dome caps", "All post sizes"],
img: "/images/chain-link-hero.png"
img: "/assets/chain-link-fence/post-caps.webp"
},
{
num: "11",
@ -89,7 +89,7 @@ const materialsData = [
name: "Fence Ties",
desc: "Aluminum or steel wire ties that fasten the chain link mesh to line posts and top rail, securing the fabric in place throughout the fence run.",
specs: ["Aluminum", "Steel", "Bulk packs"],
img: "/assets/about-fencing.png"
img: "/assets/chain-link-fence/fence-ties.webp"
},
{
num: "12",
@ -97,7 +97,7 @@ const materialsData = [
name: "Gates",
desc: "Chain link walk gates and double drive gates in standard and custom widths. Pre-built frames ready to hang, or materials for field-fabricated gates.",
specs: ["Single walk gates", "Double drive gates", "Custom widths"],
img: "/assets/manufacturing-hero.png"
img: "/assets/chain-link-fence/gates.webp"
},
{
num: "13",
@ -105,7 +105,7 @@ const materialsData = [
name: "Gate Hardware",
desc: "Heavy-duty hinges, fork latches, cane bolts, and gate stops. All hardware required for proper gate installation and long-term operation.",
specs: ["Hinges", "Latches", "Cane bolts", "Padlock eyes"],
img: "/images/chain-link-hero.png"
img: "/assets/chain-link-fence/gate-hardware.webp"
},
{
num: "14",
@ -113,7 +113,7 @@ const materialsData = [
name: "Concrete",
desc: "Fast-setting concrete mix for post setting. Properly set posts are critical to fence longevity — use concrete on every terminal post and every line post in loose or sandy soil.",
specs: ["Fast-setting", "Bags available", "Post setting mix"],
img: "/assets/about-fencing.png"
img: "/assets/chain-link-fence/concrete.webp"
},
{
num: "15",
@ -121,7 +121,7 @@ const materialsData = [
name: "Privacy Slats",
desc: "Vertical or horizontal slats woven through chain link mesh to add privacy and visual screening. Available in multiple colours to complement any project.",
specs: ["Multiple colours", "Vertical weave", "UV resistant"],
img: "/assets/manufacturing-hero.png"
img: "/assets/chain-link-fence/privacy-slats.webp"
},
{
num: "16",
@ -129,7 +129,7 @@ const materialsData = [
name: "Windscreen / Privacy Mesh",
desc: "Woven or knitted privacy screen attached to the fence exterior. Popular for sports facilities, construction sites, and commercial properties requiring visual screening.",
specs: ["Woven fabric", "Commercial grade", "Custom sizes"],
img: "/images/chain-link-hero.png"
img: "/assets/chain-link-fence/windscreen.webp"
},
{
num: "17",
@ -137,7 +137,7 @@ const materialsData = [
name: "Barbed Wire",
desc: "Two-strand galvanized barbed wire for security enhancement on commercial and industrial fence installations. Attached at the top with barbed wire arms.",
specs: ["Commercial use", "Galvanized", "Barbed wire arms"],
img: "/assets/about-fencing.png"
img: "/assets/chain-link-fence/barbed-wire.webp"
}
];

View File

@ -7,7 +7,7 @@ export default function Products() {
desc: "Residential and commercial aluminum railing for decks, balconies, stairs, and pools. Multiple profiles and finishes.",
tags: ["Residential", "Commercial", "Pool-safe"],
badge: "Railing",
img: "/assets/manufacturing-hero.png",
img: "/assets/home/our-products/aluminium-railing.webp",
href: "#",
icon: (
<svg viewBox="0 0 22 22" fill="none"><rect x="1" y="3" width="3" height="16" rx="1.5" fill="white"/><rect x="9" y="3" width="3" height="16" rx="1.5" fill="white"/><rect x="17" y="3" width="3" height="16" rx="1.5" fill="white"/><line x1="1" y1="8" x2="20" y2="8" stroke="white" strokeWidth="1.5"/><line x1="1" y1="13" x2="20" y2="13" stroke="white" strokeWidth="1.5"/></svg>
@ -18,7 +18,7 @@ export default function Products() {
desc: "Commercial and residential chain link in black and galvanized finishes. All gauges, heights, posts, gates, and hardware in stock.",
tags: ["Black", "Galvanized", "Commercial", "Residential"],
badge: "Fencing",
img: "/images/chain-link-hero.png",
img: "/assets/home/our-products/chain-link-fence.webp",
href: "/products/chain-link-fence",
icon: (
<svg viewBox="0 0 22 22" fill="none"><rect x="2" y="3" width="3" height="16" rx="1.5" fill="white"/><rect x="17" y="3" width="3" height="16" rx="1.5" fill="white"/><line x1="2" y1="8" x2="20" y2="8" stroke="white" strokeWidth="1.5"/><line x1="2" y1="13" x2="20" y2="13" stroke="white" strokeWidth="1.5"/><line x1="8" y1="3" x2="8" y2="19" stroke="white" strokeWidth="1.5"/><line x1="14" y1="3" x2="14" y2="19" stroke="white" strokeWidth="1.5"/></svg>
@ -29,7 +29,7 @@ export default function Products() {
desc: "Low-maintenance composite panels in three premium colours. Natural wood look, zero rot, no painting, no splitting.",
tags: ["Ancient Wood", "Golden Teak", "Anthracite Grey"],
badge: "Fencing",
img: "/assets/about-fencing.png",
img: "/assets/home/our-products/composite-fence.webp",
href: "#",
icon: (
<svg viewBox="0 0 22 22" fill="none"><rect x="2" y="2" width="6" height="18" rx="2" fill="white" opacity=".7"/><rect x="14" y="2" width="6" height="18" rx="2" fill="white" opacity=".7"/><rect x="5" y="2" width="12" height="18" rx="2" fill="white" opacity=".35"/></svg>
@ -40,7 +40,7 @@ export default function Products() {
desc: "3 systems — post-mount, standoff/spigot, fascia-mount. 10mm & 12mm tempered glass. Pool-compliant configurations available.",
tags: ["Pool-safe", "Residential", "Commercial"],
badge: "Railing",
img: "/assets/manufacturing-hero.png",
img: "/assets/home/our-products/glass-railing.webp",
href: "#",
icon: (
<svg viewBox="0 0 22 22" fill="none"><rect x="2" y="6" width="18" height="11" rx="2" fill="white" opacity=".25" stroke="white" strokeWidth="1.5"/><rect x="4" y="2" width="2" height="18" rx="1" fill="white"/><rect x="16" y="2" width="2" height="18" rx="1" fill="white"/></svg>
@ -51,7 +51,7 @@ export default function Products() {
desc: "4 models — Tokio, Rio, Denver, Oslo. Rackable panels in 48″ and 60″ heights. Matching gates, posts, caps, and hardware.",
tags: ["Tokio", "Rio", "Denver", "Oslo"],
badge: "Fencing",
img: "/images/chain-link-hero.png",
img: "/assets/home/our-products/ornamental-fence.webp",
href: "#",
icon: (
<svg viewBox="0 0 22 22" fill="none"><rect x="2" y="3" width="3" height="16" rx="1.5" fill="white"/><rect x="17" y="3" width="3" height="16" rx="1.5" fill="white"/><line x1="2" y1="7" x2="20" y2="7" stroke="white" strokeWidth="1.5"/><line x1="2" y1="11" x2="20" y2="11" stroke="white" strokeWidth="1.5"/><line x1="2" y1="15" x2="20" y2="15" stroke="white" strokeWidth="1.5"/></svg>
@ -62,7 +62,7 @@ export default function Products() {
desc: "Professional-grade wood care products for fences, decks, pergolas, and outdoor structures. Contractor pricing and bulk ordering.",
tags: ["Stain & Seal", "Clean & Bright", "High margin"],
badge: "Wood Care",
img: "/images/staining-hero.png",
img: "/assets/home/our-products/expert-stain.webp",
href: "#",
icon: (
<svg viewBox="0 0 22 22" fill="none"><path d="M4 19 L11 3 L18 19" stroke="white" strokeWidth="2" fill="none" strokeLinecap="round"/><circle cx="11" cy="11" r="3.5" fill="white" opacity=".5"/></svg>
@ -73,7 +73,7 @@ export default function Products() {
desc: "Post caps (4×4, 6×6), post guards (11 sizes), rot barrier, RotGuard, PostSaver sleeves, and 7″ pro stain brush. Black steel.",
tags: ["Post Caps", "Post Guards", "Rot Barrier"],
badge: "Accessories",
img: "/images/stained-deck.png",
img: "/assets/home/our-products/fence-armor.webp",
href: "#",
icon: (
<svg viewBox="0 0 22 22" fill="none"><circle cx="7" cy="4" r="3" fill="white"/><rect x="5" y="7" width="4" height="11" rx="1" fill="white"/><rect x="3" y="11" width="8" height="2" rx="1" fill="white" opacity=".5"/></svg>
@ -84,7 +84,7 @@ export default function Products() {
desc: "Construction, demolition, events, beer gardens, festivals, and emergencies. 6×10 and 6×5 panels, gates, and screens. Same-day KWC.",
tags: ["Construction", "Events", "Rental"],
badge: "Rental",
img: "/assets/fence-rentals-hero.png",
img: "/assets/home/our-products/temporary-fence-rentals.webp",
href: "#",
icon: (
<svg viewBox="0 0 22 22" fill="none"><rect x="2" y="5" width="5" height="13" rx="1.5" fill="white"/><rect x="15" y="5" width="5" height="13" rx="1.5" fill="white"/><rect x="6" y="7" width="10" height="2" rx="1" fill="white" opacity=".7"/><rect x="6" y="13" width="10" height="2" rx="1" fill="white" opacity=".7"/></svg>

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB