.d3m-wrap * { box-sizing: border-box; margin: 0; padding: 0; } .d3m-wrap { width: 100vw; position: relative; left: 50%; right: 50%; margin-left: -50vw; margin-right: -50vw; background: #1a3f59; padding-bottom: 64px; font-family: Arial, Helvetica, sans-serif; color: #fff; } .d3m-wrap .d3m-grad { font-family: 'Montserrat', sans-serif; background: linear-gradient(90deg, #36b8d0 0%, #a8dd54 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .d3m-wrap .d3m-nav { width: 100%; display: flex; align-items: center; justify-content: center; padding: 20px 24px; border-bottom: 0.5px solid rgba(54,184,208,0.2); } .d3m-wrap .d3m-logo-wrap { display: flex; align-items: center; gap: 12px; } .d3m-wrap .d3m-logo-wrap img { width: 52px; height: 52px; border-radius: 10px; object-fit: contain; } .d3m-wrap .d3m-logo-name { font-family: 'Montserrat', sans-serif; font-size: 20px; font-weight: 700; color: #fff; letter-spacing: 0.02em; display: block; } .d3m-wrap .d3m-logo-tagline { font-size: 11px; color: #36b8d0; letter-spacing: 0.08em; text-transform: uppercase; display: block; } .d3m-wrap .d3m-hero { width: 100%; padding: 44px 24px 36px; text-align: center; } .d3m-wrap .d3m-page-label { font-size: 11px; font-weight: 500; letter-spacing: 0.12em; color: #36b8d0; text-transform: uppercase; margin-bottom: 10px; } .d3m-wrap .d3m-hero h1 { font-family: 'Montserrat', sans-serif; font-size: clamp(22px, 4vw, 36px); font-weight: 700; line-height: 1.2; margin-bottom: 14px; } .d3m-wrap .d3m-hero p { font-size: 15px; color: #fff; max-width: 560px; margin: 0 auto 32px; line-height: 1.65; } .d3m-wrap .d3m-video-outer { width: 100%; padding: 0 24px; } .d3m-wrap .d3m-video-wrap { background: rgba(0,0,0,0.3); border: 0.5px solid rgba(54,184,208,0.3); border-radius: 14px; width: 100%; max-width: 860px; margin: 0 auto; aspect-ratio: 16/9; display: flex; align-items: center; justify-content: center; overflow: hidden; } .d3m-wrap .d3m-video-placeholder { display: flex; flex-direction: column; align-items: center; gap: 12px; } .d3m-wrap .d3m-play-btn { width: 60px; height: 60px; border-radius: 50%; background: #36b8d0; display: flex; align-items: center; justify-content: center; } .d3m-wrap .d3m-play-btn svg { width: 24px; height: 24px; fill: #1a3f59; margin-left: 3px; } .d3m-wrap .d3m-video-label { font-size: 13px; color: rgba(255,255,255,0.5); } .d3m-wrap .d3m-sec-label { text-align: center; font-size: 11px; font-weight: 500; letter-spacing: 0.12em; color: #36b8d0; text-transform: uppercase; padding-top: 52px; margin-bottom: 8px; } .d3m-wrap .d3m-sec-title { text-align: center; font-size: clamp(18px, 3vw, 24px); margin-bottom: 28px; padding: 0 24px; } .d3m-wrap .d3m-grid-wrap { width: 100%; padding: 0 24px; } .d3m-wrap .d3m-top3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; max-width: 1200px; margin: 0 auto; } .d3m-wrap .d3m-top-card { background: rgba(168,221,84,0.07); border: 0.5px solid rgba(168,221,84,0.35); border-radius: 14px; overflow: hidden; position: relative; } .d3m-wrap .d3m-top-card::after { content: ''; display: block; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: #a8dd54; border-radius: 14px 14px 0 0; } .d3m-wrap .d3m-img-placeholder { width: 100%; height: 180px; background: rgba(54,184,208,0.08); border-bottom: 0.5px solid rgba(54,184,208,0.2); display: flex; align-items: center; justify-content: center; } .d3m-wrap .d3m-img-placeholder span { font-size: 11px; color: rgba(255,255,255,0.3); letter-spacing: 0.06em; text-transform: uppercase; } .d3m-wrap .d3m-top-card-body { padding: 20px 18px 22px; } .d3m-wrap .d3m-top-pill { display: inline-block; background: rgba(168,221,84,0.15); color: #a8dd54; font-size: 10px; font-weight: 500; padding: 3px 10px; border-radius: 20px; margin-bottom: 12px; letter-spacing: 0.05em; text-transform: uppercase; } .d3m-wrap .d3m-top-card h3 { font-family: 'Montserrat', sans-serif; font-size: 15px; font-weight: 700; color: #36b8d0; margin-bottom: 8px; } .d3m-wrap .d3m-top-card p { font-size: 13px; color: #fff; line-height: 1.6; } .d3m-wrap .d3m-rule { height: 0.5px; background: rgba(54,184,208,0.18); margin: 52px 24px 0; } .d3m-wrap .d3m-feat-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; max-width: 1200px; margin: 0 auto; } .d3m-wrap .d3m-feat { background: rgba(255,255,255,0.04); border: 0.5px solid rgba(255,255,255,0.09); border-radius: 10px; padding: 16px 14px; transition: border-color 0.2s, background 0.2s; } .d3m-wrap .d3m-feat:hover { border-color: rgba(54,184,208,0.35); background: rgba(54,184,208,0.05); } .d3m-wrap .d3m-fh { display: flex; align-items: center; gap: 10px; margin-bottom: 7px; } .d3m-wrap .d3m-fi { width: 32px; height: 32px; background: rgba(54,184,208,0.12); border-radius: 7px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .d3m-wrap .d3m-fi svg { width: 16px; height: 16px; stroke: #36b8d0; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; } .d3m-wrap .d3m-feat h4 { font-family: 'Montserrat', sans-serif; font-size: 13px; font-weight: 700; color: #a8dd54; } .d3m-wrap .d3m-feat p { font-size: 12px; color: #fff; line-height: 1.55; } .d3m-wrap .d3m-tags { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 7px; } .d3m-wrap .d3m-tag { background: rgba(54,184,208,0.1); color: #36b8d0; font-size: 10px; padding: 2px 7px; border-radius: 10px; } .d3m-wrap .d3m-cta { text-align: center; padding: 52px 24px 0; } .d3m-wrap .d3m-cta h2 { font-family: 'Montserrat', sans-serif; font-size: clamp(18px, 3vw, 24px); font-weight: 700; margin-bottom: 8px; } .d3m-wrap .d3m-cta p { font-size: 14px; color: #fff; margin-bottom: 24px; } .d3m-wrap .d3m-cta-btn { display: inline-block; background: #36b8d0; color: #1a3f59 !important; font-family: 'Montserrat', sans-serif; font-size: 14px; font-weight: 700; padding: 13px 32px; border-radius: 8px; text-decoration: none !important; letter-spacing: 0.02em; transition: background 0.2s; } .d3m-wrap .d3m-cta-btn:hover { background: #4ecde3; } .d3m-wrap .d3m-logo-upload-label { width: 52px; height: 52px; border-radius: 10px; background: rgba(54,184,208,0.15); border: 1.5px dashed #36b8d0; display: flex; align-items: center; justify-content: center; cursor: pointer; flex-shrink: 0; } @media (max-width: 900px) { .d3m-wrap .d3m-top3 { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 580px) { .d3m-wrap .d3m-top3 { grid-template-columns: 1fr; } .d3m-wrap .d3m-feat-grid { grid-template-columns: 1fr 1fr; } .d3m-wrap .d3m-hero p { font-size: 14px; } } @media (max-width: 380px) { .d3m-wrap .d3m-feat-grid { grid-template-columns: 1fr; } }
D3M Trades Built for the trades
Platform overview

What makes D3M Trades different

A voice-first platform built by a trades family, for tradespeople across the UK & Ireland, helping you price jobs properly, reduce paperwork, and run a smarter, more profitable business.

<!-- -->
Watch the D3M Trades overview
What sets us apart
Three things no other platform offers
<!-- REPLACE with: Live industry insights -->
Add image here
Standout feature

Live industry insights

The more tradespeople use D3M Trades, the smarter it gets. Real regional pricing and labour data, so your quotes always reflect what the market actually pays.

<!-- REPLACE with: Built-in business advisor -->
Add image here
Standout feature

Built-in business advisor

D3M Dimes is your AI-powered business advisor, built into the platform. Pricing guidance, margin analysis, marketing prompts, always on hand.

<!-- REPLACE with: Talk or type -->
Add image here
Standout feature

Talk or type

Voice-first by design. Raise quotes, log jobs, and update records hands-free, on the tools, in the van, or wherever your day takes you.

Full feature set
Everything in one place

Job builder

Day rate, metre square, staged payments, price breakdowns and variations, all in one job.

Day rateStagedVariations

Elemental estimating

Detailed cost breakdowns, day works, variations, snag recording with full CIS & RCT support.

CISRCTSnag recording

Client database

Every client, job, and document in one searchable place. No more lost paperwork or missed follow-ups.

Site photos & documents

Capture and store site photos and documents on each job record, everything saved, searchable, and protected.

Materials library

Build your own catalogue with accurate pricing. Add materials to any quote in seconds.

Job scheduler & calendar

Schedule jobs and manage your diary in one clear view. Keep the whole team aligned.

Business costs & overheads

Enter your running costs once, automatically applied to every job so you never underprice again.

AutomatedEvery job

Accounting integration

Connects with your existing accounting software, no double-entry, no manual exports.

Stripe payment links

Get paid faster. Send professional payment links for deposits, stage payments, or final invoices.

Email direct to client

Send quotes, invoices, receipts, contracts, and warranties straight from the platform, branded every time.

QuotesInvoicesWarranties

Ready to run a smarter trades business?

Join tradespeople across the UK & Ireland already using D3M Trades.

Start your 30 day free trial
var d3mInput = document.getElementById('d3m-logo-input'); var d3mLabel = document.getElementById('d3m-logo-label'); var d3mImg = document.getElementById('d3m-logo-img'); d3mLabel.addEventListener('click', function(e){ e.preventDefault(); d3mInput.click(); }); d3mInput.addEventListener('change', function() { var file = this.files[0]; if (!file) return; var reader = new FileReader(); reader.onload = function(e) { d3mImg.src = e.target.result; d3mImg.style.display = 'block'; d3mLabel.style.display = 'none'; }; reader.readAsDataURL(file); });