#ka-site{
–forest:#29382e;–sand:#d8bd87;–cream:#f7f5ef;
–ink:#252a25;–muted:#70756e;–line:#e5e3dc;
font-family:Arial,Helvetica,sans-serif;color:var(–ink);
line-height:1.55;width:100%;margin:auto
}
#ka-site *{box-sizing:border-box}
#ka-site h1,#ka-site h2,#ka-site h3{line-height:1.2}
#ka-site a{text-decoration:none}
#ka-site .ka-top{
background:var(–forest);color:white;padding:17px 22px;
display:flex;justify-content:space-between;align-items:center;gap:14px
}
#ka-site .ka-brand{font-size:21px;font-weight:800;letter-spacing:1px}
#ka-site .ka-subbrand{font-size:10px;letter-spacing:2px;color:#dedbd0}
#ka-site .ka-nav{display:flex;gap:18px;flex-wrap:wrap;font-size:13px}
#ka-site .ka-nav a{color:white}
#ka-site .ka-hero{
background:linear-gradient(110deg,#28362d 0%,#46513e 100%);
color:white;padding:65px 30px;text-align:left
}
#ka-site .ka-kicker{font-size:11px;letter-spacing:3px;color:var(–sand);font-weight:bold}
#ka-site .ka-hero h1{font-size:clamp(34px,5vw,57px);max-width:650px;
color:white;margin:15px 0}
#ka-site .ka-hero p{max-width:510px;color:#e5e6de;font-size:16px}
#ka-site .ka-btn{display:inline-block;border:0;border-radius:3px;
padding:13px 20px;font-weight:bold;font-size:13px;cursor:pointer;
text-align:center}
#ka-site .ka-btn-gold{background:var(–sand);color:#242a23}
#ka-site .ka-btn-light{border:1px solid #c7cbbf;color:white;margin-left:8px}
#ka-site .ka-strip{display:grid;grid-template-columns:repeat(3,1fr);
background:var(–cream);padding:19px 24px;gap:12px;text-align:center}
#ka-site .ka-strip strong{display:block;font-size:12px}
#ka-site .ka-strip span{font-size:11px;color:var(–muted)}
#ka-site .ka-section{padding:42px 24px}
#ka-site .ka-heading{display:flex;justify-content:space-between;
align-items:end;gap:18px;margin-bottom:22px}
#ka-site .ka-heading h2{font-size:30px;margin:5px 0}
#ka-site .ka-heading p{color:var(–muted);font-size:13px;margin:5px 0}
#ka-site .ka-eyebrow{font-size:10px;letter-spacing:2px;font-weight:bold;color:#82704b}
#ka-site .ka-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px}
#ka-site .ka-card{border:1px solid var(–line);background:#fff;min-width:0}
#ka-site .ka-photo{height:170px;background:#ded7c7;overflow:hidden}
#ka-site .ka-photo img{width:100%;height:100%;object-fit:cover;display:block}
#ka-site .ka-cardbody{padding:15px}
#ka-site .ka-card h3{font-size:17px;margin:0 0 8px}
#ka-site .ka-card p{font-size:12px;color:var(–muted);min-height:36px;margin:0 0 13px}
#ka-site .ka-select{display:flex;align-items:center;gap:8px;font-size:12px;
font-weight:bold;margin-bottom:10px}
#ka-site .ka-select input{width:18px;height:18px;accent-color:var(–forest)}
#ka-site label{display:block;font-size:12px;font-weight:bold;margin:10px 0 5px}
#ka-site input,#ka-site select,#ka-site textarea{
display:block;width:100%;min-width:0;border:1px solid #d7d7d0;
border-radius:3px;background:white;padding:11px;font:inherit;font-size:14px;color:#222
}
#ka-site input[type=number]{padding:9px}
#ka-site .ka-cart{background:var(–cream);padding:25px;border:1px solid var(–line)}
#ka-site .ka-cart h2{font-size:26px;margin:0 0 8px}
#ka-site .ka-muted{font-size:13px;color:var(–muted)}
#ka-site .ka-orderline{display:flex;justify-content:space-between;gap:12px;
padding:10px 0;border-bottom:1px solid #deddd5;font-size:13px}
#ka-site .ka-formgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
#ka-site .ka-full{grid-column:1/-1}
#ka-site .ka-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
#ka-site .ka-call{background:var(–forest);color:white}
#ka-site .ka-delivery{background:var(–forest);color:white;padding:30px;
display:flex;justify-content:space-between;align-items:center;gap:20px}
#ka-site .ka-delivery h2{font-size:25px;color:white;margin:0 0 8px}
#ka-site .ka-delivery p{font-size:13px;color:#e0e4db;margin:0}
#ka-site .ka-footer{background:#202a23;color:#eee;padding:23px;text-align:center;font-size:12px}
#ka-site .ka-footer p{margin:5px}
#ka-site .ka-note{font-size:11px;color:var(–muted);margin-top:14px}
@media(max-width:760px){
#ka-site .ka-top{align-items:flex-start;flex-direction:column}
#ka-site .ka-nav{gap:14px}
#ka-site .ka-hero{padding:44px 22px}
#ka-site .ka-strip{padding:16px 8px;gap:5px}
#ka-site .ka-strip strong{font-size:10px}
#ka-site .ka-strip span{font-size:10px}
#ka-site .ka-section{padding:32px 14px}
#ka-site .ka-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
#ka-site .ka-photo{height:130px}
#ka-site .ka-cardbody{padding:10px}
#ka-site .ka-card h3{font-size:15px}
#ka-site .ka-heading h2{font-size:25px}
#ka-site .ka-delivery{align-items:flex-start;flex-direction:column}
}
@media(max-width:380px){
#ka-site .ka-grid{grid-template-columns:1fr}
#ka-site .ka-photo{height:190px}
#ka-site .ka-formgrid{grid-template-columns:1fr}
#ka-site .ka-full{grid-column:auto}
}
YOUR LOCAL MATERIAL SUPPLIER
Build Your Project on the Right Foundation.
Explore our selection of stone, decomposed granite,
base materials and soil for landscaping and construction.
EXPLORE MATERIALS
CALL OUR TEAM
QUALITY MATERIALSFor outdoor projects
COMPETITIVE PRICESRequest a quote
DELIVERY AVAILABLEAsk about your location
EXPLORE OUR SELECTION
Our Materials
Select the products you need to start your quote.
1/4" Decomposed Granite
Fine aggregate for pathways and landscaping.
Add to quote
Quantity
1/2" Decomposed Granite
Versatile aggregate for outdoor projects.
Add to quote
Quantity
3/4" Base
Base aggregate for ground preparation.
Add to quote
Quantity
Topsoil
Soil for landscaping and garden projects.
Add to quote
Quantity
Request a Quote
Choose your materials and tell us about your project.
No materials selected yet.
All requests are subject to confirmation of pricing,
product availability, quantity and delivery. No online payment is collected.
Need materials delivered?
Contact us to check delivery availability and get a quote for your project.
CALL US TODAY
(function(){
const root=document.getElementById(‘ka-site’);
if(!root || root.dataset.initialized) return;
root.dataset.initialized=’yes’;
const checks=[…root.querySelectorAll(‘.ka-check’)];
const summary=root.querySelector(‘#ka-summary’);
const result=root.querySelector(‘#ka-result’);
function chosen(){
return checks.filter(c=>c.checked).map(c=>({
name:c.dataset.name,
qty:Math.max(1,parseInt(c.closest(‘.ka-cardbody’).querySelector(‘.ka-qty’).value,10)||1)
}));
}
function refresh(){
const items=chosen();
summary.replaceChildren();
if(!items.length){
summary.textContent=’No materials selected yet.’;
return;
}
items.forEach(item=>{
const line=document.createElement(‘div’);
line.className=’ka-orderline’;
const name=document.createElement(‘span’);
name.textContent=item.name;
const qty=document.createElement(‘strong’);
qty.textContent=item.qty+’ unit(s)’;
line.append(name,qty);
summary.append(line);
});
}
checks.forEach(c=>c.addEventListener(‘change’,refresh));
root.querySelectorAll(‘.ka-qty’).forEach(q=>q.addEventListener(‘input’,refresh));
root.querySelector(‘#ka-form’).addEventListener(‘submit’,function(e){
e.preventDefault();
const items=chosen();
if(!items.length){
result.textContent=’Please select at least one material above.’;
return;
}
const val=id=>root.querySelector(‘#’+id).value.trim();
const lines=[
‘K&A STONE & SOIL – QUOTE REQUEST’,
»,
‘Customer: ‘+val(‘ka-name’),
‘Phone: ‘+val(‘ka-phone’),
‘Delivery location: ‘+(val(‘ka-city’)||’Not provided’),
‘Preferred unit: ‘+val(‘ka-unit’),
‘Requested date: ‘+(val(‘ka-date’)||’Flexible’),
»,
‘SELECTED MATERIALS:’,
…items.map(i=>i.name+’ – ‘+i.qty+’ unit(s)’),
»,
‘Project details: ‘+(val(‘ka-notes’)||’None’),
»,
‘Please confirm pricing and delivery availability.’
];
const text=lines.join(‘\n’);
result.replaceChildren();
const heading=document.createElement(‘p’);
heading.textContent=’Your request is ready. Contact us by phone to confirm your order:’;
result.append(heading);
const copy=document.createElement(‘button’);
copy.type=’button’;
copy.className=’ka-btn ka-btn-gold’;
copy.textContent=’COPY REQUEST DETAILS’;
copy.addEventListener(‘click’,function(){
const area=document.createElement(‘textarea’);
area.value=text;
area.setAttribute(‘readonly’,»);
result.append(area);
area.select();
try{document.execCommand(‘copy’);copy.textContent=’COPY AGAIN IF NEEDED’;}
catch(err){copy.textContent=’Select and copy the text above’;}
});
result.append(copy);
const call=document.createElement(‘a’);
call.className=’ka-btn ka-call’;
call.href=’tel:+12103506298′;
call.textContent=’CALL 210-350-6298′;
result.append(call);
const details=document.createElement(‘textarea’);
details.readOnly=true;
details.rows=8;
details.value=text;
details.style.marginTop=’14px’;
result.append(details);
});
refresh();
})();