1<!DOCTYPE html> 2<html lang="en"> 3<head> 4<meta charset="UTF-8"> 5<meta name="viewport" content="width=device-width, initial-scale=1.0"> 6<title>Blog â Zukuma</title> 7<meta name="description" content="Insights, tactics, and lessons from running outbound for commercial cleaning companies across the U.S., Canada & UK."> 8<!-- Favicons --> 9<link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon-32.png"> 10<link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon-16.png"> 11<link rel="apple-touch-icon" sizes="180x180" href="/assets/apple-touch-icon.png"> 12<link rel="icon" href="/favicon.ico" sizes="any"> 13<link rel="preconnect" href="https://fonts.googleapis.com"> 14<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 15<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&family=Instrument+Serif:ital@0;1&family=Caveat:wght@500;700&display=swap" rel="stylesheet">
16<script defer src="https://cdn.vercel-insights.com/v1/script.js"></script>
16 17<style> 18 * { margin: 0; padding: 0; box-sizing: border-box; } 19 20 :root { 21 --bg: #FAFAF6; 22 --bg-warm: #F7F8F2; 23 --bg-mint: #F0FDF4; 24 --card: #FFFFFF; 25 --text: #0A1F14; 26 --text-dim: #4A5A52; 27 --text-faint: #94A3B8; 28 --green: #7CAB67; 29 --green-deep: #5E8E3B; 30 --green-darker: #3F5F2A; 31 --green-soft: #DCF1E4; 32 --green-tint: #EBF7EF; 33 --border: #E7E5DF; 34 --border-strong: #D1D5DB; 35 --shadow-sm: 0 1px 2px rgba(63,95,42,0.04), 0 1px 4px rgba(63,95,42,0.04); 36 --shadow: 0 4px 6px -1px rgba(63,95,42,0.05), 0 12px 28px -4px rgba(63,95,42,0.08); 37 --r: 16px; 38 --ease: cubic-bezier(0.2, 0.8, 0.2, 1); 39 } 40 41 html { scroll-behavior: smooth; } 42 43 body { 44 font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif; 45 background: var(--bg); 46 color: var(--text); 47 line-height: 1.55; 48 -webkit-font-smoothing: antialiased; 49 overflow-x: hidden; 50 } 51 52 .container { max-width: 1180px; margin: 0 auto; padding: 0 24px; } 53 54 /* ============ NAV ============ */ 55 .nav { 56 position: sticky; top: 0; z-index: 100; 57 background: rgba(250,250,246,0.88); 58 backdrop-filter: blur(14px); 59 border-bottom: 1px solid var(--border); 60 padding: 14px 0; 61 transition: padding 0.2s, box-shadow 0.2s; 62 } 63 .nav.scrolled { padding: 10px 0; box-shadow: 0 1px 12px rgba(63,95,42,0.06); } 64 .nav-inner { display: flex; justify-content: space-between; align-items: center; gap: 24px; } 65 .logo { 66 display: flex; align-items: center; text-decoration: none; 67 } 68 .logo img { 69 height: 34px; width: auto; display: block; 70 } 71 .nav-links { 72 display: flex; gap: 28px; list-style: none; 73 } 74 .nav-links a { 75 color: var(--text-dim); text-decoration: none; 76 font-size: 14.5px; font-weight: 500; 77 transition: color 0.15s; position: relative; 78 } 79 .nav-links a::after { 80 content: ''; position: absolute; 81 left: 0; right: 0; bottom: -6px; 82 height: 2px; background: var(--green); 83 transform: scaleX(0); transform-origin: left; 84 transition: transform 0.25s var(--ease); 85 } 86 .nav-links a:hover { color: var(--text); } 87 .nav-links a:hover::after, 88 .nav-links a.active::after { transform: scaleX(1); } 89 .nav-links a.active { color: var(--text); font-weight: 600; } 90 .nav-links li.separated { 91 margin-left: 8px; padding-left: 20px; 92 border-left: 1px solid var(--border-strong); 93 } 94 .nav-right { display: flex; align-items: center; gap: 16px; } 95 96 .btn { 97 background: var(--green); color: white; 98 padding: 11px 20px; border-radius: 10px; 99 text-decoration: none; font-weight: 600; font-size: 14px; 100 border: none; cursor: pointer; font-family: inherit; 101 display: inline-flex; align-items: center; gap: 6px; 102 transition: transform 0.15s, box-shadow 0.15s; 103 box-shadow: 0 4px 12px rgba(124,171,103,0.25); 104 } 105 .btn:hover { transform: translateY(-1px); box-shadow: 0 8px 20px rgba(124,171,103,0.35); } 106 107 /* ============ BLOG HERO ============ */ 108 .blog-hero { 109 padding: 64px 0 40px; 110 position: relative; 111 overflow: hidden; 112 text-align: center; 113 } 114 .blog-hero::before { 115 content: ''; position: absolute; inset: 0; pointer-events: none; 116 background: 117 radial-gradient(ellipse 50% 40% at 80% 20%, rgba(124,171,103,0.08), transparent 70%), 118 radial-gradient(ellipse 60% 40% at 10% 60%, rgba(168,204,154,0.06), transparent 70%); 119 } 120 .blog-hero::after { 121 content: ''; position: absolute; inset: 0; pointer-events: none; 122 background-image: radial-gradient(circle, rgba(124,171,103,0.07) 1px, transparent 1px); 123 background-size: 28px 28px; 124 mask-image: radial-gradient(ellipse 70% 60% at 50% 30%, black 30%, transparent 80%); 125 } 126 .blog-hero-inner { position: relative; z-index: 1; max-width: 760px; margin: 0 auto; } 127 128 .eyebrow { 129 display: inline-flex; align-items: center; gap: 8px; 130 background: white; border: 1px solid var(--border); 131 color: var(--green-deep); padding: 8px 16px; border-radius: 100px; 132 font-size: 12px; font-weight: 700; letter-spacing: 0.4px; 133 text-transform: uppercase; 134 margin-bottom: 24px; 135 box-shadow: var(--shadow-sm); 136 } 137 138 h1 { 139 font-size: clamp(38px, 5vw, 60px); 140 line-height: 1.05; letter-spacing: -1.7px; 141 font-weight: 800; 142 margin-bottom: 20px; 143 } 144 h1 .serif { font-family: 'Instrument Serif', serif; font-style: italic; font-weight: 400; letter-spacing: -1.2px; color: var(--green-deep); } 145 146 .blog-sub { 147 font-size: 18px; color: var(--text-dim); 148 line-height: 1.6; max-width: 620px; 149 margin: 0 auto; 150 } 151 152 /* ============ BLOG CONTENT ============ */ 153 .blog-content { 154 padding: 40px 0 80px; 155 min-height: 50vh; 156 } 157 #soro-blog { 158 width: 100%; 159 min-height: 400px; 160 } 161 /* Loading state */ 162 #soro-blog:empty::before { 163 content: 'Loading postsâ¦'; 164 display: block; 165 text-align: center; 166 color: var(--text-faint); 167 font-size: 14px; 168 padding: 80px 0; 169 animation: pulseFade 1.6s infinite; 170 } 171 @keyframes pulseFade { 172 0%, 100% { opacity: 0.5; } 173 50% { opacity: 1; } 174 } 175 176 /* ============ FOOTER ============ */ 177 footer { 178 padding: 50px 0 40px; 179 border-top: 1px solid var(--border); 180 background: white; 181 } 182 .footer-grid { 183 display: grid; grid-template-columns: 1fr 2fr; gap: 40px; 184 margin-bottom: 32px; 185 } 186 .footer-brand .logo { margin-bottom: 12px; } 187 .footer-brand p { font-size: 13.5px; color: var(--text-dim); line-height: 1.6; max-width: 280px; } 188 .footer-links { 189 display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; 190 } 191 .footer-col h5 { 192 font-size: 12px; color: var(--text-dim); font-weight: 700; 193 text-transform: uppercase; letter-spacing: 1px; 194 margin-bottom: 12px; 195 } 196 .footer-col ul { list-style: none; } 197 .footer-col li { margin-bottom: 8px; } 198 .footer-col a { 199 color: var(--text); text-decoration: none; font-size: 14px; 200 transition: color 0.15s; 201 } 202 .footer-col a:hover { color: var(--green-deep); } 203 .footer-bottom { 204 padding-top: 24px; border-top: 1px solid var(--border); 205 text-align: center; font-size: 12.5px; color: var(--text-faint); 206 } 207 208 /* Mobile menu */ 209 .nav-toggle { 210 display: none; 211 width: 40px; height: 40px; 212 flex-direction: column; 213 justify-content: center;
214 align-items: center; 215 gap: 5px; 216 background: none; 217 border: 1px solid var(--border); 218 border-radius: 10px; 219 cursor: pointer; 220 padding: 0; 221 transition: border-color 0.15s, background 0.15s; 222 } 223 .nav-toggle:hover { border-color: var(--green); background: var(--green-tint); } 224 .nav-toggle span { 225 display: block; 226 width: 18px; height: 2px; 227 background: var(--text); 228 border-radius: 2px; 229 transition: transform 0.3s var(--ease), opacity 0.2s; 230 } 231 .nav-toggle.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); } 232 .nav-toggle.open span:nth-child(2) { opacity: 0; transform: scaleX(0); } 233 .nav-toggle.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); } 234 235 .mobile-menu { 236 position: fixed; 237 top: 0; right: 0; bottom: 0; 238 width: 320px; max-width: 85vw; 239 background: white; 240 z-index: 200; 241 padding: 80px 28px 32px; 242 transform: translateX(100%); 243 transition: transform 0.35s var(--ease); 244 box-shadow: -10px 0 40px rgba(10,31,20,0.15); 245 display: flex; flex-direction: column; 246 overflow-y: auto; 247 } 248 .mobile-menu.open { transform: translateX(0); } 249 .mobile-menu a { 250 display: block; 251 padding: 16px 0; 252 color: var(--text); 253 text-decoration: none; 254 font-size: 17px; font-weight: 600; 255 letter-spacing: -0.3px; 256 border-bottom: 1px solid var(--border); 257 transition: color 0.15s, padding-left 0.2s; 258 } 259 .mobile-menu a:hover { color: var(--green-deep); padding-left: 4px; } 260 .mobile-menu .btn { margin-top: 24px; justify-content: center; padding: 16px 24px; font-size: 16px; width: 100%; } 261 .mobile-menu-footer { 262 margin-top: auto; padding-top: 24px; 263 border-top: 1px solid var(--border); 264 font-size: 14px; color: var(--text-dim); 265 display: flex; align-items: center; flex-wrap: wrap; gap: 4px 10px; 266 } 267 .mobile-menu-footer a { display: inline; padding: 0; border: none; font-size: 14px; color: var(--text); font-weight: 600; } 268 .mobile-menu-footer a:hover { padding-left: 0; color: var(--green-deep); } 269 .mobile-menu-footer .dot { color: var(--text-faint); } 270 .mobile-backdrop { 271 position: fixed; inset: 0; 272 background: rgba(10,31,20,0.45); 273 backdrop-filter: blur(4px); 274 z-index: 199; 275 opacity: 0; pointer-events: none; 276 transition: opacity 0.3s; 277 } 278 .mobile-backdrop.open { opacity: 1; pointer-events: auto; } 279 280 /* ============ RESPONSIVE ============ */ 281 @media (max-width: 1100px) { 282 .nav-links { display: none; } 283 .nav-toggle { display: flex; } 284 } 285 @media (max-width: 768px) { 286 .blog-hero { padding: 40px 0 24px; } 287 h1 { font-size: clamp(32px, 8vw, 44px); letter-spacing: -1.2px; } 288 .blog-sub { font-size: 16.5px; } 289 .footer-grid { grid-template-columns: 1fr; gap: 28px; } 290 .footer-links { grid-template-columns: 1fr 1fr; } 291 .logo img { height: 28px; } 292 } 293 @media (max-width: 480px) { 294 .container { padding: 0 18px; } 295 .footer-links { grid-template-columns: 1fr; } 296 } 297</style> 298<!-- Vercel Speed Insights -->
299<script> 300 window.si = window.si || function () { (window.siq = window.siq || []).push(arguments); }; 301</script>
vendor: 1 bytes, line 301
301
302<script defer src="/_vercel/speed-insights/script.js"></script>
302 303</head> 304<body> 305 306<!-- ============ NAV ============ --> 307<nav class="nav" id="nav"> 308 <div class="container nav-inner"> 309 <a href="../" class="logo"><picture><source srcset="../assets/logo-wordmark.webp" type="image/webp"><img src="../logo-wordmark.png" alt="Zukuma"></picture></a> 310 <ul class="nav-links"> 311 <li><a href="../#how-it-works">How It Works</a></li> 312 <li><a href="../#real-replies">Real Replies</a></li> 313 <li><a href="../#fit">Fit Check</a></li> 314 <li><a href="../#why-us">Why Us</a></li> 315 <li><a href="../#faq">FAQ</a></li> 316 <li class="separated"><a href="/blog" class="active">Blog</a></li> 317 </ul> 318 <div class="nav-right"> 319 <a href="../?modal=open" class="btn"><span class="nav-cta-text">Get My Custom Proposal</span> â</a> 320 <button class="nav-toggle" id="navToggle" aria-label="Toggle menu" onclick="toggleMobileMenu()"> 321 <span></span><span></span><span></span> 322 </button> 323 </div> 324 </div> 325</nav> 326 327<div class="mobile-backdrop" id="mobileBackdrop" onclick="closeMobileMenu()"></div> 328<aside class="mobile-menu" id="mobileMenu" aria-hidden="true"> 329 <a href="../#how-it-works" onclick="closeMobileMenu()">How It Works</a> 330 <a href="../#real-replies" onclick="closeMobileMenu()">Real Replies</a> 331 <a href="../#fit" onclick="closeMobileMenu()">Fit Check</a> 332 <a href="../#why-us" onclick="closeMobileMenu()">Why Us</a> 333 <a href="../#faq" onclick="closeMobileMenu()">FAQ</a> 334 <a href="../?modal=open" class="btn" onclick="closeMobileMenu()">Get My Custom Proposal â</a> 335 <div class="mobile-menu-footer"> 336 <a href="/blog" onclick="closeMobileMenu()">Blog</a> 337 <span class="dot">·</span> 338 <a href="mailto:[email protected]">[email protected]</a> 339 </div> 340</aside> 341 342<!-- ============ HERO ============ --> 343<section class="blog-hero"> 344 <div class="container"> 345 <div class="blog-hero-inner"> 346 <div class="eyebrow">Zukuma Blog</div> 347 <h1>Tips for growing your <span class="serif">cleaning business.</span></h1> 348 <p class="blog-sub"> 349 Tips, lessons, and stories from running cold email for 29+ commercial cleaners in the US, Canada & UK. No fluff. 350 </p> 351 </div> 352 </div> 353</section> 354 355<!-- ============ BLOG CONTENT ============ --> 356<section class="blog-content"> 357 <div class="container"> 358 <div id="soro-blog"></div> 359 </div> 360</section> 361 362<!-- ============ FOOTER ============ --> 363<footer> 364 <div class="container"> 365 <div class="footer-grid"> 366 <div class="footer-brand"> 367 <div class="logo"><picture><source srcset="../assets/logo-wordmark.webp" type="image/webp"><img src="../logo-wordmark.png" alt="Zukuma"></picture></div> 368 <p style="margin-top:14px;">Pay-per-lead outbound built exclusively for commercial cleaning companies. Live in 48 hours. Leads exclusive to you.</p> 369 </div> 370 <div class="footer-links"> 371 <div class="footer-col"> 372 <h5>Product</h5> 373 <ul> 374 <li><a href="../#how-it-works">How It Works</a></li> 375 <li><a href="../#real-replies">Real Replies</a></li> 376 <li><a href="../#why-us">Why Zukuma</a></li> 377 <li><a href="/blog">Blog</a></li> 378 <li><a href="../#faq">FAQ</a></li> 379 </ul> 380 </div> 381 <div class="footer-col"> 382 <h5>Company</h5> 383 <ul> 384 <li><a href="../#founders">About</a></li> 385 <li><a href="mailto:[email protected]">[email protected]</a></li> 386 </ul> 387 </div> 388 <div class="footer-col"> 389 <h5>Legal</h5> 390 <ul> 391 <li><a href="/privacy">Privacy Policy</a></li> 392 <li><a href="/terms">Terms of Service</a></li> 393 </ul> 394 </div> 395 </div> 396 </div> 397 <div class="footer-bottom"> 398 © 2026 Zukuma. Built in Vienna & Copenhagen · Serving cleaning companies across the U.S., Canada & UK. 399 </div> 400 </div> 401</footer> 402
403<script> 404 // Nav scroll effect 405 const nav = document.getElementById('nav'); 406 window.addEventListener('scroll', () => { 407 if (window.scrollY > 50) nav.classList.add('scrolled'); 408 else nav.classList.remove('scrolled'); 409 }, { passive: true }); 410 411 // Mobile menu 412 function toggleMobileMenu() { 413 const menu = document.getElementById('mobileMenu'); 414 const backdrop = document.getElementById('mobileBackdrop'); 415 const toggle = document.getElementById('navToggle'); 416 const isOpen = !menu.classList.contains('open'); 417 menu.classList.toggle('open', isOpen); 418 backdrop.classList.toggle('open', isOpen); 419 toggle.classList.toggle('open', isOpen); 420 menu.setAttribute('aria-hidden', isOpen ? 'false' : 'true'); 421 document.body.style.overflow = isOpen ? 'hidden' : ''; 422 } 423 function closeMobileMenu() { 424 document.getElementById('mobileMenu').classList.remove('open'); 425 document.getElementById('mobileBackdrop').classList.remove('open'); 426 document.getElementById('navToggle').classList.remove('open'); 427 document.getElementById('mobileMenu').setAttribute('aria-hidden', 'true'); 428 document.body.style.overflow = ''; 429 } 430 document.addEventListener('keydown', (e) => { 431 if (e.key === 'Escape' && document.getElementById('mobileMenu').classList.contains('open')) closeMobileMenu(); 432 }); 433</script>
433 434 435<!-- ============ SORO BLOG EMBED ============ -->
436<script src="https://app.trysoro.com/api/embed/6d563809-43b9-448e-b561-21aa0346a33d" defer></script>
436 437 438</body> 439</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.