```python
"""Melt a row of ice one simultaneous step at a time."""


def thaw_row(row: str, steps: int) -> str:
    if not isinstance(row, str) or not row:
        raise ValueError("thaw_row expects a non-empty string row")
    if not isinstance(steps, int) or steps < 0:
        raise ValueError("thaw_row expects a non-negative integer step count")
    if any(char not in "#." for char in row):
        raise ValueError("Row must contain only '#' and '.' characters")

    row_list = list(row)
    for _ in range(steps):
        new_row = []
        for i in range(len(row)):
            if row[i] == "#" and (i == 0 or i == len(row) - 1 or row[i - 1] == "." or row[i + 1] == "."):
                new_row.append(".")
            else:
                new_row.append(row[i])
        row_list = new_row
    return ''.join(row_list)
```