1import{j as e}from"./data-DN-eP4ae.js";import{L as c,r as B,k as C}from"./react-BUOzgyp0.js";import{S as _,b as M,R as A,s as I}from"./SiteNotFound-CiH0Iyxp.js";import{w as R,b as r,c as l,x as Y,e as b,R as y,y as H,C as u,z as E,S as f,M as O,a as N,d as p,A as j,F as U,j as T,m as q,k as W,o as Q,p as G}from"./SiteSections-B3DZWhus.js";import{r as x,b as P,B as J,p as z,C as V,F as X}from"./business-type-registry-TeAT43L6.js";import"./app-primitives-C7oGnmBt.js";import{C as S,$ as Z,B as $,A as L,c as d,at as D}from"./index-6GUxm5Tl.js";import{a as K,S as ee}from"./events-NcBcdIsf.js";import{u as k}from"./usePageContext-Cam8cm1F.js";import{M as te}from"./onboarding-business-types-InVCPvhM.js";import"./BrandLogo-DSytlRZz.js";import"./arrow-up-right-DbUg8U10.js";import"./download-D8rVLK2a.js";import"./accordion-CiQ_C7FI.js";import"./book-open-C5m3GX53.js";import"./wallet-hX8y-nkf.js";import"./workflow-BQhqW2ze.js";import"./inbox-IpoGX3gq.js";import"./smartphone-Bv32NG3H.js";import"./message-circle-BaAVvJru.js";import"./contact-round-DkH2kPb5.js";import"./chevron-left-BO8s0r98.js";import"./power-acJGjCtP.js";import"./business-type-defaults-CZCTHSrA.js";import"./documents-Bju1cS7G.js";import"./charts-BjVT6r80.js";import"./business-taxonomy-DjKP5GVb.js";function se(s){const{customer:t,deal:a,offering:i}=s.vocabulary,n=x(s),h=o=>n.some(v=>v.key===o);return[{stage:"Acquire",title:`A new ${t} arrives`,body:`However they reach you - a call, WhatsApp, Instagram, a form on your site${h("bookings")?" or a booking":""} - they become one ${t} record with the source recorded, not a name in someone's phone.`},{stage:"Convert",title:`The ${a} moves forward`,body:`Each ${a} sits at a stage you can see, with the next follow up as work to do${h("quotes")?`, and the ${i} you offered saved against it`:""}. Nothing waits on memory.`},{stage:"Deliver",title:`The ${i} is delivered and paid for`,body:`${h("invoices")?"Send the invoice from the same record, and payment reminders run without you chasing.":"Record what was agreed and what was delivered on the same record."}`},{stage:"Keep",title:`The ${t} comes back`,body:`Past ${t}s stay in one list with their full history, so a reminder${h("campaigns")?" or a broadcast":""} goes to the right people instead of everybody.`}]}function oe(s){return x(s).filter(t=>!t.optional).slice(0,6).map(t=>({title:t.label,body:t.purpose}))}function ae({entry:s,ctaContext:t}){const a=x(s);if(!a.length)return null;const i=R({kind:"business-type",key:s.slug},{business_type:s.taxonomyKey,recommended_setup:s.taxonomyKey,source:"business_type",cta_position:"recommended_setup"});return e.jsxs(r,{muted:!0,children:[e.jsx(l,{eyebrow:"Recommended setup",title:`Recommended DuceCRM setup for ${s.label.toLowerCase()}`,body:"Start with these. Everything else stays switched off until you need it, and you can change any of it later."}),e.jsx("ul",{className:"mt-8 grid gap-3 sm:grid-cols-2",children:a.map(n=>e.jsxs("li",{className:"flex items-start gap-3 rounded-lg border bg-card p-4",children:[e.jsx(S,{"aria-hidden":!0,className:"mt-0.5 h-4 w-4 shrink-0 text-primary"}),e.jsxs("div",{className:"min-w-0",children:[e.jsxs("p",{className:"flex flex-wrap items-center gap-2 text-sm font-medium",children:[n.label,n.optional&&e.jsx(Z,{variant:"secondary",children:"Optional"})]}),e.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:n.purpose})]})]},n.key))}),e.jsxs("div",{className:"mt-6 flex flex-col gap-3 sm:flex-row sm:items-center",children:[e.jsx($,{size:"lg",asChild:!0,className:"w-full sm:w-auto",children:e.jsxs(c,{to:i,onClick:()=>K({position:"recommended_setup",label:"Start with this setup",href:i,origin:{kind:"business-type",key:s.slug},context:{...t,intent:"start_with_this_setup"}}),children:["Start with this setup",e.jsx(L,{"aria-hidden":!0,className:"ml-2 h-4 w-4"})]})}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"We carry this through setup, so you are not asked the same questions again."})]})]})}const ie=[{when:"Day 1",title:"Bring your customers in",body:"Import your list or add them from the contacts already on your phone. Nothing is retyped.",visual:"contact"},{when:"Day 2",title:"Put today's work somewhere it cannot be forgotten",body:"Every promise becomes a follow up with a date and an owner instead of a memory.",visual:"attention"},{when:"Day 3",title:"Reply where the customer already is",body:"WhatsApp, email and chat land in one inbox, on the customer's record.",visual:"inbox",module:"inbox"}
1,{when:"By Friday",title:"See the week honestly",body:"What came in, what is still open and what was paid - without adding anything up yourself.",visual:"reports"}],ne={"Retail & Trade":[{when:"Day 1",title:"Save the regulars at the counter",body:"Name, number and what they buy - added in seconds while they are standing there.",visual:"contact"},{when:"Day 2",title:"Put your price list in one place",body:"Products and prices stop living in a notebook, so any staff member quotes the same figure.",visual:"offer",module:"catalog"},{when:"Day 3",title:"Invoice the bulk buyer properly",body:"Send the invoice, record part payments, and the balance stays visible until it is cleared.",visual:"invoice",module:"invoices"},{when:"By Friday",title:"Bring the repeat buyers back",body:"One message to the people who buy this item tells them the new stock has landed.",visual:"automation",module:"campaigns"}],"Fashion & Beauty":[{when:"Day 1",title:"Move the appointment book out of the notebook",body:"Your real working hours go in once, and two clients can no longer hold the same slot.",visual:"bookings",module:"bookings"},{when:"Day 2",title:"Share one booking link",body:"Clients pick a time themselves, and you can ask for a deposit before the slot is held.",visual:"bookings",module:"bookings"},{when:"Day 3",title:"Keep each client's history",body:"What they had last time, what they paid, what they asked for - on one page.",visual:"customer360"},{when:"By Friday",title:"Reminders send themselves",body:"The day-before message goes out without anyone remembering to send it.",visual:"automation",module:"automation"}],"Food & Beverage":[{when:"Day 1",title:"Get every order out of the chats",body:"Each order recorded with its pickup or delivery date, in one list the kitchen can read.",visual:"pipeline",module:"deals"},{when:"Day 2",title:"Take reservations and orders on a link",body:"One link for the date and time, so a table or a cake slot is never promised twice.",visual:"bookings",module:"bookings"},{when:"Day 3",title:"Price a catering job from your menu",body:"Build the offer from your items, send it, and take a deposit when it is accepted.",visual:"offer",module:"quotes"},{when:"By Friday",title:"Fill the quiet day",body:"One broadcast to customers who used to order weekly and stopped.",visual:"automation",module:"campaigns"}],"Professional Services":[{when:"Day 1",title:"Put every enquiry in one place",body:"Referrals and inbound requests get an owner and a next step instead of sitting in a personal inbox.",visual:"contact"},{when:"Day 2",title:"See the real pipeline",body:"Each engagement on a stage, so you can say what is genuinely live this month.",visual:"pipeline",module:"deals"},{when:"Day 3",title:"Send the proposal from your own price list",body:"No rebuilding last month's document. The offer becomes the invoice when it is accepted.",visual:"offer",module:"quotes"},{when:"By Friday",title:"Invoices and reminders run themselves",body:"Raised the day the work is done, chased without you writing the chase.",visual:"invoice",module:"invoices"}],Property:[{when:"Day 1",title:"Record every enquiry with the property attached",body:"Who called, which listing, what budget - instead of a name in a WhatsApp thread.",visual:"contact"},{when:"Day 2",title:"Book inspections on a link",body:"Viewings sit on one diary, so two clients are never shown up at the same time.",visual:"bookings",module:"bookings"},{when:"Day 3",title:"Track the deal to close",body:"Offer, agreement and payment stages, with the documents on the client's record.",visual:"pipeline",module:"deals"},{when:"By Friday",title:"Follow up the ones who went quiet",body:"Every warm enquiry has a dated next step, so nobody is lost between listings.",visual:"attention"}],"Health & Wellness":[{when:"Day 1",title:"Set real clinic hours",body:"Each practitioner's availability goes in once, and the diary stops clashing.",visual:"bookings",module:"bookings"},{when:"Day 2",title:"Collect details before the visit",body:"An intake form gathers what you need, so the first minutes are not spent on paperwork.",visual:"forms",module:"forms"},{when:"Day 3",title:"Keep one record per person",body:"Visits, notes and payments on one page, visible only to the people you allow.",visual:"customer360"}
1,{when:"By Friday",title:"Recalls stop depending on memory",body:"Follow-up visits and reminders are scheduled the moment the appointment ends.",visual:"automation",module:"automation"}],Hospitality:[{when:"Day 1",title:"Put the availability where guests can see it",body:"One booking link with your real open dates, instead of answering the same question all day.",visual:"bookings",module:"bookings"},{when:"Day 2",title:"Take the deposit at booking",body:"A date is only held once the deposit lands, so a paying guest never loses to a hold.",visual:"payment",module:"invoices"},{when:"Day 3",title:"Keep the guest, not just the stay",body:"Every guest saved with what they booked and what they paid.",visual:"customer360"},{when:"By Friday",title:"Fill next week",body:"One message to past guests brings back the people who already know you.",visual:"automation",module:"campaigns"}],Automotive:[{when:"Day 1",title:"Save the vehicle with the customer",body:"Who owns what, what was done last time, and when they are due back.",visual:"contact"},{when:"Day 2",title:"Book the bay",body:"Jobs get a slot on a shared diary instead of a vague 'come in the morning'.",visual:"bookings",module:"bookings"},{when:"Day 3",title:"Quote the job before the work starts",body:"Parts and labour on one offer the customer approves, so there is no argument at pickup.",visual:"offer",module:"quotes"},{when:"By Friday",title:"Service reminders send themselves",body:"The next service is scheduled the day this one is finished.",visual:"automation",module:"automation"}],"Logistics & Delivery":[{when:"Day 1",title:"Record every job with its pickup and drop",body:"Waybill details, sender and receiver on one record instead of a chat message.",visual:"pipeline",module:"deals"},{when:"Day 2",title:"Save your regular shippers",body:"The customers who send weekly get their own record, rates and history.",visual:"contact"},{when:"Day 3",title:"Invoice on account, not on trust",body:"Weekly or monthly invoices for regular shippers, with what is still owed visible.",visual:"invoice",module:"invoices"},{when:"By Friday",title:"See who is actually profitable",body:"Jobs, value and outstanding balances by customer, without a spreadsheet.",visual:"reports"}],"Home & Local Services":[{when:"Day 1",title:"Every job request in one list",body:"Calls and WhatsApp requests become jobs with an address, a date and an owner.",visual:"pipeline",module:"deals"},{when:"Day 2",title:"Let customers book a slot",body:"One link with the times you can actually work, so the day plans itself.",visual:"bookings",module:"bookings"},{when:"Day 3",title:"Quote and get paid on the spot",body:"Send the price, turn it into an invoice, record the transfer when it lands.",visual:"invoice",module:"invoices"},{when:"By Friday",title:"Repeat customers come back on time",body:"The next visit is scheduled before you leave the last one.",visual:"automation",module:"automation"}],Education:[{when:"Day 1",title:"Applications stop living in a notebook",body:"One form collects enquiries and applications with everything you need to reply.",visual:"forms",module:"forms"},{when:"Day 2",title:"Track each applicant to a decision",body:"Enquiry, visit, offer, enrolment - visible for every family at a glance.",visual:"pipeline",module:"deals"},{when:"Day 3",title:"Fees and balances in one place",body:"Invoices per term, part payments recorded, outstanding balances visible.",visual:"invoice",module:"invoices"},{when:"By Friday",title:"One message to all parents",body:"Announcements and reminders sent once, not copied into forty chats.",visual:"automation",module:"campaigns"}],Technology:[{when:"Day 1",title:"Every lead in one pipeline",body:"Trials, demos and referrals recorded with an owner and a next step.",visual:"pipeline",module:"deals"},{when:"Day 2",title:"One inbox for accounts",body:"Support and sales conversations on the account record, not in someone's mail.",visual:"inbox",module:"inbox"},{when:"Day 3",title:"Send plans as offers",body:"Your plans priced once, sent as an offer, invoiced on acceptance.",visual:"offer",module:"quotes"}
1,{when:"By Friday",title:"See the funnel honestly",body:"What came in, what converted, what stalled - measured, not guessed.",visual:"reports"}],"Financial Services":[{when:"Day 1",title:"Every client and application recorded",body:"Who applied, for what, and where it has reached.",visual:"contact"},{when:"Day 2",title:"Collect documents with a form",body:"One secure form gathers what you need instead of chasing attachments.",visual:"forms",module:"forms"},{when:"Day 3",title:"Track applications to a decision",body:"Each case sits on a stage with the next action and who owns it.",visual:"pipeline",module:"deals"},{when:"By Friday",title:"Nothing waits on a memory",body:"Renewals and follow ups appear as work to do on the right day.",visual:"attention"}],Agriculture:[{when:"Day 1",title:"Save your buyers",body:"Who buys what, in what quantity, and how often.",visual:"contact"},{when:"Day 2",title:"Record orders against a date",body:"Orders for the next harvest or batch are lined up before the produce is ready.",visual:"pipeline",module:"deals"},{when:"Day 3",title:"Invoice and record payments",body:"Part payments and balances visible per buyer, instead of held in your head.",visual:"invoice",module:"invoices"},{when:"By Friday",title:"One message when stock is ready",body:"All your buyers hear at once, and the ones who reply are already recorded.",visual:"automation",module:"campaigns"}],"Energy & Utilities":[{when:"Day 1",title:"Every site enquiry recorded",body:"Location, load and budget captured once, so no survey visit is wasted.",visual:"contact"},{when:"Day 2",title:"Book the survey",body:"Site visits sit on one diary with the engineer attached.",visual:"bookings",module:"bookings"},{when:"Day 3",title:"Quote the system properly",body:"Panels, inverter, batteries and labour on one offer the customer can accept.",visual:"offer",module:"quotes"},{when:"By Friday",title:"Installations and payments tracked to the end",body:"Deposit, balance and handover visible on the same record.",visual:"payment",module:"invoices"}],"Events & Entertainment":[{when:"Day 1",title:"One date diary",body:"Every booked date in one place, so no Saturday is promised twice.",visual:"bookings",module:"bookings"},{when:"Day 2",title:"Hold a date only on a deposit",body:"A pending hold is clearly pending until the money lands.",visual:"payment",module:"invoices"},{when:"Day 3",title:"Quote the package",body:"Build the offer from your packages and send it while the client is still deciding.",visual:"offer",module:"quotes"},{when:"By Friday",title:"Balances chase themselves",body:"The balance reminder goes out before the event, not after it.",visual:"automation",module:"automation"}],Construction:[{when:"Day 1",title:"Every project enquiry in one place",body:"Client, site and scope recorded the day the call comes in.",visual:"contact"},{when:"Day 2",title:"Track jobs by stage",body:"Quoted, awarded, in progress, handed over - visible without ringing the site.",visual:"pipeline",module:"deals"},{when:"Day 3",title:"Quote from your own rates",body:"Materials and labour priced once, reused on every job.",visual:"offer",module:"quotes"},{when:"By Friday",title:"Stage payments recorded",body:"What was invoiced, what came in, what is still owed on each project.",visual:"invoice",module:"invoices"}],Manufacturing:[{when:"Day 1",title:"Buyers and their orders in one list",body:"Who ordered what, in what quantity, and when it is due.",visual:"contact"},{when:"Day 2",title:"Track each order to delivery",body:"Production and delivery stages, so a due date is never a surprise.",visual:"pipeline",module:"deals"},{when:"Day 3",title:"Quote and invoice from one price list",body:"The same rates every time, whoever sends the quote.",visual:"offer",module:"quotes"},{when:"By Friday",title:"See what is owed",body:"Outstanding balances per buyer, without opening a spreadsheet.",visual:"reports"}],Nonprofit:[{when:"Day 1",title:"Supporters in one place",body:"Donors, volunteers and partners recorded with how they help.",visual:"contact"},{when:"Day 2",title:"Capture pledges as they come",body:"A form collects pledges and sign-ups without a paper sheet.",visual:"forms",module:"forms"},{when:"Day 3",title:"Track pledges to received",body:"What was promised, what arrived, what still needs a thank you.",visual:"pipeline",module:"deals"}
1,{when:"By Friday",title:"One update to everyone",body:"A single message keeps supporters close instead of forty separate ones.",visual:"automation",module:"campaigns"}]},re={tailor:[{when:"Day 1",title:"Measurements move off the wall",body:"Each client's measurements saved on their record, readable by anyone in the shop.",visual:"customer360"},{when:"Day 2",title:"Every outfit gets a delivery date",body:"Orders sit on a stage - cut, sewn, fitting, ready - so nobody has to ask.",visual:"pipeline",module:"deals"},{when:"Day 3",title:"Fittings booked, not guessed",body:"A fitting slot the client can pick, with a reminder before the day.",visual:"bookings",module:"bookings"},{when:"By Friday",title:"Balance collected on collection",body:"Deposit and balance recorded per outfit, so no garment leaves unpaid by accident.",visual:"invoice",module:"invoices"}],hair_vendor:[{when:"Day 1",title:"Save every buyer with what she bought",body:"Length, texture and price on her record, so the reorder takes one message.",visual:"customer360"},{when:"Day 2",title:"Your price list in one place",body:"Bundles and prices set once, so you stop retyping them into DMs.",visual:"offer",module:"catalog"},{when:"Day 3",title:"Orders and payments recorded",body:"Who has paid, who is on part payment, and what is due to ship.",visual:"invoice",module:"invoices"},{when:"By Friday",title:"New stock reaches past buyers first",body:"One broadcast to the people who already bought from you.",visual:"automation",module:"campaigns"}],dispatch_rider:[{when:"Day 1",title:"Every delivery recorded as a job",body:"Pickup, drop, fee and receiver on one record instead of a chat message.",visual:"pipeline",module:"deals"},{when:"Day 2",title:"Regular senders get an account",body:"The businesses that send weekly are saved with their rates and history.",visual:"contact"},{when:"Day 3",title:"Invoice at the end of the week",body:"One invoice per sender, with the jobs listed and the balance visible.",visual:"invoice",module:"invoices"},{when:"By Friday",title:"Know what you actually earned",body:"Jobs done, money in and money still owed - in one view.",visual:"reports"}],car_wash:[{when:"Day 1",title:"Save the cars and their owners",body:"Plate, vehicle and owner saved once - the second visit is instant.",visual:"contact"},{when:"Day 2",title:"Bookings for busy hours",body:"Customers pick a slot, so Saturdays stop being a queue with no order.",visual:"bookings",module:"bookings"},{when:"Day 3",title:"Packages priced the same for everyone",body:"Wash types in one price list, so staff never quote different figures.",visual:"offer",module:"catalog"},{when:"By Friday",title:"Bring the regulars back",body:"A message to customers who have not washed in a month.",visual:"automation",module:"campaigns"}],pharmacy:[{when:"Day 1",title:"Save the customers who come back",body:"Regulars and chronic patients recorded, with the person who serves them.",visual:"contact"},{when:"Day 2",title:"Refill dates stop being missed",body:"The next refill becomes a follow up on the right day, with a reminder.",visual:"attention"},{when:"Day 3",title:"Answer WhatsApp from one place",body:"Enquiries land on the customer record, so anyone at the counter can reply.",visual:"inbox",module:"inbox"},{when:"By Friday",title:"See who stopped coming",body:"Customers who used to refill monthly and went quiet are visible, not invisible.",visual:"reports"}],laundry:[{when:"Day 1",title:"Every bag recorded on collection",body:"Customer, items and pickup date on one job instead of a paper ticket.",visual:"pipeline",module:"deals"},{when:"Day 2",title:"Ready dates customers can rely on",body:"Jobs move through washing, ironing and ready, so the answer is never 'check back'.",visual:"pipeline",module:"deals"},{when:"Day 3",title:"Pickup and delivery slots",body:"Customers choose a slot, and the route for the day is already written.",visual:"bookings",module:"bookings"},{when:"By Friday",title:"Balances cleared, not carried",body:"What was paid and what is owed is visible before the bag goes out.",visual:"invoice",module:"invoices"}],event_centre:[{when:"Day 1",title:"Every booked date in one diary",body:"The whole year visible, so two families are never shown the same Saturday.",visual:"bookings",module:"bookings"},{when:"Day 2",title:"Holds only become bookings on a deposit",body:"A pending date is clearly pending until the money lands.",visual:"payment",module:"invoices"},{when:"Day 3",title:"Quote the hall package",body:"Hall, chairs, cooling and extras on one offer the client can accept.",visual:"offer",module:"quotes"}
1,{when:"By Friday",title:"The balance is invoiced before the event",body:"The reminder goes out on its own, not on the event day.",visual:"automation",module:"automation"}]};function le(s){const t=re[s.taxonomyKey];if(t)return{steps:t,source:"type"};const a=ne[s.category];return a?{steps:a,source:"category"}:{steps:ie,source:"general"}}function de(s,t){const a=new Set(t),i=s.filter(n=>!n.module||a.has(n.module));return i.length>=2?i:s}function he({entry:s,ctaContext:t}){const a=B.useMemo(()=>{const m=le({taxonomyKey:s.taxonomyKey,category:s.category}),w=x(s).map(g=>g.key);return de(m.steps,w)},[s]),[i,n]=B.useState(0);if(!a.length)return null;const h=a[Math.min(i,a.length-1)],o=Y(h.visual),v=R({kind:"business-type",key:s.slug},{business_type:s.taxonomyKey,cta_position:"first_week"});return e.jsxs(r,{rhythm:"tight",children:[e.jsx(l,{eyebrow:"Your first week",title:`What ${s.label.toLowerCase()} actually do in week one`,body:"Each step is a real DuceCRM screen. Tap a step to see where that work happens."}),e.jsxs("div",{className:d("grid lg:grid-cols-2",u.split,u["heading-to-content"]),children:[e.jsx("ol",{className:"min-w-0 space-y-3",children:a.map((m,w)=>{const g=w===Math.min(i,a.length-1);return e.jsx("li",{children:e.jsxs("button",{type:"button","aria-current":g,onClick:()=>n(w),className:d("w-full rounded-lg border p-4 text-left transition-colors",g?"border-primary bg-card shadow-sm":"bg-card/60 hover:border-primary/40"),children:[e.jsxs("span",{className:"flex items-center gap-2",children:[e.jsx("span",{className:d("inline-flex h-6 min-w-6 items-center justify-center rounded-full px-2 text-[11px] font-semibold",g?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground"),children:w+1}),e.jsx("span",{className:b.eyebrow,children:m.when})]}),e.jsx("span",{className:"mt-2 block text-sm font-medium",children:m.title}),e.jsx("span",{className:"mt-1 block text-sm text-muted-foreground",children:m.body})]})},m.title)})}),e.jsx("div",{className:"min-w-0",children:e.jsx(y,{children:o&&e.jsx(H,{surface:o,animate:!1},h.visual)})})]}),e.jsxs("div",{className:"mt-6 flex flex-col gap-3 sm:flex-row sm:items-center",children:[e.jsx($,{size:"lg",asChild:!0,className:"w-full sm:w-auto",children:e.jsxs(c,{to:v,onClick:()=>K({position:"first_week",label:E.getStarted,href:v,origin:{kind:"business-type",key:s.slug},context:{...t,first_week_step:h.title}}),children:[E.getStarted,e.jsx(L,{"aria-hidden":!0,className:"ml-2 h-4 w-4"})]})}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Nothing here needs new staff, new hardware or a card."})]})]})}function Pe(){return k(),e.jsxs(f,{seo:W("/solutions"),children:[e.jsx(N,{eyebrow:"Solutions",title:"One CRM. Different business problems solved.",body:"Most businesses do not need more software. They need one specific thing to stop going wrong. Start with the problem you have.",origin:{kind:"home",key:"solutions"},visual:"dashboard"}),e.jsxs(r,{rhythm:"tight",children:[e.jsx(l,{title:"Start with your problem"}),e.jsx(q,{className:u["heading-to-content"],items:G.map(s=>({href:`/solutions/${s.slug}`,label:s.navLabel,body:s.summary}))})]}),e.jsxs(r,{muted:!0,rhythm:"tight",children:[e.jsx(l,{title:"Or start with your kind of business",body:"Same system, described in the words your business uses."}),e.jsxs("div",{className:"mt-6 flex flex-wrap gap-2",children:[X.slice(0,12).map(s=>e.jsx(c,{to:`/business-types/${s.slug}`,className:"min-h-11 rounded-full border bg-card px-4 py-2.5 text-sm hover:border-primary/40",children:s.label},s.slug)),e.jsx(c,{to:"/business-types",className:"min-h-11 rounded-full border bg-card px-4 py-2.5 text-sm font-medium text-primary hover:border-primary/40",children:"All business types"})]})]}),e.jsx(T,{title:"Fix the thing that keeps going wrong.",origin:{kind:"home",key:"solutions"}})]})}function $e(){const{slug:s=""}=C(),t=Q[s];if(k(t?{goal:ee[s]}:void 0,"solution_explored",{solution:s}),!t)return e.jsx(_,{what:"solution",backTo:"/solutions",backLabel:"All solutions"});const a=I(t);return e.jsxs(f,{seo:a,children:[e.jsx(O,{page:t}),e.jsx(A,{links:a.related})]})}function Le(){return k(),e.jsxs(f,{seo:W("/business-types"),children:[e.jsx(N,{eyebrow:"Business types",t
1itle:"Built around the way your business works.",body:"Your business has its own words, its own rhythm and its own idea of a good week. DuceCRM adapts to it instead of forcing a template on you.",origin:{kind:"home",key:"business-types"},visual:"contact"}),e.jsxs(r,{rhythm:"tight",children:[e.jsx(l,{title:"Most common",body:"Written in the words these businesses use every day."}),e.jsx(q,{className:u["heading-to-content"],items:te.map(s=>{const t=z(s.key),a=t?P(t):void 0;return{href:`/business-types/${t??""}`,label:s.label,body:(a==null?void 0:a.summary)??""}}).filter(s=>s.href!=="/business-types/")})]}),e.jsxs(r,{muted:!0,rhythm:"tight",children:[e.jsx(l,{title:"Every kind of business",body:"If yours is not listed, choose the closest one - you can rename anything DuceCRM calls something else."}),e.jsx("div",{className:"mt-6 space-y-6",children:V.map(s=>e.jsxs("div",{children:[e.jsx(c,{to:`/business-types/${s.slug}`,className:"text-sm font-semibold hover:text-primary",children:s.category}),e.jsx("div",{className:"mt-2 flex flex-wrap gap-2",children:[{label:s.label,taxonomyKey:s.taxonomyKey,slug:s.slug},...s.siblings].map(t=>t.slug?e.jsx(c,{to:`/business-types/${t.slug}`,className:"min-h-11 rounded-full border bg-card px-4 py-2.5 text-sm hover:border-primary/40",children:t.label},t.taxonomyKey):e.jsx("span",{className:"min-h-11 rounded-full border border-dashed px-4 py-2.5 text-sm text-muted-foreground",children:t.label},t.taxonomyKey))})]},s.slug))})]}),e.jsx(T,{title:"Set it up the way your business runs.",origin:{kind:"home",key:"business-types"}})]})}function F({entry:s}){return e.jsxs("p",{className:d("mt-4",b.small),children:["In DuceCRM a customer is your ",s.vocabulary.customer,", an opportunity is a ",s.vocabulary.deal,", and what you sell is a ",s.vocabulary.offering,". You can rename any of it."]})}function Ke(){const{slug:s=""}=C(),t=P(s);if(k(t?{business_type:t.taxonomyKey,recommended_setup:t.taxonomyKey}:void 0,"business_type_explored",{business_type:t==null?void 0:t.taxonomyKey,slug:s}),!t)return e.jsx(_,{what:"business type",backTo:"/business-types",backLabel:"All business types"});const a={kind:"business-type",key:t.slug},i=t.copy,n={business_type_page:t.slug,business_type:t.taxonomyKey,business_type_category:t.category},h=M(t);return e.jsxs(f,{seo:h,children:[t.page?e.jsx(O,{page:t.page,ownsFaq
1:!1,ownsCta:!1}):e.jsxs(e.Fragment,{children:[e.jsx(N,{eyebrow:t.label,title:i.heroTitle??`A CRM that fits ${t.label.toLowerCase()}.`,body:i.heroBody??t.summary,origin:a,visual:"contact",ctaContext:n}),e.jsxs(r,{rhythm:"base",transition:"storytelling",children:[e.jsx(l,{eyebrow:"Fit",title:"Is this for you?",body:`This page is for ${i.audience}.`}),e.jsx("p",{className:d("mt-4 max-w-3xl",b.small),children:i.notFor}),e.jsx(F,{entry:t})]}),e.jsxs(r,{muted:!0,rhythm:"base",transition:"strain",children:[e.jsx(l,{eyebrow:"Your week",title:"Your normal week, as it actually goes"}),e.jsx(p,{as:"ul",className:d("space-y-3",u["heading-to-content"]),children:i.situations.map(o=>e.jsxs(y,{as:"li",className:"flex gap-3 text-sm",children:[e.jsx(D,{"aria-hidden":!0,className:"mt-0.5 h-4 w-4 shrink-0 text-destructive/70"}),e.jsx("span",{children:o})]},o))})]}),e.jsxs(r,{rhythm:"base",transition:"same-thought",children:[e.jsx(l,{eyebrow:"The cost",title:"What that costs you today"}),e.jsx(p,{as:"ul",className:d("space-y-3",u["heading-to-content"]),children:i.problems.map(o=>e.jsxs(y,{as:"li",className:"flex gap-3 text-sm",children:[e.jsx(D,{"aria-hidden":!0,className:"mt-0.5 h-4 w-4 shrink-0 text-destructive/70"}),e.jsx("span",{children:o})]},o))})]})]}),e.jsxs(r,{rhythm:"base",transition:"resolve",children:[e.jsx(l,{eyebrow:"How it works",title:`From first contact to a returning ${t.vocabulary.customer}`,body:"The same journey every week, with nothing depending on who remembers what."}),e.jsx(p,{as:"ol",className:d("space-y-4",u["heading-to-content"]),children:se(t).map(o=>e.jsxs(y,{as:"li",className:"rounded-xl border bg-card p-4",children:[e.jsx("p",{className:b.caption,children:o.stage}),e.jsx("h3",{className:"mt-1 text-sm font-semibold",children:o.title}),e.jsx("p",{className:d("mt-1",b.small),children:o.body})]},o.stage))})]}),e.jsxs(r,{muted:!0,rhythm:"base",transition:"same-thought",children:[e.jsx(l,{eyebrow:"Use cases",title:`What ${t.label.toLowerCase()} owners use it for`,body:"Each one is a bulb you can switch on or leave off."}),e.jsx("div",{className:d("grid gap-3 sm:grid-cols-2 lg:grid-cols-3",u["heading-to-content"]),children:oe(t).map(o=>e.jsxs("div",{className:"rounded-xl border bg-card p-4",children:[e.jsx("h3",{className:"text-sm font-semibold",children:o.title}),e.jsx("p",{className:d("mt-1",b.small),children:o.body})]},o.title))})]}),e.jsx(j,{intent:"intelligence"}),e.jsx(ae,{entry:t,ctaContext:n}),e.jsx(j,{intent:"journey"}),e.jsx(he,{entry:t,ctaContext:n}),e.jsxs(r,{rhythm:"base",transition:"same-thought",children:[e.jsx(l,{eyebrow:"First week",title:"What changes in the first week",body:"Nothing here needs new staff or new hardware."}),e.jsx(p,{as:"ul",className:d("space-y-3",u["heading-to-content"]),children:(t.page?t.page.examples:i.outcomes).map(o=>e.jsxs(y,{as:"li",className:"flex gap-3 text-sm",children:[e.jsx(S,{"aria-hidden":!0,className:"mt-0.5 h-4 w-4 shrink-0 text-primary"}),e.jsx("span",{children:o})]},o))}),t.page&&e.jsx(F,{entry:t})]}),e.jsxs(r,{muted:!0,rhythm:"base",transition:"limits",children:[e.jsx(l,{eyebrow:"Limits",title:"What DuceCRM does not do",body:"Better to know now than after you have set it up."}),e.jsx(p,{as:"ul",className:d("space-y-3",u["heading-to-content"]),children:i.limits.map(o=>e.jsxs(y,{as:"li",className:"flex gap-3 text-sm text-muted-foreground",children:[e.jsx(D,{"aria-hidden":!0,className:"mt-0.5 h-4 w-4 shrink-0 text-muted-foreground"}),e.jsx("span",{children:o})]},o))})]}),e.jsxs(r,{rhythm:"base",transition:"storytelling",children:[e.jsx(l,{eyebrow:"Cost to start",title:"What it takes to start"}),e.jsx(p,{as:"ul",className:d("space-y-3",u["heading-to-content"]),children:i.startCost.map(o=>e.jsxs(y,{as:"li",className:"flex gap-3 text-sm",children:[e.jsx(S,{"aria-hidden":!0,className:"mt-0.5 h-4 w-4 shrink-0 text-primary"}),e.jsx("span",{children:o})]},o))})]}),e.jsx(U,{items:i.faqs,muted:!0,transition:"same-thought",rhythm:"base",eyebrow:"Questions",title:`Questions ${t.label.toLowerCase()} owners ask`}),e.jsxs(r,{rhythm:"base",transition:"intelligence",children:[e.jsx(l,{eyebrow:"Related",title:t.isCategoryAnchor?`Also covered here: ${t.category}`:"Related kinds of business",body:t.isCategoryAnchor?"These businesses run on the same setup, in their own words.":void 0}),e.jsxs("div",{className:"mt-6 flex flex-wrap gap-2",children:[t.parentSlug&&e.jsxs(c,{to:`/business-types/${t.parentSlug}`,className:"min-h-11 rounded-full border bg-card px-4 py-2.5 text-sm font-medium text-primary hover:border-primary/40",children:["All ",t.category.toLowerCase()]}),(t.siblings.length?t.siblings:J.filter(o=>o.slug!==t.slug)).slice(0,16).map(o=>o.slug?e.jsx(c,{to:`/business-types/${o.slug}`,className:"min-h-11 rounded-full border bg-card px-4 py-2.5 text-sm hover:border-primary/40",children:o.label},o.taxonomyKey):e.jsx("span",{className:"min-h-11 rounded-full border border-dashed px-4 py-2.5 text-sm text-muted-foreground",children:o.label},o.taxonomyKey))]})]}),e.jsx(A,{links:h.related}),e.jsx(j,{intent:"resolve"}),e.jsx(T,{title:`Set DuceCRM up the way ${t.label.toLowerCase()} actually works.`,origin:a,ctaContext:n})]})}export{Ke as BusinessTypeDetailPage,Le as BusinessTypesOverview,$e as SolutionDetailPage,Pe as SolutionsOverview};
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.