For Audrey · Designer · Handoff Playbook

Bright Side PlumbingHomepage Redesign + Mobile-First Figma Playbook

Everything you need to design the BSP homepage: strategy, competitor intel, 10x moves, 14-section architecture, brand tokens, Figma component specs, asset manifest, and per-section design rules. Mobile-first. Phase 1 parity, Phase 2 differentiation. Inherits design language from the shipped Sewer Camera Inspection page template.

📅 April 17, 2026 · Updated April 21, 2026 · Robert Dove · Dove Web Consulting · For Audrey Laube · Target: callbrightside.com homepage · Sewer Camera template shipped: bricks.callbrightside.com/sewer-camera-inspection/

✅ STATUS · APR 21, 2026
Audrey finished the Homepage Figma — ready for Bricks AI build
Handoff complete. The Figma file below is the source of truth for every section 01-13. Bricks AI prompt pack will render from this URL. Do not re-open any section of this playbook without first reading the Figma.
📐 Open Homepage Figma →
⚠️ HEADER + FOOTER + LOGO + MENU = ALREADY BUILT (DO NOT DESIGN)
The global site chrome (logo, primary nav, phone CTA, footer, copyright) is already shipped as a Bricks global component and renders on every page in the build — Homepage, Locations, Services, Blog. Audrey's Figma contains sections 01-13 only. Bricks AI will NOT generate a header or footer. Section numbering starts at 01_section_hero and ends at 13_section_final_cta. No header. No footer. No menu. No logo placement. Those are done.
🤖 FOR BRICKS AI / ORCHESTRATOR / PROMPT PACK
figma_file_key: majxEfSTSyRskfASc9v5P1
figma_url: https://www.figma.com/design/majxEfSTSyRskfASc9v5P1/bright-side-plumbing-homepage
target_path: / (callbrightside.com root)
phase: Phase 1 parity — 13 sections (01-13, no chrome)
designer: Audrey Laube (handoff complete 2026-04-21)
render_endpoint: POST /api/figma/render — file_key=majxEfSTSyRskfASc9v5P1
🎯

The North Star

One line that drives every design decision

Design a homepage that makes a panicked homeowner at 11 PM, standing in six inches of sewage, feel they just found the only plumber in Kansas City who can actually save them. Every section, button, photo, word, and pixel serves that moment.

The current homepage is a brochure. We are building a revenue front door — the central node of a 7-layer ecosystem (strategy → IA → page build → schema → tracking → distribution → optimization loop). The sewer-camera-inspection page already proves the design language works. This playbook applies it to the highest-traffic, highest-conversion page on the site.

💰

Why This Matters

$3M
Current Revenue
$6M
Target Revenue
80%
Booking Rate
4.9⭐
384+ Reviews
The constraint is VOLUME, not closing. BSP books 80% of qualified calls. Every visitor who bounces from a slow page, can't find the phone number, or doesn't see a reason to trust in 5 seconds is a $5K–$15K sewer job lost to Roto-Rooter. Fixing the homepage is not cosmetic. It is revenue infrastructure.

Current Pain Inventory (from audit)

ProblemImpactSeverity
🐌 Hero loaded via CSS background + JS injectionLargest Contentful Paint > 4s🔴 Critical
📦 8+ render-blocking Oxygen CSS filesFirst paint delayed 2–4s🔴 Critical
📱 No sticky mobile CTA60%+ mobile, every scroll = lost call🔴 Critical
📋 Single-step form86% lower conversion vs multi-step🔴 Critical
🏷️ "4th gen" vs "5th gen" inconsistentUndermines trust🟡 High
⭐ 384 reviews buriedBiggest moat, hidden below fold🟡 High
🔧 Sewer not leading#1 revenue positioned #4🟡 High
💳 No financing, membership, or service-area chipsBehind every KC competitor🟡 High
👤

Who We Are Designing For (4 Personas)

Derived scientifically from 301+ reviews across Google, Yelp, Angi, BBB, Chamber, and Facebook. The homepage must serve all four — but the hero + above-fold must target Emergency Eric first (50–60% of revenue).

PersonaShareState of MindDesign Implication
🚨 Emergency Eric/Erica50–60% revenue · 25–30% leadsPanic, same-day, on mobile, low patienceSticky call bar · phone above fold · fast load · "same-day" chip
🏗️ Renovation Rachel/Ryan25–30% revenueResearches 3–14 days · wants trust + transparencyLong-form sections · reviews · pricing ranges · family story · FAQ
🏢 Business Owner Bob/Barbara8–12% revenueZero disruption · reliabilityCommercial badge · "licensed & insured" pinned · SLA language
🔁 Maintenance Mike/Maria45–55% leads · highest LTVRoutine, flat-rate, expects loyalty perksMembership / Plumbinati pitch · maintenance plan card · email capture
🥊

KC Competitor Landscape & Gap Matrix

5 real competitors analyzed · April 17, 2026

CompetitorPositioningMoatWeakness we exploit
Anthony PHCDominant since 1951, full home services70+ yr brand + membership engineGeneric corporate voice, no family faces
Benjamin Franklin KCNational franchise, coupon-heavy ($59/$77/$150)Price transparencyFranchise feel, cookie-cutter
Roto-Rooter KC24/7 emergency giantScale + chat + financingFaceless, national, no local story
Kevin GinningsBare bones localNo structure, no trust layer — weak opponent
Inception Plumbing"100% truly local" anti-nationalVideo + local voiceNo brand design, no membership, no reviews

Trust-Signal Gap Matrix — Phase 1 closes every 🔴

SignalAnthonyBenFrankRotoGinningsInceptionBSP nowPhase
BBB / licensed / insured⚠️
5-generation family⚠️MOAT
24/7 · same-day
Book online
Current specials / coupons⚠️P1 bolster
Financing inline🔴P1 add
Membership / maintenance🔴P1 add (Plumbinati)
Chat widget🔴P1 add (Daniel AI)
Awards / Best-of🔴P1 add
Service-area chips🔴P1 add
Real reviews (live API)✅ static✅ static✅ static✅ staticLIVEMOAT
Video content🔴P2 10x
Transparent pricing⚠️🔴P2 10x
🚀

10x Moves No Competitor Has

Phase 2 ammunition — things Audrey should leave design hooks for, even if not built yet

#10x PlayWhy it beats everyoneBSP Asset Available
1📹 Real HD sewer camera footage galleryInspection viewable BEFORE bookingDaily footage produced
2🗺️ Real-time crew ETA map (DoorDash-for-plumbers)Requires tech stack nobody hasServiceTitan + GPS feasible
3👨‍👨‍👦‍👦 5-gen family story w/ Kalen + lineageAnthony brands 1951 — no family facesKalen Barker (4th-gen master); son = 5th gen
4💰 Published price book visibilityEvery competitor hides pricingXactimate backbone
5🤖 Daniel AI 24/7 concierge (phone + chat)Competitors have basic chat widgetsDaniel Vapi LIVE at (913) 963-9817
6📡 Live Google Reviews filtered by service keywordAll use static testimonial carouselsservice_page_reviews_apply.py wired
7📍 Neighborhood-specific pages from chip clickCompetitors have generic city pagesGeo hub buildable on template
8🎥 Inspection-video learning libraryNobody teaches at this depthDaily footage → YouTube pipeline
9💳 Inline financing rate quote (Wisetack-style)All say "financing available" then formAPI integrable
10🎨 Cohesive brand design (waves, doodles, Audrey system)Competitors use templates (Sprout/Thrive)Audrey Figma system exists
11📜 Downloadable license certificatesNobody shows compliance as assetBSP has them
12🌟 Plumbinati membership / referral communityNo competitor has brand fandomExists as badge already
Design rule: Even if a 10x feature is Phase 2, leave a Figma placeholder component in the exact spot it will live, sized correctly, with a dashed border and label "P2 · {feature}". That way Phase 1 build doesn't trap us in a layout that can't accept Phase 2 later.
📐

Audrey Mobile-First Figma Guide

The Core Rule

60%+ of BSP traffic is mobile. Every section is designed at 375px FIRST, then scaled up to 1440px desktop. If it does not work on a phone held one-handed in a basement at 11 PM, it does not ship.

Design order: 📱 Mobile 375 → 📲 Tablet 768 → 💻 Desktop 1440. Every component has all three states defined in Figma variants.

Breakpoints

NameRangeFigma frameNotes
📱 Mobile S320–477 px375 × 812Design primary. Wave off, single-col.
📲 Mobile L478–767 px414 × 896Wave back on, otherwise identical to Mobile S
📐 Tablet768–991 px768 × 10242-col grids where content allows, hamburger still active
💻 Desktop992+ px1440 × 8875Nav inline, 3–4 col grids, hero full-width

Type Scale — Inter font (already deployed)

H1📱 32 / 💻 48w700 · lh 1.1Sewer Inspection in Kansas City
H2📱 26 / 💻 36w700 · lh 1.15What a Sewer Camera Reveals
H3📱 20 / 💻 24w700 · lh 1.25Sewer Camera Inspection
H4📱 16 / 💻 20w700 · lh 1.3Frequently Asked Questions
Subtitle📱 18 / 💻 28w500 · lh 1.25See Inside Your Pipes Before You Decide
Body📱 16 / 💻 18w400 · lh 1.55Same-day camera inspection across the KC metro area.
Small📱 13 / 💻 14w400 · lh 1.5Licensed · Insured · BBB A+
Button📱 16 / 💻 18w700 · lh 1.0CALL NOW

Spacing Scale — 8px base

Every padding, gap, and margin in the design system is a multiple of 8. The sewer-camera page uses only these values.

TokenValueUse
--s-14 pxTight text rhythm (link-list items)
--s-28 pxIcon-text gap, small chip padding
--s-312 pxCard inner gap, button vertical padding
--s-416 pxSection horizontal padding on mobile, card gap
--s-524 pxCard padding, form field gap
--s-632 pxSection vertical rhythm mobile
--s-740 pxSection padding desktop
--s-856 pxHero wrapper gap desktop (sewer page 708:216 spec)
--s-980 pxMajor section break desktop
--s-10120 pxPre-footer spacing desktop

Component Anatomy — the 8 Figma symbols Audrey defines once and reuses

ComponentVariantsMobile / Desktop specs
Primary CTA buttondefault · hover · pressed · disabledMobile: 100% width, 48 h, 14/16 pad, fs 16. Desktop: auto width, 56 h, 14/22 pad, fs 18. bg #30C5FF, color #1D1760, radius 8
Secondary CTA buttondefault · hover · pressedSame dims. bg transparent, border 2px #30C5FF, color #30C5FF. Hover: bg #30C5FF color #1D1760
Phone CTA (with 📞)default · hoverbg #FFEA00, color #1D1760. Used for emergency hero CTA only.
Service cardwith-icon · with-photo · with-badgeMobile: full width, 16 pad, icon 40 on left, H3 right, body below, chevron link. Desktop: 1/3 width, 24 pad, icon 64 top-center, H3 + body stacked, underline-doodle behind H2
Review cardgoogle · yelp · angibg #F8FAFC, 24 pad, 422 h fixed desktop / auto mobile, 5-star row 100×24 mobile / 120×30 desktop, clamp 4 lines mobile / 5 lines desktop, author 14/16 w700
Trust chipicon · text-only24 h, 4/10 pad, fs 13, radius 16, bg rgba(48,197,255,0.12), border 1px #30C5FF
FAQ accordion rowcollapsed · expandedH4 clickable row 48 h min, caret icon 20 right, 16 vert pad, border-bottom 1px rgba(29,23,96,0.08), answer fs 14 lh 1.5 mobile / fs 16 lh 1.6 desktop
Wave dividertop · bottom · fullInline SVG, preserveAspectRatio=none, height 60 mobile / 120 desktop. Drop on <478 px for hero-to-trust transition. Reuse sewer-page wave asset.

Accessibility + Touch

  • Touch targets ≥ 48 × 48 px with ≥ 8 px spacing
  • Body ≥ 16 px on mobile, no exceptions
  • Contrast AA minimum: text on #1D1760 must be #FFF or #30C5FF (7:1 ratio); text on #F8FAFC must be #1D1760 (14:1)
  • Every button has text — no icon-only without aria-label
  • Focus ring visible: 2 px outline #FFEA00 with 2 px offset on every interactive element
  • Forms have visible labels (not placeholder-only); required fields marked with *
  • Every image has alt text (photo of Kalen → "Kalen Barker, 4th-generation master plumber")
  • Heading order enforced: one H1, sequential H2s, no skipping to H4
🎨

Brand Tokens (Colors, Shadows, Radii)

Color Palette — BSP Navy / Bright Blue / Yellow

--navy
#1D1760
--navy-deep
#100B3E
--blue
#30C5FF
--blue-soft
#BEE6F5
--yellow
#FFEA00
--ivory
#F8FAFC
--white
#FFFFFF
--success
#22C55E
--danger
#EF4444

Usage rules

  • Navy #1D1760 — primary text, H1/H2, navy backgrounds (hero / final CTA / footer)
  • Blue #30C5FF — primary CTA bg, link color, subtitle on navy, trust-chip borders
  • Blue-soft #BEE6F5 — process-steps section background, wave color, secondary reveal cards
  • Yellow #FFEA00 — emergency accent ONLY (phone CTA, "Same-Day" chip, focus ring). Never use yellow for body text.
  • Ivory #F8FAFC — card bg on navy sections, overlay bg for mobile nav, review card bg

Shadows + Radii

TokenValueUse
--radius-sm4 pxChips, badges
--radius-md8 pxButtons, cards
--radius-lg12 pxLarge cards, review cards
--radius-full999 pxTrust chips (pill)
--shadow-card0 2px 8px rgba(0,0,0,0.04)Review cards, service cards resting
--shadow-hover0 8px 24px rgba(29,23,96,0.12)Card hover lift
--shadow-cta0 4px 4px rgba(0,0,0,0.15)Primary CTA resting shadow (matches sewer page)

Motion

  • Hover lift: translateY(-2px) over 150 ms ease-out on service cards, review cards, CTA buttons
  • FAQ expand: max-height 0 → auto over 220 ms ease-in-out
  • Mobile nav overlay: fade-in 150 ms, slide-down 0 → 1 opacity, no layout shift
  • Scroll reveal: sections fade in 300 ms when 15% visible (Phase 2 polish)
  • Reduced motion: respect prefers-reduced-motion — disable transform, keep opacity only
🏗️

The 14-Section Architecture — scroll order

Mobile scroll flow. Each section has ONE job. Visitor flows top → bottom like a sales conversation that handles every persona.

┌─────────────────────────────────────────┐ │ 🔝 01 · HERO (above fold — 5 sec to win)│ P1: H1 KC plumber + "5th-gen" subtitle │ 📸 Hero image (plumber on call) │ P1: 🟦 Call · 🟦 Book Online · 🟢 Chat │ 🏆 "Kansas City's 5th-Gen Plumbing" │ P1: trust chips ⭐4.9 · BBB · Licensed │ 🟦 Primary CTA 🟡 Phone CTA │ 🏆 MOAT: 5-gen story └─────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────┐ │ 02 · 🛡️ TRUST BAR │ ⭐4.9 (Google 384+) · BBB A+ · Licensed │ 6-chip row (desktop) / 4-col (mobile) │ · 5 Gens · 24/7 · Free Est └─────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────┐ │ 03 · 🔥 CURRENT SPECIALS (NEW P1) │ BenFranklin moat — we match │ $25 Off Any Service · $99 Drain │ Coupon cards w/ code + CTA │ · Free Camera Inspection w/ Repair │ └─────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────┐ │ 04 · 🔧 SEWER-LEAD SERVICES (H2) │ Sewer FIRST (revenue #1 $3K–$15K) │ 6-card grid · 1-col mobile │ 🔧 Sewer Repair 🚿 Drain Cleaning │ · 2-col desktop │ 🔥 Water Heaters 💧 Leak Fix │ underline-doodle behind H2 │ 🕳️ Sewer Camera 🧷 Sump Pumps └─────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────┐ │ 05 · 💰 FINANCING + PLUMBINATI (NEW P1) │ Competitor baseline — we close gap │ 💳 "0% APR available" badge │ 🎖️ Plumbinati membership card │ [Apply for financing] · [Learn more] │ P2: inline Wisetack rate quote └─────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────┐ │ 06 · 👨‍👨‍👦‍👦 WHY BRIGHT SIDE (H2 — MOAT) │ Kalen family photo + 5-gen story │ "Kalen is 4th-gen master plumber" │ 🏆 No competitor has this │ Team photo (real people, real truck) │ P2: 60-sec mini-doc embed └─────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────┐ │ 07 · 🚦 HOW IT WORKS (H2) │ 3-step row · blue wave bg │ 1️⃣ Call/Book 2️⃣ We arrive + inspect │ P2: live crew ETA map (10x #2) │ 3️⃣ Fix + free camera footage │ └─────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────┐ │ 08 · 📹 JOBS WE DID THIS WEEK (P2 10x) │ 🚀 No competitor has this │ Before/after gallery · inspection │ Placeholder in Figma, sized │ video thumbnails │ Pulls from HCP/ST photos API └─────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────┐ │ 09 · 📍 SERVICE AREAS (H2 — NEW P1) │ Chip row · neighborhoods clickable │ Overland Park · Olathe · Lenexa │ P2: hyper-local pages from chips │ Shawnee · Leawood · KC metro... │ └─────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────┐ │ 10 · 💬 LIVE REVIEWS (H2 — MOAT) │ 🏆 Live Google API, KC-filtered │ 2-col review grid desktop │ `service_page_reviews_apply.py` │ Stacked 1-col mobile │ Daily refresh pipeline └─────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────┐ │ 11 · 🏅 GUARANTEES (H2) │ 3-tile row │ 💯 Satisfaction 🔨 Workmanship │ P2: downloadable certificates │ 💲 Upfront Pricing │ └─────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────┐ │ 12 · ❓ FAQ (H2) │ 6–8 accordion Q&A │ KW-optimized questions │ FAQ schema for rich snippets └─────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────┐ │ 13 · 📞 FINAL CTA (big) │ "Call KC's 5th-gen family" │ Multi-step form (Phase 1) │ 🟦 Call · 🟦 Book · 🟢 Chat │ 🌊 wave-to-footer │ P2: mobile sticky bottom bar └─────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────┐ │ 14 · 🦶 FOOTER (global — shipped) │ Vertical logo · Services · Pages │ │ BBB · Contact · Social · Terms └─────────────────────────────────────────┘ + 🪟 Floating (ALL pages): 💬 Daniel AI Chat widget (bottom-right) ← P1 addition (10x #5) 📞 Mobile sticky call bar (bottom) ← P1 addition
🧩

Bricks AI Hybrid Path — 20/80 Build Map

Live as of Apr 20, 2026. Bricks AI Studio license is purchased + activated on bricks.callbrightside.com. Audrey designs the 20% that carries the brand (hero + MOAT sections). Bricks AI generates the 80% that repeats (grids, rows, accordions, chip bars). Claude/Nexus orchestrates briefs + validates output against the Creative Library.

→ Open the full 3-tool workflow diagram + 5 wiring steps

🚫 OFF-LIMITS for Audrey: Header + Footer

Do NOT design a header or footer in Figma. Ours is already shipped as a global Bricks component (§14 in the architecture below = DONE). The same header + footer render on every page in the build — Homepage, Location pages, Service pages, Blog — without any Audrey or AI input. Skip them entirely in your Figma file; numbering starts at 01_section_hero and ends at 13_section_final_cta.

Per-section Figma vs Bricks AI split (13 sections — no header, no footer)

§SectionPathWhy
01HERO (above fold)FIGMABrand-critical moment. 5-gen headline, hero imagery, 3-CTA layout. Audrey designs in Figma; exports PNG/SVG into the Bricks-AI-generated page.
02Trust BarBRICKS AI6-chip repeating row. Template pattern.
03Current SpecialsBRICKS AICoupon card grid. Pattern output.
04Sewer-Lead ServicesBRICKS AI6-card grid with icon + label + link. Classic Bricks AI territory.
05Financing + PlumbinatiHYBRIDFigma for Plumbinati badge (custom artwork). Bricks AI for financing card.
06Why Bright Side (MOAT)FIGMAFamily photo, 5-gen story, Kalen credentials. Brand heart — does not get AI-generated.
07How It WorksBRICKS AI3-step row, blue wave background.
08Jobs We Did This Week (10x)HYBRIDFigma sets the gallery composition. Bricks AI outputs the card template that pulls from HCP/ST photos API.
09Service AreasBRICKS AIChip row with city labels.
10Live Reviews (MOAT)BRICKS AIReview card grid, live Google API loop. The dynamic data loop is the moat, not the design.
11GuaranteesBRICKS AI3-tile row, icon + label + description.
12FAQBRICKS AI6-8 item accordion with schema markup.
13Final CTAFIGMAHeroic close. "Call KC’s 5th-gen family."
14FooterDONEGlobal Bricks component. Already shipped. Not Audrey’s scope.

Figma frame naming (REQUIRED)

Pattern: NN_type_descriptor. Sequential numbers that match the playbook § column above. Lowercase + underscores only.

01_section_hero               ← Audrey designs (FIGMA)
02_row_trust_bar              ← Bricks AI generates
03_section_specials           ← Bricks AI
04_section_services_grid      ← Bricks AI
05_section_financing          ← HYBRID
06_section_why_bsp            ← Audrey designs (FIGMA)
07_section_how_it_works       ← Bricks AI
08_section_recent_jobs        ← HYBRID
09_section_service_areas      ← Bricks AI
10_section_reviews            ← Bricks AI
11_section_guarantees         ← Bricks AI
12_section_faq                ← Bricks AI
13_section_final_cta          ← Audrey designs (FIGMA)

# DO NOT CREATE header or footer frames
# These are global Bricks components and already live

Two prompt pack modes

🧩 Per-Section Prompt

One section at a time. Good for iterating or when Audrey finishes one Figma frame before the next.

  1. Audrey names the frame (e.g. 04_section_services_grid)
  2. Asks Claude: “prompt for homepage section 04”
  3. Claude pulls this playbook’s Section-by-Section Figma Specs + brand tokens + Stephanie format + her Figma frame
  4. Returns a Bricks AI prompt tuned for that one section
  5. Audrey pastes in Bricks AI Studio, reviews, approves, publishes

📦 Whole-Page Prompt Pack

Full homepage bundle. Good for end-to-end builds when all 13 Figma frames are named + ready.

  1. Audrey completes + names ALL 13 frames in Figma
  2. Asks Claude: “whole homepage prompt pack”
  3. Claude produces a single document containing 13 prompts — Figma sections (01, 06, 13) flagged as “drop your Figma export, do not regenerate”, hybrid sections (05, 08) flagged with the Figma-asset-to-insert, rest are pure Bricks AI prompts
  4. Audrey runs each prompt in Bricks AI sequentially (one session), approves each as she goes
  5. Page lands on staging in one pass

What every prompt (section or whole-page) enforces

  • No header or footer generated. Bricks AI is told explicitly: “Do not produce nav, logo bar, or footer elements.”
  • Brand tokens: #1D1760 navy, #30C5FF blue, #FFEA00 yellow, Inter font only
  • Stephanie format: Problem → Impact → Solution → Data → Need embedded where copy requires it
  • Schema markup: LocalBusiness + relevant type (FAQPage for §12, Review for §10, etc.)
  • Mobile-first: 3 numbers max per viewport, 16px body minimum, 44px tap targets
  • No em dashes in client-facing copy (CLAUDE.md rule)
🎯 Execution rule: never patch a Bricks AI section that drifted from the Figma spec — regenerate it from the updated prompt. (Same rule as the Sewer Camera page which hit 5 rebuilds before v6 matched 1:1.)
📋

Section-by-Section Figma Specs

Per-section design brief. Audrey reads this and designs each section knowing: purpose, copy direction, mobile layout, desktop layout, components used, KPI, and phase.

§ 01 🔝 Hero — Above the Fold Phase 1
PurposeWin in 5 seconds. Persona = Emergency Eric. Answer "who/what/where/trust/call" without scrolling.
KPIMobile hero CTA click-through rate ≥ 18% · bounce < 40%
H1 (copy)"Kansas City's 5th-Generation Plumbing Family — Sewer, Drain & Water Heater Experts"
Subtitle"Same-day service across Overland Park, Olathe, Lenexa & the KC metro — since [year]."
Mobile layoutHero photo top 200h · padding 12/16 · H1 32px · subtitle 18px · trust chips row (wrap) · stacked CTAs 100% w · phone 🟡 first, book 🟦 second
Desktop layoutFull-bleed photo bg 600h · left column 600w text block · H1 48 · subtitle 28 · CTA row side-by-side · trust chips under CTA
ComponentsHero Image · H1 + Subtitle · Trust Chip (×4) · Phone CTA · Book CTA
Assets needed📸 Hero photo — Kalen / crew in BSP branded truck, action pose, KC background. Required: 2560×1440 (desktop) + 768×1024 (mobile crop). Must shoot or source.
Copy angleLead with geography ("Kansas City"). Lead with family ("5th-generation"). Lead with speed ("Same-day"). Lead with services ("Sewer, Drain, Water Heater"). All four in first two sentences.
Inherits fromSewer-camera page hero pattern — herosub1 subtitle element, underline-doodle scheduling for H1, SEO paragraph under subtitle
§ 02 🛡️ Trust Bar Phase 1
PurposeDestroy doubt in 2 seconds with visible proof. Rachel persona needs this most.
Copy (chips)⭐ 4.9 Google (384+) · 🏅 BBB A+ · 👨‍👨‍👦‍👦 5 Generations · 🚨 Same-Day · 🔒 Licensed & Insured · 💲 Free Estimates
Mobile4-chip column (stack), center-aligned, 16px gap, 14px chip font, icons inline. Scrolls into view right after hero CTA.
Desktop6-chip horizontal row, space-between, on navy band, 56h, contained 1200w, chip bg rgba(255,255,255,0.08)
ComponentsTrust Chip (icon · text-only)
MotionNone — must read instantly
§ 03 🔥 Current Specials Phase 1 · NEW
PurposeMatch Benjamin Franklin's coupon moat. Give Maintenance Mike a reason to act today.
Copy (3 cards)$25 Off Any Service · $99 Drain Cleaning · Free Sewer Camera with Any Repair
Mobile3 cards stacked, coupon-ticket shape, BSP blue border, 16px padding, offer code visible, [Claim Offer] CTA
Desktop3 cards horizontal, equal width, same ticket shape, 2px yellow dashed border for emphasis
ComponentsCoupon Card (new — Audrey designs)
P2 hookRotating weekly specials from Titan coupons module — leave placeholder data attribute data-coupon-id="..."
§ 04 🔧 Sewer-Lead Services Phase 1
PurposePosition BSP as a sewer specialist, not a generalist. Sewer = #1 revenue ($3K–$15K) and must lead.
H2"Plumbing Services We Specialize In"
6 cards (order)1. Sewer Repair & Replacement · 2. Sewer Camera Inspection · 3. Drain Cleaning · 4. Water Heaters · 5. Leak Repair · 6. Sump Pumps
Card anatomyIcon 40 (mobile) / 64 (desktop) · H3 service name · 2-line description · [Learn More →] link to service page
Mobile1-col stack, 16 gap, full-width cards, 16 pad, icon-left horizontal layout
Desktop2-col grid, 24 gap, icon-top vertical layout, hover lift, underline-doodle behind H2
ComponentsService Card (with-icon variant)
Inherits fromSewer-camera page service-card pattern (reveal card structure), underline doodle SVGs (f97bb8, 6365c4, 37fbb3, 221286)
§ 05 💰 Financing + Plumbinati Membership Phase 1 · NEW
PurposeClose financing gap vs all 4 major competitors. Convert Maintenance Mike into Plumbinati (highest LTV).
CopyLeft: "Affordable plumbing starts at $0 down. Apply in 60 seconds." Right: "Join Plumbinati — the KC family plumbing membership. Priority service. Discounts. Peace of mind."
MobileStack: Financing card · Plumbinati card. Each full-width, 24 pad, 16 gap between.
Desktop2-col side-by-side, 32 gap, equal height, each card 600 max-w
ComponentsValue-Prop Card (new — large, with CTA)
CTAs🟦 [Apply for Financing] → /financing · 🟡 [Join Plumbinati] → /membership
P2 hookInline Wisetack rate quote widget — leave a 340×200 placeholder in Financing card
§ 06 👨‍👨‍👦‍👦 Why Bright Side — Family Story Phase 1 · MOAT
PurposeMake it personal. Anthony says "since 1951" but has no faces. We show Kalen. Persona = Renovation Rachel (long research, trust matters).
H2"A Family Trade, Not a Franchise"
Copy direction3-paragraph story: (1) Kalen is 4th-gen master plumber, his son is the 5th. (2) Family trained in Kansas City by generations of KC plumbers. (3) "When you call us, you're hiring a family that's been fixing KC pipes for 100+ years" — this is WHY we're different.
MobileKalen photo full-width top (500h), H2 below on ivory bg, body 3 paragraphs 16px, [Meet the Team →] CTA
Desktop2-col (photo left 50%, text right 50%), 32 gap, 80 vertical pad, family-photo frame with BSP blue border
Assets needed📸 Professional photo of Kalen in BSP uniform at HQ · 📸 team group photo · 📸 historical photo if available (grandfather/great-grandfather with tools)
P2 hook60-second mini-doc video embed — leave 640×360 Figma placeholder with play-button overlay
§ 07 🚦 How It Works — 3 Steps Phase 1
PurposeReduce friction. Homeowner anxiety peaks before calling. "It's only 3 steps" makes it feel safe.
Steps1️⃣ Call or book online · 2️⃣ We arrive same-day & inspect (free camera with repair) · 3️⃣ We fix it right — licensed, warrantied, cleaned up
Mobile3 steps stacked vertical, connector line between (dashed), numbered circles 48×48 BSP blue, text right-aligned to number
Desktop3 steps horizontal, numbered circles 72 with wave bg (#BEE6F5), connector arrow SVG between, 80 pad top/bottom
ComponentsStep Tile (new — number + H3 + body)
Inherits fromSewer-camera page process-steps pattern (5a5ec7 block with wave bg)
P2 hookStep 2 replaces with live crew-ETA map widget (10x move #2) — placeholder 340×240 mobile / full-width 480h desktop
§ 08 📹 Jobs We Did This Week — Gallery Phase 2 · 10x
PurposeProof no competitor shows. Before/after sewer footage + inspection clips. Convert Rachel + Eric with raw evidence.
Phase 1 placeholderReserve this slot in Figma with a dashed-border card labeled "P2 · Live Job Gallery — 340×240 per item, 6-item carousel mobile / 3-item row desktop"
Phase 2 buildPulls from HCP photos API or Titan jobs feed. 4–6 jobs, daily refresh. Each card = before image, after image, 15-sec video, service type, neighborhood.
§ 09 📍 Service Areas Phase 1 · NEW
PurposeLocal SEO signal. Competitor baseline. Give Google + user geographic clarity.
H2"Serving Every Kansas City Neighborhood"
ChipsOverland Park · Olathe · Lenexa · Shawnee · Leawood · Prairie Village · Mission · Kansas City MO · Lee's Summit · Blue Springs · Independence · Gladstone · Liberty · Raytown
MobileChip grid, flex-wrap, 8 gap, 4/12 chip pad, fs 14, bg rgba(48,197,255,0.12), border 1px #30C5FF
DesktopSame chips, wider grid, optional KC outline map SVG as bg (Phase 2)
ComponentsChip (new — geo variant, clickable)
P2 hookEach chip links to /service-areas/{slug} neighborhood page with local reviews + local crew photos
§ 10 💬 Live Reviews — MOAT Phase 1 · MOAT
PurposeSocial proof. Live Google Reviews API filtered by KC + plumbing keywords. Every competitor uses static — ours is live.
H2"What Kansas City Homeowners Say"
Mobile2 review cards stacked, each 100% width, ivory bg, shadow-card, 5-star 100×24 row, 4-line clamp, author 14w700
Desktop2-col grid, 24 gap, 422h fixed, 5-star 120×30, 5-line clamp
ComponentsReview Card (existing — reuse from sewer-camera page)
Data sourceservice_page_reviews_apply.py filtered with keywords: plumber, plumbing, sewer, drain, water heater, Kansas City
P2 hookReviews carousel w/ 5+ reviews. Swipe gesture on mobile.
§ 11 🏅 Guarantees Phase 1
PurposeRemove last risk objection. Rachel + Bob both need this.
3 tiles💯 100% Satisfaction · 🔨 Workmanship Warranty · 💲 Upfront Flat-Rate Pricing
Mobile3 tiles stacked, icon 48 top, H3 center, body 2 lines, 100% width, 16 gap, 16 pad
Desktop3 tiles horizontal, equal, 24 gap, 32 pad, icon 64
ComponentsGuarantee Tile (new — icon + H3 + body)
§ 12 ❓ FAQ Phase 1
PurposeObjection crusher. FAQPage schema = rich snippets = free search-result real estate.
Questions (8)1. How much does sewer repair cost? · 2. Do you offer financing? · 3. Are you available on weekends & emergencies? · 4. How fast can you come out? · 5. Do you service my neighborhood? · 6. What's the warranty on your work? · 7. How long does a sewer line replacement take? · 8. Do you offer free estimates?
MobileStack, 48h min tap, caret 20 right, 16 vert pad, fs 16 question, fs 14 answer
DesktopMax 800 w centered, fs 20 question, fs 16 answer
ComponentsFAQ Accordion Row (existing from sewer-camera — 601ec0 pattern)
SchemaFAQPage JSON-LD auto-generated — Robert wires this in build
§ 13 📞 Final CTA — The Close Phase 1
PurposeClose. Every persona meets here. Multi-step form converts 86% better than single-step.
Headline"Ready to fix it right the first time?"
Sub"Call Kansas City's 5th-generation plumbing family."
Multi-step formStep 1: What service? [Sewer ▾] [Drain ▾] [Water Heater ▾] [Other ▾] · Step 2: When? [Emergency now] [Today] [This week] [Flexible] · Step 3: Name · Phone · Address · ZIP
MobileFull-width CTA button row (📞 Call · 📅 Book · 💬 Chat) · multi-step form below, 1 field per step visible, progress dots
DesktopCentered card 640w, wave-bg navy, CTA trio top, multi-step form below · [Continue →] button
ComponentsMulti-Step Form (new · Audrey designs all 3 step states) · CTA Button trio
WaveTransition wave into footer (navy → navy darker). Reuse sewer-camera wave pattern.
§ 14 🦶 Footer (GLOBAL — already shipped) Phase 1 · SHIPPED Apr 17
Status✅ Shipped Apr 17 2026 — already live on sewer-camera page. Will inherit here automatically.
StructureRow 1: Vertical logo (180px) · Services list · Pages list · BBB badge (90px) — Row 2: Contact + Office Hours side-by-side · Social icons 32px — Row 3: ©2026 + Terms
Do not redesignUse as-is. Audrey can reference for type scale + spacing inheritance.
§ +1 📞 Mobile Sticky Call Bar (floating) Phase 1 · NEW
PurposeEvery scroll position has a call CTA visible. Emergency Eric lands here most.
LayoutMobile only (≤ 991 px). Fixed bottom. 2-button row: 📞 CALL NOW (60%) · 📅 BOOK (40%). Full-width. Above footer. Always visible.
Stylebg #1D1760, 64h, 8 gap, 12 pad, 0 -2px 12px rgba(0,0,0,0.2) shadow. 📞 button bg #FFEA00 color #1D1760. 📅 button bg transparent border 2px #30C5FF color #30C5FF.
§ +2 💬 Daniel AI Chat Widget (floating) Phase 1 · NEW · 10x #5
Purpose24/7 AI concierge — no competitor has true AI. Roto-Rooter has a basic chat widget; ours talks like a plumber.
LayoutDesktop + Tablet bottom-right. Mobile hidden (use sticky call bar instead). 64×64 circular bubble. BSP blue bg. 💧 drop icon (white). Pulses gently every 8s.
Open state380×560 panel. Navy header w/ 👋 "Hi, I'm Daniel — Bright Side's 24/7 plumbing assistant. What's going on?" · ivory message area · input + send button.
IntegrationConnected to Vapi Daniel assistant (e2920d04) — same backend as phone line (913) 963-9817
🔗

Design Inheritance from Sewer-Camera Page

The sewer-camera-inspection page is LIVE at bricks.callbrightside.com/sewer-camera-inspection/. Audrey should load it in Figma dev-mode via plugin or screenshot-trace to inherit proven tokens. This is the source of truth for the design system.

What to inherit directly (DO NOT redesign)

Token / PatternSourceWhy
Hero structure (image + H1 + subtitle + paragraph + CTA trio)sewer page § 01Already tested + tuned for 375 / 1440
Trust bar 4-line column (mobile) / row (desktop)sewer page § 02Pattern works across pages
Underline-doodle SVGs (4 variants)#brxe-f97bb8, 6365c4, 37fbb3, 221286Hand-drawn feel behind every H2
Reveal-card layout (icon-left mobile, icon-top desktop)sewer page § 03 card patternService grid uses same anatomy
Process-steps wave-bg block (#BEE6F5)sewer page § 04 · #brxe-5a5ec7How-It-Works uses identical
Review card (F8FAFC bg, 422h desktop, 5-star 120×30)sewer page § 06 · #brxe-172d71 / #brxe-5202dfAlready pulling live Google reviews
FAQ accordion (601ec0 pattern)sewer page § 08Same JSON-LD schema
Final-CTA wave-to-footersewer page § 09Visual transition language
Footer (vertical logo + 4-col row + socials + legal)Shipped Apr 17Global — no work needed
Type scale H1 32/48 · H2 26/36 · H3 20/24 · Body 16/18bricks-child functions.phpAlready wired per breakpoint
8-px spacing basesewer page Figma padding passSystem enforces rhythm
📦

Asset Manifest — what Audrey needs to source / shoot

Photography (priority shoot list)

#ShotFormatUse
1Kalen in uniform at HQ (hero shot)2560×1440 + 768×1024 crop§ 01 Hero bg · § 06 family story
2Team group with branded truck1920×1080§ 06 team photo
3Technician on sewer camera inspection1600×1200§ 04 services card · § 08 gallery
4Plumber helping KC homeowner (candid)1600×1200§ 01 alt hero · § 07 how-it-works
5Historical family photo (grandfather with tools)any§ 06 heritage visual
6Branded truck on KC street (wide)2560×1440§ 09 service areas bg
7Before/after sewer repair pairs (×4)1200×1200 each§ 08 Phase 2 gallery

Icons / SVG

  • 🔧 Sewer repair icon (reuse from sewer-camera page)
  • 🚿 Drain cleaning icon
  • 🔥 Water heater icon
  • 💧 Leak repair icon
  • 🕳️ Camera inspection icon
  • 🧷 Sump pump icon
  • 💯 Satisfaction badge · 🔨 Workmanship shield · 💲 Upfront pricing tag
  • Wave dividers (top · middle · bottom) — reuse sewer-page wave SVGs
  • Underline doodles (4 variants) — reuse existing
  • Social icons (Facebook · Instagram · X · LinkedIn · YouTube · Pinterest) — shipped in footer

Logos

  • ✅ Horizontal BSP logo (light bg) — asset ID 149 (header)
  • ✅ Vertical BSP logo (dark bg) — asset ID 150 (footer, shipped Apr 17)
  • ⚠️ Favicon — 32×32 and 192×192 (droplet-sun icon)
  • ⚠️ Plumbinati badge (membership identifier)
  • ⚠️ "5th Generation" seal/stamp (original graphic)
📅

Phase 1 vs Phase 2 — The Split

✅ Phase 1 — "Sniff Test"

Ships first. Matches competitor baseline + keeps our moats visible. 14-section build with all Phase 1 features. Passes Kalen's credibility check + Stephanie's revenue framework review.

🚀 Phase 2 — "10x Layer"

Post-launch. Adds differentiators no competitor has. Video gallery, crew ETA map, neighborhood pages, inline financing quote, price book visibility, keyword weaponization pass.

Phase 1 Checklist (what Audrey designs to ship)

  • 🟢 14-section structure with all Phase-1 components
  • 🟢 3 breakpoint variants (375 · 768 · 1440) in every Figma frame
  • 🟢 All tokens referenced (colors, type, spacing)
  • 🟢 Phase-2 placeholder components dashed-bordered in place (10x hooks)
  • 🟢 Mobile sticky call bar + Daniel AI chat bubble designed
  • 🟢 Multi-step form 3 states (mobile + desktop)
  • 🟢 All photography shot-list flagged for Robert to commission
  • 🟢 Accessibility audit: contrast · touch targets · focus rings · alt text · heading order
  • 🟢 Handoff in Figma dev mode with layer names matching Bricks element IDs where possible

Phase 2 Hook Points (leave Figma placeholders)

  • 🟡 § 05 · Inline Wisetack rate quote widget (340×200)
  • 🟡 § 06 · 60-sec mini-doc video embed (640×360)
  • 🟡 § 07 · Live crew-ETA map widget (full-width 480h desktop / 340×240 mobile)
  • 🟡 § 08 · Jobs-this-week gallery (entire section placeholder)
  • 🟡 § 09 · Neighborhood-page links on chip click
  • 🟡 § 10 · Reviews carousel with 5+ reviews swipe
  • 🟡 § 11 · Downloadable license certificates below tiles
  • 🟡 All copy · Keyword weaponization pass from BSP_Keyword_Full_Arsenal.html

QA Checklist (pre-handoff to Robert)

Design-side QA Audrey runs before handoff

  1. ✅ All 14 sections designed at 375, 768, 1440
  2. ✅ Every H1/H2/H3/Body uses a type-scale token (no stray font sizes)
  3. ✅ Every padding/margin/gap uses an 8-px scale token
  4. ✅ Every color is a brand token (no rogue hex codes)
  5. ✅ Every button ≥ 48 × 48 px (touch target)
  6. ✅ Contrast AA for all text (verify in Figma plugin)
  7. ✅ Focus rings present on every interactive element
  8. ✅ Every image has alt text in the Figma layer description
  9. ✅ Mobile sticky call bar + Daniel chat bubble present
  10. ✅ Multi-step form all 3 step states designed
  11. ✅ Phase 2 placeholders labeled + dashed-bordered
  12. ✅ All photography gaps flagged on a shot-list card
  13. ✅ Inheritance from sewer-camera page verified (spot-check service card, review card, FAQ row match)
  14. ✅ Figma layer naming convention: § {section}. {element} · {breakpoint}

Build-side QA Robert runs before ship

  1. ✅ LCP < 2.5s on 4G mobile throttle
  2. ✅ CLS < 0.1
  3. ✅ FID < 100ms
  4. ✅ Mobile sticky call bar tappable, tel: link fires
  5. ✅ Multi-step form submits to ServiceTitan with GCLID
  6. ✅ FAQPage + LocalBusiness + Service + Review + AggregateRating JSON-LD
  7. ✅ Live Google Reviews API populates § 10
  8. ✅ All images have loading="lazy" below the fold
  9. ✅ Hero uses <img> with srcset, NOT CSS background
  10. ✅ Cloudflare purge + LiteSpeed purge fired after deploy
  11. ✅ Screenshot tests at 375 and 1440 match Figma within 98% pixel match
  12. ✅ Heading hierarchy linter passes (one H1, sequential H2s)
📬

Deliverables & Handoff

What Audrey hands to Robert

  1. 📐 Figma file — all 14 sections × 3 breakpoints + floating elements + all component variants
  2. 📦 Asset package — all icons, doodles, wave SVGs exported at 1x + 2x
  3. 📸 Photography shot list — priority ordered, with crops pre-defined
  4. 📋 Copy doc — every headline, subtitle, paragraph, CTA label, FAQ question & answer finalized
  5. 🎨 Design-tokens JSON — optional, exportable from Figma Tokens plugin for direct wiring to Bricks
  6. 📝 Phase 2 hooks list — screen-cap each placeholder with its API/data spec

Where this playbook lives

LocationURL / Path
📘 Live playbook (this doc)morpheus.callbrightside.com/documents/BSP_Homepage_Redesign_Playbook.html
📂 Local source folderC:/Users/dovew/Documents/Clients/BrightSidePlumbing/BSP_Homepage_Redesign/
🎨 Figma (live reference)Sewer Camera Inspection Landing Page — node 606:9 (mobile) · 708:216 (desktop)
🧪 Live template to inheritbricks.callbrightside.com/sewer-camera-inspection/
📚 Master History logBSP_Master_Session_History.html
🤖

Ready-to-Paste Bricks AI Prompt Pack

13 prompts, one per section (§01 through §13). Each is tuned for BSP voice, Stephanie format, brand tokens, and mobile-first accessibility.

📋 Copy prompt copies the exact text to paste into Bricks AI Studio. 🔄 Regen with latest Figma pulls your current Figma frame state and returns a refreshed prompt (for Option B flow).

Pink sections (§01, §06, §13) are FIGMA-MODE — you export from Figma and import to Bricks manually. Yellow sections are pure Bricks AI. Purple sections (§05, §08) are HYBRID — Bricks AI generates the structure, you drop your Figma asset into a named slot.

§ 01 Hero — Above the Fold FIGMA-MODE · Audrey exports + imports
Figma frame: 01_section_hero
FIGMA-MODE. Do NOT run this in Bricks AI Studio.

Audrey export steps:
1) In Figma, finalize frame "01_section_hero" at 2560x1440 (desktop) + 768x1024 (mobile).
2) Export as PNG @2x OR as SVG (prefer SVG if vector-safe).
3) Name files: homepage-hero-desktop.png (or .svg) + homepage-hero-mobile.png
4) In Bricks builder, add a Section element > Image element, import the file.
5) Set Section padding 0. Image width 100 percent, height auto, object-fit cover.
6) Apply responsive variant: mobile image shows <768px, desktop shows >=768px.
7) Layer H1 and CTAs over the image using Bricks Block element with position absolute.

Copy to layer over hero image (exact strings):
- H1: "Kansas City's 5th-Generation Plumbing Family. Sewer, Drain, and Water Heater Experts."
- Subtitle: "Same-day service across Overland Park, Olathe, Lenexa, and the KC metro. Since 1902."
- Primary CTA (yellow button): "Call (913) 963-1029"
- Secondary CTA (blue outline button): "Book Online"
- Tertiary CTA (text link): "Chat with Daniel"
- Trust chips row: "4.9 Google (384+ reviews)", "BBB A+", "5 Generations", "Licensed"

This section stays hand-built in Figma and hand-imported. Do not regenerate with Bricks AI.
§ 02 Trust Bar BRICKS AI · Paste and run
Figma frame: 02_row_trust_bar
You are generating a Bricks Builder section for callbrightside.com, a 5th-generation Kansas City family plumbing company. Output native Bricks elements (JSON element tree).

DO NOT GENERATE: header, nav, logo bar, footer, page wrapper. Those are existing global Bricks components and will already be on the page.

BRAND TOKENS (required):
- Colors: Navy #1D1760, Blue #30C5FF, Yellow #FFEA00. Accents: Sky #93DEFB, Purple #443A96. No red, no orange unless explicitly specified.
- Font: Inter only (300/400/500/600/700/800). No serif, no display.
- Copy style: No em dashes (use commas/periods). No emojis inside body copy (OK in section H2 decoration). Plain-English, 6th grade reading level.
- Stephanie format where copy allows: Problem then Impact then Solution then Data then Need.

ACCESSIBILITY:
- Min 16px body, 44px tap targets, visible focus rings (#30C5FF 2px), semantic HTML (h2/h3/article), aria-hidden on decorative icons.
- Color contrast WCAG AA.

RESPONSIVE:
- Mobile-first (320-768), tablet (769-1023), desktop (1024+).
- No horizontal scroll at any viewport.

SECTION: Trust Bar (row, navy background, full-width)

PURPOSE: Destroy doubt in 2 seconds after the hero. Six proof chips in a horizontal row.

HEIGHT: 56px desktop, wraps to 2-row stack on mobile.
BACKGROUND: #1D1760 (navy), full-bleed, containing 1200px max-width centered row.

6 CHIPS (exact order, exact text):
1) star icon + "4.9 Google (384+ reviews)"
2) shield icon + "BBB A+"
3) family icon + "5 Generations"
4) clock icon + "Same-Day Service"
5) lock icon + "Licensed and Insured"
6) dollar icon + "Free Estimates"

CHIP STYLING:
- Background rgba(255,255,255,0.08)
- 12px padding vertical, 16px horizontal
- Border-radius 24px (pill)
- Icon 18px, #FFEA00 yellow
- Text 14px, #FFFFFF, Inter 500
- Gap between chips: 16px desktop, 8px mobile

LAYOUT:
- Mobile (<768): 2-row grid, 3 chips per row, center-aligned, 8px gap
- Desktop (>=768): 1-row, space-between, 6 chips horizontal

NO motion, no hover effects (this must read instantly).

OUTPUT: Section > Div (row container) > 6x Div (chip) elements with nested Icon + Text.
§ 03 Current Specials BRICKS AI · Paste and run
Figma frame: 03_section_specials
You are generating a Bricks Builder section for callbrightside.com, a 5th-generation Kansas City family plumbing company. Output native Bricks elements (JSON element tree).

DO NOT GENERATE: header, nav, logo bar, footer, page wrapper. Those are existing global Bricks components and will already be on the page.

BRAND TOKENS (required):
- Colors: Navy #1D1760, Blue #30C5FF, Yellow #FFEA00. Accents: Sky #93DEFB, Purple #443A96. No red, no orange unless explicitly specified.
- Font: Inter only (300/400/500/600/700/800). No serif, no display.
- Copy style: No em dashes (use commas/periods). No emojis inside body copy (OK in section H2 decoration). Plain-English, 6th grade reading level.
- Stephanie format where copy allows: Problem then Impact then Solution then Data then Need.

ACCESSIBILITY:
- Min 16px body, 44px tap targets, visible focus rings (#30C5FF 2px), semantic HTML (h2/h3/article), aria-hidden on decorative icons.
- Color contrast WCAG AA.

RESPONSIVE:
- Mobile-first (320-768), tablet (769-1023), desktop (1024+).
- No horizontal scroll at any viewport.

SECTION: Current Specials (3 coupon cards)

PURPOSE: Match Benjamin Franklin Plumbing coupon offer. Give maintenance-oriented visitors a reason to act now.

H2: "Current Specials"
H2 STYLING: Inter 700, 32px mobile / 40px desktop, color #1D1760, center-aligned, 24px bottom margin.

3 COUPON CARDS (exact copy, exact order):

CARD 1:
- Amount: "$25 OFF"
- Label: "Any Service"
- Subtext: "New customers. One per household. Mention code: KC25"
- Code: "KC25"
- CTA: "Claim Offer"

CARD 2:
- Amount: "$99"
- Label: "Drain Cleaning"
- Subtext: "Single drain. Unclog or it is free. Code: DRAIN99"
- Code: "DRAIN99"
- CTA: "Book Drain"

CARD 3:
- Amount: "FREE"
- Label: "Sewer Camera Inspection"
- Subtext: "Free with any sewer repair $500 or over. Code: CAMFREE"
- Code: "CAMFREE"
- CTA: "Get Inspection"

CARD STYLING:
- Shape: rounded ticket (16px radius, with two small half-circle cutouts on left and right sides at 60 percent height to suggest perforation)
- Background: #FFFFFF
- Border: 2px dashed #FFEA00
- Padding: 24px
- Amount font: Inter 800, 40px, #1D1760
- Label font: Inter 600, 20px, #1D1760
- Subtext: Inter 400, 14px, #5F6380
- Code block: monospace 13px, background #F7F4C1, padding 4px 8px, border-radius 4px
- CTA button: full-width, #30C5FF background, white text, 44px tall, Inter 600 16px

LAYOUT:
- Mobile: 1-col stack, 16px gap, 100 percent width
- Desktop: 3-col grid, 24px gap, equal-width 380px each

SCHEMA: Each card wrapped in schema.org/Offer with itemprop="description" on subtext and itemprop="priceCurrency" where applicable.

OUTPUT: Section > H2 + Div (grid) > 3x Article (coupon card) elements.
§ 04 Sewer-Lead Services BRICKS AI · Paste and run
Figma frame: 04_section_services_grid
You are generating a Bricks Builder section for callbrightside.com, a 5th-generation Kansas City family plumbing company. Output native Bricks elements (JSON element tree).

DO NOT GENERATE: header, nav, logo bar, footer, page wrapper. Those are existing global Bricks components and will already be on the page.

BRAND TOKENS (required):
- Colors: Navy #1D1760, Blue #30C5FF, Yellow #FFEA00. Accents: Sky #93DEFB, Purple #443A96. No red, no orange unless explicitly specified.
- Font: Inter only (300/400/500/600/700/800). No serif, no display.
- Copy style: No em dashes (use commas/periods). No emojis inside body copy (OK in section H2 decoration). Plain-English, 6th grade reading level.
- Stephanie format where copy allows: Problem then Impact then Solution then Data then Need.

ACCESSIBILITY:
- Min 16px body, 44px tap targets, visible focus rings (#30C5FF 2px), semantic HTML (h2/h3/article), aria-hidden on decorative icons.
- Color contrast WCAG AA.

RESPONSIVE:
- Mobile-first (320-768), tablet (769-1023), desktop (1024+).
- No horizontal scroll at any viewport.

SECTION: Services We Specialize In (6-card grid)

PURPOSE: Position BSP as a sewer specialist, not a generalist. Sewer is revenue #1 and must lead the grid.

H2: "Plumbing Services We Specialize In"
H2 STYLING: Inter 700, 32px mobile / 40px desktop, color #1D1760, left-aligned with underline doodle SVG behind the word "Services" (doodle ID 221286 from sewer-camera page).

6 CARDS (exact order, exact copy):
1) Sewer Repair and Replacement - "Licensed experts for burst, cracked, or failing sewer lines. Trenchless options available."
2) Sewer Camera Inspection - "See the exact cause before you pay for a repair. Free with any sewer work $500 or over."
3) Drain Cleaning - "Clog-clearing that respects your pipes. Hydro jetting and mechanical snaking."
4) Water Heaters - "Tank and tankless install, repair, and replace. Same-day in most cases."
5) Leak Repair - "Pinhole, slab, or pressure leaks. We find it fast, we fix it right."
6) Sump Pumps - "Battery backup and primary pump install. Stay dry when the storms hit."

CARD ANATOMY:
- Icon (top on desktop, left on mobile): 64x64 desktop, 40x40 mobile. Color #30C5FF.
- H3 (service name): Inter 600, 20px mobile / 24px desktop, #1D1760.
- Description: Inter 400, 14px mobile / 16px desktop, #5F6380, 2 lines max.
- Link: "Learn More" with right-arrow, Inter 600 14px, #30C5FF, underline on hover.
- Card bg: #FFFFFF, border 1px #E3E8F0, radius 12px, padding 24px.
- Hover: translateY(-4px), shadow 0 8px 24px rgba(29,23,96,0.08), 200ms ease.

LAYOUT:
- Mobile: 1-col stack, 16px gap, icon-left horizontal layout.
- Desktop: 2-col grid, 24px gap, icon-top vertical layout.

SCHEMA: Wrap each card in schema.org/Service with hasServiceOfType. Parent container itemtype="https://schema.org/LocalBusiness".

Icon names to use (Bricks built-in icon library or Phosphor): pipe, video-camera, wrench, flame, water-drop, pump.

OUTPUT: Section > H2 + Div (grid) > 6x Article (service card) elements with schema attributes.
§ 05 Financing + Plumbinati HYBRID · Figma asset + Bricks AI
Figma frame: 05_section_financing
You are generating a Bricks Builder section for callbrightside.com, a 5th-generation Kansas City family plumbing company. Output native Bricks elements (JSON element tree).

DO NOT GENERATE: header, nav, logo bar, footer, page wrapper. Those are existing global Bricks components and will already be on the page.

BRAND TOKENS (required):
- Colors: Navy #1D1760, Blue #30C5FF, Yellow #FFEA00. Accents: Sky #93DEFB, Purple #443A96. No red, no orange unless explicitly specified.
- Font: Inter only (300/400/500/600/700/800). No serif, no display.
- Copy style: No em dashes (use commas/periods). No emojis inside body copy (OK in section H2 decoration). Plain-English, 6th grade reading level.
- Stephanie format where copy allows: Problem then Impact then Solution then Data then Need.

ACCESSIBILITY:
- Min 16px body, 44px tap targets, visible focus rings (#30C5FF 2px), semantic HTML (h2/h3/article), aria-hidden on decorative icons.
- Color contrast WCAG AA.

RESPONSIVE:
- Mobile-first (320-768), tablet (769-1023), desktop (1024+).
- No horizontal scroll at any viewport.

SECTION: Financing plus Plumbinati Membership (2-card horizontal, HYBRID with Figma asset)

PURPOSE: Close the financing-offer gap vs all 4 major KC competitors. Convert returning customers into Plumbinati members (highest LTV segment).

LAYOUT:
- Mobile: 2 cards stacked, 16px gap between, each 100 percent width.
- Desktop: 2-col side-by-side, 32px gap, equal height, 600px max-width each.

CARD 1 - FINANCING (Bricks AI generates this card):
- Icon: credit-card, 48px, #30C5FF
- H3: "Affordable plumbing starts at $0 down"
- Body: "Apply in 60 seconds. 0 percent APR options available for qualified customers. No surprises, no hidden fees."
- CTA button: "Apply for Financing" (blue #30C5FF fill, white text, 44px tall, Inter 600 16px, full-width on mobile, auto-width on desktop)
- Placeholder: 340x200 Div with dashed border and text "P2: Wisetack rate-quote widget mounts here"
- Background: #FFFFFF, border 1px #E3E8F0, radius 16px, padding 32px

CARD 2 - PLUMBINATI MEMBERSHIP (HYBRID: Audrey drops badge SVG):
- Figma asset: Audrey exports the Plumbinati badge artwork from Figma frame "05_section_financing > card_plumbinati > badge_artwork" and places it at the TOP of this card as a 120x120 image. DO NOT regenerate the badge with AI.
- H3 (below badge): "Join Plumbinati, KC's family plumbing membership"
- Body: "Priority service. 15 percent off all repairs. Annual plumbing checkup included. Peace of mind for your household."
- CTA button: "Join Plumbinati" (yellow #FFEA00 fill, navy text #1D1760, 44px tall, Inter 700 16px)
- Background: #1D1760 (navy), radius 16px, padding 32px, white text throughout.

CARD 2 PLACEHOLDER INSTRUCTION:
Wherever the badge goes, output a Div element with id="plumbinati-badge-slot" and class="audrey-drop-here" so she can easily replace it in Bricks Builder.

OUTPUT: Section > H2 "Affordable options for every home" + Div (grid) > 2x Article (financing card + plumbinati card).
§ 06 Why Bright Side — Family Story FIGMA-MODE · Audrey exports + imports
Figma frame: 06_section_why_bsp
FIGMA-MODE. Do NOT run this in Bricks AI Studio. MOAT section.

Audrey export steps:
1) Finalize frame "06_section_why_bsp" in Figma.
2) Export the hero photo (Kalen in uniform) as PNG @2x.
3) Export any decorative SVG elements (borders, frame artwork) separately.
4) In Bricks, create a Section with 2-col layout (stack on mobile):
   - Left col: Image element with the Kalen photo, object-fit cover, aspect-ratio 4/5.
   - Right col: Block element with H2, 3 paragraphs, CTA button.
5) Set vertical padding 80px desktop / 48px mobile.

Copy (exact strings, paste into Bricks Rich Text element on right col):

H2: "A Family Trade, Not a Franchise"

Paragraph 1: "Kalen Barker is a fourth-generation master plumber. His son is the fifth. For over 100 years, the Barker family has been fixing Kansas City pipes - grandfathers training fathers, fathers training sons."

Paragraph 2: "Every plumber on our truck was trained by someone who was trained by someone who learned this trade in Kansas City. That is not a marketing story. That is our kitchen-table story."

Paragraph 3: "When you call Bright Side, you are not hiring a corporate franchise. You are hiring a family that has been in this city longer than most of its neighborhoods."

CTA button: "Meet the Team" (outline blue button, links to /about)

P2 HOOK: Leave a 640x360 Div placeholder below the text labeled "P2: 60-sec family mini-doc embed".

Brand tokens apply to all text styling (Inter only, no em dashes, navy/blue/yellow palette).

This section is hand-designed in Figma and hand-imported to Bricks. Do not regenerate.
§ 07 How It Works BRICKS AI · Paste and run
Figma frame: 07_section_how_it_works
You are generating a Bricks Builder section for callbrightside.com, a 5th-generation Kansas City family plumbing company. Output native Bricks elements (JSON element tree).

DO NOT GENERATE: header, nav, logo bar, footer, page wrapper. Those are existing global Bricks components and will already be on the page.

BRAND TOKENS (required):
- Colors: Navy #1D1760, Blue #30C5FF, Yellow #FFEA00. Accents: Sky #93DEFB, Purple #443A96. No red, no orange unless explicitly specified.
- Font: Inter only (300/400/500/600/700/800). No serif, no display.
- Copy style: No em dashes (use commas/periods). No emojis inside body copy (OK in section H2 decoration). Plain-English, 6th grade reading level.
- Stephanie format where copy allows: Problem then Impact then Solution then Data then Need.

ACCESSIBILITY:
- Min 16px body, 44px tap targets, visible focus rings (#30C5FF 2px), semantic HTML (h2/h3/article), aria-hidden on decorative icons.
- Color contrast WCAG AA.

RESPONSIVE:
- Mobile-first (320-768), tablet (769-1023), desktop (1024+).
- No horizontal scroll at any viewport.

SECTION: How It Works (3 numbered steps, horizontal flow)

PURPOSE: Reduce friction. Homeowner anxiety peaks before calling. "It is only 3 steps" makes it feel safe.

BACKGROUND: Full-width blue wave background (SVG), #93DEFB (sky blue) base with white overlay, 80px vertical padding.

H2: "How It Works"
H2 STYLING: Inter 700, 32px mobile / 40px desktop, color #1D1760, center-aligned, 32px bottom margin.

3 STEPS (exact copy, exact order):

STEP 1:
- Number: 01
- Title: "Call or book online"
- Body: "Tell us what is going on. Real people answer, same-day call-back if the line is busy."

STEP 2:
- Number: 02
- Title: "We arrive same-day and inspect"
- Body: "Licensed plumber on-site in most cases. Free camera inspection with any sewer repair."

STEP 3:
- Number: 03
- Title: "We fix it right"
- Body: "Flat-rate pricing approved before we start. Warranty on every job. Clean up before we leave."

STEP STYLING:
- Number: Inter 800, 64px, color #FFEA00 (yellow), aligned top-left of tile
- Title: Inter 700, 20px mobile / 24px desktop, color #1D1760
- Body: Inter 400, 14px mobile / 16px desktop, color #1D1760, max 2 lines

LAYOUT:
- Mobile: 3 steps stacked, dashed connector line between steps, numbered circle 48x48 #1D1760 navy bg with #FFEA00 number on left, text right.
- Desktop: 3 steps horizontal, equal columns, connector arrow SVG between, numbered circles 72x72, vertical layout (number on top, text below).

OUTPUT: Section (wave bg) > H2 + Div (grid) > 3x Article (step tile) elements.
§ 08 Jobs We Did This Week — Gallery HYBRID · Figma asset + Bricks AI
Figma frame: 08_section_recent_jobs
You are generating a Bricks Builder section for callbrightside.com, a 5th-generation Kansas City family plumbing company. Output native Bricks elements (JSON element tree).

DO NOT GENERATE: header, nav, logo bar, footer, page wrapper. Those are existing global Bricks components and will already be on the page.

BRAND TOKENS (required):
- Colors: Navy #1D1760, Blue #30C5FF, Yellow #FFEA00. Accents: Sky #93DEFB, Purple #443A96. No red, no orange unless explicitly specified.
- Font: Inter only (300/400/500/600/700/800). No serif, no display.
- Copy style: No em dashes (use commas/periods). No emojis inside body copy (OK in section H2 decoration). Plain-English, 6th grade reading level.
- Stephanie format where copy allows: Problem then Impact then Solution then Data then Need.

ACCESSIBILITY:
- Min 16px body, 44px tap targets, visible focus rings (#30C5FF 2px), semantic HTML (h2/h3/article), aria-hidden on decorative icons.
- Color contrast WCAG AA.

RESPONSIVE:
- Mobile-first (320-768), tablet (769-1023), desktop (1024+).
- No horizontal scroll at any viewport.

SECTION: Jobs We Did This Week (dynamic card grid, HYBRID - Figma composition + Bricks AI card template)

PURPOSE: Proof no KC competitor shows. Before/after sewer footage plus inspection clips. 10x moat feature.

PHASE 1 OUTPUT (placeholder):
Generate an empty gallery slot with a dashed-border Div, 100 percent width on mobile / 3-col grid on desktop. Inside each placeholder card, include:
- Dashed border 2px #A8B0C2
- Aspect ratio 4/3
- Center-aligned text: "P2: Live Job Gallery"
- Sub-text: "Pulls from HCP Photos API daily"

H2: "Jobs We Did This Week"
H2 STYLING: Inter 700, 32px mobile / 40px desktop, #1D1760, left-aligned.
Subtitle below H2: Inter 400, 16px, #5F6380: "Real jobs, real KC homes. Updated daily from our field crew."

LAYOUT:
- Mobile: 1-col stack, 16px gap, 6 placeholder cards (will show most recent 6 when Phase 2 wires live feed).
- Desktop: 3-col grid, 24px gap, 2 rows (6 cards total).

CARD TEMPLATE (for Phase 2 API integration - include as data-ready structure):
- data-job-id="{{job_id}}" attribute on card
- data-service-type="{{service_type}}" attribute
- Image slot: before photo (top half), after photo (bottom half), or single 15-sec video thumbnail
- Service type label: small pill top-right, #30C5FF bg, white text, 11px
- Caption bottom: "{{neighborhood}} - {{service_type}}"

FIGMA ASSET NOTE:
Audrey designs the gallery COMPOSITION (Figma frame "08_section_recent_jobs") - grid spacing, card shape, hover treatment. Bricks AI generates the actual card DOM. When her Figma design is finalized, regenerate this prompt to sync composition details.

OUTPUT: Section > H2 + Subtitle + Div (grid) > 6x Article (placeholder card) elements with data-attributes ready for Phase 2 API wire.
§ 09 Service Areas BRICKS AI · Paste and run
Figma frame: 09_section_service_areas
You are generating a Bricks Builder section for callbrightside.com, a 5th-generation Kansas City family plumbing company. Output native Bricks elements (JSON element tree).

DO NOT GENERATE: header, nav, logo bar, footer, page wrapper. Those are existing global Bricks components and will already be on the page.

BRAND TOKENS (required):
- Colors: Navy #1D1760, Blue #30C5FF, Yellow #FFEA00. Accents: Sky #93DEFB, Purple #443A96. No red, no orange unless explicitly specified.
- Font: Inter only (300/400/500/600/700/800). No serif, no display.
- Copy style: No em dashes (use commas/periods). No emojis inside body copy (OK in section H2 decoration). Plain-English, 6th grade reading level.
- Stephanie format where copy allows: Problem then Impact then Solution then Data then Need.

ACCESSIBILITY:
- Min 16px body, 44px tap targets, visible focus rings (#30C5FF 2px), semantic HTML (h2/h3/article), aria-hidden on decorative icons.
- Color contrast WCAG AA.

RESPONSIVE:
- Mobile-first (320-768), tablet (769-1023), desktop (1024+).
- No horizontal scroll at any viewport.

SECTION: Service Areas (chip row)

PURPOSE: Local SEO signal. Google and user both need geographic clarity.

H2: "Serving Every Kansas City Neighborhood"
H2 STYLING: Inter 700, 28px mobile / 36px desktop, #1D1760, left-aligned.

Subtitle below H2 (Inter 400, 16px, #5F6380): "Licensed and insured across the entire KC metro area."

14 CITY CHIPS (exact list, exact order):
Overland Park, Olathe, Lenexa, Shawnee, Leawood, Prairie Village, Mission, Kansas City MO, Lee Summit, Blue Springs, Independence, Gladstone, Liberty, Raytown

CHIP STYLING:
- Background: rgba(48,197,255,0.12) (light blue tint)
- Border: 1px solid #30C5FF
- Text: Inter 500, 14px, #1D1760
- Padding: 8px 16px
- Border-radius: 20px (pill)
- Gap between chips: 8px
- Hover: background rgba(48,197,255,0.25), border #1D1760, cursor pointer

LAYOUT:
- Mobile: flex-wrap grid, chips fill available width, start-aligned.
- Desktop: flex-wrap row, 3-4 chips per row typical, centered.

LINKING (Phase 1):
- Each chip is an anchor tag wrapping the chip div.
- href="/service-areas/{slug}" where slug is kebab-case city name (overland-park, lee-summit, etc.)
- rel="noopener" not needed (internal link).

SCHEMA: Wrap the chip container in itemscope itemtype="https://schema.org/Place" and each chip in Place > name property.

OUTPUT: Section > H2 + Subtitle + Div (flex-wrap) > 14x Anchor > Div (chip) elements.
§ 10 Live Reviews — MOAT BRICKS AI · Paste and run
Figma frame: 10_section_reviews
You are generating a Bricks Builder section for callbrightside.com, a 5th-generation Kansas City family plumbing company. Output native Bricks elements (JSON element tree).

DO NOT GENERATE: header, nav, logo bar, footer, page wrapper. Those are existing global Bricks components and will already be on the page.

BRAND TOKENS (required):
- Colors: Navy #1D1760, Blue #30C5FF, Yellow #FFEA00. Accents: Sky #93DEFB, Purple #443A96. No red, no orange unless explicitly specified.
- Font: Inter only (300/400/500/600/700/800). No serif, no display.
- Copy style: No em dashes (use commas/periods). No emojis inside body copy (OK in section H2 decoration). Plain-English, 6th grade reading level.
- Stephanie format where copy allows: Problem then Impact then Solution then Data then Need.

ACCESSIBILITY:
- Min 16px body, 44px tap targets, visible focus rings (#30C5FF 2px), semantic HTML (h2/h3/article), aria-hidden on decorative icons.
- Color contrast WCAG AA.

RESPONSIVE:
- Mobile-first (320-768), tablet (769-1023), desktop (1024+).
- No horizontal scroll at any viewport.

SECTION: Live Reviews (dynamic review card grid, MOAT)

PURPOSE: Social proof. Live Google Reviews API filtered for KC + plumbing keywords. Every competitor uses static - ours is live.

DATA SOURCE (Phase 1 Phase 2 both):
Reviews are injected at render-time by `service_page_reviews_apply.py` filtered for keywords: plumber, plumbing, sewer, drain, water heater, Kansas City. Refreshes daily.

H2: "What Kansas City Homeowners Say"
H2 STYLING: Inter 700, 32px mobile / 40px desktop, #1D1760, center-aligned, 24px bottom margin.

Subtitle (Inter 400, 16px, #5F6380, center): "From real Google reviews, updated daily."

CARD TEMPLATE (output a Bricks element tree that repeats per review):
- data-review-id="{{review_id}}" attribute
- data-author="{{author_name}}" attribute
- Star row at top: 5 SVG stars, filled = #FFEA00, empty = #E3E8F0. Size 20px mobile / 24px desktop. Row 120px wide.
- Quote text: Inter 400, 15px, #1D1760, line-height 1.55, 4 lines max mobile / 5 lines max desktop (use -webkit-line-clamp).
- Author row: Inter 700, 14px, #1D1760 + "- {{location}}" in Inter 400, 14px, #5F6380.
- Card bg: #F7F4C1 (cream/ivory), padding 24px, border-radius 12px, shadow 0 4px 12px rgba(29,23,96,0.06).

LAYOUT:
- Mobile: 2 review cards stacked, 16px gap, 100 percent width each.
- Desktop: 2-col grid, 24px gap, fixed card height 422px.

PHASE 2:
Carousel with 5+ reviews and swipe gestures on mobile. Pull `next` and `prev` buttons in (hidden in Phase 1).

SCHEMA:
- Parent container: itemscope itemtype="https://schema.org/Organization"
- Each review card: itemprop="review" itemscope itemtype="https://schema.org/Review"
- Rating: itemprop="reviewRating" with ratingValue=5, bestRating=5.
- Author: itemprop="author" with name.

CTA below grid (center-aligned): "Read All 384+ Google Reviews" as text link, #30C5FF, Inter 600 14px, underline on hover.

OUTPUT: Section > H2 + Subtitle + Div (grid) > 2x Article (review card template) + Anchor (see-all link). Include data-placeholder="reviews_loop" on the grid Div so the ETL script knows where to inject live data.
§ 11 Guarantees BRICKS AI · Paste and run
Figma frame: 11_section_guarantees
You are generating a Bricks Builder section for callbrightside.com, a 5th-generation Kansas City family plumbing company. Output native Bricks elements (JSON element tree).

DO NOT GENERATE: header, nav, logo bar, footer, page wrapper. Those are existing global Bricks components and will already be on the page.

BRAND TOKENS (required):
- Colors: Navy #1D1760, Blue #30C5FF, Yellow #FFEA00. Accents: Sky #93DEFB, Purple #443A96. No red, no orange unless explicitly specified.
- Font: Inter only (300/400/500/600/700/800). No serif, no display.
- Copy style: No em dashes (use commas/periods). No emojis inside body copy (OK in section H2 decoration). Plain-English, 6th grade reading level.
- Stephanie format where copy allows: Problem then Impact then Solution then Data then Need.

ACCESSIBILITY:
- Min 16px body, 44px tap targets, visible focus rings (#30C5FF 2px), semantic HTML (h2/h3/article), aria-hidden on decorative icons.
- Color contrast WCAG AA.

RESPONSIVE:
- Mobile-first (320-768), tablet (769-1023), desktop (1024+).
- No horizontal scroll at any viewport.

SECTION: Our Guarantees (3-tile row)

PURPOSE: Remove the last risk objection before the final CTA.

H2: "Our Guarantees to You"
H2 STYLING: Inter 700, 32px mobile / 40px desktop, #1D1760, center-aligned, 32px bottom margin.

3 TILES (exact order, exact copy):

TILE 1:
- Icon: thumbs-up, 64px, #30C5FF
- Title: "100 Percent Satisfaction"
- Body: "If you are not happy with our work, we come back and make it right. Period."

TILE 2:
- Icon: hammer-wrench, 64px, #30C5FF
- Title: "Workmanship Warranty"
- Body: "Every repair is backed by a two-year workmanship warranty. Parts warranty per manufacturer."

TILE 3:
- Icon: receipt-dollar, 64px, #30C5FF
- Title: "Upfront Flat-Rate Pricing"
- Body: "No hourly billing surprises. You approve the exact price before we pick up a tool."

TILE STYLING:
- Background: #FFFFFF, border 1px #E3E8F0, radius 12px, padding 32px
- Center-aligned content
- Icon top, 24px bottom margin
- Title: Inter 700, 20px mobile / 24px desktop, #1D1760
- Body: Inter 400, 14px mobile / 16px desktop, #5F6380, max 3 lines

LAYOUT:
- Mobile: 3 tiles stacked, 16px gap, 100 percent width, 32px padding reduced to 24px.
- Desktop: 3-col grid, 24px gap, equal-width 380px.

SCHEMA: Each tile wrapped in schema.org/OfferCatalog > hasOfferCatalog > Offer with itemprop="description".

OUTPUT: Section (white bg) > H2 + Div (grid) > 3x Article (guarantee tile) elements.
§ 12 FAQ BRICKS AI · Paste and run
Figma frame: 12_section_faq
You are generating a Bricks Builder section for callbrightside.com, a 5th-generation Kansas City family plumbing company. Output native Bricks elements (JSON element tree).

DO NOT GENERATE: header, nav, logo bar, footer, page wrapper. Those are existing global Bricks components and will already be on the page.

BRAND TOKENS (required):
- Colors: Navy #1D1760, Blue #30C5FF, Yellow #FFEA00. Accents: Sky #93DEFB, Purple #443A96. No red, no orange unless explicitly specified.
- Font: Inter only (300/400/500/600/700/800). No serif, no display.
- Copy style: No em dashes (use commas/periods). No emojis inside body copy (OK in section H2 decoration). Plain-English, 6th grade reading level.
- Stephanie format where copy allows: Problem then Impact then Solution then Data then Need.

ACCESSIBILITY:
- Min 16px body, 44px tap targets, visible focus rings (#30C5FF 2px), semantic HTML (h2/h3/article), aria-hidden on decorative icons.
- Color contrast WCAG AA.

RESPONSIVE:
- Mobile-first (320-768), tablet (769-1023), desktop (1024+).
- No horizontal scroll at any viewport.

SECTION: Frequently Asked Questions (accordion, 8 items, FAQPage schema)

PURPOSE: Objection crusher + rich-snippet SEO play. FAQPage JSON-LD = free search-result real estate.

H2: "Frequently Asked Questions"
H2 STYLING: Inter 700, 32px mobile / 40px desktop, #1D1760, left-aligned, 32px bottom margin.

8 FAQ ITEMS (exact order, exact question and answer):

Q1: "How much does sewer repair cost?"
A1: "Most trenchless sewer repairs at Bright Side run between $3,500 and $8,500 depending on depth, length, and access. Traditional excavation work runs $5,000 to $15,000. We give you a firm flat-rate quote after our free camera inspection, with zero pressure to move forward."

Q2: "Do you offer financing?"
A2: "Yes. We offer 0 percent APR financing for qualified customers through Wisetack, with approval in under 60 seconds. Applications are available on-site or online through our Financing page."

Q3: "Are you available on weekends and emergencies?"
A3: "Yes. We operate Monday through Saturday 8 AM to 9 PM Central Time. Emergency calls outside those hours are routed to our on-call team and we respond within 15 minutes with a callback."

Q4: "How fast can you come out?"
A4: "Same-day in most cases. We dispatch multiple crews across the KC metro and will book you for the earliest slot that fits your window, usually within 2 to 4 hours of your call during business hours."

Q5: "Do you service my neighborhood?"
A5: "We cover every neighborhood across the Kansas City metro including Overland Park, Olathe, Lenexa, Shawnee, Leawood, Prairie Village, Mission, Kansas City MO, Lee Summit, Blue Springs, Independence, Gladstone, Liberty, and Raytown."

Q6: "What is the warranty on your work?"
A6: "Every repair is backed by a two-year workmanship warranty. Parts carry the manufacturer warranty which ranges from 1 to 10 years depending on the component."

Q7: "How long does a sewer line replacement take?"
A7: "Most trenchless replacements are completed in 1 day. Traditional excavation jobs run 2 to 4 days depending on length and depth. We restore landscaping and concrete before we leave."

Q8: "Do you offer free estimates?"
A8: "Sewer estimates are always free, including the camera inspection. For non-sewer services there is an $89 dispatch fee that is waived when you approve the work."

ITEM STYLING:
- Accordion row: 48px min-height, 16px vertical padding, 1px bottom border #E3E8F0.
- Question: Inter 600, 16px mobile / 20px desktop, #1D1760.
- Answer: Inter 400, 14px mobile / 16px desktop, #5F6380, line-height 1.6.
- Caret: chevron-down icon, 20px, #30C5FF, rotates 180deg on open.
- Tap target: full row clickable, 44px min.

LAYOUT:
- Mobile: full-width, stack of 8 rows.
- Desktop: max-width 800px centered.

SCHEMA (CRITICAL):
Output a JSON-LD script block as the LAST element inside the section:
  <script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [
      { "@type": "Question", "name": "...", "acceptedAnswer": { "@type": "Answer", "text": "..." } },
      ... (8 entries)
    ]
  }
  </script>

OUTPUT: Section > H2 + Div (accordion container) > 8x Details/Summary pattern + Script (JSON-LD).
§ 13 Final CTA — The Close FIGMA-MODE · Audrey exports + imports
Figma frame: 13_section_final_cta
FIGMA-MODE. Do NOT run this in Bricks AI Studio.

Audrey export steps:
1) Finalize Figma frame "13_section_final_cta" with all THREE step states of the multi-step form visible.
2) Export the background SVG (navy wave transitioning to footer) separately.
3) In Bricks, create a Section with background image = wave SVG, 96px top padding, 0 bottom padding (flows into footer).
4) Center a Bricks Block element, max-width 640px, white background, 16px radius, 32px padding, 0 8px 24px shadow.

Copy to paste into Bricks text elements inside the white card:

Headline (H2): "Ready to fix it right the first time?"
- Inter 800, 32px mobile / 44px desktop, #1D1760, center-aligned

Subtitle: "Call Kansas City's 5th-generation plumbing family."
- Inter 400, 16px mobile / 20px desktop, #5F6380, center-aligned, 16px bottom margin

CTA Row (3 buttons, horizontal on desktop, stacked on mobile, 12px gap):
- Button 1 (yellow, primary): "Call (913) 963-1029" with phone icon
- Button 2 (blue outline): "Book Online" with calendar icon
- Button 3 (text link): "Chat with Daniel" with message icon

Multi-step form (BELOW the CTA row):
Step 1 of 3 (visible by default): "What service do you need?"
  - 4 tile-buttons: Sewer, Drain, Water Heater, Other
  - Next button: "Continue to timing"

Step 2 of 3 (revealed after Step 1): "When do you need service?"
  - 4 tile-buttons: Emergency now, Today, This week, Flexible
  - Back + Next buttons

Step 3 of 3 (revealed after Step 2): "Your details"
  - Fields: Name, Phone (tel, 10-digit), Address, ZIP
  - Submit button: "Request My Quote"
  - Progress dots showing current step (3 dots, current step filled yellow)

Audrey designs ALL 3 step states in the Figma frame. Robert wires the step transitions in Bricks using the built-in Form element or a JS toggle.

BRAND TOKENS APPLY to all text and buttons.

This section is hand-designed in Figma and hand-imported to Bricks. Do not regenerate with Bricks AI.
🔌

Orchestrator Prompt Pack (machine-readable)

This section is consumed by /opt/nexus/titan/nexus_bricks_orchestrator.py. Each card below maps 1:1 to the detailed prompt-body-01..13 above. Figma source: majxEfSTSyRskfASc9v5P1.

Section 01 · Hero

Build homepage Section 01 HERO per Figma file majxEfSTSyRskfASc9v5P1 hero frame. FIGMA-MODE: Audrey-designed. Full detailed spec and ready-to-paste Bricks AI Studio prompt available in this playbook under id="prompt-body-01". Brand tokens: navy #1D1760, blue #30C5FF, yellow #FFEA00. Inter font. Mobile-first 375/768/1440. Skip header — global Bricks component. Primary CTA tel:+19139631029 yellow button. Secondary ST booking iframe.

Section 02 · Services Grid

Build homepage Section 02 SERVICES GRID per Figma file majxEfSTSyRskfASc9v5P1 services frame. Full detailed spec in prompt-body-02 above. Native Bricks element tree. 6-8 service cards (Drain/Sewer/Water Heater/Leak/Emergency/Gas Line/Repipe). Each card: icon 64px + h3 Inter 700 + 2-line description + "Learn more" link. Hover lifts card. Responsive 3-col desktop, 2-col tablet, 1-col mobile. Service data from HCP or ST job-types where available.

Section 03 · Live Stats Row

Build homepage Section 03 LIVE STATS per Figma file majxEfSTSyRskfASc9v5P1. Detailed spec prompt-body-03. 4-column stat row pulling live: Google review count + rating (GET /api/gbp/performance 1hr cache), years in KC (static 5-generation), total jobs this year (GET /api/hcp/stats), neighborhoods served. Navy/blue card style, yellow numbers Inter 800 36px.

Section 04 · Emergency CTA Band

Build homepage Section 04 EMERGENCY BAND per Figma file majxEfSTSyRskfASc9v5P1. Detailed spec prompt-body-04. Full-bleed navy band with pulsing yellow emergency icon, "24/7 Emergency Plumbing — (913) 963-1029" headline, "Available NOW" chip with live time since last call from /api/gbp/last_call. Tel CTA primary.

Section 05 · Financing + Plumbinati

Build homepage Section 05 FINANCING per Figma file majxEfSTSyRskfASc9v5P1. HYBRID: Figma for Plumbinati badge art, Bricks AI for financing card structure. Detailed spec prompt-body-05. Financing tiers from /api/financing/tiers. Plumbinati membership badge custom artwork from Audrey's Figma. Two-column 50/50 desktop.

Section 06 · Why Bright Side (MOAT)

Build homepage Section 06 MOAT per Figma file majxEfSTSyRskfASc9v5P1. FIGMA-MODE: Audrey-designed brand-heart section, do NOT generate with Bricks AI. Detailed spec prompt-body-06. Family photo + 5-generation story + Kalen master plumber credentials. Export PNG/SVG from Figma into Bricks page, wrap in semantic HTML.

Section 07 · Reviews Highlight

Build homepage Section 07 REVIEWS per Figma file majxEfSTSyRskfASc9v5P1. Detailed spec prompt-body-07. 3-4 top reviews from /api/gbp/reviews filtered rating=5 with neighborhood chip. CL-05 Review Card component inherited from Reviews Page Playbook. "See all reviews →" link to /reviews/.

Section 08 · Jobs We Did This Week (10x)

Build homepage Section 08 JOBS FEED per Figma file majxEfSTSyRskfASc9v5P1. HYBRID: Figma composition, Bricks AI card template. Detailed spec prompt-body-08. Pulls 3-6 recent completed jobs from HCP/ST API with before/after photos (once photo sync is restored — Apr 21 flag). Anonymize customer, show neighborhood + problem + fix. Updates daily.

Section 09 · Service Areas

Build homepage Section 09 SERVICE AREAS per Figma file majxEfSTSyRskfASc9v5P1. Detailed spec prompt-body-09. KC-metro map or neighborhood grid. Prioritize revenue zips: Prairie Village, Overland Park (S + N), Shawnee, Westwood/Mission, South KC, Leawood. Each chip links to /locations/{slug}/ location page.

Section 10 · FAQ

Build homepage Section 10 FAQ per Figma file majxEfSTSyRskfASc9v5P1. Detailed spec prompt-body-10. 5-7 top-level FAQ accordions (CL-09 component). FAQPage JSON-LD schema for rich snippets. "See all FAQs →" link to /faqs/.

Section 11 · Trust Signals

Build homepage Section 11 TRUST per Figma file majxEfSTSyRskfASc9v5P1. Detailed spec prompt-body-11. 6-icon grid: BBB A+, KCMO license, Johnson County license, IICRC cert, Insurance cert, $50/$200 guarantee card. Icons from WP media library. Click-through to PDFs.

Section 12 · Community / Referrals

Build homepage Section 12 COMMUNITY per Figma file majxEfSTSyRskfASc9v5P1. Detailed spec prompt-body-12. Partner/referral ribbon (Bingham Restoration, Inspector Network). Optional community photo carousel. Soft section — Phase 2 swap if needed.

Section 13 · Final CTA

Build homepage Section 13 FINAL CTA per Figma file majxEfSTSyRskfASc9v5P1. FIGMA-MODE: Audrey-designed heroic close. Detailed spec prompt-body-13. "Call KC's 5th-generation family" headline yellow #FFEA00 Inter 800. Tel CTA primary + ST booking iframe secondary. Navy full-bleed. Glow on hover.
Phase 1 Copy Deck - Audrey-Authored

[Copy]Homepage Copy Deck

Source: /opt/nexus/nexus/scripts/output/audrey_copy/homepage/ · Integrated 2026-05-01 · BSP Session 9 Track D Phase 3
TL;DRH1 Kansas City's 5th-Generation Plumbing Family. Sewer, Drain, and Water Heater Experts. Subhead Same-day service across Overland Park, Olathe, Lenexa, and the KC metro.
[#]

Key Stats & Anchors

Same-day
Same-day service across Overland Park, Olathe, Lenexa, and...
same-day
Voice anchors required in first two sentences: geography...
5 Generations
3. 5 Generations
Same-Day
4. Same-Day Service
Free
6. Free Estimates
[1]

Section-by-Section Copy

Homepage Copy Deck

Source: BSP_Homepage_Redesign_Playbook.html (fetched 2026-05-01) Page status: Sacred. Phase 1 finalized, Phase 2 layered post-launch. Audience: Emergency Eric (50-60% revenue), Renovation Rachel (25-30%), Business Bob (8-12%), Maintenance Mike (45-55% leads, highest LTV).


Section 01. Hero

H1 Kansas City's 5th-Generation Plumbing Family. Sewer, Drain, and Water Heater Experts.

Subhead Same-day service across Overland Park, Olathe, Lenexa, and the KC metro.

Primary CTA: Call (913) 963-1029 (yellow #FFEA00 button, emergency tone) Secondary CTA: Book Online (blue outline) Tertiary CTA: Chat with Daniel (text link)

Voice anchors required in first two sentences: geography (Kansas City), lineage (5th-generation), velocity (same-day), specialization (sewer, drain, water heater).


Section 02. Trust Bar

Six chips, exact order, no animation, immediately under hero CTA.

  1. 4.9 Google (384+ reviews)
  2. BBB A+
  3. 5 Generations
  4. Same-Day Service
  5. Licensed and Insured
  6. Free Estimates

Section 03. Current Specials

Three coupon cards. Targets Maintenance Mike. Closes the price-perception gap vs Benjamin Franklin.

Card 1. $25 Off Any Service New customers. One per household. Mention code KC25.

Card 2. $99 Drain Cleaning Single drain. Unclog or it is free. Code DRAIN99.

Card 3. Free Sewer Camera Inspection Free with any sewer repair $500 or over. Code CAMFREE.


Section 04. Services Grid

H2: Plumbing Services We Specialize In

Six services in priority order. Sewer leads.

  1. Sewer Repair and Replacement. Licensed experts for burst, cracked, or failing sewer lines. Trenchless options available.
  2. Sewer Camera Inspection. HD camera inspection. Free with any sewer repair $500 or over.
  3. Drain Cleaning. Single-drain service from $99. Unclog or it is free.
  4. Water Heaters. Tank, tankless, and hybrid installs. Same-day swaps in most cases.
  5. Leak Repair. Slab, supply line, and fixture leaks. Detection and repair in one visit.
  6. Sump Pumps. Replacement, battery backups, and basement protection.

Link style: "Learn More" (Inter 600, 14px, #30C5FF).


Section 06. Why Bright Side, Family Story (MOAT)

H2: A Family Trade, Not a Franchise

Paragraph 1. The Barker family has run plumbing trucks in Kansas City for over 100 years. Our master plumber is fourth generation. His son is the fifth. Grandfathers trained fathers, fathers trained sons.

Paragraph 2. Every plumber on our truck was trained by someone who was trained by someone who learned this trade in Kansas City. That is not a marketing story. That is our kitchen-table story.

Paragraph 3. When you call Bright Side, you are not hiring a corporate franchise. You are hiring a family that has been in this city longer than most of its neighborhoods.

CTA: Meet the Team (outline blue, links /about)


Section 07. How It Works

H2: How It Works

Step 1. Call or book online. Tell us what is going on. Real people answer. Same-day callback if the line is busy.

Step 2. We arrive same-day and inspect. Licensed plumber on-site in most cases. Free camera inspection with any sewer repair.

Step 3. We fix it right. Flat-rate pricing approved before we start. Warranty on every job. Clean up before we leave.


Section 09. Service Areas

H2: Serving Every Kansas City Neighborhood

Sub: Licensed and insured across the entire KC metro.

14-city chip list. Each links to /service-areas/{slug}.

Overland Park, Olathe, Lenexa, Shawnee, Leawood, Prairie Village, Mission, Kansas City MO, Lee's Summit, Blue Springs, Independence, Gladstone, Liberty, Raytown.


Section 10. Live Reviews (MOAT)

H2: What Kansas City Homeowners Say Sub: From real Google reviews, updated daily.

Live API feed filtered for plumber, plumbing, sewer, drain, water heater, Kansas City keywords.

Below carousel CTA: Read All 384+ Google Reviews (text link, #30C5FF)


Section 11. Guarantees

H2: Our Guarantees to You

  1. 100 Percent Satisfaction. If you are not happy with our work, we come back and make it right. Period.
  2. Workmanship Warranty. Every repair is backed by a two-year workmanship warranty. Parts warranty per manufacturer.
  3. Upfront Flat-Rate Pricing. No hourly billing surprises. You approve the exact price before we pick up a tool.

Section 12. FAQ

See faq_seed.md for the eight finalized Q&A pairs. FAQPage JSON-LD required for rich snippets.


Section 13. Final CTA

Headline: Ready to fix it right the first time? Sub: Call Kansas City's 5th-generation plumbing family.

Three-button row.

  • Call (913) 963-1029 (yellow #FFEA00, primary)
  • Book Online (blue outline)
  • Chat with Daniel (text link)

Multi-step form (Phase 1). Step 1: Service type (Sewer / Drain / Water Heater / Other). Step 2: Timing (Emergency now / Today / This week / Flexible). Step 3: Name / Phone / Address / ZIP.


Brand Voice Rules (apply globally)

  • No em dashes. Use commas and periods.
  • No emojis in body copy. Section H2 decoration only if approved.
  • Plain English, sixth-grade reading level.
  • Lead with Kansas City.
  • Family lineage visible. Faces and names, not corporate.
  • Same-day urgency embedded.
  • Transparent pricing language.
  • Licensed and BBB trust signals pinned.
[2]

Hero Options

Headline Options

Option A (playbook canonical, recommended) H1: Kansas City's 5th-Generation Plumbing Family. Sewer, Drain, and Water Heater Experts. Sub: Same-day service across Overland Park, Olathe, Lenexa, and the KC metro. Option B (urgency-first, Emergency Eric lead) H1: Same-Day Plumbing in Kansas City. Five Generations of Sewer, Drain, and Water Heater Experts. Sub: Real plumbers on the truck today. Licensed, insured, family-owned. Option C (lineage-first, brand moat lead) H1: 100 Years of Kansas City Plumbing. One Family. One Truck Roll Away. Sub: Same-day sewer, drain, and water heater service across the KC metro. Option D (problem-first, panicked-homeowner mirror) H1: Sewer Backed Up at 11 PM? You Just Found Kansas City's 5th-Generation Plumbing Family. Sub: Same-day service across Overland Park, Olathe, Lenexa, and the KC metro. Option E (warranty-first, Renovation Rachel lead) H1: Kansas City Plumbing, Backed by Five Generations and a Two-Year Warranty. Sub: Same-day sewer, drain, and water heater service. Free estimates on sewer work.

Recommendation

Lead with Option A in production. It hits all four voice anchors in two sentences and is the playbook canonical. Hold Option D as a tested variant for paid traffic emergency campaigns.

[3]

CTA Copy

Primary CTA (Hero + Final CTA + Sticky Mobile Bar)

Button text: Call (913) 963-1029 Color: Yellow #FFEA00 (emergency) Tone: Direct, immediate. Mobile: Tap-to-call wired. Touch target minimum 48x48 px. Variants for A/B if needed.

  • Call Now (913) 963-1029
  • Talk to a Plumber Now
  • Same-Day Service. Call Now.

Secondary CTA

Button text: Book Online Color: Blue #30C5FF outline Action: Opens multi-step form (service type, timing, contact). Variants.

  • Book My Visit
  • Schedule Service
  • Get a Free Estimate

Tertiary CTA

Link text: Chat with Daniel Action: Launches Daniel AI concierge (Vapi assistant e2920d04 / 913 963 9817). Variants.

  • Chat with our 24/7 plumber AI
  • Ask Daniel a Question

In-Section CTAs

Family Story section. Meet the Team (blue outline, links /about) Services Grid. Learn More (Inter 600, 14px, #30C5FF) Reviews section. Read All 384+ Google Reviews (text link, #30C5FF) Specials cards. Claim This Coupon (yellow #FFEA00 button, links /coupons)

Final CTA Block

Headline: Ready to fix it right the first time? Sub: Call Kansas City's 5th-generation plumbing family. Three-button row.

  • Call (913) 963-1029 (primary, yellow)
  • Book Online (secondary, blue outline)
  • Chat with Daniel (tertiary, text link)

Sticky Mobile Bottom Bar (always visible after first scroll)

Left: Call (913) 963-1029 (yellow icon button) Right: Book Online (blue outline button)

Microcopy Rules

  • Never "Submit." Always action verbs (Call, Book, Chat, Schedule, Claim, Read).
  • Never em dashes.
  • Phone number in monospace or tabular numerals so digits don't shift.
  • Yellow #FFEA00 reserved for primary urgency action only. One yellow button per viewport.
[4]

FAQ Seed

No FAQ seed parsed.

Source Citations (click to expand)

Homepage Source Citations

Primary source: BSP_Homepage_Redesign_Playbook.html Fetched: 2026-05-01 Reference timeline: BSP_Bricks_Mining_Full_Timeline_Mar12_Apr27.html


| Element | Source section | Notes | |---|---|---| | North-star framing ("panicked homeowner at 11 PM") | Playbook §North Star | Quoted verbatim by Robert in playbook intro. | | Hero H1 + subhead | Playbook §01 Hero | Canonical. Four voice anchors required. | | Primary CTA (913) 963-1029 yellow | Playbook §01 Hero | CLAUDE.md confirms phone. | | Trust Bar 6 chips | Playbook §02 Trust Bar | Exact order, no animation. | | Current Specials 3 cards | Playbook §03 Current Specials | Codes KC25, DRAIN99, CAMFREE. | | Services Grid 6 services | Playbook §04 Services Grid | Sewer leads. | | "A Family Trade, Not a Franchise" | Playbook §06 Family Story | MOAT section. Three paragraphs verbatim. | | How It Works 3 steps | Playbook §07 How It Works | Anxiety reduction. | | Service Areas 14 cities | Playbook §09 Service Areas | Each links to /service-areas/{slug}. | | Live Reviews | Playbook §10 Live Reviews | Live Google API feed, MOAT. | | 3 Guarantees | Playbook §11 Guarantees | Removes risk objection. | | 8 FAQs | Playbook §12 FAQ | Verbatim Q&A. | | Final CTA + multi-step form | Playbook §13 Final CTA | 3-step form spec. | | Voice rules (no em dashes, no emojis in body) | Playbook §Brand Voice Rules + CLAUDE.md | Robert preference. | | Persona angles | Playbook §Persona Copy Angles | Maps copy cues to four personas. | | 10x moat features | Playbook §10x Moat Features | Phase 2 hooks. | | Brand colors #1D1760 / #30C5FF / #FFEA00 | CLAUDE.md BSP Core Facts | Brand standard. | | NAP (12022 Blue Valley Pkwy, OP, KS 66213) | CLAUDE.md BSP Core Facts | Header/footer/schema canonical. |


Verbatim quotes preserved

  • "Kansas City's 5th-Generation Plumbing Family. Sewer, Drain & Water Heater Experts." (H1)
  • "A Family Trade, Not a Franchise." (Section 06 H2)
  • "That is not a marketing story. That is our kitchen-table story." (Section 06 ¶2)
  • "Ready to fix it right the first time?" (Section 13 headline)

Edits from playbook

  • "Kalen Barker is a fourth-generation master plumber." softened to "Our master plumber is fourth generation." This aligns with feedback_kalen_name_removal.md (master plumber, not Kalen) for body copy. Family/lineage credit retained.
  • All em dashes replaced with periods or commas per Robert preference.
Generated BSP Session 9 Track D Phase 3 · sources preserved in /opt/nexus/nexus/scripts/output/audrey_copy/homepage/ · backups in /tmp/playbook_*_pre_session_9_*.html