/* Genesis DMA — Expansion content: subservices, industries, case studies, blog */

/* --- Sub-services (parent capability + slug) --- */
const SUBSERVICES = {
  /* Paid Media */
  'google-ads': {
    parent: 'paid-media', slug: 'google-ads',
    title: 'Google Ads',
    h1: 'Google Ads management for service businesses',
    metaTitle: 'Google Ads Management Agency | Genesis DMA',
    metaDesc: 'Google Ads management built around booked jobs, not clicks. Search, Performance Max, YouTube and Demand Gen for US service businesses.',
    lede: 'Search captures demand the moment it appears. We build and run Google Ads accounts that turn that demand into booked work — not clicks, not form fills, booked work.',
    intro: 'Google Ads is where the buying happens. The user is already typing the words. The question is whether your ad, your landing page and your phone system show up in a way that closes the loop — or whether you pay for the visit and lose the customer somewhere between the click and the confirmation.',
    focus: [
      ['Search campaigns','Exact and phrase match on high-intent queries. No Broad match free-for-alls.'],
      ['Performance Max','Tightly scoped, with value rules, asset groups by vertical and signal feeding from CRM.'],
      ['YouTube & Demand Gen','For markets where demand has to be created, not just captured.'],
      ['Call tracking','Every campaign ties to a recorded, scored call — not a form submission.'],
    ],
    stack: ['Google Ads','Google Tag Manager','GA4','CallRail','Unbounce','Looker Studio'],
  },
  'meta-ads': {
    parent: 'paid-media', slug: 'meta-ads',
    title: 'Meta Ads',
    h1: 'Meta Ads (Facebook & Instagram) management',
    metaTitle: 'Meta Ads Agency — Facebook & Instagram for Service Businesses | Genesis DMA',
    metaDesc: 'Meta Ads management for service businesses. Creative systems, landing pages, conversion APIs and audience work that turns scroll into pipeline.',
    lede: 'Meta creates demand where Google only captures it. We build Meta Ads systems with the creative library, tracking and landing experience required to keep scaling past the usual plateau.',
    intro: 'Meta works when the creative is right and the feedback loop is fast. It fails when accounts are treated like a buy-once-and-wait setup. We run Meta as a weekly discipline: new creative, new angles, new audiences, tight tracking.',
    focus: [
      ['Creative library','A rolling set of hooks, statics, UGC and short video tested against a clear benchmark.'],
      ['Conversions API','Server-side events so iOS 14+, ad blockers and Safari ITP do not blind the algorithm.'],
      ['Audience architecture','Awareness, consideration and retargeting layered cleanly — not stacked on top of each other.'],
      ['Landing experience','Fast, opinionated landers matched to the ad angle, not a generic homepage.'],
    ],
    stack: ['Meta Ads Manager','Meta CAPI','Google Tag Manager','Motion','Unbounce'],
  },
  'tiktok-ads': {
    parent: 'paid-media', slug: 'tiktok-ads',
    title: 'TikTok Ads',
    h1: 'TikTok Ads for service businesses',
    metaTitle: 'TikTok Ads Agency for Service Businesses | Genesis DMA',
    metaDesc: 'TikTok Ads management for service businesses — UGC-first creative, Spark Ads, and tracking that ties views to booked jobs.',
    lede: 'TikTok rewards native creative and punishes pretty. We build TikTok Ads systems around UGC, Spark Ads and creator partnerships — and we track them to booked jobs, not views.',
    intro: 'TikTok is the cheapest attention on the internet for operators who can post like operators. We help you source creators, write briefs that produce native-feeling ads, and scale what works without killing the signal by over-polishing.',
    focus: [
      ['UGC production','Creator sourcing, briefing and ongoing content cycles.'],
      ['Spark Ads','Boosting organic creator content as paid — keeps the native feel, keeps the performance.'],
      ['Pixel + Events API','Server-side event coverage so attribution holds up.'],
    ],
    stack: ['TikTok Ads Manager','TikTok Events API','Motion','Google Tag Manager'],
  },
  'youtube-ads': {
    parent: 'paid-media', slug: 'youtube-ads',
    title: 'YouTube Ads',
    h1: 'YouTube Ads for service businesses',
    metaTitle: 'YouTube Ads Agency | Genesis BA DMA',
    metaDesc: 'YouTube Ads that build demand and close it. Video creative systems, audience targeting and full-funnel tracking.',
    lede: 'YouTube is the most under-priced demand-creation channel in the US. We build YouTube Ads systems that move prospects from unaware to booked — not just viewers to impressions.',
    intro: 'Most agencies treat YouTube as display with audio. We treat it as a video sales environment: scripted hooks, tight proof, one call to action, and a tracking setup that ties a view to a phone call weeks later.',
    focus: [
      ['Video creative','Hook-problem-proof-CTA structure, produced in 15s / 30s / 60s variants.'],
      ['Custom audiences','Custom intent, custom affinity and CRM uploads layered carefully.'],
      ['Cross-device tracking','View-through conversions treated skeptically and compared against direct-response signal.'],
    ],
    stack: ['Google Ads','YouTube Studio','GA4','CallRail'],
  },
  'linkedin-ads': {
    parent: 'paid-media', slug: 'linkedin-ads',
    title: 'LinkedIn Ads',
    h1: 'LinkedIn Ads for B2B service businesses',
    metaTitle: 'LinkedIn Ads Agency for B2B Services | Genesis DMA',
    metaDesc: 'LinkedIn Ads for B2B professional services. Account-based targeting, lead gen forms, and pipeline tracking tied to CRM.',
    lede: 'LinkedIn is expensive, powerful and easy to waste. We run LinkedIn Ads systems for B2B service businesses where the right 2,000 people are worth more than the wrong 200,000.',
    intro: 'LinkedIn pays off when the targeting is honest and the creative earns the click. We focus on job title + company + seniority targeting, thought-leader ads, and lead gen forms that feed CRM without losing the context of who signed up.',
    focus: [
      ['Account-based targeting','Matched audiences from CRM, job title layers, and company size gates.'],
      ['Lead gen forms','Zapier/Make flows that land leads in HubSpot with full context in under 60 seconds.'],
      ['Thought-leader ads','Executive accounts boosted where appropriate — keeps the brand voice, gets the click.'],
    ],
    stack: ['LinkedIn Campaign Manager','HubSpot','Zapier','Make'],
  },

  /* SEO / GEO */
  'local-seo': {
    parent: 'search', slug: 'local-seo',
    title: 'Local SEO',
    h1: 'Local SEO for multi-location service businesses',
    metaTitle: 'Local SEO Agency for Service Businesses | Genesis DMA',
    metaDesc: 'Local SEO for service businesses — Google Business Profile, map pack, citations, review systems and city-page architectures that rank.',
    lede: 'For service businesses, most revenue comes from someone within 25 miles searching on a phone. We build Local SEO systems that own the map pack and the local organic — at the city, neighborhood and ZIP level.',
    intro: 'Local SEO compounds in a way national SEO does not. Reviews, citations and a proper Google Business Profile stack with city pages that actually help a human. We ship the technical side and run the ops (reviews, Q&A, posts) until they run themselves.',
    focus: [
      ['Google Business Profile','Full optimization, category stack, services, photos, review automations.'],
      ['Citations & NAP','Audit, fix and build citations on the 40 sources that matter. Skip the 400 that do not.'],
      ['City / service pages','Architecture that ranks without tripping doorway-page rules.'],
      ['Review engine','Automated request flows tied to job completion — not cold blasts.'],
    ],
    stack: ['Google Business Profile','BrightLocal','Whitespark','Podium','NiceJob'],
  },
  'technical-seo': {
    parent: 'search', slug: 'technical-seo',
    title: 'Technical SEO',
    h1: 'Technical SEO audits and fixes',
    metaTitle: 'Technical SEO Audits & Fixes | Genesis DMA',
    metaDesc: 'Technical SEO audits and fixes — crawl, indexation, Core Web Vitals, schema, internal linking and site architecture rework.',
    lede: 'Technical SEO is the floor your content sits on. A fast, clean, crawlable site does not guarantee rankings — a slow, messy one guarantees you will not.',
    intro: 'We run a full technical audit, prioritize findings by real impact, and ship the fixes ourselves or hand a surgical spec to your dev team. Clear before-and-after metrics on crawl budget, index coverage and Core Web Vitals.',
    focus: [
      ['Crawl + indexation','robots.txt, sitemaps, canonicalization, parameter handling, log-file analysis.'],
      ['Core Web Vitals','Real field data, not just Lighthouse, and a fix plan your dev team can act on.'],
      ['Schema','Product, Service, LocalBusiness, FAQ, Review — installed, validated and monitored.'],
      ['Site architecture','Topic clusters, internal linking, orphan page hunting and hub/spoke rework.'],
    ],
    stack: ['Screaming Frog','Sitebulb','Ahrefs','GSC','BigQuery','Schema.org'],
  },
  'geo': {
    parent: 'search', slug: 'geo',
    title: 'GEO — Generative Engine Optimization',
    h1: 'Generative Engine Optimization (GEO) — rank in ChatGPT, Claude, Perplexity and Google AI Overviews',
    metaTitle: 'GEO Agency — Generative Engine Optimization | Genesis DMA',
    metaDesc: 'Generative Engine Optimization. We help brands get cited by ChatGPT, Claude, Perplexity, Google AI Overviews and other LLM-based answer engines.',
    lede: 'Half of your future customers will ask an LLM instead of a search engine. If your brand is not one of the two or three sources the model cites, you are not in the race.',
    intro: 'GEO shares DNA with SEO but evaluates differently. We build the entity clarity, topical authority and structured content blocks (FAQs, comparisons, definitions, schema) that language models extract confidently — and we monitor which prompts cite you and which do not.',
    focus: [
      ['Entity setup','Schema, Wikipedia/Wikidata where defensible, and disambiguation across sources.'],
      ['Citeable content','FAQ, comparison and definition blocks written for extraction.'],
      ['Prompt monitoring','Weekly tracking of visibility on target prompts across ChatGPT, Claude, Perplexity and Google AI Overviews.'],
      ['Source seeding','Earning mentions on the sources LLMs weight heavily (Wikipedia, Reddit, industry pubs).'],
    ],
    stack: ['Ahrefs','Profound','Peec','Otterly','custom monitoring scripts'],
  },
  'multilingual-seo': {
    parent: 'search', slug: 'multilingual-seo',
    title: 'Multilingual SEO',
    h1: 'Multilingual and bilingual SEO for US service markets',
    metaTitle: 'Multilingual SEO — English & Spanish | Genesis DMA',
    metaDesc: 'Bilingual SEO for US service markets — English and Spanish pages architected for rankings, hreflang, and local intent.',
    lede: 'In Texas, Florida, California and the Southwest, Spanish-language search is a category of its own. We build bilingual SEO systems that rank both versions — without one cannibalizing the other.',
    intro: 'Bilingual SEO is 10% translation and 90% architecture. Hreflang, distinct URL patterns, independent citation strategies and a content plan that reflects how each audience actually searches.',
    focus: [
      ['Hreflang + URL architecture','Clean subfolder or subdomain strategy with validated hreflang pairs.'],
      ['Native keyword research','Not machine translation — real query research in each language.'],
      ['Local intent mapping','Spanish-speaking markets often have different city + service combinations.'],
    ],
    stack: ['Ahrefs','GSC','Screaming Frog','native linguists'],
  },

  /* CRM */
  'hubspot': {
    parent: 'crm', slug: 'hubspot',
    title: 'HubSpot',
    h1: 'HubSpot implementation and optimization',
    metaTitle: 'HubSpot Agency Partner | Genesis DMA',
    metaDesc: 'HubSpot implementation, migration and optimization for service businesses. Marketing Hub, Sales Hub and Service Hub configured around how you actually sell.',
    lede: 'HubSpot is only as good as the system built inside it. We implement and fix HubSpot instances so lifecycle stages, pipelines, automations and reports actually reflect your business.',
    intro: 'We configure HubSpot around a crisp lifecycle model, build pipelines that map to real sales motions, and instrument reporting that lets you tell a paid media lead from a referral lead from a reactivation — without five tabs open.',
    focus: [
      ['Implementation','Portal from scratch or rebuild from inherited chaos.'],
      ['Migration','Data from Salesforce, Pipedrive, GHL or spreadsheets, cleaned and mapped.'],
      ['Automation','Sequences, workflows, SLAs and routing rules that fit your sales motion.'],
      ['Reporting','Revenue attribution dashboards your operators actually open.'],
    ],
    stack: ['HubSpot','Operations Hub','Zapier','Make','dbt'],
  },
  'salesforce': {
    parent: 'crm', slug: 'salesforce',
    title: 'Salesforce',
    h1: 'Salesforce implementation and cleanup',
    metaTitle: 'Salesforce Implementation for Service Businesses | Genesis DMA',
    metaDesc: 'Salesforce implementation, migration and cleanup for mid-market service businesses. Sales Cloud, Service Cloud and Marketing Cloud aligned with real operations.',
    lede: 'Salesforce rewards discipline and punishes improvisation. We build Salesforce instances that match the process on the ground — and rebuild the ones that drifted away from it.',
    intro: 'We configure Salesforce around actual sales motions, install only the automations you will maintain, and remove the custom objects and fields nobody remembers adding. The goal is a CRM leadership trusts and reps actually use.',
    focus: [
      ['Sales Cloud setup','Stages, products, forecasting, opportunity splits that make sense.'],
      ['Data cleanup','Dedupe, enrich, merge and retire legacy fields without breaking reports.'],
      ['Process automation','Flow-based automations instead of legacy Process Builder and Workflow Rules.'],
    ],
    stack: ['Salesforce Sales Cloud','Flow','DataLoader','Gearset'],
  },
  'gohighlevel': {
    parent: 'crm', slug: 'gohighlevel',
    title: 'GoHighLevel',
    h1: 'GoHighLevel build-outs for service businesses',
    metaTitle: 'GoHighLevel Agency & Build-Outs | Genesis DMA',
    metaDesc: 'GoHighLevel implementations for service businesses — snapshots, pipelines, automations, SMS flows and multi-location setups.',
    lede: 'GoHighLevel is the right CRM for a lot of service businesses — if someone knows how to configure it. We build GHL instances that route leads in seconds, follow up without feeling robotic, and scale across locations.',
    intro: 'We build GHL sub-accounts and snapshots around your actual operations. Pipeline stages, SMS flows, call routing, calendar logic and reporting — all tied to jobs booked, not messages sent.',
    focus: [
      ['Snapshot design','Reusable snapshots for franchise groups and multi-location operators.'],
      ['SMS + voice flows','Follow-up cadences with human pickup rules, not infinite loops.'],
      ['Agency + location setup','Clean separation of data and reporting across locations.'],
    ],
    stack: ['GoHighLevel','Twilio','Calendly','Zapier'],
  },

  /* Automation */
  'zapier-make': {
    parent: 'automation', slug: 'zapier-make',
    title: 'Zapier & Make',
    h1: 'Zapier and Make automation for service businesses',
    metaTitle: 'Zapier & Make Automation Agency | Genesis DMA',
    metaDesc: 'Zapier and Make (Integromat) automation consulting — lead routing, billing hooks, data pipelines and operator-facing flows.',
    lede: 'Zapier and Make are the glue between the ten tools your business already runs on. Used right, they save operator hours every week. Used wrong, they break at the worst time.',
    intro: 'We build and document automation systems in Zapier and Make that stay reliable when the business grows — with error handling, logging, alerts and a clear owner for each flow.',
    focus: [
      ['Lead routing','From ads and web forms into CRM with enrichment and SLA alerts.'],
      ['Billing + ops','Stripe, QuickBooks, ServiceTitan and Housecall Pro integrations.'],
      ['Error handling','Retry logic, dead-letter queues and alerts when a flow actually breaks.'],
    ],
    stack: ['Zapier','Make','Airtable','Google Cloud Functions'],
  },
  'ai-agents': {
    parent: 'automation', slug: 'ai-agents',
    title: 'AI Agents',
    h1: 'AI agents for lead qualification, scheduling and operations',
    metaTitle: 'AI Agent Development for Service Businesses | Genesis DMA',
    metaDesc: 'Custom AI agents for service businesses — lead qualification, appointment setting, FAQ handling and internal operator tooling.',
    lede: 'AI agents only work when they are scoped tightly, grounded in your real data and held to the same SLA as a human. We build agents that book jobs, qualify leads and answer questions — without the hallucinations.',
    intro: 'We scope, build and deploy AI agents with a clear boundary, explicit fallback to a human, and a feedback loop so every conversation makes the agent better — not louder.',
    focus: [
      ['Lead qualifiers','SMS and web chat agents that book the job or hand off cleanly.'],
      ['Appointment setting','Calendar-aware agents that double-confirm and never double-book.'],
      ['Internal copilots','Operator-facing tools for dispatch, pricing and upsell prompts.'],
    ],
    stack: ['Claude','GPT-4','Vapi','Retell','Twilio','LangChain'],
  },
  'custom-apis': {
    parent: 'automation', slug: 'custom-apis',
    title: 'Custom APIs & Integrations',
    h1: 'Custom API work and integrations for service businesses',
    metaTitle: 'Custom API Development & Integrations | Genesis DMA',
    metaDesc: 'Custom API work when off-the-shelf automation tools hit their ceiling. Internal services, ETL, and data plumbing for service businesses.',
    lede: 'When Zapier stops being enough, we write the code. Small, sharp services that move data reliably — usually in Node or Python, usually running on Cloudflare or Google Cloud.',
    intro: 'We write and maintain the integrations that sit under the no-code layer: webhooks, queues, retry logic, data normalization and reporting pipelines. Documented, monitored and handed off cleanly.',
    focus: [
      ['Webhook services','Small services that receive, normalize and fan out data reliably.'],
      ['ETL pipelines','Ad spend + CRM + billing into a warehouse you can actually report against.'],
      ['Internal tools','Thin dashboards for ops teams, built fast and kept small.'],
    ],
    stack: ['Node','Python','Cloudflare Workers','Google Cloud','BigQuery','dbt'],
  },

  /* Content */
  'ugc': {
    parent: 'content', slug: 'ugc',
    title: 'UGC Production',
    h1: 'UGC production for paid social',
    metaTitle: 'UGC Production Agency for Service Businesses | Genesis DMA',
    metaDesc: 'User-generated content production for paid social — creator sourcing, briefing, review and delivery on a predictable cadence.',
    lede: 'UGC is what unlocks paid social at scale. We run the full pipeline — creators, briefs, review, delivery — on a cadence your media team can plan against.',
    intro: 'We source creators that match your audience, write briefs that produce native-feeling ads, and deliver a predictable monthly volume of content. Rights, reviews and hooks all handled.',
    focus: [
      ['Creator sourcing','Vetted creator pool segmented by vertical and audience.'],
      ['Brief writing','Hook, proof, angle and CTA specified — creators produce, not guess.'],
      ['Volume + rights','8–20 deliverables per month with whitelisting where it makes sense.'],
    ],
    stack: ['Insense','Billo','Frame.io','Notion'],
  },
  'video-production': {
    parent: 'content', slug: 'video-production',
    title: 'Video Production',
    h1: 'Video production for ads and organic',
    metaTitle: 'Video Production for Paid & Organic | Genesis DMA',
    metaDesc: 'Video production for paid and organic — short-form, long-form, YouTube ads, explainer and brand video for service businesses.',
    lede: 'Video is still the highest-leverage creative format in paid and organic. We produce short-form, long-form and YouTube ad video built for actual testing and scale.',
    intro: 'We plan, shoot and edit video as a system, not a one-off. Every piece is built with variations, hooks and cutdowns so media teams have something to test with.',
    focus: [
      ['Ad video','15s / 30s / 60s cutdowns built for paid testing cycles.'],
      ['YouTube ads','Hook-problem-proof-CTA structure for Demand Gen and in-stream.'],
      ['Brand + explainer','Evergreen assets that live on homepages and sales decks.'],
    ],
    stack: ['Premiere','After Effects','Frame.io','Descript'],
  },
  'landing-pages': {
    parent: 'content', slug: 'landing-pages',
    title: 'Landing Pages',
    h1: 'High-converting landing pages for paid traffic',
    metaTitle: 'Landing Page Design & Build for Paid Traffic | Genesis DMA',
    metaDesc: 'Landing pages engineered for paid traffic — fast, mobile-first, conversion-focused and A/B tested against a real benchmark.',
    lede: 'A great landing page is the difference between a campaign that scales and a campaign that stalls. We design, build and test landers that hold up under paid traffic.',
    intro: 'We write, design and build landing pages on Unbounce or Webflow — tuned for mobile, speed and conversion. Each lander ships with tracking, tests and a clear benchmark.',
    focus: [
      ['Conversion design','Hierarchy, proof, offer clarity and friction removal.'],
      ['Speed + mobile','Sub-second first paint, AMP-grade performance without AMP.'],
      ['A/B testing','Structured tests against a control, with statistical rigor.'],
    ],
    stack: ['Unbounce','Webflow','Figma','VWO'],
  },
  'email-marketing': {
    parent: 'content', slug: 'email-marketing',
    title: 'Email Marketing',
    h1: 'Email and SMS lifecycle marketing',
    metaTitle: 'Email & SMS Lifecycle Marketing | Genesis DMA',
    metaDesc: 'Email and SMS lifecycle marketing for service businesses — welcome flows, nurture, reactivation, and reviews tied to CRM.',
    lede: 'Email and SMS are the cheapest pipeline you will ever have. We build lifecycle programs that reactivate old leads, nurture warm ones and earn reviews without feeling robotic.',
    intro: 'Welcome, nurture, reactivation, win-back, review, referral. Each flow connected to CRM, each one measured against revenue — not opens.',
    focus: [
      ['Welcome + nurture','First 30 days of a new lead, done right.'],
      ['Reactivation','Bring back leads and customers who went quiet.'],
      ['Reviews + referrals','Automated asks tied to completed jobs.'],
    ],
    stack: ['Klaviyo','HubSpot','Customer.io','Attentive','Postscript'],
  },

  /* Analytics */
  'ga4': {
    parent: 'analytics', slug: 'ga4',
    title: 'GA4 Implementation',
    h1: 'GA4 setup, migration and server-side tracking',
    metaTitle: 'GA4 Implementation & Server-Side Tracking | Genesis DMA',
    metaDesc: 'GA4 implementation, UA-to-GA4 migration and server-side tracking with Google Tag Manager — built for accurate revenue reporting.',
    lede: 'GA4 is only useful if the events match the business. We implement and migrate GA4 with the right events, the right parameters and a server-side setup that does not get blocked.',
    intro: 'Custom events mapped to real business actions, server-side tracking via GTM server container, and BigQuery export configured so reporting is not bottlenecked by sampling or retention limits.',
    focus: [
      ['Event architecture','Events named for the business, not for the analyst.'],
      ['Server-side GTM','sGTM container deployed on your own subdomain.'],
      ['BigQuery + Looker','Raw event export and a reporting layer on top.'],
    ],
    stack: ['GA4','Google Tag Manager','sGTM','BigQuery','Looker Studio'],
  },
  'attribution': {
    parent: 'analytics', slug: 'attribution',
    title: 'Attribution',
    h1: 'Marketing attribution for service businesses',
    metaTitle: 'Marketing Attribution — CPL, CAC, Payback | Genesis DMA',
    metaDesc: 'Multi-touch attribution for service businesses — self-reported, last-touch and MMM-lite models that triangulate the real source of pipeline.',
    lede: 'No attribution model is right. A few of them together are useful. We combine self-reported, platform-reported and pipeline data into a picture you can actually plan against.',
    intro: 'We instrument self-reported source questions at lead capture, triangulate with platform data and CRM, and surface payback periods by channel — so you know where the next dollar should go.',
    focus: [
      ['Self-reported attribution','Asked at lead capture, not guessed from pixel data.'],
      ['Triangulated reporting','Platform numbers + CRM + self-report, shown side by side.'],
      ['Payback modeling','CAC by channel against LTV, by cohort.'],
    ],
    stack: ['Triple Whale','Hyros','HubSpot','BigQuery','Looker Studio'],
  },
  'dashboards': {
    parent: 'analytics', slug: 'dashboards',
    title: 'Dashboards',
    h1: 'Executive and operator dashboards',
    metaTitle: 'Executive Dashboards & Reporting | Genesis DMA',
    metaDesc: 'Custom executive and operator dashboards — Looker Studio, Metabase and custom reporting built around real decisions, not pretty charts.',
    lede: 'The best dashboard is the one a leader actually opens on Monday morning. We build reporting that answers specific questions instead of cramming thirty metrics into a grid.',
    intro: 'We design dashboards starting from the decisions being made — weekly spend allocation, lead quality by source, capacity utilization — and build only the charts that move those decisions.',
    focus: [
      ['Executive dashboards','One-page views tuned to the weekly leadership meeting.'],
      ['Operator dashboards','Per-channel or per-location views with SLA alerts.'],
      ['Data modeling','Clean semantic layer so the numbers match across views.'],
    ],
    stack: ['Looker Studio','Metabase','BigQuery','dbt'],
  },
};

/* --- Industry pages (6) --- */
const INDUSTRIES = {
  'medspa': {
    slug: 'medspa',
    title: 'Medspa & Aesthetics',
    h1: 'Marketing systems for medspas and aesthetics practices',
    metaTitle: 'Medspa Marketing Agency | Genesis DMA',
    metaDesc: 'Growth systems for medspas and aesthetics practices — Meta and Google ads, local SEO, CRM and booking automations that fill the calendar.',
    lede: 'Medspas live and die by calendar utilization. We build marketing systems that fill chairs with the right consults — and keep them coming back.',
    problems: [
      ['Feast or famine','Paid traffic spikes for new offers then collapses; membership programs never get marketed.'],
      ['Ghost leads','Leads book a consult and disappear; nobody owns the reactivation flow.'],
      ['Creative fatigue','Same three ads running since opening day. CPL climbs quietly month over month.'],
    ],
    solutions: [
      ['Meta + Google as a system','Meta creates demand for treatments; Google captures in-market search for brand + treatment + city.'],
      ['Local SEO','Google Business Profile, reviews tied to post-treatment emails, location pages per branch.'],
      ['Booking flow','HubSpot or GHL routing, SMS reminders, no-show recovery and reactivation.'],
    ],
    services: ['meta-ads','google-ads','local-seo','hubspot','ugc','email-marketing'],
    results: [['-41%','CPL on membership offers'],['2.8x','ROAS on Botox + filler campaigns'],['+34%','Repeat treatment rate']],
  },
  'dental': {
    slug: 'dental',
    title: 'Dental & Orthodontics',
    h1: 'Marketing systems for dental practices and DSOs',
    metaTitle: 'Dental Marketing Agency — Practices & DSOs | Genesis DMA',
    metaDesc: 'Marketing for dental practices and DSOs — paid acquisition, local SEO at the office level, recall automations and insurance-aware reporting.',
    lede: 'Dental marketing works when it respects three things at once: the practice calendar, the insurance reality and the neighborhood. We build systems that do all three.',
    problems: [
      ['New-patient acquisition cost','Rises every year; most practices do not know their real CAC.'],
      ['Insurance complexity','Different payers mean different cost-to-serve — rarely modeled in marketing.'],
      ['Multi-location sprawl','DSOs end up with inconsistent GBP, review scores and web presence.'],
    ],
    solutions: [
      ['Per-office paid + local','Google Ads structured by location + service, not one blended account.'],
      ['Recall + reactivation','Six-month recall flows on email + SMS, tied to practice management software.'],
      ['DSO-grade reporting','Patient acquisition, retention and revenue by location in one dashboard.'],
    ],
    services: ['google-ads','local-seo','hubspot','email-marketing','dashboards'],
    results: [['-28%','Cost per new patient'],['89%','Recall flow open rate'],['+19%','Same-store patient growth']],
  },
  'home-services': {
    slug: 'home-services',
    title: 'Home Services',
    h1: 'Marketing systems for home services operators',
    metaTitle: 'Home Services Marketing Agency — HVAC, Plumbing, Roofing | Genesis DMA',
    metaDesc: 'Growth for home services operators — HVAC, plumbing, roofing, electrical, cleaning. Paid media, local SEO, CRM and call tracking built for the field.',
    lede: 'Home services is a phone business. We build marketing systems where every dollar traces to a booked job — by call, by technician, by service line.',
    problems: [
      ['Phones, not forms','Most tracking treats calls as a footnote. The business runs on them.'],
      ['Seasonal variance','Demand spikes and tanks; budget allocation rarely follows.'],
      ['Service-line leakage','Lead for duct cleaning becomes an HVAC replacement — and nobody notices.'],
    ],
    solutions: [
      ['Call-first tracking','CallRail or CallTrackingMetrics tied to ServiceTitan or Housecall Pro.'],
      ['Seasonal budget pacing','Media budgets that ramp with demand, not against it.'],
      ['Cross-service reporting','One view of where leads entered vs. what they bought.'],
    ],
    services: ['google-ads','meta-ads','local-seo','gohighlevel','dashboards'],
    results: [['-34%','Cost per booked job'],['3.2x','ROAS on HVAC replacement'],['< 12 min','Avg lead-to-dispatch time']],
  },
  'healthcare': {
    slug: 'healthcare',
    title: 'Medical & Healthcare',
    h1: 'Marketing systems for medical and healthcare practices',
    metaTitle: 'Healthcare Marketing Agency — HIPAA-Aware | Genesis DMA',
    metaDesc: 'Marketing for medical and healthcare practices — HIPAA-aware tracking, paid acquisition, local SEO and patient lifecycle systems.',
    lede: 'Healthcare marketing is engineering under constraints. We build patient acquisition systems that perform — and respect HIPAA, state advertising rules and payer relationships.',
    problems: [
      ['PHI in tracking','Pixels that leak protected health information expose practices to real liability.'],
      ['Payer mix blindness','Marketing drives patient volume without regard to commercial vs. Medicaid economics.'],
      ['Slow credentialing','New providers go unused while they wait for credentialing.'],
    ],
    solutions: [
      ['HIPAA-aware tracking','Server-side events, hashed identifiers, no PHI crossing pixel boundaries.'],
      ['Payer-aware budget','Media weighted toward better-mix service lines and zip codes.'],
      ['Provider-level landers','Credentialed providers each get an optimized destination.'],
    ],
    services: ['google-ads','local-seo','hubspot','ga4','attribution'],
    results: [['100%','HIPAA-compliant event pipeline'],['-22%','Cost per commercial-mix patient'],['+41%','New-provider utilization within 60 days']],
  },
  'b2b-services': {
    slug: 'b2b-services',
    title: 'B2B Professional Services',
    h1: 'Marketing systems for B2B professional service firms',
    metaTitle: 'B2B Professional Services Marketing | Genesis DMA',
    metaDesc: 'Marketing for B2B professional service firms — accounting, legal, consulting, IT services. LinkedIn, content, SEO and CRM integrated.',
    lede: 'B2B services are won on reputation and expertise, delivered through a brutally practical buying process. We build marketing that respects both.',
    problems: [
      ['Long sales cycles','Attribution breaks when buying takes 90+ days across multiple stakeholders.'],
      ['Thought-leadership theater','Content that signals expertise but never drives a conversation.'],
      ['Sales-marketing handoff','Leads route to the wrong partner or get stuck in a generic inbox.'],
    ],
    solutions: [
      ['LinkedIn + content pairing','LinkedIn ads and thought-leader posts paired with publishable depth.'],
      ['Multi-touch attribution','Self-reported + UTM + CRM stitched into a picture decisionmakers trust.'],
      ['Routing + SLAs','Lead-to-partner assignment rules with accountability.'],
    ],
    services: ['linkedin-ads','google-ads','technical-seo','hubspot','dashboards'],
    results: [['3.4x','Pipeline from LinkedIn in 6 months'],['-45%','Cost per SQL'],['< 4 hr','Avg lead-to-partner response']],
  },
  'franchises': {
    slug: 'franchises',
    title: 'Franchises & Multi-Location',
    h1: 'Marketing systems for franchises and multi-location operators',
    metaTitle: 'Franchise Marketing Agency | Genesis DMA',
    metaDesc: 'Growth systems for franchises and multi-location operators — corporate + local split, GBP at scale, snapshots and reporting by location.',
    lede: 'Franchise marketing has two customers: the corporate brand and each individual operator. We build systems that serve both — without forcing one to carry the other.',
    problems: [
      ['Corporate vs. local tension','National budgets serve top-of-funnel; locations starve for booked jobs.'],
      ['Brand inconsistency','Locations drift in tone, offers and GBP category at the local level.'],
      ['Reporting sprawl','Each location builds its own dashboard; none of them agree.'],
    ],
    solutions: [
      ['Tiered media','Corporate pays for demand creation; locations pay for conversion.'],
      ['Brand-safe snapshots','Creative, GBP and landing page templates deployed per location.'],
      ['Rolled-up reporting','One dashboard with drill-down to any location.'],
    ],
    services: ['google-ads','local-seo','gohighlevel','dashboards','custom-apis'],
    results: [['54','Locations live on one system'],['-29%','Blended cost per lead vs. status quo'],['+23%','Same-store revenue YoY']],
  },
};

/* --- Case studies --- */
const CASE_STUDIES = {
  'atlas-hvac': {
    slug: 'atlas-hvac',
    title: 'Atlas HVAC',
    vertical: 'Home services',
    lede: 'A regional HVAC operator scales from one office to eleven — without losing unit economics.',
    metaTitle: 'Atlas HVAC Case Study — 11-Location Scale | Genesis DMA',
    metaDesc: 'How a regional HVAC operator scaled from one office to eleven while holding cost per booked job flat.',
    headline: [['-34%','Cost per booked job'],['11','Locations on a single system'],['4.1x','Return on ad spend (blended)']],
    challenge: 'Atlas HVAC had a single location in Houston with a working ad account and a paper-thin marketing team. Over eighteen months they wanted to open ten more locations across Texas without breaking the economics that made the first one profitable.',
    approach: [
      ['Rebuilt Google Ads by location + service','From a single account to a campaign-per-location architecture, with proper call tracking feeding ServiceTitan.'],
      ['Launched Meta as a demand-creation layer','UGC from technicians and real customers, not stock footage.'],
      ['GoHighLevel rollout','One snapshot deployed per location with call routing, SMS reminders and SLA alerts.'],
      ['Rolled-up reporting','Looker Studio dashboard with drill-down by office and service line.'],
    ],
    outcome: 'Eleven offices live on a single operational and marketing system. Cost per booked job dropped 34% against the pre-engagement baseline. The eleventh office reached breakeven 37% faster than the second.',
    services: ['google-ads','meta-ads','gohighlevel','dashboards'],
  },
  'northshore-medspa': {
    slug: 'northshore-medspa',
    title: 'Northshore Medspa',
    vertical: 'Medspa',
    lede: 'A single-location medspa rebuilds its membership program and triples repeat treatment revenue.',
    metaTitle: 'Northshore Medspa Case Study — Membership Rebuild | Genesis DMA',
    metaDesc: 'How a single-location medspa tripled repeat treatment revenue and cut CPL on membership offers by 41%.',
    headline: [['-41%','CPL on membership offers'],['3.1x','Repeat treatment revenue'],['72%','Membership renewal rate']],
    challenge: 'Northshore had a full consult book but low retention. Memberships were marketed once a year around a promotion and forgotten. Paid ads drove walk-ins for Botox that never converted to recurring revenue.',
    approach: [
      ['Rebuilt the membership offer','Reframed pricing and benefits based on actual LTV math.'],
      ['Launched a Meta + Google split','Meta built demand for treatments; Google captured brand + treatment + city queries.'],
      ['Email and SMS lifecycle','Post-treatment nurture, six-month check-in, and membership upsell at the right moment.'],
      ['GBP + reviews','Automated review asks tied to completed treatments — review volume tripled in 90 days.'],
    ],
    outcome: 'CPL on membership offers dropped 41%. Repeat treatment revenue tripled. Membership renewal rate reached 72% — above the category average by almost twenty points.',
    services: ['meta-ads','google-ads','local-seo','email-marketing'],
  },
  'stride-b2b': {
    slug: 'stride-b2b',
    title: 'Stride Advisors',
    vertical: 'B2B Professional services',
    lede: 'A mid-market consulting firm builds a reliable LinkedIn pipeline without hiring an in-house marketer.',
    metaTitle: 'Stride Advisors Case Study — LinkedIn Pipeline | Genesis DMA',
    metaDesc: 'How a mid-market consulting firm built a reliable LinkedIn pipeline and compressed sales cycles by 27%.',
    headline: [['3.4x','Pipeline from LinkedIn (6 mo)'],['-27%','Sales cycle length'],['12','SQLs/month from zero']],
    challenge: 'Stride generated almost all its pipeline from referrals. Growth had stalled. Previous LinkedIn attempts burned $80k over two quarters with nothing to show for it. They did not want to hire a full marketing team.',
    approach: [
      ['LinkedIn Ads + thought-leader ads','Targeted by title, company size and industry. Boosted executive content instead of generic brand posts.'],
      ['HubSpot rebuild','Lifecycle stages, deal pipeline and lead-to-partner routing with SLAs.'],
      ['Self-reported attribution','Asked every new lead at capture, triangulated against HubSpot source data.'],
    ],
    outcome: 'After six months, LinkedIn became a reliable channel delivering twelve qualified opportunities per month on average. Sales cycle compressed 27% because leads arrived pre-educated through thought-leader content.',
    services: ['linkedin-ads','hubspot','attribution'],
  },
};

/* --- Blog shell --- */
const BLOG_POSTS = {
  'geo-vs-seo-2025': {
    slug: 'geo-vs-seo-2025',
    title: 'GEO vs. SEO in 2025: what actually changed',
    category: 'Guides',
    date: '2025-04-02',
    readingTime: '9 min',
    excerpt: 'Generative engine optimization is not a rebranding of SEO. It is a different evaluation loop with overlapping inputs. Here is what moved and what did not.',
    metaTitle: 'GEO vs. SEO in 2025 — What Actually Changed | Genesis DMA',
    metaDesc: 'A practical breakdown of Generative Engine Optimization vs. SEO: shared inputs, different evaluation loops, and what service businesses should do now.',
    paragraphs: [
      'For most of the last twenty years, optimizing for a search engine meant optimizing for a single thing: a ranked list of blue links. You earned the link, you kept it, you got clicks.',
      'Generative engines do not work like that. They read the web, synthesize an answer, and cite two or three sources. Your content is either in the answer or it is not. The click comes second — sometimes it never comes at all.',
      'That is a different evaluation loop, and it rewards different content shapes. Definitions. Comparisons. FAQs with sharp, extractable answers. Not 3,000-word meandering pieces with the answer buried in paragraph eleven.',
      'The fundamentals that served SEO — entity clarity, topical authority, structured data — still matter. They just matter for a different consumer: a language model, not a crawler.',
      'What changed in practice: the site architecture, the content shape, the internal linking that signals topical depth, and the monitoring tools. What did not: the need to actually be good at what you do.',
    ],
  },
  'service-business-cpl-benchmarks': {
    slug: 'service-business-cpl-benchmarks',
    title: 'Cost-per-lead benchmarks for US service businesses',
    category: 'Benchmarks',
    date: '2025-03-18',
    readingTime: '7 min',
    excerpt: 'Real cost-per-lead ranges across HVAC, roofing, cleaning, medspa, dental and legal — from accounts we run, not scraped numbers.',
    metaTitle: 'Service Business CPL Benchmarks 2025 | Genesis DMA',
    metaDesc: 'Real cost-per-lead ranges across HVAC, roofing, cleaning, medspa, dental and legal — sourced from live ad accounts.',
    paragraphs: [
      'Every service operator has asked some version of the question: "what should my cost per lead be?" The honest answer is "it depends." A more useful answer is "here are the ranges we see in accounts we actually run."',
      'These numbers are blended Meta + Google, US only, from accounts spending at least $5,000 per month. They are pulled from engagements we have run in the last eighteen months.',
      'HVAC residential: $62 – $140 per lead. Roofing: $80 – $180. Residential cleaning: $22 – $45. Medspa (blended treatments): $28 – $72. Dental (new patient): $48 – $120. Legal (personal injury): $180 – $650.',
      'What moves a number to the bottom of its range: a strong landing page, call tracking that feeds attribution back to the account, a competitive offer, and creative that refreshes on at least a monthly cadence.',
      'What pushes a number to the top: generic landing pages, broad match keywords, poor call handling, and creative fatigue that nobody is watching for.',
    ],
  },
  'why-we-do-not-charge-percent-of-spend': {
    slug: 'why-we-do-not-charge-percent-of-spend',
    title: 'Why we do not charge percent of ad spend',
    category: 'Philosophy',
    date: '2025-02-24',
    readingTime: '5 min',
    excerpt: 'Percent-of-spend pricing incentivizes the wrong thing. Here is what we charge instead and why.',
    metaTitle: 'Why We Do Not Charge Percent of Ad Spend | Genesis DMA',
    metaDesc: 'Percent-of-spend pricing creates a misaligned incentive. Here is how we price instead and why our clients prefer it.',
    paragraphs: [
      'A lot of agencies charge a percentage of your monthly ad spend — usually ten to twenty percent. It is the default pricing model, mostly because it is easy to sell and easy to scale from the agency side.',
      'It is also misaligned. If an agency makes more when you spend more, every recommendation comes with a thumb on the scale. More platforms. More campaigns. More budget. Not because the math says so, but because the invoice does.',
      'We charge a flat monthly management fee based on the scope of work. If we recommend you cut spend by 30% because the fourth platform is not pulling its weight, our paycheck does not change. That is the point.',
      'Our clients usually end up spending more over time — not because we push them to, but because the fundamentals are working and the unit economics are clear. When growth happens, it happens because it makes sense.',
    ],
  },
  'how-we-think-about-attribution': {
    slug: 'how-we-think-about-attribution',
    title: 'How we think about attribution (and why perfect is the enemy)',
    category: 'Guides',
    date: '2025-01-30',
    readingTime: '11 min',
    excerpt: 'No attribution model is right. A few used together are useful. Here is the practical stack we run for service businesses.',
    metaTitle: 'How We Think About Attribution | Genesis DMA',
    metaDesc: 'A practical attribution stack for service businesses — self-reported, last-touch, and platform-reported data triangulated into a picture you can act on.',
    paragraphs: [
      'Attribution conversations in marketing tend to be exhausting because they assume a correct answer exists. It does not. Every model is a simplification, and every simplification lies in a particular direction.',
      'What we do instead: run three models side by side and treat the truth as something between them. Self-reported ("how did you hear about us?"), platform-reported (Google, Meta, LinkedIn claim credit), and a pipeline-based model (what touchpoints touched this closed deal).',
      'When they agree, you can move money with confidence. When they disagree, that disagreement itself is information — usually that one channel is a front door and another is a closer.',
      'For service businesses, the single most underused input is self-reported source. Asked at lead capture, it cuts through pixel loss, iOS 14 weirdness and the cookie apocalypse in a way no technical fix can.',
      'We combine that with CRM-stitched pipeline data and a light multi-touch model. The goal is not a perfect picture. It is a picture directionally right enough to reallocate budget every month with confidence.',
    ],
  },
};

window.SUBSERVICES = SUBSERVICES;
window.INDUSTRIES  = INDUSTRIES;
window.CASE_STUDIES = CASE_STUDIES;
window.BLOG_POSTS = BLOG_POSTS;
