var gtm4wp_datalayer_name = "dataLayer";
var dataLayer = dataLayer || [];
var params = {"clearLogRestUrl":"https://classiclandscaping.com/wp-json/nf-file-uploads/debug-log/delete-all","clearLogButtonId":"file_uploads_clear_debug_logger","downloadLogRestUrl":"https://classiclandscaping.com/wp-json/nf-file-uploads/debug-log/get-all","downloadLogButtonId":"file_uploads_download_debug_logger"};
//# sourceURL=file_uploads_nfpluginsettings-js-extra
var params = {"clearLogRestUrl":"https://classiclandscaping.com/wp-json/nfzohocrm/debug-log/delete-all","clearLogButtonId":"nfzohocrm_clear_debug_logger","downloadLogRestUrl":"https://classiclandscaping.com/wp-json/nfzohocrm/debug-log/get-all","downloadLogButtonId":"nfzohocrm_download_debug_logger"};
//# sourceURL=nfzohocrm_nfpluginsettings-js-extra
var breeze_prefetch = {"local_url":"https://classiclandscaping.com","ignore_remote_prefetch":"1","ignore_list":["wp-admin","wp-login.php"]};
//# sourceURL=breeze-prefetch-js-extra
https://classiclandscaping.com/wp-content/plugins/breeze/assets/js/js-front-end/breeze-prefetch-links.min.js
var dataLayer_content = {"pagePostType":"blog","pagePostType2":"single-blog","pagePostAuthor":"Rodrigo Frias"};
dataLayer.push( dataLayer_content );
Skip to content Plants & MaterialsRetaining Walls in Seattle: Materials, Costs & Permits
CL
Classic Landscaping Team
March 24, 2026
Part of our
Plants Materials guide
Ready to Transform Your Landscape?
From design to installation, we create landscapes that make Greater Seattle homeowners proud.
Get a Free Consultation Or call us today at
(425) 885-5678Keep Reading
Related Articles

Concrete vs. Pavers vs. Natural Stone in Seattle: Cost, Performance, and What Classic Recommends
Jun 2026 · 1 min read
🌱
Patio Materials for Seattle: Pavers vs Stone
Comparing paver patios, natural stone, and concrete for Seattle's climate. Real costs, durability, and which material performs best long-term.
Mar 2026 · 1 min read
🌱
Best Retaining Wall Materials for the Eastside
Comparing retaining wall materials for Seattle's clay soils — concrete block, natural stone, boulders, poured concrete, and timber.
Mar 2026 · 1 min read
(function() {
'use strict';/* ── Scroll Progress Bar (rAF throttled) ────────────────── */
var progressBar = document.getElementById('clBlogProgress');
var progressTicking = false;
window.addEventListener('scroll', function() {
if (!progressTicking) {
requestAnimationFrame(function() {
var scrollTop = window.pageYOffset || document.documentElement.scrollTop;
var docHeight = document.documentElement.scrollHeight - window.innerHeight;
if (docHeight > 0) {
progressBar.style.width = (scrollTop / docHeight * 100) + '%';
}
progressTicking = false;
});
progressTicking = true;
}
});/* ── Generate TOC from H2 elements ────────────────────────── */
var article = document.getElementById('clBlogArticle');
var tocList = document.getElementById('clBlogToc');
if (article && tocList) {
var headings = article.querySelectorAll('h2');
headings.forEach(function(h, i) {
var id = 'section-' + i;
h.setAttribute('id', id);
var li = document.createElement('li');
var a = document.createElement('a');
a.href = '#' + id;
/* Use full heading text — sidebar is wide enough for 2-line wrap */
var txt = h.textContent.trim().replace(/\?$/, '');
a.textContent = txt;
li.appendChild(a);
tocList.appendChild(li);
});/* Also add FAQ to TOC if it exists */
var faqSection = document.getElementById('faq-section');
if (faqSection) {
var li = document.createElement('li');
var a = document.createElement('a');
a.href = '#faq-section';
a.textContent = 'FAQ';
li.appendChild(a);
tocList.appendChild(li);
}/* Active TOC highlight on scroll — uses getBoundingClientRect for accuracy */
var tocLinks = tocList.querySelectorAll('a');
var allTargets = [];
tocLinks.forEach(function(link) {
var target = document.querySelector(link.getAttribute('href'));
if (target) allTargets.push({ link: link, target: target });
});function updateTocActive() {
var current = null;
var threshold = 200; /* pixels from top of viewport */
for (var t = 0; t < allTargets.length; t++) {
var rect = allTargets[t].target.getBoundingClientRect();
if (rect.top <= threshold) {
current = allTargets[t].link;
}
}
tocLinks.forEach(function(l) { l.classList.remove('active'); });
if (current) current.classList.add('active');
}
var tocTicking = false;
window.addEventListener('scroll', function() {
if (!tocTicking) {
requestAnimationFrame(function() {
updateTocActive();
tocTicking = false;
});
tocTicking = true;
}
});
updateTocActive();/* ── TOC Smooth Scroll ──────────────────────────────────── */
tocLinks.forEach(function(link) {
link.addEventListener('click', function(e) {
e.preventDefault();
var target = document.querySelector(this.getAttribute('href'));
if (target) {
target.scrollIntoView({ behavior: 'smooth' });
}
});
});
}/* ── FAQ Accordion ────────────────────────────────────────── */
document.querySelectorAll('.cl-blog-faq__trigger').forEach(function(trigger) {
trigger.addEventListener('click', function() {
var item = this.closest('.cl-blog-faq__item');
var isOpen = item.classList.contains('open');/* Close all */
document.querySelectorAll('.cl-blog-faq__item').forEach(function(el) {
el.classList.remove('open');
el.querySelector('.cl-blog-faq__trigger').setAttribute('aria-expanded', 'false');
});/* Toggle clicked */
if (!isOpen) {
item.classList.add('open');
this.setAttribute('aria-expanded', 'true');
}
});
});/* ── Copy Link ────────────────────────────────────────────── */
var copyBtn = document.getElementById('clBlogCopyLink');
if (copyBtn) {
copyBtn.addEventListener('click', function(e) {
e.preventDefault();
navigator.clipboard.writeText(window.location.href).then(function() {
copyBtn.style.background = 'var(--cl-orange)';
copyBtn.style.borderColor = 'var(--cl-orange)';
setTimeout(function() {
copyBtn.style.background = '';
copyBtn.style.borderColor = '';
}, 1500);
});
});
}/* ── Scroll Reveal ────────────────────────────────────────── */
var revealElements = document.querySelectorAll('.cl-reveal, .cl-reveal-scale, .cl-reveal-left, .cl-reveal-right, .cl-stagger-children');
var observer = new IntersectionObserver(function(entries) {
entries.forEach(function(entry) {
if (entry.isIntersecting) {
entry.target.classList.add('visible');
observer.unobserve(entry.target);
}
});
}, { threshold: 0.1 });revealElements.forEach(function(el) { observer.observe(el); });})();
window.crwpVer = 1;
const lazyloadRunObserver = () => {
const lazyloadBackgrounds = document.querySelectorAll( `.e-con.e-parent:not(.e-lazyloaded)` );
const lazyloadBackgroundObserver = new IntersectionObserver( ( entries ) => {
entries.forEach( ( entry ) => {
if ( entry.isIntersecting ) {
let lazyloadBackground = entry.target;
if( lazyloadBackground ) {
lazyloadBackground.classList.add( 'e-lazyloaded' );
}
lazyloadBackgroundObserver.unobserve( entry.target );
}
});
}, { rootMargin: '200px 0px 200px 0px' } );
lazyloadBackgrounds.forEach( ( lazyloadBackground ) => {
lazyloadBackgroundObserver.observe( lazyloadBackground );
} );
};
const events = [
'DOMContentLoaded',
'elementor/lazyload/observe',
];
events.forEach( ( event ) => {
document.addEventListener( event, lazyloadRunObserver );
} );
https://classiclandscaping.com/wp-includes/js/jquery/ui/core.min.js
https://classiclandscaping.com/wp-includes/js/jquery/ui/datepicker.min.js
jQuery(function(jQuery){jQuery.datepicker.setDefaults({"closeText":"Close","currentText":"Today","monthNames":["January","February","March","April","May","June","July","August","September","October","November","December"],"monthNamesShort":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"nextText":"Next","prevText":"Previous","dayNames":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"dayNamesShort":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"dayNamesMin":["S","M","T","W","T","F","S"],"dateFormat":"MM d, yy","firstDay":1,"isRTL":false});});
//# sourceURL=jquery-ui-datepicker-js-after
var envVariable = {"templateUrl":"https://classiclandscaping.com/wp-content/themes/bullseyecreative"};
//# sourceURL=navigation-js-extra
https://classiclandscaping.com/wp-content/themes/bullseyecreative/dist/js/navigation.js
https://classiclandscaping.com/wp-content/themes/bullseyecreative/dist/js/forms.js
https://classiclandscaping.com/wp-content/themes/bullseyecreative/dist/js/custom.js
https://classiclandscaping.com/wp-content/themes/bullseyecreative/assets/js/owl.carousel.js