Brightlane Digital – Marketing that brings in customers :root{ --ink:#0e1330; --paper:#eef1f8; --white:#fff; --cobalt:#3a4bff; --lime:#e2f95a; --muted:#59607f; --line:#d5daec; --display:'Bricolage Grotesque','Trebuchet MS',sans-serif; --body:'Instrument Sans','Segoe UI',Arial,sans-serif; } *{box-sizing:border-box;margin:0;padding:0} html{scroll-behavior:smooth} body{font-family:var(--body);color:var(--ink);background:var(--paper);line-height:1.6;font-size:17px} a{color:inherit} h1,h2,h3{font-family:var(--display);line-height:1.08;letter-spacing:-.02em} h2{font-size:clamp(2rem,4.5vw,3.2rem);max-width:18ch} .wrap{max-width:1120px;margin:0 auto;padding:0 22px} section{padding:88px 0} :focus-visible{outline:3px solid var(--cobalt);outline-offset:3px} .btn{display:inline-block;padding:14px 26px;border-radius:999px;background:var(--cobalt);color:#fff;font-weight:600;text-decoration:none;border:0;cursor:pointer;font:600 1rem var(--body);transition:transform .15s,background .15s} .btn:hover{transform:translateY(-2px);background:#2433e6} .btn.alt{background:transparent;color:var(--ink);border:2px solid var(--ink)} .btn.alt:hover{background:var(--ink);color:#fff} /* header */ header{position:sticky;top:0;z-index:20;background:rgba(238,241,248,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)} .bar{display:flex;align-items:center;justify-content:space-between;height:68px} .logo{font:800 1.35rem var(--display);text-decoration:none;display:flex;align-items:center;gap:8px} .logo i{width:22px;height:22px;border-radius:6px;background:var(--cobalt);display:inline-block;position:relative} .logo i::after{content:"";position:absolute;left:5px;bottom:5px;width:12px;height:12px;border-left:3px solid var(--lime);border-bottom:3px solid var(--lime)} nav ul{display:flex;gap:30px;list-style:none;align-items:center} nav a{text-decoration:none;font-weight:500} nav a:hover{color:var(--cobalt)} .menu{display:none;background:none;border:2px solid var(--ink);border-radius:8px;padding:6px 12px;font:600 .95rem var(--body);cursor:pointer} /* hero */ .hero{padding:70px 0 90px} .hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center} .hero h1{font-size:clamp(2.6rem,6.2vw,4.7rem);font-weight:800} .hero p.lead{margin:22px 0 30px;font-size:1.2rem;color:var(--muted);max-width:46ch} .hero .ctas{display:flex;gap:14px;flex-wrap:wrap} .est{background:var(--ink);color:#fff;border-radius:24px;padding:30px;box-shadow:0 30px 60px -30px rgba(14,19,48,.6)} .est h3{font-size:1.3rem;margin-bottom:4px} .est small{color:#aab1d6;display:block;margin-bottom:22px} .est label{display:flex;justify-content:space-between;font-weight:500;margin:16px 0 8px} .est output{color:var(--lime);font-weight:600} input[type=range]{width:100%;accent-color:var(--lime);height:6px} .chips{display:flex;gap:8px;flex-wrap:wrap} .chips button{background:transparent;color:#fff;border:1.5px solid #4a5280;border-radius:999px;padding:7px 14px;font:500 .9rem var(--body);cursor:pointer} .chips button[aria-pressed=true]{background:var(--lime);color:var(--ink);border-color:var(--lime)} .bars{margin-top:26px;display:grid;gap:12px} .row{display:grid;grid-template-columns:96px 1fr 60px;align-items:center;gap:12px;font-size:.9rem} .track{background:#1d2450;border-radius:8px;height:26px;overflow:hidden} .fill{height:100%;border-radius:8px;transition:width .5s cubic-bezier(.2,.8,.2,1)} .fill.a{background:#6a74b8} .fill.b{background:var(--lime)} .row b{text-align:right} .est .note{margin:18px 0 0;font-size:.8rem;color:#8e96c2} /* services */ .services .head{display:flex;justify-content:space-between;align-items:end;gap:30px;flex-wrap:wrap;margin-bottom:44px} .services .head p{max-width:40ch;color:var(--muted)} .svc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px} .svc{background:var(--white);border-radius:22px;padding:32px;border:1px solid var(--line)} .svc:nth-child(1){background:var(--cobalt);color:#fff;border-color:var(--cobalt)} .svc:nth-child(1) li::before{color:var(--lime)} .svc h3{font-size:1.6rem;margin-bottom:10px} .svc p{color:inherit;opacity:.85;margin-bottom:16px} .svc ul{list-style:none;display:grid;gap:6px;font-size:.97rem} .svc li::before{content:"+ ";font-weight:700;color:var(--cobalt)} /* results */ .results{background:var(--ink);color:#fff} .results h2{margin-bottom:44px} .cases{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid #333b6b} .case{padding:30px 28px 10px 0} .case+.case{padding-left:28px;border-left:1px solid #333b6b} .case .n{font:800 clamp(2.6rem,5vw,3.8rem) var(--display);color:var(--lime);letter-spacing:-.03em} .case h3{font-size:1.15rem;margin:6px 0 8px} .case p{color:#aab1d6;font-size:.95rem} /* process */ .steps{margin-top:44px;display:grid;grid-template-columns:repeat(4,1fr);gap:20px;counter-reset:s} .step{border-top:3px solid var(--ink);padding-top:16px;counter-increment:s} .step::before{content:"Step " counter(s);font-weight:600;color:var(--cobalt);font-size:.9rem} .step h3{font-size:1.3rem;margin:6px 0} .step p{color:var(--muted);font-size:.97rem} /* faq + contact */ .two{display:grid;grid-template-columns:1fr 1fr;gap:56px} details{border-bottom:1px solid var(--line);padding:16px 0} summary{cursor:pointer;font-weight:600;font-size:1.05rem;list-style:none;display:flex;justify-content:space-between} summary::after{content:"+";font-size:1.4rem;line-height:1;transition:transform .2s} details[open] summary::after{transform:rotate(45deg)} details p{margin-top:10px;color:var(--muted)} form{background:var(--white);border:1px solid var(--line);border-radius:22px;padding:30px;display:grid;gap:16px} form label{font-weight:600;font-size:.95rem;display:grid;gap:6px} input,select,textarea{font:400 1rem var(--body);padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);width:100%} input:focus,select:focus,textarea:focus{border-color:var(--cobalt);outline:none} .err{color:#c4123f;font-size:.85rem;font-weight:500;min-height:1em} .ok{background:var(--lime);padding:14px 16px;border-radius:12px;font-weight:600;display:none} footer{padding:34px 0;border-top:1px solid var(--line);color:var(--muted);font-size:.92rem} footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px} @media(max-width:900px){ .hero-grid,.two{grid-template-columns:1fr} .svc-grid{grid-template-columns:1fr} .cases{grid-template-columns:1fr} .case+.case{padding-left:0;border-left:0;border-top:1px solid #333b6b} .steps{grid-template-columns:1fr 1fr} .menu{display:block} nav ul{display:none;position:absolute;top:68px;left:0;right:0;background:var(--paper);flex-direction:column;padding:20px;gap:18px;border-bottom:1px solid var(--line)} nav ul.open{display:flex} section{padding:64px 0} } @media(max-width:520px){.steps{grid-template-columns:1fr}} @media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

Marketing that fills your calendar with customers.

We run search, social, email and SEO campaigns for small and mid-sized businesses, and report on leads and sales, not clicks.

Estimate your monthly leads

Pick a channel and a budget.
Typical
0
With Brightlane
0

Illustrative estimate based on average cost per lead. Real results depend on your market and offer.

Four channels, one team.

Pick one service or let us run them together so your ads, site and emails work as a single system.

Paid search and social

Ads that reach people already looking for what you sell.

  • Google, Meta and LinkedIn campaigns
  • Landing pages built to convert
  • Weekly budget and bid tuning

SEO and content

Rank for the searches that bring buyers, not just visitors.

  • Technical site fixes
  • Keyword plan and articles
  • Local listings and reviews

Email and automation

Follow up with every lead and bring past customers back.

  • Welcome and nurture flows
  • Abandoned cart and win-back emails
  • Segmented newsletters

Brand and social media

A consistent look and voice across every place customers find you.

  • Content calendars and posting
  • Short video and design
  • Community replies

What changed for our clients.

0

Online enquiries

A dental clinic group after rebuilding its search campaigns and booking page.

0

Lower cost per lead

A B2B software firm that moved budget from broad social to LinkedIn and search.

0

Return on ad spend

An online clothing store using email flows alongside paid social.

How we work with you.

Audit

We review your site, ads and analytics and list what to fix first.

Plan

You get a channel plan, budget split and clear targets.

Launch

We build and publish campaigns, usually within two weeks.

Improve

Monthly calls and a live dashboard show what is working.

Questions we get asked.

How much should I budget?

Most clients start with $1,500 to $5,000 a month in ad spend plus our fee. The audit will suggest a number for your market.

Do I sign a long contract?

No. Our plans run month to month after a 3-month starting period.

How soon will I see results?

Paid ads can bring leads in the first weeks. SEO usually takes three to six months.

Who owns the ad accounts?

You do. We work inside your accounts, so you keep everything if you leave.

Get a free audit

// mobile menu const menu=document.getElementById('menu'),links=document.getElementById('links'); menu.addEventListener('click',()=>{const o=links.classList.toggle('open');menu.setAttribute('aria-expanded',o)}); links.addEventListener('click',e=>{if(e.target.tagName==='A'){links.classList.remove('open');menu.setAttribute('aria-expanded',false)}}); // lead estimator const spend=document.getElementById('spend'),out=document.getElementById('spendOut'),chips=document.getElementById('chips'); let cpl=18; function update(){ const s=+spend.value; out.textContent='$'+s.toLocaleString(); const typical=Math.round(s/cpl*0.7), ours=Math.round(s/cpl*1.0); const max=Math.max(ours,1); document.getElementById('valA').textContent=typical; document.getElementById('valB').textContent=ours; document.getElementById('barA').style.width=(typical/max*100)+'%'; document.getElementById('barB').style.width='100%'; } spend.addEventListener('input',update); chips.addEventListener('click',e=>{ const b=e.target.closest('button'); if(!b) return; chips.querySelectorAll('button').forEach(x=>x.setAttribute('aria-pressed',x===b)); cpl=+b.dataset.cpl; update(); }); update(); // count-up numbers when visible const io=new IntersectionObserver(es=>es.forEach(en=>{ if(!en.isIntersecting) return; io.unobserve(en.target); const el=en.target,to=+el.dataset.to,dec=+(el.dataset.dec||0),suf=el.dataset.suffix||''; const reduce=matchMedia('(prefers-reduced-motion: reduce)').matches; if(reduce){el.textContent=to.toFixed(dec)+suf;return} const t0=performance.now(),d=1200; (function f(t){const p=Math.min((t-t0)/d,1),e=1-Math.pow(1-p,3); el.textContent=(to*e).toFixed(dec)+suf; if(pio.observe(n)); // form validation const form=document.getElementById('contact'); form.addEventListener('submit',e=>{ e.preventDefault(); let ok=true; const name=form.name,email=form.email; const set=(f,m)=>{f.nextElementSibling.textContent=m;if(m)ok=false}; set(name,name.value.trim()?'':'Enter your name.'); set(email,/^[^@\s]+@[^@\s]+\.[^@\s]+$/.test(email.value)?'':'Enter a valid email address.'); if(!ok) return; const box=document.getElementById('ok'); box.textContent='Thanks '+name.value.trim().split(' ')[0]+'. We will email you within one working day.'; box.style.display='block'; form.reset(); }); document.getElementById('yr').textContent=new Date().getFullYear();
Scroll to Top