{
  "title": "Garage Door Repair: instant estimate",
  "subtitle": "Pick a service and adjust the details. Prices update live.",
  "accent": "#4a148c",
  "currencyCode": "USD",
  "locale": "en-US",
  "roundTo": 5,
  "items": [
    {
      "id": "diag",
      "label": "Service call / diagnostic",
      "unit": "",
      "low": 75,
      "high": 110,
      "min": 75,
      "qtyDefault": 1
    },
    {
      "id": "spring",
      "label": "Torsion spring replacement (pair)",
      "unit": "doors",
      "unitOne": "door",
      "low": 220,
      "high": 350,
      "min": 220,
      "qtyDefault": 1,
      "qtyMin": 1,
      "qtyMax": 3,
      "qtyStep": 1
    },
    {
      "id": "tune",
      "label": "Tune-up & safety check",
      "unit": "doors",
      "unitOne": "door",
      "low": 90,
      "high": 140,
      "min": 90,
      "qtyDefault": 1,
      "qtyMin": 1,
      "qtyMax": 3,
      "qtyStep": 1
    }
  ],
  "modifiers": [
    {
      "label": "Door size",
      "type": "select",
      "options": [
        {
          "label": "Single (8\u20139 ft wide)",
          "factor": 1
        },
        {
          "label": "Double (16 ft wide)",
          "factor": 1.2
        }
      ],
      "items": [
        "spring",
        "tune"
      ]
    },
    {
      "label": "High-cycle springs",
      "type": "checkbox",
      "factor": 1.25,
      "items": [
        "spring"
      ]
    },
    {
      "label": "Same-day / after-hours visit",
      "type": "checkbox",
      "add": 85
    }
  ],
  "note": "Sample prices for demo. Set your own. Final price confirmed after inspection.",
  "cta": {
    "type": "mailto",
    "email": "you@yourbusiness.com",
    "label": "Request my exact quote"
  }
}