1import{r,j as e,L as N}from"./index-CbvCveKN.js";const v="cubic-bezier(.2,.7,.2,1)",o=49,x=400,i={ground:"#07090d",text:"#e6ebf2",text2:"#8b97a8",text3:"#6b7788",text4:"#4f5b6c",dot:"#2f3947",hair:"#ffffff12",accent:"#f26a1b"},j=[{name:"Estimates",meta:"UNLIMITED"},{name:"Invoices",meta:"UNLIMITED"},{name:"Customers",meta:"UNLIMITED"},{name:"Good / Better / Best options",meta:"INCLUDED"},{name:"Online approval and e-signature",meta:"INCLUDED"},{name:"Deposits and payment tracking",meta:"INCLUDED"},{name:"Job scheduling",meta:"INCLUDED"},{name:"Follow-up and payment reminders",meta:"INCLUDED"},{name:"Maintenance agreements",meta:"NEW"},{name:"Customer equipment records",meta:"NEW"},{name:"Estimates without cell signal",meta:"NEW"},{name:"Revenue dashboard",meta:"INCLUDED"}],E=[{h:"SECURE AND PRIVATE",p:"Your customer data stays yours. Encrypted in transit and at rest."},{h:"CANCEL ANYTIME",p:"No contract. One click from settings, no phone call."},{h:"SETUP IN 5 MINUTES",p:"Add your logo, send your first estimate. No onboarding call."}],$=` 2.ek-pricing .ekp-grid{position:absolute;inset:0;background-image:linear-gradient(#ffffff08 1px,transparent 1px),linear-gradient(90deg,#ffffff08 1px,transparent 1px);background-size:80px 80px;-webkit-mask-image:radial-gradient(ellipse 60% 70% at 30% 45%,#000 20%,transparent 100%);mask-image:radial-gradient(ellipse 60% 70% at 30% 45%,#000 20%,transparent 100%);pointer-events:none} 3.ek-pricing .ekp-glow{position:absolute;top:-100px;left:-200px;width:900px;height:800px;background:radial-gradient(ellipse at center,#f26a1b26,transparent 65%);pointer-events:none} 4.ek-pricing .ekp-wrap{position:relative;max-width:1040px;margin:0 auto;padding:112px 32px 120px;display:flex;flex-direction:column;gap:72px} 5.ek-pricing .ekp-main{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:80px;align-items:start} 6.ek-pricing .ekp-left{display:flex;flex-direction:column;gap:40px;position:sticky;top:96px} 7.ek-pricing .ekp-label{font-size:12px;letter-spacing:.08em;color:${i.accent}} 8.ek-pricing .ekp-h{font-size:52px;font-weight:600;letter-spacing:-.035em;line-height:1.02;margin:20px 0 0;text-wrap:balance} 9.ek-pricing .ekp-h span{display:block} 10.ek-pricing .ekp-h .l2{color:${i.text3}} 11.ek-pricing .ekp-body{font-size:15px;color:${i.text2};margin:22px 0 0;line-height:1.55;max-width:380px;text-wrap:pretty} 12.ek-pricing .ekp-pricerow{display:flex;align-items:baseline;gap:12px} 13.ek-pricing .ekp-num{font-size:128px;font-weight:500;letter-spacing:-.05em;line-height:.9;color:#fff;font-variant-numeric:tabular-nums} 14.ek-pricing .ekp-num.glow{animation:ekp-glow 4s ease-in-out infinite} 15.ek-pricing .ekp-per{font-size:18px;color:${i.text3}} 16.ek-pricing .ekp-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px;font-size:13px;color:${i.text3}} 17.ek-pricing .ekp-meta i{font-style:normal;color:${i.dot}} 18.ek-pricing .ekp-ctawrap{display:flex;flex-direction:column;gap:12px;max-width:380px} 19.ek-pricing .ekp-cta{position:relative;overflow:hidden;height:54px;border-radius:999px;background:${i.accent};color:#fff;font-size:15px;font-weight:600;display:flex;align-items:center;justify-content:center;box-shadow:0 0 40px #f26a1b55;text-decoration:none;transition:transform .2s} 20.ek-pricing .ekp-cta:hover{transform:translateY(-1px);color:#fff} 21.ek-pricing .ekp-cta .sheen{position:absolute;top:0;bottom:0;left:0;width:40%;background:linear-gradient(90deg,transparent,#ffffff55,transparent);transform:translateX(-120%) skewX(-20deg);pointer-events:none} 22.ek-pricing .ekp-cta .sheen.go{animation:ekp-shimmer 2.4s ease-in-out infinite} 23.ek-pricing .ekp-cta span{position:relative} 24.ek-pricing .ekp-fine{text-align:center;font-size:12.5px;color:${i.text4}} 25.ek-pricing .ekp-ledger{display:flex;flex-direction:column} 26.ek-pricing .ekp-lhead{display:flex;justify-content:space-between;align-items:baseline;padding-bottom:16px;font-size:11px;letter-spacing:.08em;color:${i.text4}} 27.ek-pricing .ekp-lhead b{font-weight:400;color:${i.accent}} 28.ek-pricing .ekp-row{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:baseline;padding:16px 0;border-top:1px solid ${i.hair}} 29.ek-pricing .ekp-row .n{font-size:16px;font-weight:500} 30.ek-pricing .ekp-row .m{font-size:11px;letter-spacing:.08em;white-space:nowrap;color:${i.text4}} 31.ek-pricing .ekp-row .m.hot{color:${i.accent}} 32.ek-pricing .ekp-close{border-top:1px solid ${i.hair}} 33.ek-pricing .ekp-trust{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;padding-top:36px;border-top:1px solid ${i.hair}} 34.ek-pricing .ekp-trust h3{font-size:11px;letter-spacing:.08em;color:${i.text4};font-weight:400;margin:0} 35.ek-pricing .ekp-trust p{font-size:13.5px;color:${i.text2};margin:8px 0 0;line-height:1.5} 36@keyframes ekp-rise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}} 37@keyframes ekp-fade{from{opacity:0}
37to{opacity:1}} 38@keyframes ekp-drift{from{background-position:0 0,0 0}to{background-position:80px 80px,80px 80px}} 39@keyframes ekp-breathe{0%,100%{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.12)}} 40@keyframes ekp-glow{0%,100%{text-shadow:0 0 30px #f26a1b44}50%{text-shadow:0 0 70px #f26a1baa}} 41@keyframes ekp-shimmer{from{transform:translateX(-120%) skewX(-20deg)}to{transform:translateX(320%) skewX(-20deg)}} 42@media (max-width:900px){ 43 .ek-pricing .ekp-wrap{padding:80px 20px 96px;gap:48px} 44 .ek-pricing .ekp-main{grid-template-columns:1fr;gap:44px} 45 .ek-pricing .ekp-left{position:static;gap:32px} 46 .ek-pricing .ekp-h{font-size:38px} 47 .ek-pricing .ekp-num{font-size:88px} 48 .ek-pricing .ekp-ctawrap{max-width:none} 49 .ek-pricing .ekp-trust{grid-template-columns:1fr;gap:22px;padding-top:28px} 50} 51@media (max-width:400px){ 52 .ek-pricing .ekp-num{font-size:76px} 53 .ek-pricing .ekp-h{font-size:34px} 54} 55`,I=c=>1-Math.pow(1-c,4),D=()=>{const c=r.useRef(null),[l,w]=r.useState(!1),[p,k]=r.useState(!1),[y,d]=r.useState(o),[b,g]=r.useState(!1);r.useEffect(()=>{const t=window.matchMedia("(prefers-reduced-motion: reduce)");k(t.matches);const n=s=>k(s.matches);return t.addEventListener("change",n),()=>t.removeEventListener("change",n)},[]),r.useEffect(()=>{const t=c.current;if(!t)return;const n=new IntersectionObserver(([s])=>{s.isIntersecting&&(w(!0),n.disconnect())},{threshold:.2});return n.observe(t),()=>n.disconnect()},[]),r.useEffect(()=>{if(!l)return;if(p){d(o),g(!0);return}d(x);let t=0;const n=window.setTimeout(()=>{const m=performance.now();t=window.setInterval(()=>{const u=Math.min(1,(performance.now()-m)/1400);d(Math.round(x+(o-x)*I(u))),u>=1&&window.clearInterval(t)},32)},700),s=window.setTimeout(()=>g(!0),2e3);return()=>{window.clearTimeout(n),window.clearTimeout(s),window.clearInterval(t)}},[l,p]);const a=(t,n,s,m=v)=>p?{}:l?{animation:`${t} ${n}s ${m} ${s}s both`}:{opacity:0},f=(t,n,s)=>p||!l?{}:{animation:`${t} ${n}s ${s} infinite`},h=b&&!p;return e.jsxs("section",{ref:c,"aria-label":"Pricing",className:"ek-onest ek-pricing section-clip-even relative overflow-hidden",style:{zIndex:5,background:i.ground,color:i.text,WebkitFontSmoothing:"antialiased"},children:[e.jsx("style",{dangerouslySetInnerHTML:{__html:$}}),e.jsx("div",{className:"ekp-grid","aria-hidden":!0,style:f("ekp-drift",18,"linear")}),e.jsx("div",{className:"ekp-glow","aria-hidden":!0,style:f("ekp-breathe",7,"ease-in-out")}),e.jsxs("div",{className:"ekp-wrap",children:[e.jsxs("div",{className:"ekp-main",children:[e.jsxs("div",{className:"ekp-left",children:[e.jsxs("div",{children:[e.jsx("div",{className:"ekp-label ek-mono",style:a("ekp-fade",.8,0,"ease"),children:"SIMPLE PRICING"}),e.jsxs("h2",{className:"ekp-h",children:[e.jsx("span",{style:a("ekp-rise",.9,.1),children:"One plan."}),e.jsx("span",{className:"l2",style:a("ekp-rise",.9,.3),children:"Everything included."})]}),e.jsx("p",{className:"ekp-body",style:a("ekp-rise",.9,.5),children:"No tiers. No upsells. No per-user fees. Just $49/month for everything."})]}),e.jsxs("div",{style:a("ekp-rise",1,.6),children:[e.jsxs("div",{className:"ekp-pricerow",children:[e.jsxs("div",{className:`ekp-num ek-mono${h?" glow":""}`,"aria-label":`$${o} per month`,children:["$",y]}),e.jsx("div",{className:"ekp-per ek-mono",children:"/ month"})]}),e.jsxs("div",{className:"ekp-meta",children:[e.jsx("span",{children:"Billed monthly"}),e.jsx("i",{children:"·"}),e.jsx("span",{children:"Cancel anytime"}),e.jsx("i",{children:"·"}),e.jsxs("span",{className:"ek-mono",children:["$",(o*12/365).toFixed(2)," / day"]})]})]}),e.jsxs("div",{className:"ekp-ctawrap",style:a("ekp-rise",1,.9),children:[e.jsxs(N,{to:"/signup",className:"ekp-cta",children:[e.jsx("div",{className:`sheen${h?" go":""}`,"aria-hidden":!0}),e.jsx("span",{children:"Start free trial â"})]}),e.jsx("div",{className:"ekp-fine",children:"No credit card required · Setup in 5 minutes"})]})]}),e.jsxs("div",{className:"ekp-ledger",style:a("ekp-rise",1,.7),children:[e.jsxs("div",{className:"ekp-lhead ek-mono",children:[e.jsx("span",{children:"WHAT'S INCLUDED"}),e.jsx("b",{children:"ALL OF IT"})]}),j.map((t,n)=>e.jsxs("div",{className:"ekp-row",style:a("ekp-rise",.6,.9+n*.07),children:[e.jsx("div",{className:"n",children:t.name}),e.jsx("div",{className:`m ek-mono${t.meta!=="INCLUDED"?" hot":""}`,children:t.meta})]},t.name)),e.jsx("div",{className:"ekp-close"})]})]}),e.jsx("div",{className:"ekp-trust",style:a("ekp-fade",1,1.8,"ease"),children:E.map(t=>e.jsxs("div",{children:[e.jsx("h3",{className:"ek-mono",children:t.h}),e.jsx("p",{children:t.p})]},t.h))})]})]})};export{D 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.