Response:
# Widget Customization Specification: Mobile Mechanic Business

Here's a complete, production-ready configuration for a mobile mechanic widget. I've designed this to feel authentic to Australian tradies—professional but approachable, with automotive-inspired branding that builds trust.

```json
{
  "widget": {
    "version": "2.0",
    "industry": "automotive",
    "businessType": "mobile_mechanic"
  },
  "colors": {
    "primary": "#1E3A5F",
    "primaryDark": "#152B47",
    "primaryLight": "#2A4A73",
    "secondary": "#F5F7FA",
    "secondaryDark": "#E8ECF1",
    "accent": "#F59E0B",
    "accentHover": "#D97706",
    "accentLight": "#FCD34D",
    "textPrimary": "#1F2937",
    "textSecondary": "#6B7280",
    "textInverse": "#FFFFFF",
    "border": "#E5E7EB",
    "success": "#10B981",
    "error": "#EF4444",
    "warning": "#F59E0B"
  },
  "darkMode": {
    "primary": "#F59E0B",
    "primaryDark": "#D97706",
    "primaryLight": "#FCD34D",
    "secondary": "#1F2937",
    "secondaryDark": "#111827",
    "accent": "#1E3A5F",
    "accentHover": "#2A4A73",
    "textPrimary": "#F9FAFB",
    "textSecondary": "#9CA3AF",
    "border": "#374151",
    "enabled": true,
    "autoDetect": true,
    "toggleEnabled": true
  },
  "position": {
    "desktop": {
      "corner": "bottomRight",
      "offsetX": "24px",
      "offsetY": "24px",
      "zIndex": 9999
    },
    "mobile": {
      "corner": "bottomRight",
      "offsetX": "16px",
      "offsetY": "16px",
      "fullWidth": false,
      "breakpoint": "768px"
    },
    "respectSafeAreas": true
  },
  "dimensions": {
    "launcher": {
      "width": "64px",
      "height": "64px",
      "borderRadius": "50%"
    },
    "widget": {
      "desktop": {
        "width": "400px",
        "height": "600px",
        "maxHeight": "85vh"
      },
      "mobile": {
        "width": "calc(100vw - 32px)",
        "maxWidth": "400px",
        "height": "75vh",
        "maxHeight": "700px"
      },
      "borderRadius": "16px"
    },
    "header": {
      "height": "72px"
    },
    "inputArea": {
      "height": "64px"
    }
  },
  "avatar": {
    "type": "character",
    "characterStyle": "friendlyRobot",
    "accessories": [
      {
        "type": "cap",
        "color": "#1E3A5F",
        "style": "serviceCap"
      },
      {
        "type": "wrench",
        "position": "corner",
        "color": "#F59E0B"
      }
    ],
    "face": {
      "expression": "friendly",
      "eyeColor": "#1E3A5F",
      "mouth": "smile"
    },
    "background": "gradient",
    "gradientStart": "#1E3A5F",
    "gradientEnd": "#2A4A73",
    "size": "48px",
    "borderWidth": "3px",
    "borderColor": "#F59E0B"
  },
  "typography": {
    "fontFamily": "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif",
    "fontFamilyHeading": "'Inter', sans-serif",
    "sizes": {
      "header": {
        "fontSize": "18px",
        "fontWeight": "600",
        "lineHeight": "1.3"
      },
      "subheader": {
        "fontSize": "14px",
        "fontWeight": "500",
        "lineHeight": "1.4"
      },
      "body": {
        "fontSize": "15px",
        "fontWeight": "400",
        "lineHeight": "1.5"
      },
      "caption": {
        "fontSize": "12px",
        "fontWeight": "400",
        "lineHeight": "1.4"
      },
      "button": {
        "fontSize": "15px",
        "fontWeight": "600",
        "lineHeight": "1"
      },
      "input": {
        "fontSize": "15px",
        "fontWeight": "400"
      }
    }
  },
  "buttons": {
    "primary": {
      "background": "#F59E0B",
      "backgroundHover": "#D97706",
      "backgroundActive": "#B45309",
      "textColor": "#1F2937",
      "border": "none",
      "borderRadius": "10px",
      "padding": "12px 24px",
      "boxShadow": "0 2px 8px rgba(245, 158, 11, 0.3)",
      "boxShadowHover": "0 4px 12px rgba(245, 158, 11, 0.4)",
      "transition": "all 0.2s ease"
    },
    "secondary": {
      "background": "transparent",
      "backgroundHover": "#F5F7FA",
      "textColor": "#1E3A5F",
      "border": "2px solid #1E3A5F",
      "borderRadius": "10px",
      "padding": "10px 22px"
    },
    "ghost": {
      "background": "transparent",
      "backgroundHover": "#F5F7FA",
      "textColor": "#6B7280",
      "border": "none"
    },
    "iconButton": {
      "background": "#1E3A5F",
      "backgroundHover": "#2A4A73",
      "textColor": "#FFFFFF",
      "borderRadius": "50%",
      "size": "40px"
    }
  },
  "messages": {
    "welcome": {
      "text": "G'day! 👋 I'm your mechanical mate. Need a service, got a weird noise, or stuck on the side of the road? I can book you in or answer your questions—let's get you sorted.",
      "voiceGreeting": "G'day! Need a mechanic? I'm here to help you book a service or answer any questions."
    },
    "fallback": {
      "text": "No worries, I'll pass this onto {businessName} and they'll give you a buzz. In the meantime, check out our services page or give us a call on {phoneNumber}.",
      "voiceFallback": "No worries, they'll get back to you shortly."
    },
    "offline": {
      "text": "We're currently off the tools, but you can still leave a message or book online. We'll get back to you when we're back in the workshop.",
      "showHours": true
    },
    "quickReplies": [
      "Book a service",
      "Got a question",
      "Need a quote",
      "Emergency breakdown"
    ],
    "serviceTypes": [
      "Logbook service",
      "Brakes & pads",
      "Tyres & alignment",
      "Battery replacement",
      "Oil & filters",
      "Pre-purchase inspection"
    ]
  },
  "animations": {
    "entry": {
      "type": "slideUp",
      "duration": "400ms",
      "easing": "cubic-bezier(0.34, 1.56, 0.64, 1)",
      "delay": "200ms"
    },
    "launcher": {
      "idle": {
        "type": "subtleBounce",
        "interval": "4s",
        "scale": "1.05"
      },
      "notification": {
        "type": "pulse",
        "color": "#F59E0B",
        "duration": "2s",
        "scale": "1.1"
      }
    },
    "messages": {
      "appear": {
        "type": "fadeSlide",
        "duration": "300ms",
        "stagger": "50ms"
      }
    },
    "transitions": {
      "type": "fade",
      "duration": "200ms"
    },
    "disabled": false
  },
  "industryElements": {
    "branding": {
      "icon": "wrench",
      "iconColor": "#F59E0B",
      "badge": "24/7 Available",
      "badgeColor": "#10B981"
    },
    "services": {
      "showQuickServiceButtons": true,
      "buttonStyle": "pill",
      "iconStyle": "outline"
    },
    "booking": {
      "showVehiclePrompt": true,
      "vehicleFields": ["make", "model", "year", "issue"],
      "showDateTimePicker": true,
      "showLocationInput": true,
      "locationTypes": ["home", "work", "roadside"]
    },
    "trust": {
      "showRating": true,
      "ratingValue": "4.9",
      "reviewCount": "127",
      "showLicence": true,
      "licenceText": "Licenced Mechanic"
    },
    "urgency": {
      "showEmergencyButton": true,
      "emergencyLabel": "Breakdown? Press now",
      "emergencyColor": "#EF4444"
    }
  },
  "cssVariables": {
    "--wm-primary": "#1E3A5F",
    "--wm-primary-dark": "#152B47",
    "--wm-primary-light": "#2A4A73",
    "--wm-secondary": "#F5F7FA",
    "--wm-secondary-dark": "#E8ECF1",
    "--wm-accent": "#F59E0B",
    "--wm-accent-hover": "#D97706",
    "--wm-accent-light": "#FCD34D",
    "--wm-text-primary": "#1F2937",
    "--wm-text-secondary": "#6B7280",
    "--wm-text-inverse": "#FFFFFF",
    "--wm-border": "#E5E7EB",
    "--wm-success": "#10B981",
    "--wm-error": "#EF4444",
    "--wm-warning": "#F59E0B",
    "--wm-font-family": "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif",
    "--wm-radius-sm": "8px",
    "--wm-radius-md": "12px",
    "--wm-radius-lg": "16px",
    "--wm-radius-full": "9999px",
    "--wm-shadow-sm": "0 1px 3px rgba(0,0,0,0.1)",
    "--wm-shadow-md": "0 4px 12px rgba(0,0,0,0.15)",
    "--wm-shadow-lg": "0 10px 40px rgba(0,0,0,0.2)",
    "--wm-shadow-accent": "0 4px 12px rgba(245, 158, 11, 0.4)",
    "--wm-transition": "all 0.2s ease",
    "--wm-z-index": "9999"
  },
  "darkModeCssVariables": {
    "--wm-primary": "#F59E0B",
    "--wm-primary-dark": "#D97706",
    "--wm-primary-light": "#FCD34D",
    "--wm-secondary": "#1F2937",
    "--wm-secondary-dark": "#111827",
    "--wm-accent": "#1E3A5F",
    "--wm-accent-hover": "#2A4A73",
    "--wm-text-primary": "#F9FAFB",
    "--wm-text-secondary": "#9CA3AF",
    "--wm-border": "#374151"
  },
  "accessibility": {
    "ariaLabels": {
      "launcher": "Open chat with {businessName}",
      "close": "Close chat",
      "sendMessage": "Send message",
      "microphone": "Hold to speak"
    },
    "keyboardNav": true,
    "focusVisible": true,
    "reducedMotion": "respect",
    "screenReaderAnnouncements": true
  },
  "compliance": {
    "privacyPolicy": {
      "showLink": true,
      "linkText": "Privacy Policy",
      "required": true
    },
    "cookieConsent": {
      "required": true,
      "integrationType": "implicit_on_first_interaction"
    },
    "termsAcceptance": {
      "required": true,
      "checkboxText": "I agree to the terms and privacy policy"
    }
  }
}
```

---

## Implementation Notes

### CSS Custom Properties Usage

To apply this theme, include the CSS variables in your site's stylesheet:

```css
:root {
  /* Base colors */
  --wm-primary: #1E3A5F;
  --wm-accent: #F59E0B;
  --wm-secondary: #F5F7FA;

  /* Typography */
  --wm-font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;

  /* Sizing */
  --wm-radius-md: 12px;
  --wm-radius-lg: 16px;

  /* Shadows */
  --wm-shadow-accent: 0 4px 12px rgba(245, 158, 11, 0.4);
}

/* Dark mode override */
@media (prefers-color-scheme: dark) {
  :root {
    --wm-primary: #F59E0B;
    --wm-secondary: #1F2937;
    --wm-text-primary: #F9FAFB;
  }
}
```

### Quick Service Buttons

The widget includes one-tap buttons for common mobile mechanic services. These appear as pill-shaped buttons below the welcome message:

- **Logbook service** — for regular scheduled maintenance
- **Brakes & pads** — a high-demand service for mobile mechanics
- **Tyres & alignment** — another mobile-friendly service
- **Battery replacement** — common emergency callout

### Emergency Breakdown Feature

The "Breakdown? Press now" button (red, prominent) is designed for tradies and everyday drivers stranded on the roadside. This creates immediate urgency and differentiates from competitors who bury emergency numbers.

### Australian Voice & Tone

The welcome message uses:
- **"G'day"** — classic Australian greeting
- **"Mechanical mate"** — relatable, builds rapport
- **"Sorted"** — Australian idiom for "taken care of"
- **"Got a weird noise"** — colloquial, makes the AI feel human

This isn't a corporate chatbot—it's a tradie's mate who happens to be an AI.


Response:
```json
{
  "$schema": "https://schema.sunaiva.com/widget/v1/config",
  "meta": {
    "business_type": "plasterer",
    "version": "1.0.0",
    "last_updated": "2025-01-15",
    "description": "Widget configuration for Australian plastering businesses - clean, professional, trustworthy aesthetic"
  },
  "colors": {
    "primary": "#F5F3EE",
    "primary_dark": "#E8E4DB",
    "secondary": "#1E3A5F",
    "secondary_light": "#2C5282",
    "accent": "#D4A853",
    "accent_hover": "#E5BC6A",
    "text_primary": "#1A1A1A",
    "text_secondary": "#5A5A5A",
    "text_on_dark": "#FFFFFF",
    "text_muted": "#8A8A8A",
    "border": "#D1CDC5",
    "border_focus": "#1E3A5F",
    "success": "#2D8A5F",
    "error": "#C53030",
    "overlay": "rgba(0, 0, 0, 0.5)",
    "chat_bubble_self": "#1E3A5F",
    "chat_bubble_other": "#F5F3EE",
    "chat_text_self": "#FFFFFF",
    "chat_text_other": "#1A1A1A"
  },
  "css_variables": {
    "--widget-primary": "#F5F3EE",
    "--widget-primary-dark": "#E8E4DB",
    "--widget-secondary": "#1E3A5F",
    "--widget-secondary-light": "#2C5282",
    "--widget-accent": "#D4A853",
    "--widget-accent-hover": "#E5BC6A",
    "--widget-text-primary": "#1A1A1A",
    "--widget-text-secondary": "#5A5A5A",
    "--widget-text-on-dark": "#FFFFFF",
    "--widget-text-muted": "#8A8A8A",
    "--widget-border": "#D1CDC5",
    "--widget-border-focus": "#1E3A5F",
    "--widget-success": "#2D8A5F",
    "--widget-error": "#C53030",
    "--widget-overlay": "rgba(0, 0, 0, 0.5)",
    "--widget-shadow": "0 8px 32px rgba(30, 58, 95, 0.15)",
    "--widget-shadow-hover": "0 12px 40px rgba(30, 58, 95, 0.25)",
    "--widget-radius": "16px",
    "--widget-radius-sm": "8px",
    "--widget-radius-lg": "24px",
    "--widget-font-family": "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif",
    "--widget-z-index": "9999"
  },
  "position": {
    "desktop": {
      "position": "fixed",
      "bottom": "24px",
      "right": "24px",
      "reasoning": "Bottom-right is standard for chat widgets. Right side maintains proximity to scroll bar area without interfering with main content. 24px padding keeps it away from edge while remaining accessible."
    },
    "mobile": {
      "position": "fixed",
      "bottom": "16px",
      "right": "16px",
      "reasoning": "Closer to thumb zone on mobile. Right side works better than left for right-handed users holding phone."
    }
  },
  "dimensions": {
    "launcher": {
      "desktop": {
        "width": "64px",
        "height": "64px"
      },
      "mobile": {
        "width": "56px",
        "height": "56px"
      }
    },
    "window": {
      "desktop": {
        "width": "400px",
        "height": "600px",
        "max_height": "calc(100vh - 100px)"
      },
      "mobile": {
        "width": "calc(100vw - 32px)",
        "height": "calc(100vh - 120px)",
        "max_height": "700px"
      }
    },
    "avatar": {
      "desktop": {
        "size": "48px"
      },
      "mobile": {
        "size": "40px"
      }
    }
  },
  "avatar": {
    "type": "icon",
    "style": "rounded_square",
    "icon": {
      "name": "trowel",
      "description": "Clean vector illustration of a plastering trowel, angled at 45 degrees, showing the metal blade and wooden handle. Single color in secondary color (#1E3A5F)."
    },
    "fallback": {
      "type": "initials",
      "initials": "PJ",
      "background": "#1E3A5F",
      "text_color": "#FFFFFF"
    },
    "badge": {
      "enabled": true,
      "color": "#D4A853",
      "position": "bottom_right"
    }
  },
  "welcome_message": {
    "text": "G'day! I'm your plastering assistant. Need a quote, want to know about our services, or got questions about a job? I'm here to help!",
    "voice_preview": "G'day! I'm your plastering assistant. Need a quote, want to know about our services, or got questions about a job? I'm here to help!",
    "delay_ms": 1500,
    "show_avatar": true
  },
  "animations": {
    "entry": {
      "launcher": {
        "type": "scale_bounce",
        "duration": "400ms",
        "easing": "cubic-bezier(0.68, -0.55, 0.265, 1.55)"
      },
      "window": {
        "type": "slide_fade",
        "origin": "bottom right",
        "translate_y": "20px",
        "duration": "300ms",
        "easing": "ease_out"
      }
    },
    "idle": {
      "launcher_pulse": {
        "enabled": true,
        "type": "subtle_breathe",
        "scale_range": [1, 1.05],
        "duration": "2s",
        "interval": "4s"
      },
      "notification_badge": {
        "enabled": true,
        "type": "pulse",
        "color": "#D4A853",
        "duration": "1.5s",
        "repeat": 3
      }
    },
    "interaction": {
      "button_hover": {
        "type": "scale",
        "scale": 1.02,
        "duration": "150ms"
      },
      "button_active": {
        "type": "scale",
        "scale": 0.98,
        "duration": "100ms"
      },
      "message_appear": {
        "type": "slide_fade",
        "translate_y": "10px",
        "duration": "200ms",
        "easing": "ease_out"
      }
    },
    "exit": {
      "window": {
        "type": "fade_out",
        "duration": "200ms"
      }
    }
  },
  "typography": {
    "font_family": "-apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif",
    "font_family_heading": "-apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Segoe UI', Roboto, sans-serif",
    "sizes": {
      "header": {
        "desktop": "18px",
        "mobile": "16px",
        "weight": "600",
        "line_height": "1.3"
      },
      "subheader": {
        "desktop": "14px",
        "mobile": "13px",
        "weight": "500",
        "line_height": "1.4"
      },
      "body": {
        "desktop": "15px",
        "mobile": "14px",
        "weight": "400",
        "line_height": "1.5"
      },
      "caption": {
        "desktop": "12px",
        "mobile": "11px",
        "weight": "400",
        "line_height": "1.4"
      },
      "button": {
        "desktop": "15px",
        "mobile": "14px",
        "weight": "600",
        "line_height": "1"
      },
      "input": {
        "desktop": "15px",
        "mobile": "14px",
        "weight": "400",
        "line_height": "1.5"
      }
    },
    "letter_spacing": {
      "normal": "0",
      "tight": "-0.01em",
      "wide": "0.02em"
    }
  },
  "buttons": {
    "primary": {
      "background": "#1E3A5F",
      "background_hover": "#2C5282",
      "background_active": "#152B47",
      "text": "#FFFFFF",
      "text_hover": "#FFFFFF",
      "border": "none",
      "border_radius": "12px",
      "padding": "14px 24px",
      "shadow": "0 4px 12px rgba(30, 58, 95, 0.3)",
      "shadow_hover": "0 6px 16px rgba(30, 58, 95, 0.4)"
    },
    "secondary": {
      "background": "#F5F3EE",
      "background_hover": "#E8E4DB",
      "background_active": "#DCD8CF",
      "text": "#1E3A5F",
      "text_hover": "#1E3A5F",
      "border": "2px solid #1E3A5F",
      "border_radius": "12px",
      "padding": "12px 22px"
    },
    "accent": {
      "background": "#D4A853",
      "background_hover": "#E5BC6A",
      "background_active": "#C49943",
      "text": "#1A1A1A",
      "text_hover": "#1A1A1A",
      "border": "none",
      "border_radius": "12px",
      "padding": "14px 24px",
      "shadow": "0 4px 12px rgba(212, 168, 83, 0.3)",
      "shadow_hover": "0 6px 16px rgba(212, 168, 83, 0.4)"
    },
    "quick_action": {
      "background": "#FFFFFF",
      "background_hover": "#F5F3EE",
      "text": "#1E3A5F",
      "border": "1px solid #D1CDC5",
      "border_radius": "10px",
      "padding": "12px 16px",
      "icon_size": "20px"
    },
    "close": {
      "background": "transparent",
      "background_hover": "rgba(0, 0, 0, 0.05)",
      "text": "#5A5A5A",
      "text_hover": "#1A1A1A",
      "border": "none",
      "size": "32px"
    },
    "send": {
      "background": "#1E3A5F",
      "background_hover": "#2C5282",
      "icon": "#FFFFFF",
      "icon_hover": "#FFFFFF",
      "border": "none",
      "border_radius": "50%",
      "size": "44px"
    }
  },
  "dark_mode": {
    "enabled": true,
    "colors": {
      "primary": "#1A2332",
      "primary_dark": "#141B26",
      "secondary": "#3D5A80",
      "secondary_light": "#4A6F94",
      "accent": "#E5BC6A",
      "text_primary": "#F5F3EE",
      "text_secondary": "#B0AEA8",
      "text_on_dark": "#F5F3EE",
      "text_muted": "#7A7875",
      "border": "#2A3544",
      "border_focus": "#3D5A80",
      "chat_bubble_self": "#3D5A80",
      "chat_bubble_other": "#232D3B",
      "chat_text_self": "#F5F3EE",
      "chat_text_other": "#E8E4DB"
    },
    "css_variables": {
      "--widget-primary": "#1A2332",
      "--widget-primary-dark": "#141B26",
      "--widget-secondary": "#3D5A80",
      "--widget-secondary-light": "#4A6F94",
      "--widget-accent": "#E5BC6A",
      "--widget-text-primary": "#F5F3EE",
      "--widget-text-secondary": "#B0AEA8",
      "--widget-text-on-dark": "#F5F3EE",
      "--widget-text-muted": "#7A7875",
      "--widget-border": "#2A3544",
      "--widget-border-focus": "#3D5A80",
      "--widget-shadow": "0 8px 32px rgba(0, 0, 0, 0.4)",
      "--widget-shadow-hover": "0 12px 40px rgba(0, 0, 0, 0.5)"
    },
    "detection": {
      "method": "prefers_color_scheme",
      "fallback": "system"
    }
  },
  "industry_specific": {
    "business_type": "plasterer",
    "service_categories": [
      "Wall Plastering",
      "Ceiling Plastering",
      "Cornices & Architraves",
      "Rendering",
      "Set Plastering",
      "Wet Areas",
      "Fire Rating",
      "Renovations"
    ],
    "quick_action_buttons": [
      {
        "id": "get_quote",
        "label": "Get a Quote",
        "icon": "calculator",
        "action": "start_quote_flow"
      },
      {
        "id": "our_services",
        "label": "Our Services",
        "icon": "list",
        "action": "show_services"
      },
      {
        "id": "view_portfolio",
        "label": "View Our Work",
        "icon": "image",
        "action": "show_portfolio"
      },
      {
        "id": "book_job",
        "label": "Book a Job",
        "icon": "calendar",
        "action": "start_booking"
      }
    ],
    "header": {
      "show_business_logo": true,
      "logo_position": "left",
      "show_tagline": true,
      "tagline_text": "Professional Plastering Services",
      "background_pattern": "subtle_plaster_texture",
      "accent_line": true,
      "accent_color": "#D4A853"
    },
    "fallback_responses": {
      "out_of_hours": "Thanks for reaching out! We're currently closed but we've got your message. We'll call you back tomorrow between 7am-5pm, or feel free to leave your number and we'll get back to you ASAP.",
      "emergency": "For urgent plastering jobs, please call us directly on [PHONE]. For non-urgent enquiries, leave your details and we'll get back to you shortly.",
      "quote_request": "Great, we'd love to help with your plastering job! To give you an accurate quote, we'll need a few details: What type of plastering do you need? What's the approximate area size? Any photos you can share?",
      "booking_confirmed": "Your job has been booked! We'll send you a confirmation SMS with the details. See you on the job!"
    },
    "visual_elements": {
      "icon_set": "plastering_themed


Response:
# Sunaiva Widget Customization Specification

## Scaffolder Business Theme

```json
{
  "widgetConfig": {
    "version": "1.0.0",
    "businessType": "scaffolding",
    "theme": "safety-orange-industrial"
  }
}
```

---

## 1. Color Scheme

```json
{
  "colors": {
    "primary": {
      "hex": "#FF6B00",
      "name": "Safety Orange",
      "usage": "Primary buttons, active states, avatar background",
      "rgb": "rgb(255, 107, 0)"
    },
    "primaryDark": {
      "hex": "#E55D00",
      "name": "Safety Orange Dark",
      "usage": "Hover states, pressed buttons",
      "rgb": "rgb(229, 93, 0)"
    },
    "secondary": {
      "hex": "#1A1A1A",
      "name": "Industrial Charcoal",
      "usage": "Header background, text, borders",
      "rgb": "rgb(26, 26, 26)"
    },
    "accent": {
      "hex": "#FFD600",
      "name": "High-Vis Yellow",
      "usage": "Notification badges, highlights, success states",
      "rgb": "rgb(255, 214, 0)"
    },
    "background": {
      "primary": "#FFFFFF",
      "secondary": "#F5F5F5",
      "tertiary": "#E8E8E8"
    },
    "text": {
      "primary": "#1A1A1A",
      "secondary": "#666666",
      "muted": "#999999",
      "inverted": "#FFFFFF"
    },
    "border": {
      "light": "#E0E0E0",
      "medium": "#CCCCCC"
    },
    "status": {
      "success": "#28A745",
      "error": "#DC3545",
      "warning": "#FFC107"
    }
  }
}
```

---

## 2. Widget Position

```json
{
  "position": {
    "desktop": {
      "corner": "bottom-right",
      "offsetX": "24px",
      "offsetY": "24px",
      "reasoning": "Bottom-right is the industry-standard position for chat widgets. Australian users are conditioned to look here. Keeps the widget out of the way of main content but easily accessible when needed."
    },
    "tablet": {
      "corner": "bottom-right",
      "offsetX": "20px",
      "offsetY": "20px"
    },
    "mobile": {
      "corner": "bottom-right",
      "offsetX": "16px",
      "offsetY": "16px",
      "note": "On mobile, the floating button remains bottom-right but expands to near-fullscreen when opened"
    },
    "zIndex": {
      "widget": "9999",
      "overlay": "9998"
    }
  }
}
```

---

## 3. Widget Size

```json
{
  "dimensions": {
    "desktop": {
      "width": "380px",
      "height": "auto",
      "minHeight": "520px",
      "maxHeight": "680px"
    },
    "tablet": {
      "width": "340px",
      "minHeight": "480px",
      "maxHeight": "600px"
    },
    "mobile": {
      "width": "calc(100vw - 32px)",
      "height": "calc(100vh - 100px)",
      "maxWidth": "420px",
      "borderRadius": "16px 16px 0 0"
    },
    "floatingButton": {
      "width": "60px",
      "height": "60px",
      "mobileSize": "56px"
    },
    "header": {
      "height": "64px"
    },
    "inputArea": {
      "height": "72px"
    }
  }
}
```

---

## 4. Avatar / Icon

```json
{
  "avatar": {
    "type": "icon",
    "iconType": "hard-hat-scaffold",
    "description": "A stylized safety hard hat with subtle scaffolding structure in the background",
    "design": {
      "primary": {
        "shape": "circle",
        "size": "40px",
        "backgroundColor": "#FF6B00",
        "border": "2px solid #FFFFFF",
        "shadow": "0 2px 8px rgba(0,0,0,0.15)"
      },
      "icon": {
        "style": "outline",
        "color": "#FFFFFF",
        "size": "22px",
        "strokeWidth": "2"
      },
      "statusIndicator": {
        "type": "online-dot",
        "position": "bottom-right of avatar",
        "color": "#28A745",
        "size": "12px",
        "border": "2px solid #FF6B00"
      }
    },
    "fallback": {
      "type": "initials",
      "initials": "SA",
      "background": "#FF6B00",
      "textColor": "#FFFFFF",
      "font": "bold 16px system-ui"
    }
  },
  "floatingButtonIcon": {
    "default": "chat-bubble",
    "open": "close-x",
    "size": "24px",
    "color": "#FFFFFF"
  }
}
```

---

## 5. Welcome Message

```json
{
  "messages": {
    "greeting": {
      "voiceGreeting": "G'day! Thanks for calling [Business Name]. I'm their AI assistant — I can help you get a scaffolding quote, check availability, or book a job. What do you need?",
      "textGreeting": "G'day! 👋\n\nI'm the AI assistant for [Business Name]. I can help you with:\n\n• Get a quote for scaffolding\n• Check availability for your job\n• Book a time that suits you\n\nWhat are you working on today?"
    },
    "quickReplies": [
      "Get a quote",
      "Check availability",
      "Book a job",
      "Ask a question"
    ],
    "fallback": {
      "voice": "No worries, I've got your details. Someone from the team will give you a call back within the hour.",
      "text": "No worries 👍 I've saved your details. Someone from the team will be in touch shortly."
    },
    "offline": {
      "voice": "Hey, looks like we're currently on another job. Leave your number and we'll call you back when we're free.",
      "text": "👷 We're currently on a job!\n\nLeave your number and we'll call you back ASAP."
    }
  },
  "localisation": {
    "language": "en-AU",
    "timezone": "Australia/Sydney",
    "dateFormat": "DD/MM/YYYY",
    "timeFormat": "h:mm A"
  }
}
```

---

## 6. Animations

```json
{
  "animations": {
    "entry": {
      "floatingButton": {
        "type": "scale-bounce",
        "duration": "0.4s",
        "easing": "cubic-bezier(0.68, -0.55, 0.265, 1.55)",
        "keyframe": {
          "0%": "transform: scale(0); opacity: 0;",
          "80%": "transform: scale(1.1);",
          "100%": "transform: scale(1); opacity: 1;"
        }
      },
      "widgetPanel": {
        "type": "slide-fade-up",
        "duration": "0.3s",
        "delay": "0.1s",
        "easing": "ease-out",
        "keyframe": {
          "0%": "transform: translateY(20px); opacity: 0;",
          "100%": "transform: translateY(0); opacity: 1;"
        }
      }
    },
    "idle": {
      "floatingButton": {
        "type": "subtle-pulse",
        "interval": "3s",
        "duration": "1.5s",
        "keyframe": {
          "0%, 100%": "transform: scale(1);",
          "50%": "transform: scale(1.05);"
        },
        "note": "Only plays when there are unread messages"
      },
      "avatar": {
        "type": "breathing-dot",
        "interval": "2s",
        "duration": "2s",
        "note": "The online status indicator pulses subtly"
      }
    },
    "notification": {
      "type": "notification-pulse",
      "duration": "0.6s",
      "iteration": "infinite",
      "until": "user engages",
      "keyframe": {
        "0%": "box-shadow: 0 0 0 0 rgba(255, 107, 0, 0.4);",
        "70%": "box-shadow: 0 0 0 12px rgba(255, 107, 0, 0);",
        "100%": "box-shadow: 0 0 0 0 rgba(255, 107, 0, 0);"
      }
    },
    "micro": {
      "typing": {
        "type": "bouncing-dots",
        "dots": 3,
        "dotSize": "8px",
        "color": "#999999",
        "interval": "0.3s"
      },
      "messageAppear": {
        "type": "fade-slide-up",
        "duration": "0.25s",
        "easing": "ease-out"
      },
      "buttonHover": {
        "type": "scale",
        "duration": "0.15s",
        "scale": "1.02"
      }
    }
  }
}
```

---

## 7. Typography

```json
{
  "typography": {
    "fontFamily": {
      "primary": "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif",
      "monospace": "'SF Mono', 'Monaco', 'Inconsolata', monospace",
      "fallback": "system-ui, -apple-system, sans-serif"
    },
    "sizes": {
      "header": {
        "fontSize": "18px",
        "lineHeight": "1.3",
        "fontWeight": "600",
        "letterSpacing": "-0.01em"
      },
      "subheader": {
        "fontSize": "14px",
        "lineHeight": "1.4",
        "fontWeight": "500"
      },
      "body": {
        "fontSize": "15px",
        "lineHeight": "1.5",
        "fontWeight": "400"
      },
      "caption": {
        "fontSize": "12px",
        "lineHeight": "1.4",
        "fontWeight": "400"
      },
      "button": {
        "fontSize": "14px",
        "lineHeight": "1",
        "fontWeight": "600",
        "letterSpacing": "0.01em"
      },
      "input": {
        "fontSize": "15px",
        "lineHeight": "1.5"
      }
    },
    "weights": {
      "regular": 400,
      "medium": 500,
      "semibold": 600,
      "bold": 700
    },
    "textStyles": {
      "welcomeTitle": {
        "font": "600 18px/1.3 Inter",
        "color": "#1A1A1A"
      },
      "welcomeSubtitle": {
        "font": "400 14px/1.4 Inter",
        "color": "#666666"
      },
      "messageText": {
        "font": "400 15px/1.5 Inter",
        "color": "#1A1A1A"
      },
      "timestamp": {
        "font": "400 11px/1.2 Inter",
        "color": "#999999"
      },
      "quickReply": {
        "font": "500 13px/1 Inter",
        "color": "#FF6B00"
      }
    }
  }
}
```

---

## 8. Button Styles

```json
{
  "buttons": {
    "primary": {
      "background": "#FF6B00",
      "backgroundHover": "#E55D00",
      "backgroundActive": "#CC5200",
      "text": "#FFFFFF",
      "textHover": "#FFFFFF",
      "border": "none",
      "borderRadius": "8px",
      "shadow": "0 2px 8px rgba(255, 107, 0, 0.25)",
      "shadowHover": "0 4px 12px rgba(255, 107, 0, 0.35)",
      "padding": "12px 20px",
      "transition": "all 0.2s ease"
    },
    "secondary": {
      "background": "#F5F5F5",
      "backgroundHover": "#E8E8E8",
      "text": "#1A1A1A",
      "border": "1px solid #E0E0E0",
      "borderRadius": "8px",
      "padding": "12px 20px"
    },
    "quickReply": {
      "background": "#FFF4E6",
      "backgroundHover": "#FFE8CC",
      "text": "#E55D00",
      "border": "1px solid #FF6B00",
      "borderRadius": "20px",
      "padding": "8px 16px",
      "fontSize": "13px",
      "fontWeight": "500"
    },
    "icon": {
      "size": "20px",
      "color": "#666666",
      "colorHover": "#1A1A1A",
      "background": "transparent",
      "backgroundHover": "#F5F5F5",
      "borderRadius": "8px",
      "padding": "8px"
    },
    "sendMessage": {
      "background": "#FF6B00",
      "backgroundHover": "#E55D00",
      "iconColor": "#FFFFFF",
      "size": "36px",
      "borderRadius": "50%",
      "shadow": "0 2px 6px rgba(255, 107, 0, 0.3)"
    },
    "callNow": {
      "background": "#28A745",
      "backgroundHover": "#218838",
      "text": "#FFFFFF",
      "iconColor": "#FFFFFF",
      "borderRadius": "8px",
      "padding": "12px 20px",
      "fullWidth": true,
      "shadow": "0 2px 8px rgba(40, 167, 69, 0.25)"
    }
  },
  "input": {
    "background": "#FFFFFF",
    "border": "1px solid #E0E0E0",
    "borderFocus": "2px solid #FF6B00",
    "borderRadius": "24px",
    "padding": "12px 16px",
    "placeholder": "#999999",
    "textColor": "#1A1A1A",
    "height": "48px"
  }
}
```

---

## 9. Dark Mode Variant

```json
{
  "darkMode": {
    "enabled": true,
    "trigger": "system-preference",
    "manualToggle": true,
    "colors": {
      "background": {
        "primary": "#1A1A1A",
        "secondary": "#252525",
        "tertiary": "#2F2F2F"
      },
      "text": {
        "primary": "#FFFFFF",
        "secondary": "#B3B3B3",
        "muted": "#808080"
      },
      "border": {
        "light": "#333333",
        "medium": "#404040"
      },
      "buttons": {
        "primary": {
          "background": "#FF6B00",
          "backgroundHover": "#FF7A1A"
        },
        "secondary": {
          "background": "#2F2F2F",
          "backgroundHover": "#3D3D3D",
          "border": "1px solid #404040"
        }
      },
      "input": {
        "background": "#252525",
        "


Widget design for septic tank specialist

Response:
```json
{
  "$schema": "https://sunaiva.com/schema/widget-config.json",
  "version": "1.0.0",
  "business_type": "septic_tank_specialist",

  "css_variables": {
    "--sa-primary": "#1B5E20",
    "--sa-primary-light": "#2E7D32",
    "--sa-primary-dark": "#0D3D12",
    "--sa-secondary": "#4FC3F7",
    "--sa-accent": "#FF6F00",
    "--sa-accent-hover": "#FF8F00",
    "--sa-background": "#FAFAFA",
    "--sa-surface": "#FFFFFF",
    "--sa-surface-elevated": "#FFFFFF",
    "--sa-text-primary": "#1A1A1A",
    "--sa-text-secondary": "#5C5C5C",
    "--sa-text-muted": "#8A8A8A",
    "--sa-border": "#E0E0E0",
    "--sa-border-focus": "#1B5E20",
    "--sa-success": "#43A047",
    "--sa-error": "#E53935",
    "--sa-shadow": "rgba(0, 0, 0, 0.15)",
    "--sa-shadow-elevated": "rgba(0, 0, 0, 0.25)",
    "--sa-radius-sm": "8px",
    "--sa-radius-md": "12px",
    "--sa-radius-lg": "16px",
    "--sa-radius-xl": "24px"
  },

  "widget": {
    "position": {
      "placement": "bottom-right",
      "offset": {
        "x": 24,
        "y": 24
      },
      "z_index": 9999,
      "reasoning": "Bottom-right placement is optimal for voice widgets as it stays visible without obscuring main content, aligns with user's natural reading flow on desktop, and provides easy thumb access on mobile. The 24px offset ensures it doesn't touch screen edges."
    },

    "dimensions": {
      "desktop": {
        "width": 380,
        "height": "auto",
        "max_height": 560,
        "min_height": 400
      },
      "mobile": {
        "width": "calc(100vw - 32px)",
        "height": "calc(100vh - 120px)",
        "max_height": 640,
        "position": "bottom-center",
        "offset": {
          "x": 0,
          "y": 16
        },
        "radius": "16px 16px 0 0"
      },
      "toggle_button": {
        "size": 64,
        "icon_size": 28
      }
    },

    "avatar": {
      "enabled": true,
      "style": "friendly_character",
      "description": "A friendly, approachable cartoon plumber figure wearing an Aussie work singlet, with a respectful but knowledgeable expression. Short sleeves showing forearms, maybe a subtle pump/valve icon in the background. Soft rounded edges, no harsh lines.",
      "fallback_icon": "wrench_and_drop",
      "icon_color": "#FFFFFF",
      "background_color": "--sa-primary",
      "animation": "subtle_bounce_on_idle"
    },

    "typography": {
      "font_family": "'Nunito', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif",
      "font_weight_normal": 400,
      "font_weight_medium": 600,
      "font_weight_bold": 700,
      "sizes": {
        "header_large": "20px",
        "header_medium": "18px",
        "header_small": "16px",
        "body": "15px",
        "body_small": "14px",
        "caption": "12px",
        "button": "15px"
      },
      "line_heights": {
        "header": 1.3,
        "body": 1.5,
        "caption": 1.4
      },
      "letter_spacing": {
        "header": "-0.01em",
        "body": "0",
        "caption": "0.02em"
      }
    },

    "welcome_message": {
      "text": "G'day! Septic Solutions here. Can't answer right now? I can help you with booking a pump-out, checking your system, or getting a quote. What do you need?",
      "voice_greeting": "G'day mate, thanks for visiting Septic Solutions. I'm here to help you out - whether you need a pump-out booked, have a blocked drain, or want a quote on a new system. What's on your mind?",
      "show_typing_indicator": true,
      "typing_duration_ms": 800
    },

    "animations": {
      "entry": {
        "type": "slide_fade",
        "direction": "scale_from_bottom",
        "duration_ms": 400,
        "easing": "cubic-bezier(0.34, 1.56, 0.64, 1)"
      },
      "exit": {
        "type": "fade_out",
        "duration_ms": 200
      },
      "idle": {
        "type": "subtle_pulse",
        "trigger_after_ms": 8000,
        "element": "toggle_button",
        "duration_ms": 2000,
        "interval_ms": 4000
      },
      "notification": {
        "type": "attention_pulse",
        "color": "--sa-accent",
        "rings": 3,
        "duration_ms": 1500
      },
      "widget_open": {
        "type": "spring_slide",
        "from": "bottom",
        "stiffness": 300,
        "damping": 25,
        "duration_ms": 450
      },
      "message_appear": {
        "type": "fade_slide_up",
        "duration_ms": 250,
        "stagger_ms": 50
      },
      "button_hover": {
        "type": "scale",
        "scale": 1.02,
        "duration_ms": 150
      }
    },

    "buttons": {
      "primary": {
        "background": "--sa-primary",
        "background_hover": "--sa-primary-light",
        "text": "#FFFFFF",
        "border": "none",
        "border_radius": "--sa-radius-md",
        "padding": "14px 24px",
        "font_weight": "600",
        "shadow": "0 4px 12px rgba(27, 94, 32, 0.3)",
        "shadow_hover": "0 6px 16px rgba(27, 94, 32, 0.4)",
        "transition": "all 0.2s ease"
      },
      "secondary": {
        "background": "transparent",
        "background_hover": "--sa-primary",
        "text": "--sa-primary",
        "text_hover": "#FFFFFF",
        "border": "2px solid --sa-primary",
        "border_radius": "--sa-radius-md",
        "padding": "12px 22px",
        "font_weight": "600",
        "transition": "all 0.2s ease"
      },
      "call_now": {
        "background": "--sa-accent",
        "background_hover": "--sa-accent-hover",
        "text": "#FFFFFF",
        "border": "none",
        "border_radius": "--sa-radius-lg",
        "padding": "16px 28px",
        "font_weight": "700",
        "font_size": "16px",
        "icon": "phone",
        "icon_position": "left",
        "shadow": "0 4px 16px rgba(255, 111, 0, 0.4)",
        "shadow_hover": "0 6px 20px rgba(255, 111, 0, 0.5)"
      },
      "quick_action": {
        "background": "#F5F5F5",
        "background_hover": "#EEEEEE",
        "text": "--sa-text-primary",
        "border": "1px solid --sa-border",
        "border_radius": "--sa-radius-lg",
        "padding": "12px 16px",
        "font_size": "14px",
        "font_weight": "500",
        "gap": "8px"
      },
      "close": {
        "size": 32,
        "icon_size": 20,
        "background": "transparent",
        "background_hover": "#F0F0F0",
        "color": "--sa-text-muted",
        "color_hover": "--sa-text-primary",
        "border_radius": "50%"
      }
    },

    "dark_mode": {
      "enabled": true,
      "media_query": "(prefers-color-scheme: dark)",
      "override_business_hours": false,
      "variables": {
        "--sa-primary": "#4CAF50",
        "--sa-primary-light": "#66BB6A",
        "--sa-primary-dark": "#388E3C",
        "--sa-secondary": "#81D4FA",
        "--sa-accent": "#FFB74D",
        "--sa-accent-hover": "#FFA726",
        "--sa-background": "#121212",
        "--sa-surface": "#1E1E1E",
        "--sa-surface-elevated": "#2D2D2D",
        "--sa-text-primary": "#F5F5F5",
        "--sa-text-secondary": "#B0B0B0",
        "--sa-text-muted": "#808080",
        "--sa-border": "#3D3D3D",
        "--sa-border-focus": "#4CAF50",
        "--sa-shadow": "rgba(0, 0, 0, 0.4)",
        "--sa-shadow-elevated": "rgba(0, 0, 0, 0.6)"
      },
      "adjustments": {
        "avatar_background": "#2D5A3D",
        "button_primary_shadow": "0 4px 12px rgba(76, 175, 80, 0.3)",
        "toggle_button_glow": "0 0 20px rgba(76, 175, 80, 0.4)"
      }
    },

    "industry_specific": {
      "business_type": "septic_tank_specialist",

      "color_associations": {
        "primary_green": "Represents: healthy grass, environmental responsibility, sanitation, trust",
        "water_blue": "Represents: drainage, water systems, cleanliness",
        "safety_orange": "Represents: construction, warning, attention (common in trade signage)"
      },

      "iconography": {
        "primary": "septic_tank_with_grass",
        "alternatives": [
          "pump_truck",
          "drainage_pipe",
          "wastewater_filter",
          "compliance_sticker"
        ],
        "category_icons": {
          "pump_out": "truck_pump",
          "repairs": "wrench_pipe",
          "installation": "tank_diagram",
          "maintenance": "calendar_check",
          "emergency": "alert_triangle"
        }
      },

      "quick_action_buttons": {
        "suggested": [
          {
            "id": "book_pump_out",
            "label": "Book Pump-Out",
            "icon": "calendar",
            "action": "book_appointment"
          },
          {
            "id": "get_quote",
            "label": "Get a Quote",
            "icon": "document",
            "action": "start_quote_flow"
          },
          {
            "id": "service_enquiry",
            "label": "Service Enquiry",
            "icon": "message",
            "action": "general_enquiry"
          },
          {
            "id": "call_now",
            "label": "Call Now",
            "icon": "phone",
            "action": "initiate_call",
            "style": "call_now"
          }
        ],
        "display": "grid_2x2",
        "show_on": "widget_open"
      },

      "suggested_questions": {
        "header": "Common Questions",
        "items": [
          "How much does a pump-out cost?",
          "Do you service my area?",
          "What works can you do?",
          "Do you do emergency callouts?",
          "Need a new septic system?",
          "Having septic problems?"
        ],
        "max_display": 4
      },

      "conversation_flows": {
        "pump_out_booking": {
          "trigger_keywords": ["pump", "empty", "full", "service"],
          "required_info": ["address", "tank_type", "access"],
          "optional_info": ["preferred_date", "property_access_notes"]
        },
        "emergency": {
          "trigger_keywords": ["blocked", "overflowing", "emergency", "urgent", "backed up", "not working"],
          "priority": "high",
          "escalation": "phone_call"
        },
        "quote_request": {
          "trigger_keywords": ["quote", "price", "cost", "new system", "install"],
          "required_info": ["address", "system_type_needed", "property_details"],
          "fallback": "callback_request"
        }
      },

      "visual_elements": {
        "header_decoration": {
          "type": "subtle_grass_pattern",
          "color": "rgba(27, 94, 32, 0.1)",
          "position": "top",
          "height": "4px"
        },
        "status_indicators": {
          "available": {
            "color": "#4CAF50",
            "label": "Available Now"
          },
          "away": {
            "color": "#FF9800",
            "label": "We'll Call Back"
          },
          "busy": {
            "color": "#2196F3",
            "label": "On Another Call"
          }
        },
        "trust_elements": {
          "show_license_number": true,
          "show_accreditation": true,
          "show_local_area": true
        }
      },

      "local_context": {
        "australian_regions": {
          "common_terms": [
            "off-mains",
            "onsite wastewater",
            "AWTS",
            "aerated wastewater treatment system",
            "soakage",
            "absorption trench"
          ],
          "licensing": "Show QBCC/contractor licence where relevant"
        },
        "typical_concerns": [
          "System blocked or backing up",
          "Tank needs pumping",
          "New system installation cost",
          "Compliance/conversion requirements",
          "Smell or drainage issues"
        ],
        "response_templates": {
          "not_available": "G'day, we're currently on the tools but we'll get back to you within the hour. For urgent jobs give us a ring on [phone].",
          "after_hours": "Thanks for reaching out. We're currently closed but leave your details and we'll sort you out first thing tomorrow.",
          "out_of_area": "We service [suburb] and surrounds - if you're a bit further out let us know your address and we can see what we can do."
        }
      }
    },

    "accessibility": {
      "aria_labels": {
        "toggle_button": "Open chat with Septic Solutions AI Assistant",
        "close_button": "Close chat widget",
        "send_message": "Send message",
        "call_button": "Call Septic Solutions now"
      },
      "keyboard_navigation": true,
      "focus_trapping": true,
      "screen_reader_announcements": true,
      "minimum_touch_target": 44
    },

    "performance": {
      "lazy_load": true,
      "preload_avatar": true,
      "animation_reduced_motion": "respect_system_setting"
    }
  },

  "metadata": {
    "config_created": "2024-01-15",
    "config_version": "1.0",
    "intended_for": ["plumbers", "drainers", "septic_specialists", "wastewater_contractors"],
    "australian_market": true,
    "notes": "Configuration designed for Australian septic tank specialists. Green primary colour evokes healthy ground/environmental responsibility. Quick action buttons prioritised for pump-out bookings and emergency enquiries - the most common use cases for this trade. Dark mode fully supported with appropriate contrast ratios."
  }
}
```


Response:
# Widget Customization Specification: Shed Builder Business

Here's the complete configuration object for an Australian shed builder website widget. This spec balances industrial/trade aesthetics with functional UI design.

```json
{
  "widget": {
    "id": "shed-builder-spec-v1",
    "version": "1.0.0",
    "lastUpdated": "2025-01-15"
  },

  "colorScheme": {
    "primary": {
      "name": "Rust Orange",
      "hex": "#C45C26",
      "usage": "Header background, primary buttons, accent elements",
      "rationale": "Reflects Colorbond shed colours (Dune, Ironstone) while maintaining high visibility for CTAs"
    },
    "secondary": {
      "name": "Steel Grey",
      "hex": "#4A4A4A",
      "usage": "Body text, secondary elements, borders",
      "rationale": "Mimics galvalume steel, industrial and professional"
    },
    "accent": {
      "name": "Safety Orange",
      "hex": "#FF6B35",
      "usage": "Notification badges, important highlights, hover states",
      "rationale": "Construction industry standard for attention/danger, creates urgency"
    },
    "background": {
      "light": {
        "primary": "#FAFAFA",
        "secondary": "#FFFFFF",
        "tertiary": "#F5F5F0"
      },
      "dark": {
        "primary": "#1A1A1A",
        "secondary": "#2D2D2D",
        "tertiary": "#3A3A3A"
      }
    },
    "text": {
      "light": {
        "primary": "#1A1A1A",
        "secondary": "#4A4A4A",
        "muted": "#7A7A7A"
      },
      "dark": {
        "primary": "#FFFFFF",
        "secondary": "#E0E0E0",
        "muted": "#A0A0A0"
      }
    },
    "status": {
      "online": "#28A745",
      "busy": "#FFC107",
      "offline": "#6C757D"
    }
  },

  "position": {
    "desktop": {
      "corner": "bottom-right",
      "offset": {
        "x": "24px",
        "y": "24px"
      },
      "zIndex": 9999
    },
    "mobile": {
      "corner": "bottom-right",
      "offset": {
        "x": "16px",
        "y": "16px"
      },
      "zIndex": 9999
    },
    "reasoning": "Bottom-right placement follows established UX patterns (like Intercom, Drift). For shed builder sites, users typically scroll through project galleries and pricing info before contacting - widget remains accessible without obstructing content."
  },

  "dimensions": {
    "desktop": {
      "width": "380px",
      "minHeight": "520px",
      "maxHeight": "680px",
      "borderRadius": "16px"
    },
    "mobile": {
      "width": "calc(100vw - 32px)",
      "maxWidth": "400px",
      "minHeight": "calc(100vh - 120px)",
      "maxHeight": "700px",
      "borderRadius": "16px"
    },
    "floatingButton": {
      "width": "64px",
      "height": "64px",
      "borderRadius": "50%",
      "iconSize": "28px"
    }
  },

  "avatar": {
    "type": "icon",
    "style": "custom",
    "design": {
      "description": "A friendly, minimalist hard hat icon with subtle 3D depth, representing a tradie/site supervisor",
      "elements": {
        "helmet": {
          "shape": "rounded dome with slight peak",
          "color": "#FFD700",
          "stroke": "#C45C26"
        },
        "face": {
          "style": "abstract/geometric - no detailed features",
          "background": "circular gradient from #C45C26 to #FF6B35"
        },
        "accessories": "reflective strip on helmet in #FFFFFF"
      }
    },
    "animation": {
      "idle": "gentle floating (translateY 2px, 3s ease-in-out infinite)",
      "speaking": "pulsing glow effect (box-shadow expand/contract)",
      "listening": "waveform bars animation"
    },
    "fallback": "generic person silhouette in #4A4A4A"
  },

  "welcomeMessage": {
    "text": "G'day! I'm your shed specialist. Need a quote, want to see our range, or ready to book a build?",
    "voiceGreeting": "G'day mate, welcome to [Business Name]. I'm here to help with your shed enquiry. Would you like a quote, want to browse our builds, or are you ready to book something in?",
    "contextHints": ["custom sheds", "garages", "barns", "colorbond colours", " kit sheds", "container shelters"],
    "delay": {
      "displayAfter": "0ms",
      "autoPlayVoice": "2000ms"
    }
  },

  "animations": {
    "entry": {
      "type": "slideUpFade",
      "duration": "400ms",
      "easing": "cubic-bezier(0.16, 1, 0.3, 1)",
      "transform": {
        "from": "translateY(20px) scale(0.95)",
        "to": "translateY(0) scale(1)"
      },
      "opacity": {
        "from": 0,
        "to": 1
      }
    },
    "idle": {
      "type": "float",
      "duration": "3000ms",
      "transform": "translateY(-3px)",
      "easing": "ease-in-out"
    },
    "notification": {
      "type": "pulse",
      "duration": "2000ms",
      "iteration": "infinite",
      "properties": {
        "scale": [1, 1.1, 1],
        "boxShadow": [
          "0 0 0 0 rgba(255, 107, 53, 0.7)",
          "0 0 0 12px rgba(255, 107, 53, 0)",
          "0 0 0 0 rgba(255, 107, 53, 0)"
        ]
      }
    },
    "exit": {
      "type": "fadeScale",
      "duration": "200ms",
      "easing": "ease-out",
      "transform": "scale(0.95)",
      "opacity": 0
    },
    "transitions": {
      "chatToCall": "300ms crossfade",
      "buttonHover": "150ms ease",
      "messageAppear": "200ms slideUp"
    }
  },

  "typography": {
    "fontFamily": {
      "primary": "'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
      "monospace": "'JetBrains Mono', 'Fira Code', monospace"
    },
    "sizes": {
      "header": {
        "desktop": "20px",
        "mobile": "18px",
        "weight": 700,
        "lineHeight": 1.3
      },
      "subheader": {
        "desktop": "16px",
        "mobile": "15px",
        "weight": 600,
        "lineHeight": 1.4
      },
      "body": {
        "desktop": "15px",
        "mobile": "14px",
        "weight": 400,
        "lineHeight": 1.6
      },
      "caption": {
        "desktop": "12px",
        "mobile": "11px",
        "weight": 500,
        "lineHeight": 1.4,
        "letterSpacing": "0.02em"
      },
      "button": {
        "desktop": "15px",
        "mobile": "14px",
        "weight": 600,
        "lineHeight": 1
      }
    }
  },

  "buttonStyles": {
    "primary": {
      "background": "#C45C26",
      "color": "#FFFFFF",
      "border": "none",
      "borderRadius": "12px",
      "padding": "14px 24px",
      "fontWeight": 600,
      "hover": {
        "background": "#A84D1F",
        "transform": "translateY(-1px)",
        "boxShadow": "0 4px 12px rgba(196, 92, 38, 0.3)"
      },
      "active": {
        "background": "#8B3F19",
        "transform": "translateY(0)"
      }
    },
    "secondary": {
      "background": "transparent",
      "color": "#C45C26",
      "border": "2px solid #C45C26",
      "borderRadius": "12px",
      "padding": "12px 22px",
      "fontWeight": 600,
      "hover": {
        "background": "rgba(196, 92, 38, 0.08)",
        "transform": "translateY(-1px)"
      }
    },
    "ghost": {
      "background": "transparent",
      "color": "#4A4A4A",
      "border": "none",
      "borderRadius": "8px",
      "padding": "8px 12px",
      "fontWeight": 500,
      "hover": {
        "background": "rgba(0, 0, 0, 0.05)"
      }
    },
    "quickReply": {
      "background": "#F5F5F0",
      "color": "#1A1A1A",
      "border": "1px solid #E0E0E0",
      "borderRadius": "20px",
      "padding": "10px 16px",
      "fontSize": "14px",
      "fontWeight": 500,
      "hover": {
        "background": "#FFFFFF",
        "borderColor": "#C45C26",
        "color": "#C45C26"
      }
    },
    "icon": {
      "size": "44px",
      "borderRadius": "50%",
      "background": "#C45C26",
      "color": "#FFFFFF",
      "hover": {
        "background": "#A84D1F",
        "transform": "scale(1.05)"
      }
    }
  },

  "darkMode": {
    "enabled": true,
    "trigger": {
      "manual": true,
      "auto": {
        "enabled": true,
        "detectSystemPreference": true
      }
    },
    "overrides": {
      "background": {
        "primary": "#1A1A1A",
        "secondary": "#2D2D2D",
        "tertiary": "#3A3A3A"
      },
      "text": {
        "primary": "#FFFFFF",
        "secondary": "#E0E0E0",
        "muted": "#A0A0A0"
      },
      "borders": "rgba(255, 255, 255, 0.1)",
      "buttons": {
        "primary": {
          "background": "#FF6B35",
          "hover": "#E55A2B"
        },
        "quickReply": {
          "background": "#3A3A3A",
          "borderColor": "#4A4A4A"
        }
      },
      "avatar": {
        "glow": "rgba(255, 107, 53, 0.4)"
      }
    }
  },

  "industrySpecific": {
    "shedBuilder": {
      "quickActions": [
        {
          "id": "get-quote",
          "label": "Get a Quote",
          "icon": "calculator",
          "color": "#C45C26"
        },
        {
          "id": "view-range",
          "label": "View Range",
          "icon": "grid",
          "color": "#4A4A4A"
        },
        {
          "id": "colorbond-colours",
          "label": "Colour Guide",
          "icon": "palette",
          "color": "#2196F3"
        },
        {
          "id": "book-consultation",
          "label": "Book Site Visit",
          "icon": "calendar",
          "color": "#28A745"
        }
      ],
      "suggestedQuestions": [
        "How much does a 6x6 garage cost?",
        "What Colorbond colours do you have?",
        "Do you do council approvals?",
        "How long does a build take?",
        "Do you deliver to regional NSW?",
        "Can you match my existing shed?"
      ],
      "contextData": {
        "commonSizes": ["6x6", "9x6", "12x6", "18x9", "24x12"],
        "typicalProjects": ["Garage", "Carport", "Farm shed", "Workshop", "Barn", "Storage shed", "Container shelter"],
        "locationPhrases": ["local to you", "in your area", "across the region"]
      },
      "customStyles": {
        "headerBadge": {
          "text": "Aussie Made",
          "icon": "flag",
          "background": "#28A745",
          "color": "#FFFFFF"
        },
        "accentGraphics": [
          "subtle blueprint grid pattern in background (opacity 0.03)",
          "tool silhouette watermark on welcome card (opacity 0.05)"
        ]
      }
    },
    "conversationFlow": {
      "openingOptions": [
        "I'm looking at getting a shed built",
        "Need a quote for a garage",
        "What sizes do you do?",
        "How long until you can build?"
      ],
      "qualifyingQuestions": [
        "What size shed are you looking at?",
        "Is it for residential or farm use?",
        "Where abouts are you located?",
        "Do you need council approval?"
      ],
      "closingPhrases": [
        "I'll get that quote over to you shortly",
        "The boss will give you a ring tomorrow",
        "See you on site!"
      ]
    }
  },

  "cssCustomProperties": {
    "--sb-widget-primary": "#C45C26",
    "--sb-widget-secondary": "#4A4A4A",
    "--sb-widget-accent": "#FF6B35",
    "--sb-widget-bg": "#FAFAFA",
    "--sb-widget-bg-secondary": "#FFFFFF",
    "--sb-widget-text": "#1A1A1A",
    "--sb-widget-text-muted": "#7A7A7A",
    "--sb-widget-border": "#E0E0E0",
    "--sb-widget-radius": "16px",
    "--sb-widget-radius-sm": "12px",
    "--sb-widget-font": "'DM Sans', -apple-system, sans-serif",
    "--sb-widget-shadow": "0 8px 32px rgba(0, 0, 0, 0.12)",
    "--sb-widget-shadow-lg": "0 16px 48px rgba(0, 0, 0, 0.16)",
    "--sb-widget-z-index": "9999",
    "--sb-widget-transition": "200ms ease",
    "--sb-widget-online": "#28A745",
    "--sb-widget-header-height": "72px",
    "--sb-widget-input-height": "48px"
  }
}
```

---

## CSS Variables Summary

Copy this into your project's CSS for easy theming:

```css
:root {
  /* Core Colours */
  --sb-widget-primary: #C45C26;
  --sb-widget-secondary: #4A4A4A;
  --sb-widget-accent: #FF6B35;

  /* Backgrounds */
  --sb-widget-bg: #FAFAFA;
  --sb-widget-bg-secondary: #FFFFFF;
  --sb-widget-bg-tertiary: #F5F5F0;

  /* Text */
  --sb-widget-text: #1A1A1A;
  --sb-widget-text-secondary: #4A4A4A;
  --sb-widget-text-muted: #7A7A7A;


Response:
```json
{
  "$schema": "https://sunaiva.com/schema/widget-config.json",
  "version": "1.0.0",
  "business_type": "signwriter",
  "theme": {
    "colors": {
      "primary": "#1a2744",
      "primary_light": "#2d3f5f",
      "secondary": "#e8c547",
      "secondary_hover": "#f5d76e",
      "accent": "#3d8bfd",
      "background": "#ffffff",
      "background_secondary": "#f8f9fb",
      "text_primary": "#1a2744",
      "text_secondary": "#5a6478",
      "text_on_primary": "#ffffff",
      "border": "#e2e6ed",
      "success": "#22c55e",
      "error": "#ef4444",
      "shadow": "rgba(26, 39, 68, 0.12)"
    },
    "dark_mode": {
      "primary": "#0f1729",
      "primary_light": "#1e293b",
      "secondary": "#e8c547",
      "secondary_hover": "#f5d76e",
      "accent": "#60a5fa",
      "background": "#0f1729",
      "background_secondary": "#1e293b",
      "text_primary": "#f1f5f9",
      "text_secondary": "#94a3b8",
      "text_on_primary": "#ffffff",
      "border": "#334155",
      "shadow": "rgba(0, 0, 0, 0.4)"
    }
  },
  "position": {
    "desktop": {
      "corner": "bottom-right",
      "offset_x": "24px",
      "offset_y": "24px"
    },
    "mobile": {
      "corner": "bottom-left",
      "offset_x": "16px",
      "offset_y": "16px"
    },
    "reasoning": "Bottom-right for desktop places widget in natural right-hand reading flow. Bottom-left on mobile avoids interference with thumb zone navigation. Signwriters typically have visual-heavy sites so non-intrusive placement is key."
  },
  "dimensions": {
    "desktop": {
      "width": "380px",
      "height": "auto",
      "max_height": "560px",
      "collapsed_size": "64px"
    },
    "mobile": {
      "width": "calc(100vw - 32px)",
      "max_width": "400px",
      "height": "auto",
      "max_height": "75vh",
      "collapsed_size": "60px"
    },
    "border_radius": {
      "widget": "16px",
      "button": "12px",
      "avatar": "50%",
      "input": "10px"
    }
  },
  "avatar": {
    "type": "icon",
    "icon_name": "paint-brush",
    "style": "outline",
    "size": "28px",
    "background": "#e8c547",
    "foreground": "#1a2744",
    "description": "Stylized paint brush icon representing the creative/signwriting trade. Gold/yellow background conveys craftsmanship and quality finishes. Matches signwriter vinyl colour palette.",
    "fallback": "A friendly, approachable avatar that feels like a real tradie mate rather than a robot"
  },
  "welcome_message": {
    "text": "G'day! 👋 I'm your signwriting assistant. Need a quote for signage? Vehicle graphics? Shop front? Tell me what you're after and I'll get you sorted.",
    "voice_greeting": "G'day mate, thanks for dropping by. I'm here to help with any signwriting quotes - just let me know what you need.",
    "language": "en-AU",
    "trigger": "on_open"
  },
  "animations": {
    "entry": {
      "type": "slide_fade",
      "direction": "up",
      "duration": "400ms",
      "easing": "cubic-bezier(0.34, 1.56, 0.64, 1)",
      "delay": "0ms"
    },
    "exit": {
      "type": "fade",
      "duration": "200ms",
      "easing": "ease-out"
    },
    "idle": {
      "type": "pulse",
      "scale": "1.0 to 1.05",
      "duration": "2s",
      "repeat": "infinite",
      "trigger": "after_10s_idle"
    },
    "notification": {
      "type": "ring_pulse",
      "color": "#e8c547",
      "rings": 3,
      "duration": "1.5s",
      "repeat": "3"
    },
    "typing": {
      "type": "bounce",
      "dots": 3,
      "interval": "150ms"
    }
  },
  "typography": {
    "font_family": "'Outfit', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
    "header": {
      "font_family": "'Outfit', sans-serif",
      "font_weight": "600",
      "font_size": "18px",
      "line_height": "1.3",
      "letter_spacing": "-0.01em"
    },
    "body": {
      "font_family": "'Outfit', sans-serif",
      "font_weight": "400",
      "font_size": "15px",
      "line_height": "1.5",
      "letter_spacing": "0"
    },
    "caption": {
      "font_family": "'Outfit', sans-serif",
      "font_weight": "400",
      "font_size": "13px",
      "line_height": "1.4",
      "letter_spacing": "0"
    },
    "button": {
      "font_family": "'Outfit', sans-serif",
      "font_weight": "500",
      "font_size": "15px",
      "letter_spacing": "0.02em"
    }
  },
  "buttons": {
    "cta_primary": {
      "background": "#e8c547",
      "foreground": "#1a2744",
      "hover_background": "#f5d76e",
      "hover_foreground": "#1a2744",
      "border": "none",
      "box_shadow": "0 4px 12px rgba(232, 197, 71, 0.3)"
    },
    "cta_secondary": {
      "background": "transparent",
      "foreground": "#1a2744",
      "border": "2px solid #e2e6ed",
      "hover_background": "#f8f9fb",
      "hover_border": "#c5cdd8"
    },
    "quick_reply": {
      "background": "#f8f9fb",
      "foreground": "#1a2744",
      "border": "1px solid #e2e6ed",
      "hover_background": "#e8c547",
      "hover_foreground": "#1a2744",
      "hover_border": "#e8c547"
    },
    "call_to_action": {
      "background": "#22c55e",
      "foreground": "#ffffff",
      "hover_background": "#16a34a",
      "border": "none"
    }
  },
  "industry_specific": {
    "quick_replies": [
      {
        "label": "Get a quote",
        "action": "start_quote_flow",
        "icon": "calculator"
      },
      {
        "label": "Vehicle graphics",
        "action": "vehicle_graphics",
        "icon": "car"
      },
      {
        "label": "Shop signage",
        "action": "shop_signage",
        "icon": "storefront"
      },
      {
        "label": "View portfolio",
        "action": "open_portfolio",
        "icon": "images"
      }
    ],
    "conversation_flows": {
      "quote_request": {
        "questions": [
          "What type of signage do you need? (vehicle, shop front, banner, etc.)",
          "What's the approximate size?",
          "Do you have a design ready, or do you need design help?",
          "When do you need it by?",
          "What's your suburb?"
        ],
        "qualification_questions": [
          "Rough budget for this job?",
          "Is this for a business or personal job?"
        ]
      }
    },
    "visual_elements": {
      "header_icon": "paint-brush",
      "accent_pattern": "subtle diagonal lines suggesting vinyl cutting or design work",
      "status_indicators": {
        "online": "Available now",
        "away": "Back soon",
        "offline": "We'll call you back"
      }
    }
  },
  "css_custom_properties": {
    "--sw-widget-bg": "#ffffff",
    "--sw-widget-bg-secondary": "#f8f9fb",
    "--sw-widget-primary": "#1a2744",
    "--sw-widget-secondary": "#e8c547",
    "--sw-widget-accent": "#3d8bfd",
    "--sw-widget-text": "#1a2744",
    "--sw-widget-text-muted": "#5a6478",
    "--sw-widget-border": "#e2e6ed",
    "--sw-widget-shadow": "0 8px 32px rgba(26, 39, 68, 0.12)",
    "--sw-widget-radius": "16px",
    "--sw-widget-radius-sm": "12px",
    "--sw-widget-font": "'Outfit', sans-serif",
    "--sw-widget-z-index": "9999",
    "--sw-widget-transition": "all 0.3s cubic-bezier(0.4, 0, 0.2, 1)",
    "--sw-avatar-size": "44px",
    "--sw-button-height": "48px",
    "--sw-input-height": "48px",
    "--sw-spacing-xs": "4px",
    "--sw-spacing-sm": "8px",
    "--sw-spacing-md": "16px",
    "--sw-spacing-lg": "24px",
    "--sw-spacing-xl": "32px"
  },
  "accessibility": {
    "aria_labels": {
      "toggle_button": "Open chat with signwriting assistant",
      "close_button": "Close chat",
      "send_button": "Send message",
      "voice_button": "Speak to assistant"
    },
    "keyboard_navigation": {
      "trigger_key": "Enter",
      "close_escape": true,
      "focus_trap": true
    },
    "screen_reader": {
      "announce_new_messages": true,
      "polite_mode": true
    }
  },
  "fallback": {
    "voice_unavailable": {
      "action": "offer_callback",
      "message": "Voice isn't working right now. Want me to call you back instead?"
    },
    "after_hours": {
      "message": "Thanks for reaching out! We're currently closed. Leave your number and we'll call you back tomorrow.",
      "offer_callback": true
    }
  }
}
```

```css
/* ========================================
   SUNAIVA WIDGET - SIGNWRITER THEME
   CSS Custom Properties
   ======================================== */

:root {
  /* Core Colors */
  --sw-widget-bg: #ffffff;
  --sw-widget-bg-secondary: #f8f9fb;
  --sw-widget-primary: #1a2744;
  --sw-widget-secondary: #e8c547;
  --sw-widget-accent: #3d8bfd;
  --sw-widget-text: #1a2744;
  --sw-widget-text-muted: #5a6478;
  --sw-widget-border: #e2e6ed;
  --sw-widget-shadow: 0 8px 32px rgba(26, 39, 68, 0.12);

  /* Sizing */
  --sw-widget-radius: 16px;
  --sw-widget-radius-sm: 12px;
  --sw-avatar-size: 44px;
  --sw-button-height: 48px;
  --sw-input-height: 48px;

  /* Spacing */
  --sw-spacing-xs: 4px;
  --sw-spacing-sm: 8px;
  --sw-spacing-md: 16px;
  --sw-spacing-lg: 24px;
  --sw-spacing-xl: 32px;

  /* Typography */
  --sw-widget-font: 'Outfit', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  /* Animation */
  --sw-widget-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  --sw-widget-z-index: 9999;
}

/* Dark Mode */
@media (prefers-color-scheme: dark) {
  :root {
    --sw-widget-bg: #0f1729;
    --sw-widget-bg-secondary: #1e293b;
    --sw-widget-primary: #0f1729;
    --sw-widget-text: #f1f5f9;
    --sw-widget-text-muted: #94a3b8;
    --sw-widget-border: #334155;
    --sw-widget-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
  }
}

/* ========================================
   Widget Container
   ======================================== */

.sunaiva-widget {
  font-family: var(--sw-widget-font);
  background: var(--sw-widget-bg);
  border-radius: var(--sw-widget-radius);
  box-shadow: var(--sw-widget-shadow);
  border: 1px solid var(--sw-widget-border);
  overflow: hidden;
  transition: var(--sw-widget-transition);
}

.sunaiva-widget--collapsed {
  width: var(--sw-avatar-size);
  height: var(--sw-avatar-size);
}

/* ========================================
   Header
   ======================================== */

.sunaiva-widget__header {
  background: var(--sw-widget-primary);
  padding: var(--sw-spacing-md);
  display: flex;
  align-items: center;
  gap: var(--sw-spacing-sm);
}

.sunaiva-widget__avatar {
  width: var(--sw-avatar-size);
  height: var(--sw-avatar-size);
  background: var(--sw-widget-secondary);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.sunaiva-widget__avatar svg {
  width: 28px;
  height: 28px;
  color: var(--sw-widget-primary);
}

.sunaiva-widget__title {
  font-size: 18px;
  font-weight: 600;
  color: #ffffff;
  letter-spacing: -0.01em;
}

.sunaiva-widget__status {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.7);
  display: flex;
  align-items: center;
  gap: 6px;
}

.sunaiva-widget__status-dot {
  width: 8px;
  height: 8px;
  background: #22c55e;
  border-radius: 50%;
  animation: pulse 2s infinite;
}

/* ========================================
   Messages
   ======================================== */

.sunaiva-widget__messages {
  padding: var(--sw-spacing-md);
  overflow-y: auto;
  max-height: 400px;
  background: var(--sw-widget-bg-secondary);
}

.sunaiva-widget__message {
  margin-bottom: var(--sw-spacing-md);
  animation: slideUp 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.sunaiva-widget__message--user {
  text-align: right;
}

.sunaiva-widget__bubble {
  display: inline-block;
  padding: var(--sw-spacing-sm) var(--sw-spacing-md);
  border-radius: var(--sw-widget-radius-sm);
  max-width: 85%;
  font-size: 15px;
  line-height: 1.5;
}

.sunaiva-widget__message--bot .sunaiva-widget__bubble {
  background: var(--sw-widget-bg);
  color: var(--sw-widget-text);
  border: 1px solid var(--sw-widget-border);
  text-align: left;
}

.sunaiva-widget__message--user .sunaiva-widget__bubble {
  background: var(--sw-widget-primary);
  color: #ffffff;
}

/* ========================================
   Quick Replies
   ======================================== */

.sunaiva-widget__quick-replies {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sw-spacing-sm);
  padding: var(--sw-spacing-sm) var(--sw-spacing-md);
}

.sunaiva-widget__quick-reply {
  background: var(--sw-widget-bg);
  border: 1px solid var(--sw-widget-border);
  border-radius: 20px;
  padding: 8px 16px;
  font-size: 14px;


Response:
```json
{
  "widgetConfiguration": {
    "id": "stonemasonry-v1",
    "name": "StoneCraft Widget",
    "version": "1.0.0",
    "industry": "stonemasonry"
  },
  "colors": {
    "primary": "#2D3436",
    "primaryLight": "#636E72",
    "secondary": "#F5F0E8",
    "secondaryDark": "#E8E0D5",
    "accent": "#B87333",
    "accentLight": "#D4956A",
    "accentDark": "#8B5A2B",
    "text": {
      "primary": "#1A1A1A",
      "secondary": "#4A4A4A",
      "muted": "#6B6B6B",
      "inverse": "#FFFFFF"
    },
    "background": {
      "default": "#FFFFFF",
      "subtle": "#FAFAFA",
      "overlay": "rgba(45, 52, 54, 0.95)"
    },
    "border": {
      "default": "#E0DCD4",
      "focus": "#B87333"
    },
    "status": {
      "online": "#27AE60",
      "away": "#F39C12",
      "offline": "#95A5A6"
    }
  },
  "position": {
    "desktop": {
      "placement": "bottom-right",
      "offsetX": "24px",
      "offsetY": "24px"
    },
    "mobile": {
      "placement": "bottom-right",
      "offsetX": "16px",
      "offsetY": "16px"
    },
    "reasoning": "Bottom-right placement is optimal for right-handed users on desktop and mirrors natural eye-scanning patterns. For stonemasonry businesses, this positioning keeps the widget visible without competing with prominent image galleries showcasing stone work."
  },
  "dimensions": {
    "desktop": {
      "width": "380px",
      "minHeight": "520px",
      "maxHeight": "680px"
    },
    "mobile": {
      "width": "calc(100vw - 32px)",
      "minHeight": "480px",
      "maxHeight": "calc(100vh - 120px)",
      "position": "fixed"
    },
    "launcher": {
      "width": "64px",
      "height": "64px",
      "desktop": {
        "width": "60px",
        "height": "60px"
      },
      "mobile": {
        "width": "56px",
        "height": "56px"
      }
    }
  },
  "avatar": {
    "type": "icon",
    "iconName": "stone-mason",
    "description": "A minimalist line-art icon depicting a mason's hammer striking a chisel against stone, enclosed in a circular badge. The design uses negative space to suggest a stone slab texture.",
    "style": {
      "background": "linear-gradient(135deg, #2D3436 0%, #636E72 100%)",
      "border": "3px solid #B87333",
      "borderRadius": "50%",
      "iconColor": "#FFFFFF"
    },
    "fallback": {
      "type": "initials",
      "initials": "SC",
      "background": "#2D3436",
      "textColor": "#FFFFFF"
    },
    "onlineIndicator": {
      "enabled": true,
      "color": "#27AE60",
      "size": "12px",
      "position": "bottom-right"
    }
  },
  "welcomeMessage": {
    "greeting": "G'day! 👋",
    "body": "Thanks for checking out our site. I'm here to help you with any questions about our stone work — whether it's kitchen benchtops, outdoor paving, or a custom feature wall.",
    "callToAction": "What can I help you with today?",
    "quickReplies": [
      "Get a quote",
      "View our work",
      "Ask a question",
      "Call us directly"
    ],
    "tone": "Warm, knowledgeable, no-nonsense Australian tradie"
  },
  "animations": {
    "entry": {
      "type": "slide-up-fade",
      "duration": "400ms",
      "easing": "cubic-bezier(0.34, 1.56, 0.64, 1)",
      "desktop": {
        "from": {
          "opacity": "0",
          "transform": "translateY(20px) scale(0.95)"
        },
        "to": {
          "opacity": "1",
          "transform": "translateY(0) scale(1)"
        }
      },
      "mobile": {
        "from": {
          "opacity": "0",
          "transform": "translateY(30px)"
        },
        "to": {
          "opacity": "1",
          "transform": "translateY(0)"
        }
      }
    },
    "idle": {
      "type": "subtle-float",
      "duration": "3s",
      "easing": "ease-in-out",
      "transform": "translateY(0px)",
      "keyframes": [
        { "offset": 0, "transform": "translateY(0px)" },
        { "offset": 0.5, "transform": "translateY(-4px)" },
        { "offset": 1, "transform": "translateY(0px)" }
      ],
      "trigger": "after-5-seconds-idle"
    },
    "notification": {
      "type": "pulse-ring",
      "duration": "2s",
      "iteration": "infinite",
      "easing": "ease-out",
      "ring": {
        "color": "#B87333",
        "scale": "1.5",
        "opacity": {
          "from": "0.6",
          "to": "0"
        }
      }
    },
    "transitions": {
      "hover": "all 200ms ease",
      "modal": "all 300ms cubic-bezier(0.4, 0, 0.2, 1)",
      "message": "all 250ms ease-out"
    }
  },
  "typography": {
    "fontFamily": {
      "primary": "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif",
      "monospace": "'JetBrains Mono', 'Fira Code', monospace"
    },
    "sizes": {
      "header": {
        "large": "20px",
        "medium": "18px",
        "small": "16px",
        "weight": "600",
        "lineHeight": "1.3"
      },
      "body": {
        "large": "16px",
        "medium": "15px",
        "small": "14px",
        "weight": "400",
        "lineHeight": "1.5"
      },
      "caption": {
        "size": "12px",
        "weight": "500",
        "lineHeight": "1.4",
        "letterSpacing": "0.02em"
      },
      "button": {
        "size": "15px",
        "weight": "600",
        "lineHeight": "1"
      }
    },
    "letterSpacing": {
      "normal": "0",
      "tight": "-0.01em",
      "wide": "0.02em"
    }
  },
  "buttons": {
    "primary": {
      "background": "linear-gradient(135deg, #B87333 0%, #8B5A2B 100%)",
      "backgroundHover": "linear-gradient(135deg, #D4956A 0%, #B87333 100%)",
      "textColor": "#FFFFFF",
      "textColorHover": "#FFFFFF",
      "border": "none",
      "borderRadius": "8px",
      "boxShadow": "0 2px 8px rgba(184, 115, 51, 0.3)",
      "boxShadowHover": "0 4px 12px rgba(184, 115, 51, 0.4)",
      "padding": "12px 20px",
      "transition": "all 200ms ease"
    },
    "secondary": {
      "background": "#F5F0E8",
      "backgroundHover": "#E8E0D5",
      "textColor": "#2D3436",
      "textColorHover": "#1A1A1A",
      "border": "1px solid #E0DCD4",
      "borderRadius": "8px",
      "boxShadow": "none",
      "boxShadowHover": "0 2px 6px rgba(0, 0, 0, 0.06)",
      "padding": "12px 20px",
      "transition": "all 200ms ease"
    },
    "ghost": {
      "background": "transparent",
      "backgroundHover": "rgba(45, 52, 54, 0.06)",
      "textColor": "#2D3436",
      "textColorHover": "#1A1A1A",
      "border": "none",
      "borderRadius": "8px",
      "padding": "10px 16px",
      "transition": "all 200ms ease"
    },
    "quickReply": {
      "background": "#FFFFFF",
      "backgroundHover": "#F5F0E8",
      "textColor": "#2D3436",
      "textColorHover": "#1A1A1A",
      "border": "1px solid #E0DCD4",
      "borderRadius": "20px",
      "padding": "8px 16px",
      "fontSize": "14px",
      "fontWeight": "500",
      "transition": "all 200ms ease"
    },
    "icon": {
      "background": "#2D3436",
      "backgroundHover": "#636E72",
      "iconColor": "#FFFFFF",
      "iconColorHover": "#FFFFFF",
      "borderRadius": "50%",
      "size": "44px",
      "transition": "all 200ms ease"
    }
  },
  "darkMode": {
    "enabled": true,
    "trigger": "system-preference",
    "manualToggle": true,
    "colors": {
      "background": "#1A1A1A",
      "backgroundSecondary": "#242424",
      "backgroundTertiary": "#2D2D2D",
      "text": {
        "primary": "#F5F5F5",
        "secondary": "#B0B0B0",
        "muted": "#808080"
      },
      "border": "#3D3D3D",
      "accent": "#D4956A",
      "accentMuted": "#8B5A2B"
    },
    "typography": {
      "adjustForContrast": true,
      "bodyWeight": "400",
      "headerWeight": "600"
    },
    "avatar": {
      "style": {
        "background": "linear-gradient(135deg, #3D3D3D 0%, #2D2D2D 100%)",
        "border": "3px solid #D4956A"
      }
    },
    "buttons": {
      "primary": {
        "background": "linear-gradient(135deg, #D4956A 0%, #B87333 100%)",
        "backgroundHover": "linear-gradient(135deg, #E5A97A 0%, #D4956A 100%)"
      },
      "secondary": {
        "background": "#2D2D2D",
        "backgroundHover": "#3D3D3D",
        "border": "1px solid #3D3D3D"
      }
    },
    "shadows": {
      "card": "0 4px 20px rgba(0, 0, 0, 0.4)",
      "button": "0 2px 10px rgba(0, 0, 0, 0.3)"
    }
  },
  "industrySpecific": {
    "stonePatterns": {
      "enabled": true,
      "type": "subtle-marble-vein",
      "opacity": "0.03",
      "position": "header-bg"
    },
    "iconography": {
      "quickReplies": [
        {
          "label": "Marble benchtops",
          "icon": "benchtop",
          "category": "product"
        },
        {
          "label": "Granite surfaces",
          "icon": "granite",
          "category": "product"
        },
        {
          "label": "Outdoor paving",
          "icon": "paving",
          "category": "service"
        },
        {
          "label": "Custom stone features",
          "icon": "custom",
          "category": "service"
        },
        {
          "label": "Repairs & restoration",
          "icon": "repair",
          "category": "service"
        },
        {
          "label": "Measure & quote",
          "icon": "ruler",
          "category": "process"
        }
      ]
    },
    "phrases": {
      "commonTerms": [
        "benchtop",
        "slab",
        "vein",
        "polish",
        "sealer",
        "edge profile",
        "mitre",
        "join",
        "template",
        "install"
      ],
      "australianTerms": [
        "quarry",
        "stonemason",
        "tradesperson",
        "reno",
        "renovation"
      ]
    },
    "businessHours": {
      "defaultMessage": "We're currently closed but leave a message and we'll get back to you tomorrow.",
      "holidayMessage": "We're on holidays — feel free to leave a message and we'll be in touch when we're back.",
      "timezone": "Australia/Melbourne"
    },
    "visualElements": {
      "textureOverlay": {
        "type": "noise",
        "opacity": "0.02",
        "blendMode": "overlay"
      },
      "gradientAccent": {
        "type": "linear",
        "angle": "135deg",
        "stops": [
          { "color": "#B87333", "offset": "0%" },
          { "color": "#8B5A2B", "offset": "100%" }
        ],
        "useCase": "header-accent, button-primary, divider"
      }
    }
  },
  "cssCustomProperties": {
    "--sc-widget-primary": "#2D3436",
    "--sc-widget-primary-light": "#636E72",
    "--sc-widget-secondary": "#F5F0E8",
    "--sc-widget-secondary-dark": "#E8E0D5",
    "--sc-widget-accent": "#B87333",
    "--sc-widget-accent-light": "#D4956A",
    "--sc-widget-accent-dark": "#8B5A2B",
    "--sc-widget-text-primary": "#1A1A1A",
    "--sc-widget-text-secondary": "#4A4A4A",
    "--sc-widget-text-muted": "#6B6B6B",
    "--sc-widget-text-inverse": "#FFFFFF",
    "--sc-widget-bg-default": "#FFFFFF",
    "--sc-widget-bg-subtle": "#FAFAFA",
    "--sc-widget-bg-overlay": "rgba(45, 52, 54, 0.95)",
    "--sc-widget-border": "#E0DCD4",
    "--sc-widget-border-focus": "#B87333",
    "--sc-widget-status-online": "#27AE60",
    "--sc-widget-status-away": "#F39C12",
    "--sc-widget-status-offline": "#95A5A6",
    "--sc-widget-font-family": "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif",
    "--sc-widget-font-mono": "'JetBrains Mono', 'Fira Code', monospace",
    "--sc-widget-radius-sm": "6px",
    "--sc-widget-radius-md": "8px",
    "--sc-widget-radius-lg": "12px",
    "--sc-widget-radius-xl": "16px",
    "--sc-widget-radius-full": "9999px",
    "--sc-widget-shadow-sm": "0 1px 3px rgba(0, 0, 0, 0.08)",
    "--sc-widget-shadow-md": "0 4px 12px rgba(0, 0, 0, 0.1)",
    "--sc-widget-shadow


Response:
```json
{
  "$schema": "https://sunaiva.com/schema/widget-config/v1",
  "widget": {
    "id": "stump-grinder-business",
    "version": "1.0.0",
    "industry": "trade_services",
    "niche": "stump_grinding"
  },
  "colors": {
    "primary": "#D35400",
    "primary_hover": "#B94700",
    "primary_light": "#FDE8D8",
    "secondary": "#2D5016",
    "secondary_hover": "#1E3A0D",
    "accent": "#F4A261",
    "accent_hover": "#E08B3E",
    "background": "#FFFFFF",
    "background_secondary": "#FAFAFA",
    "surface": "#F5F5F0",
    "text_primary": "#1A1A1A",
    "text_secondary": "#5C5C5C",
    "text_inverse": "#FFFFFF",
    "border": "#E0DDD5",
    "border_focus": "#D35400",
    "success": "#27AE60",
    "error": "#C0392B",
    "notification": "#E74C3C",
    "css_variables": {
      "--wg-primary": "#D35400",
      "--wg-primary-hover": "#B94700",
      "--wg-primary-light": "#FDE8D8",
      "--wg-secondary": "#2D5016",
      "--wg-secondary-hover": "#1E3A0D",
      "--wg-accent": "#F4A261",
      "--wg-accent-hover": "#E08B3E",
      "--wg-bg": "#FFFFFF",
      "--wg-bg-secondary": "#FAFAFA",
      "--wg-surface": "#F5F5F0",
      "--wg-text": "#1A1A1A",
      "--wg-text-muted": "#5C5C5C",
      "--wg-border": "#E0DDD5",
      "--wg-success": "#27AE60",
      "--wg-error": "#C0392B"
    }
  },
  "position": {
    "desktop": "bottom_right",
    "mobile": "bottom_right",
    "offset": {
      "desktop": { "x": 24, "y": 24 },
      "mobile": { "x": 16, "y": 16 }
    },
    "z_index": 9999,
    "reasoning": "Bottom-right placement aligns with user reading patterns and keeps the widget away from cookie consent banners typically found on the left side of trade business websites."
  },
  "dimensions": {
    "desktop": {
      "width": 380,
      "height": "auto",
      "max_height": 520,
      "min_height": 400
    },
    "mobile": {
      "width": "calc(100vw - 32px)",
      "max_width": 380,
      "height": "auto",
      "max_height": "65vh",
      "min_height": 300
    },
    "collapsed": {
      "width": 64,
      "height": 64,
      "border_radius": 32
    },
    "expanded": {
      "border_radius": 16
    }
  },
  "avatar": {
    "type": "illustration",
    "style": "friendly_professional",
    "description": "A friendly, minimalist illustration of a tree stump with a subtle smile and friendly eyes. The stump has a clean, modern aesthetic with small root details at the base. The design suggests professionalism while remaining approachable - suitable for family-owned stump grinding businesses.",
    "visual_specs": {
      "shape": "rounded_square",
      "size": {
        "collapsed": 64,
        "expanded_header": 48
      },
      "background": "transparent",
      "border": "none",
      "color": "#D35400",
      "secondary_color": "#2D5016"
    },
    "alt_text": "Stumpy - Your stump grinding assistant"
  },
  "welcome_message": {
    "voice": "text_display",
    "content": "G'day mate! 👋\n\nI'm Stumpy, your local stump grinding assistant. I can help you get a quick quote, check availability, or book a time that works for you.\n\nWhat are you looking for today?",
    "greeting_type": "warm_professional",
    "show_quick_replies": true,
    "quick_replies": [
      "Get a quote",
      "Check availability",
      "What areas do you service?",
      "How much does it cost?"
    ]
  },
  "animations": {
    "entry": {
      "type": "slide_fade",
      "direction": "up",
      "duration": 400,
      "easing": "cubic-bezier(0.34, 1.56, 0.64, 1)",
      "delay": 800,
      "trigger": "on_load"
    },
    "collapse_toggle": {
      "type": "scale_fade",
      "duration": 250,
      "easing": "ease_out"
    },
    "idle": {
      "enabled": true,
      "type": "pulse",
      "trigger": "collapsed_state",
      "interval": 4000,
      "duration": 600,
      "scale_range": [1, 1.05]
    },
    "notification": {
      "type": "ring_pulse",
      "color": "#E74C3C",
      "duration": 1500,
      "repeat": 3,
      "trigger": "new_message"
    },
    "button_hover": {
      "type": "lift",
      "duration": 150,
      "translate_y": -2,
      "shadow_intensity": "increase"
    },
    "message_appear": {
      "type": "slide_fade",
      "direction": "up",
      "duration": 300,
      "stagger": 50,
      "easing": "ease_out"
    }
  },
  "typography": {
    "font_family": "'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif",
    "fallback": "system-ui, sans-serif",
    "scale": {
      "header_large": {
        "size": "1.25rem",
        "weight": 700,
        "line_height": 1.3
      },
      "header_medium": {
        "size": "1.125rem",
        "weight": 600,
        "line_height": 1.4
      },
      "body": {
        "size": "0.9375rem",
        "weight": 400,
        "line_height": 1.6
      },
      "body_small": {
        "size": "0.875rem",
        "weight": 400,
        "line_height": 1.5
      },
      "caption": {
        "size": "0.75rem",
        "weight": 500,
        "line_height": 1.4
      },
      "button": {
        "size": "0.9375rem",
        "weight": 600,
        "line_height": 1
      }
    },
    "message_text": {
      "size": "0.9375rem",
      "weight": 400,
      "line_height": 1.6
    },
    "quick_reply": {
      "size": "0.875rem",
      "weight": 500
    }
  },
  "buttons": {
    "primary": {
      "background": "#D35400",
      "background_hover": "#B94700",
      "text": "#FFFFFF",
      "border": "none",
      "border_radius": 10,
      "padding": {
        "vertical": 12,
        "horizontal": 20
      },
      "font_size": "0.9375rem",
      "font_weight": 600,
      "shadow": "0 2px 8px rgba(211, 84, 0, 0.25)",
      "shadow_hover": "0 4px 12px rgba(211, 84, 0, 0.35)",
      "transition": "all 0.2s ease"
    },
    "secondary": {
      "background": "#2D5016",
      "background_hover": "#1E3A0D",
      "text": "#FFFFFF",
      "border": "none",
      "border_radius": 10,
      "padding": {
        "vertical": 12,
        "horizontal": 20
      },
      "font_size": "0.9375rem",
      "font_weight": 600
    },
    "outline": {
      "background": "transparent",
      "background_hover": "#F5F5F0",
      "text": "#D35400",
      "border": "2px solid #D35400",
      "border_radius": 10,
      "padding": {
        "vertical": 10,
        "horizontal": 18
      },
      "font_size": "0.9375rem",
      "font_weight": 600
    },
    "quick_reply": {
      "background": "#F5F5F0",
      "background_hover": "#E8E5DC",
      "text": "#1A1A1A",
      "border": "1px solid #E0DDD5",
      "border_radius": 20,
      "padding": {
        "vertical": 10,
        "horizontal": 16
      },
      "font_size": "0.875rem",
      "font_weight": 500
    },
    "close": {
      "background": "transparent",
      "background_hover": "#F0F0F0",
      "text": "#5C5C5C",
      "border": "none",
      "size": 32,
      "icon_size": 20
    },
    "call_to_action": {
      "background": "#27AE60",
      "background_hover": "#1E8449",
      "text": "#FFFFFF",
      "border": "none",
      "border_radius": 12,
      "padding": {
        "vertical": 14,
        "horizontal": 24
      },
      "font_size": "1rem",
      "font_weight": 600,
      "icon": "phone",
      "icon_position": "left",
      "shadow": "0 4px 14px rgba(39, 174, 96, 0.35)"
    }
  },
  "dark_mode": {
    "enabled": true,
    "trigger": "auto_system",
    "manual_toggle": true,
    "colors": {
      "primary": "#E67E22",
      "primary_hover": "#F39C12",
      "primary_light": "#3D2B1F",
      "secondary": "#4A7C23",
      "accent": "#F5B041",
      "background": "#1E1E1E",
      "background_secondary": "#2D2D2D",
      "surface": "#3A3A3A",
      "text_primary": "#F5F5F5",
      "text_secondary": "#B0B0B0",
      "border": "#4A4A4A",
      "notification": "#E74C3C"
    },
    "css_variables": {
      "--wg-primary": "#E67E22",
      "--wg-primary-hover": "#F39C12",
      "--wg-primary-light": "#3D2B1F",
      "--wg-bg": "#1E1E1E",
      "--wg-bg-secondary": "#2D2D2D",
      "--wg-surface": "#3A3A3A",
      "--wg-text": "#F5F5F5",
      "--wg-text-muted": "#B0B0B0",
      "--wg-border": "#4A4A4A"
    },
    "typography_adjustments": {
      "body": { "color": "#F5F5F5" },
      "caption": { "color": "#B0B0B0" }
    },
    "avatar_adjustments": {
      "invert": false,
      "opacity": 0.95
    }
  },
  "industry_specific": {
    "niche": "stump_grinding",
    "custom_elements": {
      "iconography": {
        "primary_icon": "stump_with_smile",
        "category_icons": {
          "quote": "calculator",
          "booking": "calendar",
          "areas": "map_pin",
          "cost": "dollar_sign",
          "process": "steps",
          "contact": "phone"
        }
      },
      "color_accents": {
        "earth_tones": {
          "brown": "#8B4513",
          "tan": "#D2B48C",
          "forest_green": "#2D5016",
          "safety_orange": "#D35400"
        },
        "usage": "Use earth tones for decorative elements and safety orange for primary CTAs"
      },
      "decorative_elements": {
        "background_pattern": "subtle_leaves",
        "pattern_opacity": 0.05,
        "pattern_color": "#2D5016",
        "message_bubble_tail": true
      },
      "quick_action_cards": {
        "enabled": true,
        "cards": [
          {
            "id": "residential",
            "icon": "home",
            "title": "Residential",
            "description": "Stumps in your backyard"
          },
          {
            "id": "commercial",
            "icon": "building",
            "title": "Commercial",
            "description": "Site clearing & development"
          },
          {
            "id": "stump_removal",
            "icon": "tree",
            "title": "Stump Removal",
            "description": "Full root extraction"
          },
          {
            "id": "stump_grinding",
            "icon": "grinder",
            "title": "Grinding Only",
            "description": "Grind to below ground level"
          }
        ]
      },
      "conversation_flows": {
        "quote_request": {
          "trigger": "Get a quote",
          "questions": [
            "How many stumps need grinding?",
            "What's the approximate diameter of the largest stump?",
            "What's your suburb?",
            "Any access issues we should know about?"
          ]
        },
        "availability_check": {
          "trigger": "Check availability",
          "questions": [
            "What suburb are you in?",
            "When are you looking to get the work done?"
          ]
        },
        "cost_estimate": {
          "trigger": "How much does it cost?",
          "response": "Most residential stump grinding jobs run between $150-$300 per stump, depending on size and access. I can give you a more accurate quote if you tell me a bit about the job. Want to get a quick quote?"
        }
      },
      "localisation": {
        "region": "Australia",
        "spelling": "Aussie",
        "terms": {
          "stump_grinding": "stump grinding / stump removal",
          "suburb": "suburb / area",
          "quote": "quote / free assessment"
        },
        "common_phrases": [
          "No worries at all!",
          "Sorted!",
          "Can do!",
          "Absolutely, mate!"
        ],
        "business_hours": {
          "default": "Mon-Sat 7am-5pm",
          "after_hours_message": "Thanks for reaching out! We're currently closed but I'll pass your details to our team and they'll give you a buzz tomorrow. Otherwise, feel free to leave me a message and I'll get back to you ASAP."
        }
      },
      "trust_elements": {
        "display_in_widget": true,
        "elements": [
          {
            "type": "badge",
            "text": "Licenced & Insured",
            "icon": "shield_check"
          },
          {
            "type": "badge",
            "text": "Free Quotes",
            "icon": "calculator"
          },
          {
            "type": "rating",
            "source": "Google",
            "display": "4.9 ★★★★★"
          }
        ]
      },
      "seasonal_considerations": {
        "peak_seasons": ["autumn", "winter"],
        "off_peak_message": "Great time for stump grinding - the ground is usually firmer and there's less garden traffic!