images updated
@ -53,9 +53,9 @@ export default function ServicesPage() {
|
|||||||
tagline="Cedar, pressure treated & wood fence — new & existing"
|
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."
|
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"
|
bgColor="bg-white"
|
||||||
image="/images/staining-hero.png" // Using hero image for fence as it's a fence
|
image="/assets/services/service-1/top.webp"
|
||||||
imageSmall1="/images/chain-link-hero.png"
|
imageSmall1="/assets/services/service-1/left.webp"
|
||||||
imageSmall2="/assets/about-fencing.png"
|
imageSmall2="/assets/services/service-1/right.webp"
|
||||||
photoLabel="Fence staining — before & after"
|
photoLabel="Fence staining — before & after"
|
||||||
photoSub1="Cedar fence — new stain"
|
photoSub1="Cedar fence — new stain"
|
||||||
photoSub2="Stain detail close-up"
|
photoSub2="Stain detail close-up"
|
||||||
@ -83,10 +83,10 @@ export default function ServicesPage() {
|
|||||||
tagline="Boards, railings, stairs & fascia — new & restoration"
|
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."
|
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"
|
bgColor="bg-gray"
|
||||||
image="/images/stained-deck.png"
|
image="/assets/services/service-2/top.webp"
|
||||||
reverse={true}
|
reverse={true}
|
||||||
imageSmall1="/images/stained-deck.png"
|
imageSmall1="/assets/services/service-2/left.webp"
|
||||||
imageSmall2="/assets/manufacturing-hero.png"
|
imageSmall2="/assets/services/service-2/right.webp"
|
||||||
photoLabel="Deck staining — before & after"
|
photoLabel="Deck staining — before & after"
|
||||||
photoSub1="Deck boards — new finish"
|
photoSub1="Deck boards — new finish"
|
||||||
photoSub2="Railing & stairs detail"
|
photoSub2="Railing & stairs detail"
|
||||||
@ -114,10 +114,10 @@ export default function ServicesPage() {
|
|||||||
tagline="Pergolas, gazebos, log cabins & cedar siding"
|
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."
|
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"
|
bgColor="bg-navy"
|
||||||
image="/images/stained-pergola.png"
|
image="/assets/services/service-3/top.webp"
|
||||||
isDark={true}
|
isDark={true}
|
||||||
imageSmall1="/images/stained-pergola.png"
|
imageSmall1="/assets/services/service-3/left.webp"
|
||||||
imageSmall2="/assets/about-fencing.png"
|
imageSmall2="/assets/services/service-3/right.webp"
|
||||||
photoLabel="Pergola & structure staining"
|
photoLabel="Pergola & structure staining"
|
||||||
photoSub1="Log cabin exterior"
|
photoSub1="Log cabin exterior"
|
||||||
photoSub2="Cedar siding detail"
|
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."
|
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"
|
bgColor="bg-cream"
|
||||||
reverse={true}
|
reverse={true}
|
||||||
image="/images/staining-hero.png"
|
image="/assets/services/service-4/top.webp"
|
||||||
imageSmall1="/images/staining-hero.png"
|
imageSmall1="/assets/services/service-4/left.webp"
|
||||||
imageSmall2="/assets/manufacturing-hero.png"
|
imageSmall2="/assets/services/service-4/right.webp"
|
||||||
photoLabel="Pre-staining fence boards"
|
photoLabel="Pre-staining fence boards"
|
||||||
photoSub1="Board edge coating"
|
photoSub1="Board edge coating"
|
||||||
photoSub2="Pre-stained & ready to install"
|
photoSub2="Pre-stained & ready to install"
|
||||||
@ -173,9 +173,9 @@ export default function ServicesPage() {
|
|||||||
tagline="Weathered, grey & neglected wood brought back to life"
|
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."
|
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"
|
bgColor="bg-white"
|
||||||
image="/images/stained-deck.png"
|
image="/assets/services/service-5/top.webp"
|
||||||
imageSmall1="/images/stained-deck.png"
|
imageSmall1="/assets/services/service-5/left.webp"
|
||||||
imageSmall2="/images/chain-link-hero.png"
|
imageSmall2="/assets/services/service-5/right.webp"
|
||||||
photoLabel="Wood restoration — before & after"
|
photoLabel="Wood restoration — before & after"
|
||||||
photoSub1="Grey wood before Clean & Bright"
|
photoSub1="Grey wood before Clean & Bright"
|
||||||
photoSub2="After restoration staining"
|
photoSub2="After restoration staining"
|
||||||
|
|||||||
@ -9,7 +9,7 @@ const materialsData = [
|
|||||||
name: "Chain Link Mesh",
|
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.",
|
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"],
|
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",
|
num: "02",
|
||||||
@ -17,7 +17,7 @@ const materialsData = [
|
|||||||
name: "Terminal Posts",
|
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.",
|
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"],
|
specs: ["End posts", "Corner posts", "Gate posts", "Multiple diameters"],
|
||||||
img: "/assets/about-fencing.png"
|
img: "/assets/chain-link-fence/terminal-post.webp"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
num: "03",
|
num: "03",
|
||||||
@ -25,7 +25,7 @@ const materialsData = [
|
|||||||
name: "Line Posts",
|
name: "Line Posts",
|
||||||
desc: "Intermediate posts set between terminal posts to support the mesh and top rail at regular intervals, typically every 10 feet.",
|
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"],
|
specs: ["Galvanized steel", "Multiple heights", "Multiple diameters"],
|
||||||
img: "/assets/manufacturing-hero.png"
|
img: "/assets/chain-link-fence/line-posts.webp"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
num: "04",
|
num: "04",
|
||||||
@ -33,7 +33,7 @@ const materialsData = [
|
|||||||
name: "Top Rail",
|
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.",
|
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"],
|
specs: ["Galvanized pipe", "21ft lengths", "Sleeve-joined"],
|
||||||
img: "/images/chain-link-hero.png"
|
img: "/assets/chain-link-fence/top-rail.webp"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
num: "05",
|
num: "05",
|
||||||
@ -41,7 +41,7 @@ const materialsData = [
|
|||||||
name: "Bottom Tension Wire",
|
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.",
|
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"],
|
specs: ["Galvanized wire", "Bottom rail option", "High tension"],
|
||||||
img: "/assets/about-fencing.png"
|
img: "/assets/chain-link-fence/bottom-tension-wire.webp"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
num: "06",
|
num: "06",
|
||||||
@ -49,7 +49,7 @@ const materialsData = [
|
|||||||
name: "Tension Bars",
|
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.",
|
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"],
|
specs: ["Galvanized steel", "Multiple lengths"],
|
||||||
img: "/assets/manufacturing-hero.png"
|
img: "/assets/chain-link-fence/tension-bars.webp"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
num: "07",
|
num: "07",
|
||||||
@ -57,7 +57,7 @@ const materialsData = [
|
|||||||
name: "Tension Bands",
|
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.",
|
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"],
|
specs: ["Galvanized steel", "Various post sizes"],
|
||||||
img: "/images/chain-link-hero.png"
|
img: "/assets/chain-link-fence/tension-bands.webp"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
num: "08",
|
num: "08",
|
||||||
@ -65,7 +65,7 @@ const materialsData = [
|
|||||||
name: "Brace Bands",
|
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.",
|
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"],
|
specs: ["Galvanized", "All post sizes"],
|
||||||
img: "/assets/about-fencing.png"
|
img: "/assets/chain-link-fence/brace-bands.webp"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
num: "09",
|
num: "09",
|
||||||
@ -73,7 +73,7 @@ const materialsData = [
|
|||||||
name: "Rail Ends",
|
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.",
|
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"],
|
specs: ["Pressed steel", "Galvanized"],
|
||||||
img: "/assets/manufacturing-hero.png"
|
img: "/assets/chain-link-fence/rail-ends.webp"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
num: "10",
|
num: "10",
|
||||||
@ -81,7 +81,7 @@ const materialsData = [
|
|||||||
name: "Post Caps",
|
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.",
|
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"],
|
specs: ["Loop caps", "Dome caps", "All post sizes"],
|
||||||
img: "/images/chain-link-hero.png"
|
img: "/assets/chain-link-fence/post-caps.webp"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
num: "11",
|
num: "11",
|
||||||
@ -89,7 +89,7 @@ const materialsData = [
|
|||||||
name: "Fence Ties",
|
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.",
|
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"],
|
specs: ["Aluminum", "Steel", "Bulk packs"],
|
||||||
img: "/assets/about-fencing.png"
|
img: "/assets/chain-link-fence/fence-ties.webp"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
num: "12",
|
num: "12",
|
||||||
@ -97,7 +97,7 @@ const materialsData = [
|
|||||||
name: "Gates",
|
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.",
|
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"],
|
specs: ["Single walk gates", "Double drive gates", "Custom widths"],
|
||||||
img: "/assets/manufacturing-hero.png"
|
img: "/assets/chain-link-fence/gates.webp"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
num: "13",
|
num: "13",
|
||||||
@ -105,7 +105,7 @@ const materialsData = [
|
|||||||
name: "Gate Hardware",
|
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.",
|
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"],
|
specs: ["Hinges", "Latches", "Cane bolts", "Padlock eyes"],
|
||||||
img: "/images/chain-link-hero.png"
|
img: "/assets/chain-link-fence/gate-hardware.webp"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
num: "14",
|
num: "14",
|
||||||
@ -113,7 +113,7 @@ const materialsData = [
|
|||||||
name: "Concrete",
|
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.",
|
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"],
|
specs: ["Fast-setting", "Bags available", "Post setting mix"],
|
||||||
img: "/assets/about-fencing.png"
|
img: "/assets/chain-link-fence/concrete.webp"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
num: "15",
|
num: "15",
|
||||||
@ -121,7 +121,7 @@ const materialsData = [
|
|||||||
name: "Privacy Slats",
|
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.",
|
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"],
|
specs: ["Multiple colours", "Vertical weave", "UV resistant"],
|
||||||
img: "/assets/manufacturing-hero.png"
|
img: "/assets/chain-link-fence/privacy-slats.webp"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
num: "16",
|
num: "16",
|
||||||
@ -129,7 +129,7 @@ const materialsData = [
|
|||||||
name: "Windscreen / Privacy Mesh",
|
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.",
|
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"],
|
specs: ["Woven fabric", "Commercial grade", "Custom sizes"],
|
||||||
img: "/images/chain-link-hero.png"
|
img: "/assets/chain-link-fence/windscreen.webp"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
num: "17",
|
num: "17",
|
||||||
@ -137,7 +137,7 @@ const materialsData = [
|
|||||||
name: "Barbed Wire",
|
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.",
|
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"],
|
specs: ["Commercial use", "Galvanized", "Barbed wire arms"],
|
||||||
img: "/assets/about-fencing.png"
|
img: "/assets/chain-link-fence/barbed-wire.webp"
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
@ -7,7 +7,7 @@ export default function Products() {
|
|||||||
desc: "Residential and commercial aluminum railing for decks, balconies, stairs, and pools. Multiple profiles and finishes.",
|
desc: "Residential and commercial aluminum railing for decks, balconies, stairs, and pools. Multiple profiles and finishes.",
|
||||||
tags: ["Residential", "Commercial", "Pool-safe"],
|
tags: ["Residential", "Commercial", "Pool-safe"],
|
||||||
badge: "Railing",
|
badge: "Railing",
|
||||||
img: "/assets/manufacturing-hero.png",
|
img: "/assets/home/our-products/aluminium-railing.webp",
|
||||||
href: "#",
|
href: "#",
|
||||||
icon: (
|
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>
|
<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.",
|
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"],
|
tags: ["Black", "Galvanized", "Commercial", "Residential"],
|
||||||
badge: "Fencing",
|
badge: "Fencing",
|
||||||
img: "/images/chain-link-hero.png",
|
img: "/assets/home/our-products/chain-link-fence.webp",
|
||||||
href: "/products/chain-link-fence",
|
href: "/products/chain-link-fence",
|
||||||
icon: (
|
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>
|
<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.",
|
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"],
|
tags: ["Ancient Wood", "Golden Teak", "Anthracite Grey"],
|
||||||
badge: "Fencing",
|
badge: "Fencing",
|
||||||
img: "/assets/about-fencing.png",
|
img: "/assets/home/our-products/composite-fence.webp",
|
||||||
href: "#",
|
href: "#",
|
||||||
icon: (
|
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>
|
<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.",
|
desc: "3 systems — post-mount, standoff/spigot, fascia-mount. 10mm & 12mm tempered glass. Pool-compliant configurations available.",
|
||||||
tags: ["Pool-safe", "Residential", "Commercial"],
|
tags: ["Pool-safe", "Residential", "Commercial"],
|
||||||
badge: "Railing",
|
badge: "Railing",
|
||||||
img: "/assets/manufacturing-hero.png",
|
img: "/assets/home/our-products/glass-railing.webp",
|
||||||
href: "#",
|
href: "#",
|
||||||
icon: (
|
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>
|
<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.",
|
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"],
|
tags: ["Tokio", "Rio", "Denver", "Oslo"],
|
||||||
badge: "Fencing",
|
badge: "Fencing",
|
||||||
img: "/images/chain-link-hero.png",
|
img: "/assets/home/our-products/ornamental-fence.webp",
|
||||||
href: "#",
|
href: "#",
|
||||||
icon: (
|
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>
|
<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.",
|
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"],
|
tags: ["Stain & Seal", "Clean & Bright", "High margin"],
|
||||||
badge: "Wood Care",
|
badge: "Wood Care",
|
||||||
img: "/images/staining-hero.png",
|
img: "/assets/home/our-products/expert-stain.webp",
|
||||||
href: "#",
|
href: "#",
|
||||||
icon: (
|
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>
|
<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.",
|
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"],
|
tags: ["Post Caps", "Post Guards", "Rot Barrier"],
|
||||||
badge: "Accessories",
|
badge: "Accessories",
|
||||||
img: "/images/stained-deck.png",
|
img: "/assets/home/our-products/fence-armor.webp",
|
||||||
href: "#",
|
href: "#",
|
||||||
icon: (
|
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>
|
<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.",
|
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"],
|
tags: ["Construction", "Events", "Rental"],
|
||||||
badge: "Rental",
|
badge: "Rental",
|
||||||
img: "/assets/fence-rentals-hero.png",
|
img: "/assets/home/our-products/temporary-fence-rentals.webp",
|
||||||
href: "#",
|
href: "#",
|
||||||
icon: (
|
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>
|
<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>
|
||||||
|
|||||||
BIN
public/assets/chain-link-fence/barbed-wire.webp
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
public/assets/chain-link-fence/bottom-tension-wire.webp
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
public/assets/chain-link-fence/brace-bands.webp
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
public/assets/chain-link-fence/chain-link-mesh.webp
Normal file
|
After Width: | Height: | Size: 66 KiB |
BIN
public/assets/chain-link-fence/concrete.webp
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
public/assets/chain-link-fence/fence-ties.webp
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
public/assets/chain-link-fence/gate-hardware.webp
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
public/assets/chain-link-fence/gates.webp
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
public/assets/chain-link-fence/line-posts.webp
Normal file
|
After Width: | Height: | Size: 48 KiB |
BIN
public/assets/chain-link-fence/post-caps.webp
Normal file
|
After Width: | Height: | Size: 9.4 KiB |
BIN
public/assets/chain-link-fence/privacy-slats.webp
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
public/assets/chain-link-fence/rail-ends.webp
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
public/assets/chain-link-fence/tension-bands.webp
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
public/assets/chain-link-fence/tension-bars.webp
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
public/assets/chain-link-fence/terminal-post.webp
Normal file
|
After Width: | Height: | Size: 51 KiB |
BIN
public/assets/chain-link-fence/top-rail.webp
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
public/assets/chain-link-fence/windscreen.webp
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
public/assets/home/our-products/aluminium-railing.webp
Normal file
|
After Width: | Height: | Size: 38 KiB |
BIN
public/assets/home/our-products/chain-link-fence.webp
Normal file
|
After Width: | Height: | Size: 53 KiB |
BIN
public/assets/home/our-products/composite-fence.webp
Normal file
|
After Width: | Height: | Size: 44 KiB |
BIN
public/assets/home/our-products/expert-stain.webp
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
public/assets/home/our-products/fence-armor.webp
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
public/assets/home/our-products/glass-railing.webp
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
public/assets/home/our-products/ornamental-fence.webp
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
public/assets/home/our-products/temporary-fence-rentals.webp
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
public/assets/services/service-1/left.webp
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
public/assets/services/service-1/right.webp
Normal file
|
After Width: | Height: | Size: 31 KiB |
BIN
public/assets/services/service-1/top.webp
Normal file
|
After Width: | Height: | Size: 43 KiB |
BIN
public/assets/services/service-2/left.webp
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
public/assets/services/service-2/right.webp
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
public/assets/services/service-2/top.webp
Normal file
|
After Width: | Height: | Size: 70 KiB |
BIN
public/assets/services/service-3/left.webp
Normal file
|
After Width: | Height: | Size: 46 KiB |
BIN
public/assets/services/service-3/right.webp
Normal file
|
After Width: | Height: | Size: 38 KiB |
BIN
public/assets/services/service-3/top.webp
Normal file
|
After Width: | Height: | Size: 49 KiB |
BIN
public/assets/services/service-4/left.webp
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
public/assets/services/service-4/right.webp
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
public/assets/services/service-4/top.webp
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
public/assets/services/service-5/left.webp
Normal file
|
After Width: | Height: | Size: 38 KiB |
BIN
public/assets/services/service-5/right.webp
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
public/assets/services/service-5/top.webp
Normal file
|
After Width: | Height: | Size: 34 KiB |