PageSourceSearch

https://www.zukuma.co/blog

html zukuma.co collected 2026-10-08 07:39:02 UTC 15,827 bytes, 439 lines download raw bytes

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.