
:root{
  --bg:#ffffff;
  --ink:#0f172a;
  --muted:#475569;
  --brand:#2e7d32;
  --brand-ink:#0b3d0f;
  --card:#f1f5f9;
  --ring:#94a3b8;
  --radius:14px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font:16px/1.6 system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Arial, sans-serif}
img{max-width:100%;height:auto;display:block}
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:1100px;margin-inline:auto;padding:24px}
.site-header{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.9);backdrop-filter:saturate(1.2) blur(8px);border-bottom:1px solid #e2e8f0}
.site-header .wrap{display:flex;align-items:center;gap:16px}
.brand{display:flex;align-items:center;gap:12px;font-weight:700;color:var(--ink)}
.logo{width:40px;height:40px;object-fit:contain;border-radius:8px;background:#fff;border:1px solid #e2e8f0}
.nav{margin-left:auto;display:flex;gap:16px;align-items:center}
.nav a{color:var(--ink)}
.btn{display:inline-block;padding:.8rem 1.1rem;border-radius:10px;background:linear-gradient(180deg, #34a853, var(--brand));color:#fff;font-weight:700;border:none;box-shadow:0 6px 20px rgba(46,125,50,.25)}
.btn:hover{filter:brightness(1.05);text-decoration:none}
.btn-outline{background:transparent;color:var(--brand);border:2px solid var(--brand)}
.btn-sm{padding:.5rem .8rem;border-radius:8px}
.nav-toggle{display:none;margin-left:8px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:.4rem .6rem}
.hero{background:linear-gradient(120deg, #e6f4ea, #ffffff);}
.hero .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:28px;align-items:center}
.lead{color:var(--muted);font-size:1.125rem}
.slogan{margin-top:10px;color:var(--brand-ink);font-weight:700}
.ba-card{position:relative;border-radius:var(--radius);overflow:hidden;border:1px solid #e2e8f0;box-shadow:0 10px 26px rgba(16,24,40,.08)}
.ba-card img:nth-child(1){filter:grayscale(.2) contrast(.9)}
.ba-card img:nth-child(2){position:absolute;inset:0;clip-path:inset(0 50% 0 0);transition:clip-path .3s ease}
.ba-card:hover img:nth-child(2){clip-path:inset(0 0 0 0)}
.ba-card figcaption{position:absolute;bottom:8px;right:10px;background:rgba(0,0,0,.6);color:#fff;padding:4px 8px;border-radius:6px;font-size:.85rem}
.trust-badges{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;list-style:none;padding:0;margin:0}
.trust{background:#fbfbfc;border-top:1px solid #e9eef5;border-bottom:1px solid #e9eef5}
.services .grid, .gallery .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.card{background:var(--card);padding:18px;border-radius:var(--radius);border:1px solid #e2e8f0}
.gallery{background:linear-gradient(180deg, #ffffff, #f6fbf7)}
.mt{margin-top:1rem}
.photo{border-radius:var(--radius);overflow:hidden;border:1px solid #e2e8f0;background:#fff}
.split{display:grid;grid-template-columns:1.1fr .9fr;gap:24px}
.aside .quote{background:#042f14;color:#e8f5e9;border-color:transparent}
.aside .by{opacity:.85;margin-top:.5rem}
.faq details{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:12px;margin:8px 0}
.contact-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:24px}
.form{display:grid;gap:12px}
input,select,textarea{width:100%;padding:.8rem;border:1px solid #cbd5e1;border-radius:10px;outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(46,125,50,.15)}
.phone,.sms,.map{display:block;margin:.2rem 0;font-weight:700}
.hours{color:var(--muted)}
.site-footer{border-top:1px solid #e2e8f0;background:#fff}
.small{font-size:.9rem;color:var(--muted)}
/* Before/After slider */
.ba-slider{position:relative;overflow:hidden;border-radius:var(--radius);border:1px solid #e2e8f0}
.ba-slider img{display:block;width:100%;height:auto}
.ba-slider img:nth-child(2){position:absolute;inset:0;clip-path:inset(0 50% 0 0);transition:clip-path .15s ease}
.ba-slider::after{content:attr(data-label-before) ' | ' attr(data-label-after);position:absolute;bottom:8px;right:10px;background:rgba(0,0,0,.6);color:#fff;padding:4px 8px;border-radius:6px;font-size:.85rem}
@media (max-width: 900px){
  .hero .wrap, .split, .services .grid, .gallery .grid, .contact-grid{grid-template-columns:1fr}
  .nav{display:none;position:absolute;top:60px;right:16px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:10px;flex-direction:column}
  .nav a{padding:8px 10px}
  .nav-toggle{display:inline-block}
}

/* Floating Call Now button */
.call-now{
  position:fixed;
  bottom:20px;
  right:20px;
  background:#2e7d32;
  color:#fff;
  font-weight:700;
  padding:.9rem 1.2rem;
  border-radius:50px;
  box-shadow:0 6px 16px rgba(0,0,0,.25);
  text-decoration:none;
  z-index:1000;
}
.call-now:hover{filter:brightness(1.1);text-decoration:none}

/* Floating Call Button */
.fab-call{
  position:fixed;
  right:16px;
  bottom:16px;
  z-index:60;
  background:linear-gradient(180deg, #34a853, var(--brand));
  color:#fff;
  font-weight:800;
  padding:0.9rem 1.1rem;
  border-radius:999px;
  box-shadow:0 10px 24px rgba(46,125,50,.35);
  letter-spacing:.2px;
}
.fab-call:hover{filter:brightness(1.05);text-decoration:none}
@media (min-width: 851px){
  .fab-call{display:none;} /* mobile-first: show on small screens only */
}

/* Floating SMS Button */
.fab-sms{
  position:fixed;
  right:16px;
  bottom:76px; /* sits above Call button */
  z-index:60;
  background:#111827;
  color:#fff;
  font-weight:800;
  padding:0.9rem 1.1rem;
  border-radius:999px;
  box-shadow:0 10px 24px rgba(0,0,0,.3);
  letter-spacing:.2px;
}
.fab-sms:hover{filter:brightness(1.05);text-decoration:none}
@media (min-width: 851px){
  .fab-sms{display:none;}
}

/* Pricing */
.pricing{background:linear-gradient(180deg,#f7fbf8,#ffffff)}
.pricing .lead{margin-top:.25rem}
.pricing-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:14px}
.p-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:18px;position:relative;box-shadow:0 8px 20px rgba(16,24,40,.06)}
.p-card .price{font-size:1.5rem;font-weight:800;margin:.2rem 0 .6rem;color:var(--brand-ink)}
.p-card .p-list{margin:0;padding-left:18px}
.p-card .note{margin-top:.6rem;color:var(--muted);font-size:.9rem}
.p-popular{border-color:#16a34a;box-shadow:0 12px 30px rgba(22,163,74,.15)}
.p-popular .tag{position:absolute;top:10px;right:10px;background:#16a34a;color:#fff;font-size:.75rem;padding:.25rem .5rem;border-radius:999px}
.add-ons{margin-top:22px}
.add-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.addon{display:flex;justify-content:space-between;align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:10px}
.labor{margin-top:20px}
.fineprint{margin-top:10px}
@media (max-width: 1000px){
  .pricing-grid{grid-template-columns:repeat(2,1fr)}
  .add-grid{grid-template-columns:1fr 1fr}
}
@media (max-width: 640px){
  .pricing-grid{grid-template-columns:1fr}
  .add-grid{grid-template-columns:1fr}
}

/* Pricing Guide */
.pricing-guide{margin-top:22px}
.guide-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px;align-items:center;margin-top:10px}
.truck-graphic{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:12px}
.p-factors{margin:0;padding-left:18px}
.estimator{margin-top:18px}
.est-row{display:flex;flex-direction:column;gap:8px;margin:10px 0}
.est-row.toggles{flex-direction:row;gap:18px;align-items:center}
.est-output{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:12px;margin-top:10px}
input[type="range"]{accent-color:var(--brand)}
@media (max-width: 900px){
  .guide-grid{grid-template-columns:1fr}
}
