Extract all text from this document image. Group text elements that are on the same horizontal line into one row. Output JSON format: [ { "row": 1, "elements": [ { "bbox_2d": [x1, y1, x2, y2], "text_content": "...", "element_type": "title|header|paragraph|label|value|footer", "style": { "bold": true/false, "italic": true/false, "font_size": "small|normal|large|xlarge", "alignment": "left|center|right" } } ] } ] CRITICAL Rules: 1. **MERGE PARAGRAPHS**: If multiple lines form ONE logical paragraph (same style, continuous text), combine them into ONE element with ONE row. Join the text with spaces. The bbox should span all merged lines. 2. Elements on same horizontal line go in same row 3. Keep label and value as separate elements in same row 4. Detect formatting: bold, italic, font size, alignment Example of paragraph merging: - If you see lines "This is to certify that..." / "John Doe has no..." / "criminal record." - These are ONE paragraph → ONE element, ONE row with text_content: "This is to certify that... John Doe has no... criminal record."