<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>StandoutLocal — Websites for Illinois trades that turn searches into calls</title>
<meta name="description" content="We build fast, mobile-first websites for Illinois service businesses — plumbers, HVAC, auto, cleaning. See real before-and-afters. You see the site before you pay a cent.">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=Inter:wght@400;500;600&display=swap" rel="stylesheet">
<style>
  :root{
    --ink:#15171c; --ink-2:#2a2e38; --paper:#f7f4ee; --card:#ffffff;
    --amber:#f2792b; --amber-d:#d9621a; --line:#e4ddd0; --muted:#6b6f78;
    --good:#1f9d63; --shadow:0 1px 2px rgba(20,23,28,.06),0 12px 32px rgba(20,23,28,.10);
    --r:14px;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{font-family:Inter,system-ui,sans-serif;color:var(--ink);background:var(--paper);line-height:1.55;-webkit-font-smoothing:antialiased}
  h1,h2,h3,.disp{font-family:'Space Grotesk',Inter,sans-serif;letter-spacing:-.02em;line-height:1.08}
  .wrap{max-width:1120px;margin:0 auto;padding:0 24px}
  a{color:inherit}
  .btn{display:inline-flex;align-items:center;gap:9px;background:var(--amber);color:#fff;font-weight:600;
    font-family:'Space Grotesk';padding:15px 26px;border-radius:999px;text-decoration:none;border:none;cursor:pointer;
    font-size:16px;box-shadow:0 8px 20px rgba(242,121,43,.28);transition:transform .15s,background .15s}
  .btn:hover{background:var(--amber-d);transform:translateY(-1px)}
  .btn.ghost{background:transparent;color:var(--ink);box-shadow:none;border:1.5px solid var(--line)}
  .btn.ghost:hover{background:#fff;border-color:#cfc6b6}

  /* nav */
  header.nav{position:sticky;top:0;z-index:50;background:rgba(247,244,238,.82);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
  .nav .wrap{display:flex;align-items:center;justify-content:space-between;height:66px}
  .brand{font-family:'Space Grotesk';font-weight:700;font-size:20px;display:flex;align-items:center;gap:9px}
  .brand .dot{width:11px;height:11px;border-radius:50%;background:var(--amber);box-shadow:0 0 0 4px rgba(242,121,43,.18)}
  .nav-cta{font-size:15px}

  /* hero */
  .hero{padding:78px 0 56px;position:relative;overflow:hidden}
  .hero .eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--amber-d);
    background:#fff;border:1px solid var(--line);padding:7px 14px;border-radius:999px;margin-bottom:22px}
  .hero h1{font-size:clamp(34px,5.6vw,62px);font-weight:700;max-width:16ch}
  .hero h1 em{font-style:normal;color:var(--amber);position:relative}
  .hero p.sub{font-size:clamp(17px,2.2vw,21px);color:var(--ink-2);max-width:44ch;margin:22px 0 30px}
  .hero .cta-row{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
  .hero .reassure{font-size:14px;color:var(--muted);margin-top:18px;display:flex;align-items:center;gap:8px}
  .hero .reassure b{color:var(--ink)}

  /* section heads */
  .sec{padding:64px 0}
  .sec-head{max-width:60ch;margin-bottom:34px}
  .sec-head .kicker{font-family:'Space Grotesk';font-weight:600;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--amber-d)}
  .sec-head h2{font-size:clamp(26px,3.6vw,40px);font-weight:700;margin:10px 0 12px}
  .sec-head p{color:var(--ink-2);font-size:17px;max-width:52ch}

  /* gallery */
  .grid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px}
  @media(max-width:780px){.grid{grid-template-columns:1fr}}
  .case{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow)}
  .case .meta{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;gap:10px}
  .case .meta .who{font-family:'Space Grotesk';font-weight:600;font-size:15px}
  .case .meta .where{font-size:13px;color:var(--muted)}
  .case .tag{font-size:11.5px;font-weight:600;padding:5px 10px;border-radius:999px;white-space:nowrap}
  .tag.rebuild{background:#eef6f1;color:var(--good)}
  .tag.fromzero{background:#fdf0e7;color:var(--amber-d)}

  /* before/after slider */
  .ba{position:relative;aspect-ratio:1440/900;user-select:none;touch-action:none;background:#eee;cursor:ew-resize;overflow:hidden}
  .ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top;display:block;pointer-events:none}
  .ba .after-img{clip-path:inset(0 0 0 var(--pos,50%))}
  .ba .lab{position:absolute;top:12px;font-size:11px;font-weight:700;letter-spacing:.04em;color:#fff;
    background:rgba(21,23,28,.72);padding:4px 9px;border-radius:6px;backdrop-filter:blur(2px)}
  .ba .lab.b{left:12px}.ba .lab.a{right:12px;background:rgba(242,121,43,.92)}
  .ba .divider{position:absolute;top:0;bottom:0;left:var(--pos,50%);width:2px;background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.12)}
  .ba .handle{position:absolute;top:50%;left:var(--pos,50%);transform:translate(-50%,-50%);width:40px;height:40px;border-radius:50%;
    background:#fff;box-shadow:var(--shadow);display:grid;place-items:center;color:var(--ink);font-size:15px}
  /* from-zero "before" panel */
  .nosite{position:absolute;inset:0;width:var(--pos,50%);overflow:hidden;background:linear-gradient(135deg,#23262e,#15171c);
    color:#d6d9e0;display:grid;place-items:center;text-align:center;padding:18px}
  .nosite .inner{max-width:78%}
  .nosite .gmark{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:#8b909c;margin-bottom:8px}
  .nosite b{font-family:'Space Grotesk';font-size:clamp(15px,2.2vw,19px);color:#fff;display:block;line-height:1.25}
  .nosite span{font-size:12.5px;color:#9aa0ac;display:block;margin-top:7px}

  /* how */
  .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
  @media(max-width:780px){.steps{grid-template-columns:1fr}}
  .step{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:26px 22px}
  .step .n{font-family:'Space Grotesk';font-weight:700;font-size:14px;color:#fff;background:var(--ink);width:30px;height:30px;border-radius:8px;display:grid;place-items:center;margin-bottom:14px}
  .step h3{font-size:19px;margin-bottom:7px}
  .step p{color:var(--ink-2);font-size:15px}

  /* offer */
  .offer{background:var(--ink);color:#f3efe7;border-radius:22px;padding:clamp(30px,5vw,52px);position:relative;overflow:hidden}
  .offer:before{content:"";position:absolute;right:-80px;top:-80px;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,rgba(242,121,43,.32),transparent 70%)}
  .offer h2{font-size:clamp(24px,3.4vw,38px);max-width:18ch;position:relative}
  .offer p{color:#c7c3ba;max-width:50ch;margin:16px 0 8px;font-size:17px;position:relative}
  .offer ul{list-style:none;margin:22px 0 28px;display:grid;gap:12px;position:relative}
  .offer li{display:flex;gap:12px;align-items:flex-start;font-size:16px}
  .offer li svg{flex:none;margin-top:3px}
  .offer .fineprint{font-size:13px;color:#8b8f98;margin-top:18px;position:relative}

  /* founder */
  .founder{display:flex;gap:22px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:26px 28px;box-shadow:var(--shadow)}
  @media(max-width:560px){.founder{flex-direction:column;text-align:center}}
  .favatar{flex:none;width:64px;height:64px;border-radius:50%;background:var(--ink);color:#fff;font-family:'Space Grotesk';font-weight:700;font-size:22px;display:grid;place-items:center;letter-spacing:.02em}
  .founder .kicker{font-family:'Space Grotesk';font-weight:600;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--amber-d);margin-bottom:6px}
  .founder p{color:var(--ink-2);font-size:16.5px;max-width:60ch}
  .founder p b{color:var(--ink)}

  /* contact */
  .contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start;background:#fff;border:1px solid var(--line);border-radius:22px;padding:clamp(26px,4vw,44px);box-shadow:var(--shadow)}
  @media(max-width:780px){.contact-grid{grid-template-columns:1fr;gap:28px}}
  .contact-copy .kicker{font-family:'Space Grotesk';font-weight:600;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--amber-d)}
  .contact-copy h2{font-size:clamp(22px,3vw,30px);font-weight:700;margin:10px 0 12px;max-width:20ch}
  .contact-copy>p{color:var(--ink-2);font-size:16px;max-width:42ch}
  .contact-methods{list-style:none;margin:22px 0 0;display:grid;gap:13px}
  .contact-methods li{display:flex;gap:11px;align-items:center;font-size:16px;color:var(--ink-2)}
  .contact-methods .ic{flex:none;width:30px;height:30px;border-radius:8px;background:#fdf0e7;color:var(--amber-d);display:grid;place-items:center}
  .contact-methods a{font-weight:600;color:var(--ink);text-decoration:none;border-bottom:2px solid var(--amber)}
  .reply-promise{margin-top:20px;font-size:14px;color:var(--good);font-weight:600;display:flex;gap:8px;align-items:center}
  .lead-form{display:grid;gap:14px}
  .lead-form label{font-size:13px;font-weight:600;color:var(--ink-2);display:block;margin-bottom:5px}
  .lead-form input,.lead-form textarea{width:100%;font-family:inherit;font-size:15px;color:var(--ink);background:var(--paper);border:1.5px solid var(--line);border-radius:10px;padding:12px 14px;transition:border-color .15s}
  .lead-form input:focus,.lead-form textarea:focus{outline:none;border-color:var(--amber)}
  .lead-form textarea{resize:vertical;min-height:78px}
  .lead-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  @media(max-width:480px){.lead-form .form-row{grid-template-columns:1fr}}
  .lead-form .btn{width:100%;justify-content:center;margin-top:4px}
  .form-note{font-size:13px;color:var(--muted);text-align:center;margin-top:2px}
  .form-note.ok{color:var(--good);font-weight:600}
  .form-note.err{color:var(--amber-d);font-weight:600}

  /* contact / footer */
  .foot-contact{display:grid;gap:8px}
  .foot-contact a{font-family:'Space Grotesk';font-weight:600;font-size:16px;color:var(--ink);text-decoration:none}
  .foot-contact a.mail{border-bottom:2px solid var(--amber)}
  .foot-contact .addr{color:var(--muted);font-size:13.5px}
  footer{padding:54px 0 40px;border-top:1px solid var(--line);margin-top:64px}
  footer .wrap{display:flex;flex-wrap:wrap;gap:24px;justify-content:space-between;align-items:flex-start}
  footer .brand{margin-bottom:10px}
  footer .muted{color:var(--muted);font-size:14px;max-width:40ch}
  footer a.mail{font-family:'Space Grotesk';font-weight:600;font-size:18px;color:var(--ink);text-decoration:none;border-bottom:2px solid var(--amber)}
  .legal{font-size:12.5px;color:var(--muted);margin-top:26px}
</style>
</head>
<body>

<header class="nav"><div class="wrap">
  <div class="brand"><span class="dot"></span>StandoutLocal</div>
  <a href="#offer" class="btn ghost nav-cta">See the offer</a>
</div></header>

<section class="hero"><div class="wrap">
  <span class="eyebrow">● Built for Illinois service businesses</span>
  <h1>A website that turns Google searches into <em>phone calls</em>.</h1>
  <p class="sub">Fast, mobile-first sites for plumbers, HVAC, auto shops, and cleaners across Illinois — built around your reviews, with your number front and center.</p>
  <div class="cta-row">
    <a href="#work" class="btn">See real before &amp; afters</a>
    <a href="#offer" class="btn ghost">How the offer works</a>
  </div>
  <div class="reassure">✓ &nbsp;<b>You see the finished site before you pay a cent.</b></div>
</div></section>

<section class="sec" id="work"><div class="wrap">
  <div class="sec-head">
    <div class="kicker">Real work</div>
    <h2>Drag the slider. Left is what they had. Right is what we built.</h2>
    <p>These are real demos we've built for Illinois trades. Businesses are kept anonymous here — when we build yours, the named version is yours alone.</p>
  </div>
  <div class="grid" id="gallery"></div>
</div></section>

<section class="sec" style="padding-top:24px"><div class="wrap">
  <div class="sec-head">
    <div class="kicker">How it works</div>
    <h2>No pitch deck. We just build it first.</h2>
  </div>
  <div class="steps">
    <div class="step"><div class="n">1</div><h3>We build it</h3><p>We design a full site for your business — your services, your reviews, your service area — before you've spent anything.</p></div>
    <div class="step"><div class="n">2</div><h3>You look</h3><p>We send you the live link. You judge it on your phone, the way your customers will. Like it or not, no pressure.</p></div>
    <div class="step"><div class="n">3</div><h3>You decide</h3><p>Want to keep it? It's yours — domain and files in your name. We host it and handle every change. Walk away anytime.</p></div>
  </div>
</div></section>

<section class="sec" id="offer"><div class="wrap">
  <div class="offer">
    <h2>You shouldn't pay for a website you haven't seen.</h2>
    <p>So you don't. We build yours first, you try it, and it only sticks if it earns its place. We're a new shop — which is exactly why early Illinois businesses get founder pricing and a direct line to the person who builds it.</p>
    <ul>
      <li><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><circle cx="12" cy="12" r="11" fill="#f2792b"/><path d="M7 12.5l3 3 7-7" stroke="#fff" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"/></svg><span><b>See it before you buy.</b> The finished site, live, no commitment to look.</span></li>
      <li><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><circle cx="12" cy="12" r="11" fill="#f2792b"/><path d="M7 12.5l3 3 7-7" stroke="#fff" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"/></svg><span><b>You own it.</b> Domain and files in your name from day one — never held hostage.</span></li>
      <li><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><circle cx="12" cy="12" r="11" fill="#f2792b"/><path d="M7 12.5l3 3 7-7" stroke="#fff" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"/></svg><span><b>We handle everything.</b> Hosting, updates, any change you want — usually same day.</span></li>
      <li><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><circle cx="12" cy="12" r="11" fill="#f2792b"/><path d="M7 12.5l3 3 7-7" stroke="#fff" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"/></svg><span><b>Cancel any month.</b> No contract. If you leave, you keep the site and the domain.</span></li>
    </ul>
    <a href="#contact" class="btn">Get my demo built</a>
    <p class="fineprint">Founder pricing for the first Illinois businesses. We'll quote you plainly before anything is owed.</p>
  </div>
</div></section>

<section class="sec" style="padding-top:0"><div class="wrap">
  <div class="founder">
    <div class="favatar">NS</div>
    <div>
      <div class="kicker">Who builds these</div>
      <p>I'm <b>Nathan Shepherd</b>. I design and build every StandoutLocal site myself — when you work with us, you deal directly with me, not a sales team or an account manager. If something needs changing, you're talking to the person who'll change it.</p>
    </div>
  </div>
</div></section>

<section class="sec" id="contact" style="padding-top:0"><div class="wrap">
  <div class="contact-grid">
    <div class="contact-copy">
      <div class="kicker">Get your demo</div>
      <h2>Tell me about your business. I'll build the site and send you the link.</h2>
      <p>No cost to look, no obligation. You'll have a live link to judge on your phone — usually within a few days.</p>
      <ul class="contact-methods">
        <li><span class="ic"><svg width="16" height="16" viewBox="0 0 24 24" fill="none"><path d="M6.6 10.8a15.5 15.5 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.24 11.4 11.4 0 0 0 3.6.58 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1 11.4 11.4 0 0 0 .58 3.6 1 1 0 0 1-.24 1z" fill="currentColor"/></svg></span><a href="tel:+12173775979">(217) 377-5979</a>&nbsp;<span style="color:var(--muted);font-size:14px">— call or text</span></li>
        <li><span class="ic"><svg width="16" height="16" viewBox="0 0 24 24" fill="none"><path d="M4 5h16a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1zm0 2v.4l8 4.6 8-4.6V7H4zm16 2.7-8 4.6-8-4.6V18h16V9.7z" fill="currentColor"/></svg></span><a href="mailto:nathan@getstandoutlocal.com">nathan@getstandoutlocal.com</a></li>
        <li><span class="ic"><svg width="16" height="16" viewBox="0 0 24 24" fill="none"><path d="M12 2a7 7 0 0 0-7 7c0 5 7 13 7 13s7-8 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z" fill="currentColor"/></svg></span><span>1 E Erie St, Suite 525-2681, Chicago, IL 60611</span></li>
      </ul>
      <p class="reply-promise"><svg width="17" height="17" viewBox="0 0 24 24" fill="none"><circle cx="12" cy="13" r="8" stroke="currentColor" stroke-width="2"/><path d="M12 9v4l2.5 2M12 2h0M9 2h6" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg>We reply within one business day — every message reaches Nathan directly.</p>
    </div>
    <form class="lead-form" id="leadForm">
      <div class="form-row">
        <div><label for="lf-name">Your name</label><input id="lf-name" name="name" required autocomplete="name"></div>
        <div><label for="lf-biz">Business name</label><input id="lf-biz" name="business" required autocomplete="organization"></div>
      </div>
      <div class="form-row">
        <div><label for="lf-email">Email</label><input id="lf-email" name="email" type="email" autocomplete="email"></div>
        <div><label for="lf-phone">Phone</label><input id="lf-phone" name="phone" type="tel" autocomplete="tel"></div>
      </div>
      <div><label for="lf-msg">What do you do? <span style="font-weight:400;color:var(--muted)">(optional)</span></label><textarea id="lf-msg" name="message" placeholder="e.g. plumber in Springfield, no website yet"></textarea></div>
      <input type="checkbox" name="botcheck" style="display:none" tabindex="-1" autocomplete="off">
      <button type="submit" class="btn">Build my free demo</button>
      <p class="form-note" id="lf-note">Free to look. No obligation. We reply within one business day.</p>
    </form>
  </div>
</div></section>

<footer><div class="wrap">
  <div>
    <div class="brand"><span class="dot"></span>StandoutLocal</div>
    <p class="muted">Websites for Illinois service businesses that turn Google searches into phone calls.</p>
  </div>
  <div class="foot-contact">
    <a href="tel:+12173775979">(217) 377-5979</a>
    <a class="mail" href="mailto:nathan@getstandoutlocal.com">nathan@getstandoutlocal.com</a>
    <span class="addr">1 E Erie St, Suite 525-2681, Chicago, IL 60611</span>
  </div>
</div>
<div class="wrap"><p class="legal">© 2026 StandoutLocal · 1 E Erie St, Suite 525-2681, Chicago, IL 60611 · Demos shown are real sites we built; businesses anonymized. We never publish a site under your name without your OK.</p></div>
</footer>

<script>
const CASES = [
  {slug:'master-rooter', who:'Plumber', where:'Springfield, IL', before:true},
  {slug:'mb-heating-cooling', who:'HVAC & Plumbing', where:'Springfield, IL', before:true},
  {slug:'hytech-automotive', who:'Auto Repair Shop', where:'Rockford, IL', before:true},
  {slug:'east-peoria-tire', who:'Tire & Auto Repair', where:'Peoria, IL', before:true},
  {slug:'fifth-dimension-collision', who:'Auto Body Shop', where:'Champaign, IL', before:true},
  {slug:'wilkersons-service', who:'Tire & Auto Repair', where:'Springfield, IL', before:true},
  {slug:'phd-services', who:'Janitorial & Landscaping', where:'Peoria, IL', before:true},
  {slug:'cu-trade-services', who:'Plumber / HVAC / Electric', where:'Champaign, IL', before:false},
  {slug:'buzzie-bee-maids', who:'House Cleaning', where:'Springfield, IL', before:false},
  {slug:'nyilas-cleaning', who:'Carpet Cleaning', where:'Springfield, IL', before:false},
  {slug:'bynum-cleaning', who:'House Cleaning', where:'Springfield, IL', before:false},
  {slug:'rags-to-riches', who:'House Cleaning', where:'Springfield, IL', before:false},
];

const g = document.getElementById('gallery');
g.innerHTML = CASES.map(c => {
  const tag = c.before
    ? `<span class="tag rebuild">Rebuilt</span>`
    : `<span class="tag fromzero">From scratch</span>`;
  const beforeLayer = c.before
    ? `<img class="before-img" src="assets/before/${c.slug}-before.jpg" alt="Their previous website" loading="lazy">
       <span class="lab b">BEFORE</span>`
    : `<div class="nosite"><div class="inner"><div class="gmark">What they had</div><b>A Google listing.<br>No website.</b><span>Just a phone number on the map.</span></div></div>`;
  return `
  <div class="case">
    <div class="ba" data-pos="50">
      ${beforeLayer}
      <img class="after-img" src="assets/after/${c.slug}-after.jpg" alt="The website we built" loading="lazy">
      <span class="lab a">AFTER · OURS</span>
      <div class="divider"></div>
      <div class="handle">⇄</div>
    </div>
    <div class="meta">
      <div><div class="who">${c.who}</div><div class="where">${c.where}</div></div>
      ${tag}
    </div>
  </div>`;
}).join('');

// before/after drag interaction
document.querySelectorAll('.ba').forEach(ba=>{
  const set = p => {
    p = Math.max(2, Math.min(98, p));
    ba.style.setProperty('--pos', p+'%');
    const ns = ba.querySelector('.nosite'); if(ns) ns.style.width = p+'%';
  };
  set(50);
  let drag=false;
  const at = e => {
    const r = ba.getBoundingClientRect();
    const x = (e.touches?e.touches[0].clientX:e.clientX) - r.left;
    set(x / r.width * 100);
  };
  ba.addEventListener('pointerdown', e=>{drag=true; ba.setPointerCapture(e.pointerId); at(e);});
  ba.addEventListener('pointermove', e=>{ if(drag) at(e); });
  ba.addEventListener('pointerup', ()=>drag=false);
  ba.addEventListener('pointercancel', ()=>drag=false);
});

// lead form: posts to the /api/lead serverless function, which routes the lead
// through AgentMail into Nathan's inbox. If the endpoint can't be reached
// (e.g. the page is opened as a local file before deploy), fall back to a
// pre-filled email so a submission is never lost.
const leadForm = document.getElementById('leadForm');
const lfNote = document.getElementById('lf-note');
function lfMailtoFallback(d){
  const body = `Name: ${d.name}\nBusiness: ${d.business}\nEmail: ${d.email||'-'}\nPhone: ${d.phone||'-'}\n\n${d.message||''}`;
  window.location.href = `mailto:nathan@getstandoutlocal.com?subject=${encodeURIComponent('Demo request — '+(d.business||d.name||''))}&body=${encodeURIComponent(body)}`;
}
leadForm.addEventListener('submit', async e => {
  e.preventDefault();
  const d = Object.fromEntries(new FormData(leadForm).entries());
  if(!d.email && !d.phone){ lfNote.textContent='Add an email or phone so I can send your link.'; lfNote.className='form-note err'; return; }
  lfNote.textContent='Sending…'; lfNote.className='form-note';
  try{
    const res = await fetch('/api/lead', {
      method:'POST', headers:{'Content-Type':'application/json'},
      body: JSON.stringify(d)
    });
    const out = await res.json().catch(()=>({}));
    if(res.ok && out.success){
      leadForm.reset();
      lfNote.textContent="Got it — I'll have your demo link within one business day.";
      lfNote.className='form-note ok';
    } else {
      throw new Error(out.message || 'submit failed');
    }
  }catch(err){
    lfNote.textContent='Opening your email app so this reaches me…'; lfNote.className='form-note';
    lfMailtoFallback(d);
  }
});
</script>
</body>
</html>
