<style>
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Montserrat:wght@400;500;600;700&display=swap');

.kfl-page,.kfl-page *{box-sizing:border-box;}
.kfl-page{font-family:'Inter',sans-serif;color:#1a1f2e;background:#fff;line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased;}
.kfl-page a{text-decoration:none;color:inherit;}

/* ALL images same size, rounded corners */
.kfl-page img{display:block;width:100%;height:340px;object-fit:cover;border-radius:20px !important;box-shadow:none;border:none;}
.kfl-hero-iw img{object-fit:contain !important;background:transparent !important;box-shadow:none !important;}

:root{
  --kb:#3b9eff;--kb2:#1f6fd4;--kb3:#1a3a8f;
  --kblack:#0d0d0d;--kgrey:#7a8190;
  --kbg:#e8eef8;--kbg2:#dde6f5;
  --kbr:#c8d4e8;--kbr2:rgba(59,158,255,.15);
  --km:#5a6475;--kl:#a8b0be;
  --kg:#16a34a;--kr:#dc2626;
  --sh:0 4px 24px rgba(59,158,255,.14);
  --sh2:0 8px 36px rgba(15,23,42,.13);
  --mx:1160px;
}

.kfl-wrap{width:min(100% - 44px,var(--mx));margin:0 auto;}
.kfl-section{padding:88px 0;}
.kfl-bg{background:var(--kbg);}
/* Rounded section blocks */
.kfl-section.kfl-bg,.kfl-section.kfl-alt,.kfl-form-section{
  margin:0 20px;
  border-radius:32px;
}

/* HEADINGS */
.kfl-h1{font-family:'Montserrat',sans-serif;font-size:clamp(32px,4vw,52px);font-weight:700;line-height:1.06;letter-spacing:-.025em;color:var(--kblack);margin:0 0 20px;}
.kfl-h2{font-family:'Montserrat',sans-serif;font-size:clamp(24px,2.8vw,36px);font-weight:700;line-height:1.1;letter-spacing:-.02em;color:var(--kblack);margin:0 0 14px;}
.kfl-h3{font-family:'Montserrat',sans-serif;font-size:18px;font-weight:600;color:var(--kblack);margin:0 0 8px;}
.kfl-ac{background:linear-gradient(100deg,var(--kb),var(--kb3));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.kfl-lead{font-size:16px;font-weight:400;line-height:1.8;color:var(--km);max-width:560px;}
.kfl-txt{font-size:14px;line-height:1.7;color:var(--km);}

/* BUTTONS */
.kfl-btn{display:inline-flex;align-items:center;justify-content:center;font-family:'Inter',sans-serif;font-weight:600;font-size:13px;letter-spacing:.04em;text-transform:uppercase;padding:14px 28px;border-radius:99px;border:none;cursor:pointer;transition:transform .18s,box-shadow .18s;text-decoration:none;}
.kfl-btn:hover{transform:translateY(-2px);}
.kfl-btn-p{background:linear-gradient(135deg,var(--kb),var(--kb3));color:#fff;box-shadow:0 8px 28px rgba(59,158,255,.3);}
.kfl-btn-p:hover{box-shadow:0 14px 36px rgba(59,158,255,.4);}
.kfl-btn-o{background:transparent;color:var(--kblack);border:1.5px solid var(--kbr);}
.kfl-btn-o:hover{border-color:var(--kb);color:var(--kb);}
.kfl-brow{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px;}

/* HERO */
.kfl-hero{padding:110px 0 88px;background:#fff;position:relative;overflow:hidden;}
.kfl-hero::before{content:'';position:absolute;top:-200px;right:-200px;width:700px;height:700px;border-radius:50%;background:radial-gradient(circle,rgba(59,158,255,.07) 0%,transparent 65%);pointer-events:none;}
.kfl-hero-g{display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center;position:relative;z-index:1;}
.kfl-hero-iw{position:relative;}
.kfl-hero-iw img{height:420px !important;box-shadow:none !important;background:transparent !important;}
.kfl-pills{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px;}
.kfl-pill{display:flex;align-items:center;gap:7px;padding:8px 16px;border-radius:99px;background:var(--kbg);border:1px solid var(--kbr);font-size:12px;font-weight:500;color:#374151;}
.kfl-pill b{color:var(--kb);}

/* TRUTH STRIP */
.kfl-truth{background:var(--kblack);padding:28px 20px;margin:0 20px;border-radius:24px;}
.kfl-truth-inner{display:flex;gap:18px;align-items:flex-start;}
.kfl-truth-ico{width:44px;height:44px;flex-shrink:0;border-radius:16px;background:rgba(59,158,255,.15);border:1px solid rgba(59,158,255,.3);display:flex;align-items:center;justify-content:center;font-size:1.1rem;}
.kfl-truth-body h3{font-size:15px;font-weight:600;color:#fff;margin:0 0 4px;font-family:'Montserrat',sans-serif;}
.kfl-truth-body p{font-size:13px;color:#9ca3af;line-height:1.65;margin:0;max-width:820px;}
.kfl-truth-body p strong{color:#e5e7eb;font-weight:500;}

/* SERVICES */
.kfl-svc-g{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:44px;}
.kfl-svc{padding:28px 24px;border-radius:22px;background:#fff;border:1.5px solid var(--kbr);transition:border-color .25s,box-shadow .25s,transform .25s;position:relative;overflow:hidden;}
.kfl-svc::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--kb),var(--kb3));transform:scaleX(0);transform-origin:left;transition:transform .4s;}
.kfl-svc:hover{border-color:rgba(59,158,255,.35);box-shadow:var(--sh2);transform:translateY(-3px);}
.kfl-svc:hover::before{transform:scaleX(1);}
.kfl-svc-n{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--kb);margin-bottom:12px;display:block;}
.kfl-svc p{font-size:14px;color:var(--km);line-height:1.65;margin:0;}

/* SPLIT */
.kfl-split{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;}

/* IMAGE FRAME */
.kfl-if{position:relative;}
.kfl-if img{box-shadow:0 16px 48px rgba(15,23,42,.18) !important;}

/* CHECKLIST */
.kfl-cl{display:flex;flex-direction:column;gap:10px;margin-top:20px;}
.kfl-ci{display:flex;align-items:flex-start;gap:11px;padding:13px 15px;border-radius:16px;background:#fff;border:1px solid var(--kbr);font-size:14px;color:var(--km);line-height:1.5;}
.kfl-ci-dot{width:21px;height:21px;border-radius:50%;flex-shrink:0;background:rgba(59,158,255,.1);border:1.5px solid rgba(59,158,255,.3);display:flex;align-items:center;justify-content:center;font-size:10px;color:var(--kb);margin-top:1px;}
.kfl-ci strong{color:#1a1f2e;font-weight:600;}

/* BEFORE / AFTER */
.kfl-ba-split{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;}
.kfl-ba-img{position:relative;}
.kfl-ba-img img{border-radius:20px !important;height:360px !important;box-shadow:none !important;border:none !important;}
.kfl-ba-labels{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap;}
.kfl-ba-tag{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:6px 14px;border-radius:99px;}
.kfl-ba-tag.b4{background:#fef2f2;color:#dc2626;border:1px solid #fecaca;}
.kfl-ba-tag.af{background:#f0fdf4;color:#16a34a;border:1px solid #bbf7d0;}

/* STEPS */
.kfl-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:52px;position:relative;}
.kfl-steps::before{content:'';position:absolute;top:29px;left:12%;right:12%;height:1px;background:linear-gradient(90deg,transparent,var(--kbr),var(--kb),var(--kbr),transparent);}
.kfl-step{display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 14px;position:relative;z-index:1;}
.kfl-sn{width:58px;height:58px;border-radius:50%;background:#fff;border:1.5px solid var(--kbr);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;letter-spacing:.05em;color:var(--kb);margin-bottom:18px;position:relative;z-index:1;transition:border-color .25s,box-shadow .25s;}
.kfl-step:hover .kfl-sn{border-color:var(--kb);box-shadow:0 0 0 5px rgba(59,158,255,.08);}
.kfl-step h4{font-size:14px;font-weight:600;color:var(--kblack);margin:0 0 7px;font-family:'Montserrat',sans-serif;}
.kfl-step p{font-size:13px;color:var(--km);line-height:1.6;margin:0;}

/* PRICE COMPARE */
.kfl-cmp{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:36px;}
.kfl-cc{padding:28px 24px;border-radius:22px;background:#fff;border:1.5px solid var(--kbr);position:relative;overflow:hidden;}
.kfl-cc.win{border-color:var(--kb);box-shadow:0 0 0 4px rgba(59,158,255,.07),var(--sh);}
.kfl-cc.win::after{content:'Best Value';position:absolute;top:16px;right:16px;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--kb);background:rgba(59,158,255,.08);border:1px solid rgba(59,158,255,.2);padding:4px 10px;border-radius:99px;}
.kfl-ct{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--kl);margin-bottom:10px;display:block;}
.kfl-cp{font-size:32px;font-weight:700;letter-spacing:-.02em;line-height:1;margin:0 0 10px;font-family:'Montserrat',sans-serif;}
.kfl-cp.lose{color:var(--kr);}
.kfl-cp.win{background:linear-gradient(100deg,var(--kb),var(--kb3));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.kfl-cl2{list-style:none;padding:0;margin:12px 0 0;display:flex;flex-direction:column;gap:8px;}
.kfl-cl2 li{font-size:13px;color:var(--km);display:flex;align-items:flex-start;gap:8px;line-height:1.45;}
.kfl-cl2 li::before{content:'→';color:var(--kb);flex-shrink:0;font-weight:600;}
.kfl-cc.lose .kfl-cl2 li::before{color:var(--kr);content:'✕';}

/* QUOTE INFO ROW */
.kfl-ql-top{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.kfl-ql-img img{height:380px !important;box-shadow:var(--sh2) !important;}
.kfl-ii{display:flex;flex-direction:column;gap:14px;margin-top:22px;}
.kfl-i{display:flex;align-items:flex-start;gap:12px;}
.kfl-ico{width:38px;height:38px;border-radius:14px;flex-shrink:0;background:rgba(59,158,255,.1);border:1px solid rgba(59,158,255,.2);display:flex;align-items:center;justify-content:center;font-size:.95rem;}
.kfl-i strong{display:block;font-size:13px;font-weight:600;color:var(--kblack);margin-bottom:2px;}
.kfl-i span{font-size:12px;color:var(--km);}

/* FORM SECTION */
.kfl-form-section{background:var(--kbg);padding:88px 0;margin:0 20px;border-radius:32px;}
.kfl-form-header{text-align:center;margin-bottom:36px;}
.kfl-form-header p{font-size:14px;color:var(--km);margin-top:6px;}
.kfl-fc{background:#fff;border:1px solid var(--kbr);border-radius:20px;overflow:hidden;box-shadow:0 4px 32px rgba(59,158,255,.08);}
.kfl-fc-top{padding:1.5rem 2rem;border-bottom:1px solid var(--kbr);}
.kfl-fc-top h3{font-size:17px;font-weight:600;color:var(--kblack);margin-bottom:3px;font-family:'Montserrat',sans-serif;}
.kfl-fc-top p{font-size:13px;color:var(--km);}
.kfl-fc-body{padding:1.5rem 2rem;}
.kfl-fg{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.kfl-f{display:flex;flex-direction:column;gap:5px;}
.kfl-f.full{grid-column:1/-1;}
.kfl-f.c3{grid-column:span 1;}
.kfl-sec-label{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--kl);margin-bottom:8px;margin-top:4px;display:block;grid-column:1/-1;}
.kfl-f label{font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--km);}
.kfl-f input,.kfl-f select,.kfl-f textarea{height:40px;padding:0 12px;background:#f7fafd;border:1.5px solid #d4dded;border-radius:10px;font-family:'Inter',sans-serif;font-size:13px;color:#1a1f2e;outline:none;width:100%;transition:border-color .15s,box-shadow .15s;-webkit-appearance:none;appearance:none;}
.kfl-f textarea{height:auto;min-height:88px;padding:10px 12px;resize:vertical;line-height:1.6;}
.kfl-f input:focus,.kfl-f select:focus,.kfl-f textarea:focus{border-color:var(--kb);box-shadow:0 0 0 3px rgba(59,158,255,.1);background:#fff;}
.kfl-f input::placeholder,.kfl-f textarea::placeholder{color:#b8c4d4;font-size:13px;}
.kfl-f select{cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%233b9eff' stroke-width='1.2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px;}
.kfl-sep{height:1px;background:var(--kbr);margin:4px 0 6px;grid-column:1/-1;}
.kfl-fc-footer{padding:1.2rem 2rem;border-top:1px solid var(--kbr);display:flex;align-items:center;justify-content:space-between;gap:16px;}
.kfl-footer-note{font-size:12px;color:var(--kl);display:flex;align-items:center;gap:6px;}
.kfl-consent-row{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;background:#f7fafd;border:1.5px solid #d4dded;border-radius:10px;grid-column:1/-1;}
.kfl-consent-row input[type=checkbox]{width:15px;height:15px;flex-shrink:0;margin-top:2px;accent-color:var(--kb);cursor:pointer;}
.kfl-consent-row span{font-size:12px;color:var(--km);line-height:1.6;}
.kfl-consent-row strong{color:var(--kblack);font-weight:600;}
.kfl-consent-row a{color:var(--kb);}

/* UPLOAD */
.kfl-upload{margin-top:2px;}
.kfl-upload-btn{display:flex;align-items:center;justify-content:center;gap:12px;padding:16px;border:1.5px dashed #d4dded;border-radius:10px;cursor:pointer;background:#f7fafd;transition:border-color .15s,background .15s;text-align:center;}
.kfl-upload-btn:hover{border-color:var(--kb);background:#fff;}
.kfl-upload-icon{font-size:1.3rem;}
.kfl-upload-txt{font-size:13px;font-weight:600;color:var(--kb);}
.kfl-upload-hint{font-size:11px;color:var(--kl);}

/* CONSENT */
.kfl-consent{display:flex;align-items:flex-start;gap:10px;cursor:pointer;font-size:12.5px;color:var(--km);line-height:1.6;}
.kfl-chk{width:16px;height:16px;flex-shrink:0;margin-top:3px;accent-color:var(--kb);cursor:pointer;}
.kfl-consent strong{color:#1a1f2e;}

/* RESPONSIVE */
@media(max-width:1020px){
  .kfl-hero-g,.kfl-split,.kfl-ba-split,.kfl-ql-top{grid-template-columns:1fr;gap:40px;}
  .kfl-steps{grid-template-columns:repeat(2,1fr);gap:36px;}
  .kfl-steps::before{display:none;}
  .kfl-svc-g,.kfl-cmp{grid-template-columns:1fr;}
  .kfl-hero{padding:88px 0 64px;}
  .kfl-section,.kfl-form-section{padding:64px 0;}
  .kfl-ba-split .kfl-ba-img{order:-1;}
}
@media(max-width:680px){
  .kfl-wrap{width:min(100% - 32px,var(--mx));}
  .kfl-section.kfl-bg,.kfl-section.kfl-alt,.kfl-form-section,.kfl-truth{margin:0 10px;border-radius:20px;}
  .kfl-section,.kfl-form-section{padding:52px 0;}
  .kfl-hero{padding:68px 0 44px;}
  .kfl-fg{grid-template-columns:1fr;}
  .kfl-fc-footer{flex-direction:column;align-items:flex-start;}
  .kfl-f.full{grid-column:1;}
  .kfl-steps{grid-template-columns:1fr;}
  .kfl-sr{flex-direction:column;align-items:center;}
  .kfl-pills,.kfl-brow{flex-direction:column;}
  .kfl-btn{width:100%;}
  .kfl-fc{padding:20px;}
  .kfl-truth-inner{flex-direction:column;}
}
</style>

<main class="kfl-page">

  <!-- HERO -->
  <section class="kfl-hero">
    <div class="kfl-wrap kfl-hero-g">
      <div>
        <h1 class="kfl-h1">Locked fob?<br><span class="kfl-ac">We unlock it.</span></h1>
        <p class="kfl-lead">Every smart OEM key fob locks itself when programmed to a vehicle, making it useless anywhere else. We unlock it, test it, and ship it back. No dealer. No replacement.</p>
        <div class="kfl-brow">
          <a class="kfl-btn kfl-btn-p" href="#" onclick="openQuoteModal();return false;">Check My Fob</a>
          <a class="kfl-btn kfl-btn-o" href="#kfl-how">How It Works</a>
        </div>
        <div class="kfl-pills">
          <div class="kfl-pill"><b>✓</b> OEM Only, No Aftermarket</div>
          <div class="kfl-pill"><b>✓</b> Tested First, No Unlock No Charge</div>
          <div class="kfl-pill"><b>✓</b> 3–5 Day Mail-In Turnaround</div>
        </div>
      </div>
      <div class="kfl-hero-iw">
        <img src="https://keyfoblab.com/wp-content/uploads/2026/05/1-2-scaled.png" alt="OEM smart key fob, KeyFob Lab" loading="eager">
      </div>
    </div>
  </section>

  <!-- TRUTH STRIP -->
  <div class="kfl-truth">
    <div class="kfl-wrap">
      <div class="kfl-truth-inner">
        <div class="kfl-truth-ico">ℹ️</div>
        <div class="kfl-truth-body">
          <h3>We Unlock. We Don't Repair.</h3>
          <p>OEM fob unlocking only, restoring pairing codes so a remote works on a different vehicle. <strong>Every fob is tested first.</strong> If it can't be unlocked, <strong>no service fee is charged</strong>, but return shipping is the customer's responsibility.</p>
        </div>
      </div>
    </div>
  </div>

  <!-- SERVICES -->
  <section class="kfl-section kfl-bg">
    <div class="kfl-wrap">
      <h2 class="kfl-h2">Three focused services.</h2>
      <div class="kfl-svc-g">
        <div class="kfl-svc">
          <span class="kfl-svc-n">01</span>
          <h3 class="kfl-h3">OEM Fob Unlocking</h3>
          <p>Fob locked to its original vehicle? We reset it so it can pair to a different one. OEM only, no aftermarket.</p>
        </div>
        <div class="kfl-svc">
          <span class="kfl-svc-n">02</span>
          <h3 class="kfl-h3">Rechargeable Battery</h3>
          <p>Battery soldered to the board? We remove and replace it properly. A new shell is required after opening.</p>
        </div>
        <div class="kfl-svc">
          <span class="kfl-svc-n">03</span>
          <h3 class="kfl-h3">Shell Replacement</h3>
          <p>Cracked casing? We swap it with a clean blank housing. No OEM logo, your original board, new body.</p>
        </div>
      </div>
    </div>
  </section>

  <!-- BATTERY SPLIT -->
  <section class="kfl-section">
    <div class="kfl-wrap kfl-split">
      <div class="kfl-if">
        <img src="https://keyfoblab.com/wp-content/uploads/2026/05/2.png" alt="Rechargeable battery and shell, KeyFob Lab" loading="lazy">
      </div>
      <div>
        <h2 class="kfl-h2">Sealed fob, dead battery?</h2>
        <p class="kfl-lead">Some OEM remotes have the battery soldered directly to the board, not a standard coin cell. We replace it properly.</p>
        <div class="kfl-cl">
          <div class="kfl-ci"><div class="kfl-ci-dot">✓</div><span><strong>Soldered battery removed and replaced</strong>, not swapped like a coin cell.</span></div>
          <div class="kfl-ci"><div class="kfl-ci-dot">✓</div><span><strong>New shell required</strong>, casing must be opened to reach the board.</span></div>
          <div class="kfl-ci"><div class="kfl-ci-dot">✓</div><span><strong>Original board preserved</strong>, careful handling throughout.</span></div>
        </div>
      </div>
    </div>
  </section>

  <!-- BEFORE / AFTER -->
  <section class="kfl-section kfl-bg">
    <div class="kfl-wrap kfl-ba-split">
      <div>
        <h2 class="kfl-h2">Broken shell.<br>Clean new housing.</h2>
        <p class="kfl-lead">Electronics still good, only the casing is damaged. We move your board into a compatible blank shell.</p>
        <p class="kfl-txt" style="margin-top:12px"><strong style="color:#1a1f2e">No OEM logo. No manufacturer branding.</strong> Just clean, solid, and functional.</p>
        <div class="kfl-ba-labels" style="margin-top:18px">
          <div class="kfl-ba-tag b4">✕ Before, Cracked shell</div>
          <div class="kfl-ba-tag af">✓ After, Clean blank housing</div>
        </div>
      </div>
      <div class="kfl-ba-img">
          <img src="https://keyfoblab.com/wp-content/uploads/2026/05/2-1-scaled.png" alt="Before and after shell replacement, KeyFob Lab" loading="lazy">
      </div>
    </div>
  </section>

  <!-- HOW IT WORKS -->
  <section class="kfl-section" id="kfl-how">
    <div class="kfl-wrap">
      <div style="text-align:center;max-width:500px;margin:0 auto 52px">
        <h2 class="kfl-h2">Tested first. Always.</h2>
        <p class="kfl-lead" style="margin:0 auto">Can't be unlocked? We tell you before doing anything. No service fee, return shipping is yours.</p>
      </div>
      <div class="kfl-steps">
        <div class="kfl-step"><div class="kfl-sn">01</div><h4>Send Details</h4><p>Submit vehicle info and fob photos. We reply within 1 business day.</p></div>
        <div class="kfl-step"><div class="kfl-sn">02</div><h4>Mail the Fob</h4><p>Once approved, ship your OEM remote. We confirm receipt and begin testing.</p></div>
        <div class="kfl-step"><div class="kfl-sn">03</div><h4>We Test It</h4><p>Hardware check, signal test. No unlock = no service fee.</p></div>
        <div class="kfl-step"><div class="kfl-sn">04</div><h4>Ships Back</h4><p>Unlocked and verified, back to you in 3–5 days, ready to pair.</p></div>
      </div>
    </div>
  </section>

  <!-- PRICE COMPARE -->
  <section class="kfl-section kfl-bg">
    <div class="kfl-wrap">
      <h2 class="kfl-h2">Skip the dealer.<br>Keep your fob.</h2>
      <p class="kfl-lead">Your fob locks to its vehicle. Moving it to a new car shouldn't cost you $300+.</p>
      <div class="kfl-cmp">
        <div class="kfl-cc lose">
          <span class="kfl-ct">❌ Dealer</span>
          <div class="kfl-cp lose">$300–$600</div>
          <ul class="kfl-cl2">
            <li>New fob at full price</li>
            <li>Plus a programming fee</li>
            <li>Days waiting for parts</li>
          </ul>
        </div>
        <div class="kfl-cc win">
          <span class="kfl-ct">✅ KeyFob Lab</span>
          <div class="kfl-cp win">From $29</div>
          <ul class="kfl-cl2">
            <li>Use the fob you already have</li>
            <li>Tested before you're charged</li>
            <li>Back in 3–5 days</li>
          </ul>
        </div>
      </div>
    </div>
  </section>

  <!-- CTA -->
  <section class="kfl-section" style="text-align:center;">
    <div class="kfl-wrap">
      <h2 class="kfl-h2">Ready to unlock your fob?</h2>
      <p class="kfl-lead" style="margin:0 auto 32px">Send us your details and we'll confirm compatibility and quote you within 1 business day.</p>
      <div style="display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;">
        <a href="#" onclick="openQuoteModal();return false;" class="kfl-btn kfl-btn-p" style="padding:16px 44px;font-size:15px;">Request a Quote</a>
      </div>
      <div style="display:flex;align-items:center;justify-content:center;gap:28px;margin-top:28px;flex-wrap:wrap;">
        <span style="font-size:13px;color:var(--km);display:flex;align-items:center;gap:6px;">✓ No payment until you approve</span>
        <span style="font-size:13px;color:var(--km);display:flex;align-items:center;gap:6px;">✓ Reply within 1 business day</span>
        <span style="font-size:13px;color:var(--km);display:flex;align-items:center;gap:6px;">✓ Free return on successful unlocks</span>
      </div>
    </div>
  </section>

  <!-- MODAL OVERLAY -->
  <div id="kfl-modal" style="display:none;position:fixed;inset:0;z-index:9999;background:rgba(15,23,42,.55);backdrop-filter:blur(4px);align-items:center;justify-content:center;padding:20px;">
    <div style="background:#fff;border-radius:24px;width:100%;max-width:780px;max-height:90vh;overflow-y:auto;box-shadow:0 24px 80px rgba(15,23,42,.25);position:relative;">

      <!-- Modal header -->
      <div style="padding:1.4rem 2rem;border-bottom:1px solid var(--kbr);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:#fff;z-index:1;border-radius:24px 24px 0 0;">
        <div>
          <h3 style="font-family:'Montserrat',sans-serif;font-size:17px;font-weight:600;color:var(--kblack);margin:0 0 2px">Request a Quote</h3>
          <p style="font-size:12px;color:var(--km);margin:0">We reply within 1 business day.</p>
        </div>
        <button onclick="document.getElementById('kfl-modal').style.display='none'" style="width:34px;height:34px;border-radius:50%;border:1.5px solid var(--kbr);background:#fff;cursor:pointer;font-size:18px;color:var(--km);display:flex;align-items:center;justify-content:center;line-height:1;">✕</button>
      </div>

      <!-- Form body -->
      <div style="padding:1.5rem 2rem;">
        <form class="kfl-fg" onsubmit="handleQuoteSubmit(event)">

          <span class="kfl-sec-label">Your information</span>

          <div class="kfl-f"><label>First Name</label><input type="text" placeholder="John" required></div>
          <div class="kfl-f"><label>Last Name</label><input type="text" placeholder="Smith" required></div>
          <div class="kfl-f"><label>Email Address</label><input type="email" placeholder="you@email.com" required></div>
          <div class="kfl-f"><label>Phone Number</label><input type="tel" placeholder="(555) 000-0000" required></div>

          <div class="kfl-sep"></div>
          <span class="kfl-sec-label">Vehicle &amp; fob</span>

          <div class="kfl-f"><label>Vehicle Year</label><input type="text" placeholder="2021" required></div>
          <div class="kfl-f"><label>Make &amp; Model</label><input type="text" placeholder="Toyota Camry" required></div>
          <div class="kfl-f"><label>Key Type</label>
            <select required>
              <option value="" disabled selected>Select</option>
              <option>Push to Start (Smart Key)</option>
              <option>Key Blade (Traditional Remote)</option>
              <option>Not Sure</option>
            </select>
          </div>
          <div class="kfl-f"><label>Service Needed</label>
            <select required>
              <option value="" disabled selected>Select a service</option>
              <option>OEM Fob Unlocking</option>
              <option>OEM Fob Unlocking + Shell Replacement</option>
              <option>Rechargeable Battery + Shell</option>
              <option>Shell Replacement Only</option>
              <option>Not Sure, Need Diagnosis</option>
            </select>
          </div>

          <div class="kfl-sep"></div>
          <span class="kfl-sec-label">Remote details</span>

          <div class="kfl-f"><label>Fob Condition</label>
            <textarea placeholder="Used, cracked shell, water damage, locked to another vehicle..." required></textarea>
          </div>
          <div class="kfl-f"><label>What is Wrong With the Remote</label>
            <textarea placeholder="Buttons not responding, won't sync, programmed to a different car..." required></textarea>
          </div>

          <div class="kfl-f full">
            <label>Photo of the Fob</label>
            <div class="kfl-upload">
              <input type="file" id="kfl-file" accept="image/*" style="display:none">
              <label for="kfl-file" class="kfl-upload-btn">
                <span class="kfl-upload-icon">📎</span>
                <div>
                  <span class="kfl-upload-txt">Click to attach a photo</span>
                  <span class="kfl-upload-hint" style="display:block">JPG, PNG or HEIC</span>
                </div>
              </label>
            </div>
          </div>

          <div class="kfl-sep"></div>

          <div class="kfl-consent-row">
            <input type="checkbox" id="kfl-consent" required class="kfl-chk">
            <label for="kfl-consent"><span>I understand that if my fob cannot be unlocked, <strong>no service fee will be charged</strong> but <strong>return shipping is my responsibility</strong>. I agree to the <a href="#" style="color:var(--kb)">Terms &amp; Conditions</a> and <a href="#" style="color:var(--kb)">Privacy Policy</a>.</span></label>
          </div>

          <!-- Footer -->
          <div class="kfl-sep"></div>
          <div class="kfl-f full" style="display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:4px;">
            <span style="font-size:12px;color:var(--kl);">🔒 No payment until you approve the quote</span>
            <button type="submit" id="kfl-submit-btn" class="kfl-btn kfl-btn-p" style="padding:13px 36px">Send Quote Request</button>
          </div>

        </form>
      </div>
    </div>
  </div>

</main>

<script>
function openQuoteModal(){
  var m=document.getElementById('kfl-modal');
  m.style.display='flex';
  document.body.style.overflow='hidden';
}
// Close on overlay click
document.getElementById('kfl-modal').addEventListener('click',function(e){
  if(e.target===this){
    this.style.display='none';
    document.body.style.overflow='';
  }
});
// Close on ESC
document.addEventListener('keydown',function(e){
  if(e.key==='Escape'){
    document.getElementById('kfl-modal').style.display='none';
    document.body.style.overflow='';
  }
});
function handleQuoteSubmit(e){
  e.preventDefault();
  var btn=document.getElementById('kfl-submit-btn');
  btn.textContent='✓ Sent!';
  btn.style.background='#16a34a';
  setTimeout(function(){
    document.getElementById('kfl-modal').style.display='none';
    document.body.style.overflow='';
    btn.textContent='Send Quote Request';
    btn.style.background='';
    e.target.reset();
  },2000);
}
</script>