1import{a,j as e,T as l,M as d,S as i,a4 as m,a5 as c,a6 as p}from"./index-0qbe4j-K.js";import{b as x,L as o}from"./react-vendor-CuqwDvgQ.js";import{A as n}from"./index-Co7NhG2t.js";import{P as u}from"./public-layout-bkiBGzYg.js";import{P as h}from"./page-hero-B3IlbYIZ.js";import{C as b}from"./cta-section-B1HSQf56.js";import"./page-transition-DPFLNUVD.js";import"./separator-y_AUlMtH.js";import"./index-l9j0_l5U.js";import"./index-fQbr3YLv.js";import"./index-D9-iGJLB.js";import"./sheet-C6SrAI_i.js";import"./form-mhD-F1Ca.js";import"./use-reduced-motion-CqF7cx4E.js";import"./use-spring-D9a5Y3Ix.js";function O(){return x.useEffect(()=>{const r=document.createElement("script");return r.type="application/ld+json",r.dataset.services="true",r.textContent=JSON.stringify({"@context":"https://schema.org","@type":"ItemList",name:"Securoxen security services",itemListElement:a().map((t,s)=>({"@type":"ListItem",position:s+1,item:{"@type":"Service",name:t.title,description:t.description,serviceType:t.title,provider:{"@type":"Organization",name:"Securoxen"},areaServed:"Worldwide"}}))}),document.head.appendChild(r),()=>{r.remove()}},[]),e.jsxs(u,{children:[e.jsx(h,{background:"stars",eyebrow:e.jsxs("span",{className:"border-border bg-background/60 text-muted-foreground inline-flex items-center gap-2 rounded-full border px-3 py-1 text-xs backdrop-blur",children:[e.jsx(i,{className:"size-3.5 text-emerald-500"}),"Scoped to your system, not sold by the seat"]}),title:"Security work, done properly",description:"The tools on this site are free and stay free. Consulting is how that is paid for - and when you need a person rather than a utility, a review or a plan someone will stand behind, this is that.",actions:e.jsxs(o,{to:"/contact",className:"bg-primary text-primary-foreground hover:bg-primary/90 inline-flex items-center gap-2 rounded-lg px-5 py-2.5 text-sm font-medium transition-colors",children:[e.jsx(d,{className:"size-4"}),"Start a conversation"]}),stats:[{label:"Open now",value:a().length},{label:"Free tools",value:l.length}]}),e.jsxs("div",{className:"mx-auto w-full max-w-[100rem] px-4 py-14",children:[m().map(r=>e.jsxs("section",{className:"mb-12 last:mb-0",children:[e.jsx("h2",{className:"text-muted-foreground mb-4 text-sm font-medium tracking-wide uppercase",children:c[r.category]}),e.jsx("div",{className:"grid gap-4 sm:grid-cols-2 xl:grid-cols-3",children:r.services.map(t=>{const s=t.icon;return e.jsxs("article",{className:t.available?"border-border hover:border-primary/50 flex flex-col rounded-2xl border p-6 transition-colors":"border-border/60 bg-muted/20 hover:border-border flex flex-col rounded-2xl border p-6 transition-colors",children:[e.jsxs("div",{className:"mb-4 flex items-start justify-between gap-3",children:[e.jsx("span",{className:"bg-primary/10 text-primary inline-flex w-fit items-center justify-center rounded-lg p-2.5",children:e.jsx(s,{className:"size-6"})}),t.available?e.jsx("span",{className:"border-border text-muted-foreground rounded-full border px-2.5 py-0.5 text-xs whitespace-nowrap",children:t.pricingModel==="tiered"?"Fixed tiers":"Scoped"}):e.jsx("span",{className:"rounded-full border border-amber-500/40 px-2.5 py-0.5 text-xs whitespace-nowrap text-amber-500",children:"Not yet"})]}),e.jsx("h3",{className:"mb-2 text-lg font-semibold tracking-tight",children:t.title}),e.jsx("p",{className:"text-foreground/90 mb-3 text-sm",children:t.summary}),e.jsx("p",{className:"text-muted-foreground mb-6 flex-1 text-sm leading-relaxed",children:t.description}),e.jsxs(o,{to:`/services/${t.slug}`,className:"border-border hover:bg-muted/60 mt-auto inline-flex w-full items-center justify-center gap-2 rounded-lg border px-4 py-2.5 text-sm font-medium transition-colors",children:["What this involves",e.jsx(n,{className:"size-4"})]})]},t.slug)})})]},r.category)),e.jsx("p",{className:"text-muted-foreground mx-auto mt-10 max-w-2xl text-center text-sm leading-relaxed",children:"Right now we take on one thing, and do it properly - learned, run and stood behind, rather than sold as one of a dozen and figured out afterwards, which is the version that goes wrong for the client and not for us. If you need something adjacent, tell us: what people ask for is what decides where this goes next."})]}),e.jsx(b,{eyebrow:e.jsxs("span",{className:"border-border bg-background/60 text-muted-foreground inline-flex items-center gap-2 rounded-full border px-3 py-1 text-xs backdrop-blur",children:[e.jsx(i,{className:"size-3.5 text-emerald-500"}),"No sales sequence, no CRM, no tracking"]}),title:"Tell us what you are worried about",description:"One email, read by a person. If it is not something we should take on, we will say so and point you somewhere better.",actions:e.jsxs(o,{to:"/contact",className:"bg-primary text-primary-foreground hover:bg-primary/90 inline-flex items-center gap-2 rounded-lg px-5 py-2.5 text-sm font-medium transition-colors",children:[p,e.jsx(n,{className:"size-4"})]}),footnote:"The tools stay free either way."})]})}
1export{O 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.