The issue, I am having here, is with the Description value within the Details column. When the items names are too long, I see the whole value drops to the next line. What I am trying to do is having the row header, which is Description, and the value on the same line, but if it is too long, the word is wrapped it.
<table style="font-family:sans-serif; font-size: 14px; padding-left:10px; padding-right:10px; width: 100%;">
<colgroup>
<col span="1" style="width: 50%;" />
<col span="1" style="width: 10%;" />
<col span="1" style="width: 20%;" />
<col span="1" style="width: 20%;" />
</colgroup>
<thead>
<tr style="background-color: #f2f2f2;">
<th style="border: 1px solid rgb(231, 229, 229); padding: 5px;">Details</th>
<th style="border: 1px solid rgb(231, 229, 229); padding: 5px; text-align: center;">Qty</th>
<th style="border: 1px solid rgb(231, 229, 229); padding: 5px; text-align: center;">Unit Price</th>
<th style="border: 1px solid rgb(231, 229, 229); padding: 5px; text-align: center;">Subtotal</th>
</tr>
</thead>
<tbody>
<tr style="font-size: 14px;">
<td style="border: 1px solid rgb(231, 229, 229); padding: 5px;">
<b>Code: </b>{!item.Product_Name__r.ProductCode}
<br/>
<b>Description: </b>{!item.Product_Name__r.Name}
<br/>
<b>Category: </b>{!item.Product_Family__c}
</td>
<td style="border: 1px solid rgb(231, 229, 229); padding: 5px; text-align: center;">{!FLOOR(item.Quantity__c)}</td>
<td style="border: 1px solid rgb(231, 229, 229); padding: 5px; text-align: center;">${!item.Unit_Price__c}</td>
<td style="border: 1px solid rgb(231, 229, 229); padding: 5px; text-align: center;">${!ROUND(item.Unit_Price__c * item.Quantity__c, 2)}</td>
</tr>
</tbody>
</table>

word-breakcss property?overflow-wrap: anywhere;