// City landing pages (/voip-dallas, /voip-plano ...). One layout, filled from CITY_PAGES.
// Local copy carried over from the previous city pages on onecloudnetworks.com.
const CITY_PAGES = [
  ['dallas', 'Dallas', 'Based in Plano with 16+ years serving Dallas businesses. We understand the Dallas market, from startups in Bishop Arts to enterprises in the Galleria area.'],
  ['plano', 'Plano', "Headquartered right here in Plano. We're your neighbor, not some faraway call center. Same-day support and face-to-face meetings whenever you need them."],
  ['frisco', 'Frisco', "Serving Frisco's growth for 16+ years. We've watched Frisco transform from a small town to a booming tech and sports hub, and we've grown alongside the businesses that made it happen."],
  ['mckinney', 'McKinney', "McKinney's blend of historic charm and modern growth needs a phone system that matches. We serve everyone from boutique shops on the Square to offices at Craig Ranch."],
  ['allen', 'Allen', 'Allen may be smaller than its neighbors, but its businesses punch above their weight. We provide Allen companies the same VoIP large enterprises use, at small business prices.'],
  ['richardson', 'Richardson', "Richardson's Telecom Corridor was built on communications technology. We carry that legacy forward with cloud VoIP that replaces old copper lines with something faster, smarter and cheaper."],
  ['garland', 'Garland', "Garland's business community, from manufacturing to retail to services, needs a phone system as versatile as the city itself. OneCloud delivers flexible VoIP that adapts to any industry."],
  ['denton', 'Denton', "Denton's creative, independent business culture deserves a phone system that matches: flexible, affordable and free of corporate red tape."],
  ['lewisville', 'Lewisville', "Lewisville's central DFW location makes it a crossroads for business. We make sure your phone system is as well connected as your geography."],
  ['carrollton', 'Carrollton', "Carrollton's diverse business community, from Korean restaurants to tech firms to manufacturing, needs a phone provider who understands versatility. That's OneCloud."],
  ['the-colony', 'The Colony', 'The Colony is one of the fastest-emerging business destinations in DFW. We help new businesses here launch with a professional phone system from day one, with no upfront hardware costs.'],
  ['prosper', 'Prosper', 'Prosper is one of the fastest-growing towns in Texas. We provide phone systems that match the premium service your customers expect.'],
  ['celina', 'Celina', "Celina is one of the fastest-growing cities in the country. If you're setting up a business here, you need a phone system that can scale as fast as the city around you."],
  ['murphy', 'Murphy', 'Murphy may be compact, but its businesses serve one of the most affluent areas in Collin County. We provide phone systems that match the professionalism your customers expect.'],
  ['wylie', 'Wylie', "Wylie's growth from small town to thriving suburb means businesses need communications that can keep up. OneCloud scales with you, with no hardware and no hassle."],
  ['sachse', 'Sachse', 'Sachse businesses compete with larger neighboring cities for customers. An AI-powered phone system levels the playing field and makes a small business sound as polished as any corporate office.'],
  ['anna', 'Anna', "Anna is one of the newest growth frontiers in Collin County. We help Anna's businesses start strong with a professional phone system that doesn't need upfront investment."],
  ['melissa', 'Melissa', 'Melissa is growing fast, and new businesses open every month to serve the families moving in. We make sure those businesses have professional communications from the day they open.'],
  ['arlington', 'Arlington', "In Arlington, your phone is often your customers' first point of contact. We make sure that first impression counts."],
  ['fort-worth', 'Fort Worth', 'Based in Plano with 16+ years serving Fort Worth businesses. We understand the Fort Worth market, from energy companies to ranching and agriculture, defense contractors and aviation.'],
  ['irving', 'Irving', 'Based in Plano with 16+ years serving Irving businesses. We understand the Irving market, from startups in Las Colinas to Fortune 500 headquarters.'],
].map(([key, name, local]) => ({ key, slug: 'voip-' + key, name, local }));
const CITY_SLUGS = CITY_PAGES.map(c => c.slug);
// Extra long-form content that only the Frisco page had
const CITY_EXTRA = {
  frisco: {
    title: "What's changing for Frisco business phones in 2026",
    body: [
      'Three shifts are reshaping how Frisco small businesses think about their phone system this year. The first is the move away from desk-only phones. Frisco businesses increasingly run hybrid teams, with partners in offices off Lebanon Road, technicians in the field across Collin and Denton counties, and customer service handled from home. A cloud phone system that follows your team across desk phones, mobile and direct cellular numbers is now the baseline.',
      'The second shift is the AI receptionist. Until recently, "AI answering" meant a clunky phone menu. Modern AI receptionists answer in natural conversation, qualify the caller, capture intake details, book directly into your calendar and hand off to a person only when the situation calls for it.',
      'The third shift is resilience. Power blips, fiber cuts and storm-season outages are part of life in North Texas. Cloud phone systems that reroute to mobile devices, paired with 5G failover internet, keep calls flowing if the office goes offline: to mobile phones, to backup numbers or straight to the AI receptionist.',
      'If your Frisco phone setup is still tied to a physical PBX in a closet, or you are paying for a contract that no longer fits how your team works, this is a good year to upgrade. Backup internet and mobile business lines can be added without replacing your whole system, and the AI receptionist can run alongside your existing phone menu while your team adjusts.',
    ],
    faq: [
      ['Does OneCloud install business phone systems in Frisco, TX?', 'Yes. We design, deploy and support cloud VoIP phone systems for businesses across Frisco, including The Star District, Frisco Square, Stonebriar, Hall Park and the surrounding neighborhoods. Setup, number porting and team training are included with every deployment.'],
      ['Can I keep my existing Frisco business phone number?', 'Yes. We handle the full porting process from your current carrier with no service interruption. Most ports complete in 7 to 14 business days, and we coordinate the cutover so your number is fully active on the new system before the old line is released.'],
      ['Does the AI receptionist work after hours and on weekends?', 'Yes. The AI receptionist answers 24/7, including evenings, weekends and holidays. It books appointments on your calendar, captures intake details, sends the caller a text confirmation and routes urgent calls to on-call staff.'],
      ['Is OneCloud Networks based in the Dallas Fort Worth area?', 'Yes. OneCloud Networks is headquartered in Plano, Texas. Our support team is local, not overseas, and we know the carriers, building wiring and internet options in Frisco neighborhoods.'],
      ['What happens if the internet at my Frisco office goes down?', "Calls automatically reroute to your team's mobile phones, the AI receptionist or a backup number you choose. Many Frisco businesses pair OneCloud VoIP with 5G failover internet, so if the main fiber circuit goes offline the office stays connected on a separate carrier within seconds."],
    ],
  },
};
const cityBySlug = slug => CITY_PAGES.find(c => c.slug === slug);
const cityMeta = c => [c.name + ' VoIP phone systems and AI receptionist | OneCloud Networks', 'Business phone systems and a 24/7 AI receptionist for ' + c.name + ', TX businesses, with local support from Plano, Texas. Call ' + PHONE + '.'];
function CityScreen({ slug, go, onContact }) {
  const c = cityBySlug(slug); if (!c) return <NotFound go={go} />;
  const extra = CITY_EXTRA[c.key];
  const what = [['Cloud', 'Cloud phone system', 'No on-site hardware. Scale from 1 to 100+ users, and take calls from the office, home or the road.', 'phone', 'See phone systems'], ['Bot', 'AI receptionist', 'Never miss a call during or after business hours. AI answering, call routing, appointment booking and messages.', 'home', 'See the AI receptionist'], ['Smartphone', 'OCN Mobile', 'Your business number on the cell phone you already carry. No app required, just a real cellular line.', 'phone', 'See OCN Mobile'], ['Headset', 'Local support', UPTIME + ' uptime and 24/7 support from a real person in Plano, Texas. We set everything up and train your team.', 'support', 'Contact support']];
  return <>
    <section className="hero on-navy" aria-labelledby="hero-title"><Container><div className="reveal" style={{ maxWidth: 760 }}>
      <p className="caption" style={{ fontWeight: 700, letterSpacing: '.08em', textTransform: 'uppercase', color: 'var(--oc-blue-on-navy)', marginBottom: 20 }}>{c.name}, Texas</p>
      <h1 id="hero-title" className="display">Business phone systems built for {c.name}.</h1>
      <p className="lead" style={{ marginTop: 24, maxWidth: 620 }}>{c.local}</p>
      <div className="btn-row" style={{ marginTop: 36 }}><CallButton size="lg" /><DS.Button size="lg" variant="secondary" onDark onClick={onContact}>Book a free demo</DS.Button></div>
      <ul className="checks" style={{ display: 'flex', gap: 22, marginTop: 28, flexWrap: 'wrap' }}>{['No setup fees', 'No long-term contracts', 'Cancel anytime'].map(t => <Check key={t}>{t}</Check>)}</ul>
    </div></Container></section>
    <Section labelledBy="city-what"><Head id="city-what" title={'Everything a ' + c.name + ' business needs on one system'} lead="Desk phones, cell phones and an AI receptionist from one provider, set up and supported from Plano." />
      <div className="grid cols-4">{what.map(([ic, t, b, k, l]) => <div key={t} className="card reveal"><Tile icon={ic} /><h3 style={{ margin: '16px 0 8px' }}>{t}</h3><p className="small">{b}</p><a href={pathFor(k)} onClick={e => { e.preventDefault(); go(k); }} style={{ display: 'inline-block', marginTop: 14, fontWeight: 700, fontSize: 15, color: 'var(--oc-blue)' }}>{l}</a></div>)}</div>
    </Section>
    <Section tone="subtle" labelledBy="city-ind"><Head id="city-ind" title={'Set up for ' + c.name + ' industries'} lead="The AI receptionist is trained for the way your industry answers the phone." />
      <div className="chips reveal">{INDUSTRIES.map(i => <a className="chip" key={i.key} href={pathFor('industries')} onClick={e => { e.preventDefault(); go('industries'); }} style={{ textDecoration: 'none' }}>{i.name}</a>)}</div>
    </Section>
    {extra && <Section labelledBy="city-extra"><Container><div className="prose reveal"><h2 id="city-extra">{extra.title}</h2>{extra.body.map((p, n) => <p key={n}>{p}</p>)}<h2>{c.name} business VoIP, common questions</h2>{extra.faq.map(([q, a]) => <React.Fragment key={q}><h3>{q}</h3><p>{a}</p></React.Fragment>)}</div></Container></Section>}
    <Section tone={extra ? 'subtle' : undefined} labelledBy="city-near"><Head id="city-near" title="Also serving the Dallas Fort Worth area" />
      <div className="chips reveal">{CITY_PAGES.filter(x => x.key !== c.key).map(x => <a className="chip" key={x.key} href={pathFor('city', { slug: x.slug })} onClick={e => { e.preventDefault(); go('city', { slug: x.slug }); }} style={{ textDecoration: 'none' }}>{x.name}</a>)}</div>
    </Section>
  </>;
}
Object.assign(window, { CITY_PAGES, CITY_SLUGS, cityBySlug, cityMeta, CityScreen });
