Hi @Anand2,
For separator grid line formatting, indeed the standard chat client (in the test pane or the one you deploy with the HTML snippet) don't seem to be rendering them.
But you have to remember that Adaptive Card is a standard format that each client interprets differently. So, the same adaptive card in Teams will look different than the Web Chat client, Outlook Actionable Messages, etc.
You can preview some of the different rendering here: https://adaptivecards.io/designer/
As to my example, I started from your JSON example.
So, you could imagine that your Power Automate cloud flow returns that JSON as a string variable.
Then, I do these things:
#1 I parse the JSON into a Table variable
I used the sample JSON you provided to define the schema and data type.

#2 I added an "Index" column to the dataset to number each line (1, 2, 3...)
This is simply to later formatted odd/even rows differently.

I use a formula for this:
ForAll(
Sequence(
CountRows(Topic.Table)
),
{
Index: Value,
Vertical: Index(Topic.Table, Value).vertical,
'Service Line': Index(Topic.Table, Value).'Service Line'
}
)
#3 Send an adaptive card with dynamic content.
Here, I pasted my adaptive card JSON I had created in the adaptive card designer and transformed in into formula. That's where I make part of the adaptive card dynamic, based on the table content.
Basically, I add a row for each row in my TableWithIndex variable, and I also have different formatting for every other row.

You can preview how I built my example using the below YAML.
Simply paste it in a new, blank, topic code editor view.
kind: AdaptiveDialog
beginDialog:
kind: OnRecognizedIntent
id: main
intent:
displayName: Untitled
triggerQueries:
- Table Formatting
actions:
- kind: SetVariable
id: setVariable_jOf99j
variable: Topic.JSON
value: "[ { \"vertical\": \"Hitech & Manufacturing Services\", \"Service Line\": \"Supply Chain Analytics\" }, { \"vertical\": \"Others\", \"Service Line\": \"F&A Analytics\" }, { \"vertical\": \"Others\", \"Service Line\": \"Supply Chain Analytics\" }, { \"vertical\": \"CPG & Retail\", \"Service Line\": \"Customer Analytics\" } ]"
- kind: ParseValue
id: XD1MyN
variable: Topic.Table
valueType:
kind: Table
properties:
Service Line: String
vertical: String
value: =Topic.JSON
- kind: SetVariable
id: setVariable_RES66Q
variable: Topic.TableWithIndex
value: |-
=ForAll(
Sequence(
CountRows(Topic.Table)
),
{
Index: Value,
Vertical: Index(Topic.Table, Value).vertical,
'Service Line': Index(Topic.Table, Value).'Service Line'
}
)
- kind: SendActivity
id: sendActivity_laZobv
activity:
attachments:
- kind: AdaptiveCardTemplate
cardContent: |-
={
type: "AdaptiveCard",
'$schema': "http://adaptivecards.io/schemas/adaptive-card.json",
version: "1.5",
body: [
{
type: "Table",
columns: [
{
width: "1"
},
{
width: "1"
}
],
rows: [
{
type: "TableRow",
cells: [
{
type: "TableCell",
items: [
{
type: "TextBlock",
text: "Vertical",
wrap: true
}
]
},
{
type: "TableCell",
items: [
{
type: "TextBlock",
text: "Service Line",
wrap: true
}
]
}
]
}
],
separator: true,
gridStyle: "emphasis"
},
{
type: "Table",
columns: [
{
width: "1"
},
{
width: "1"
}
],
rows: ForAll(Topic.TableWithIndex,
{
type: "TableRow",
cells: [
{
type: "TableCell",
items: [
{
type: "TextBlock",
text: Vertical,
wrap: true
}
]
},
{
type: "TableCell",
items: [
{
type: "TextBlock",
text: 'Service Line',
wrap: true
}
]
}
],
style: If(Mod(Index,2)=0,"default","accent")
}
),
firstRowAsHeaders: false,
gridStyle: "emphasis"
}
]
}