PageSourceSearch

https://estimatekit.com/assets/FreeToolsSection-BnL7_idX.js

js estimatekit.com collected 2026-10-04 03:33:49 UTC 3,569 bytes, 20 lines download raw bytes

1import{j as e,L as s}from"./index-CbvCveKN.js";import{A as a}from"./arrow-right-dw9dfM3J.js";const t={ground:"#07090d",text:"#e6ebf2",text2:"#8b97a8",text3:"#6b7788",text4:"#4f5b6c",hair:"#ffffff12",accent:"#f26a1b"},i=`
2.ek-tools{position:relative;background:${t.ground};color:${t.text};-webkit-font-smoothing:antialiased}
3.ek-tools .ekt-wrap{position:relative;max-width:1040px;margin:0 auto;padding:96px 32px 112px;border-top:1px solid ${t.hair}}
4.ek-tools .ekt-label{font-size:12px;letter-spacing:.08em;color:${t.accent}}
5.ek-tools .ekt-h{font-size:clamp(32px,4.2vw,44px);font-weight:600;letter-spacing:-.03em;line-height:1.05;margin:16px 0 0;text-wrap:balance}
6.ek-tools .ekt-h span{color:${t.text3}}
7.ek-tools .ekt-sub{margin:16px 0 0;max-width:520px;font-size:16px;line-height:1.55;color:${t.text2};text-wrap:pretty}
8.ek-tools .ekt-grid{list-style:none;margin:40px 0 0;padding:0;display:grid;gap:12px}
9@media(min-width:720px){.ek-tools .ekt-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
10.ek-tools .ekt-tile{display:flex;height:100%;flex-direction:column;padding:22px;border:1px solid ${t.hair};border-radius:16px;color:${t.text};text-decoration:none;transition:border-color .2s}
11.ek-tools .ekt-tile:hover{border-color:#ffffff40;color:${t.text}}
12.ek-tools .ekt-n{font-size:34px;font-weight:500;letter-spacing:-.03em;line-height:1;color:${t.accent};font-variant-numeric:tabular-nums}
13.ek-tools .ekt-t{margin-top:14px;font-size:17px;font-weight:500;letter-spacing:-.01em}
14.ek-tools .ekt-p{flex:1;margin:6px 0 0;font-size:14px;line-height:1.45;color:${t.text2}}
15.ek-tools .ekt-f{display:flex;align-items:center;justify-content:space-between;margin-top:20px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:${t.text4}}
16.ek-tools .ekt-f svg{color:${t.text4};transition:transform .2s,color .2s}
17.ek-tools .ekt-tile:hover .ekt-f svg{color:${t.accent};transform:translateX(2px)}
18.ek-tools .ekt-tile:focus-visible{outline:2px solid #f26a1b66;outline-offset:3px}
19@media(max-width:640px){.ek-tools .ekt-wrap{padding:72px 20px 88px}}
20`,n=[{n:"16",title:"HVAC calculators",body:"Load, tonnage, duct size, CFM, superheat, labor rate and job pricing, with every formula shown.",to:"/hvac-calculators",tag:"No sign-up"},{n:"9",title:"Estimate templates",body:"Working spreadsheets for estimates, invoices, proposals, ductwork and maintenance agreements.",to:"/free-templates",tag:"Excel + PDF"},{n:"30+",title:"Pricing guides",body:"How to price jobs, markup charts, labor rates, good-better-best quotes and proposals that get signed.",to:"/blog",tag:"Read"}],p=()=>e.jsxs("section",{className:"ek-onest ek-tools","aria-labelledby":"tools-heading",children:[e.jsx("style",{dangerouslySetInnerHTML:{__html:i}}),e.jsxs("div",{className:"ekt-wrap",children:[e.jsx("div",{className:"ekt-label ek-mono",children:"FREE TOOLS · NO SIGN-UP"}),e.jsxs("h2",{id:"tools-heading",className:"ekt-h",children:["Useful before you ever sign up.",e.jsx("br",{}),e.jsx("span",{children:"Free, and built for the truck."})]}),e.jsx("p",{className:"ekt-sub",children:"The same math and paperwork EstimateKit runs, as standalone tools anyone can use."}),e.jsx("ul",{className:"ekt-grid",children:n.map(o=>e.jsx("li",{children:e.jsxs(s,{to:o.to,className:"ekt-tile",children:[e.jsx("span",{className:"ekt-n",children:o.n}),e.jsx("span",{className:"ekt-t",children:o.title}),e.jsx("p",{className:"ekt-p",children:o.body}),e.jsxs("span",{className:"ekt-f ek-mono",children:[e.jsx("span",{children:o.tag}),e.jsx(a,{className:"h-4 w-4"})]})]})},o.to))})]})]});export{p as default};

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.