Zorin 18 Pro randomly reboots

HI everyone, new to the forum.

Bit of background: I am a Windows convert, having got fed up with the AI slop and ads being forced on me. I was an advanced windows user, being comfortable with the Terminal/Powershell, and with the registry, so I am not a newbie with PCs. However, I am fairly new to Linux. I am still comfortable using the Terminal, but currently I don't have a full grasp on all the commands/syntax.

With that out of the way, I am having a big issue with my ZorinOS 18 Pro installation. When I am using it, it runs perfectly, very smooth and stable. But when I leave the PC, at seemingly random times, it just reboots, so when I come back to it, it needs to log in from a cold start. Sometimes I can leave the PC for hours and its still fine when I come back, other times it's only half an hour later and it has rebooted. I have installed the 'Logs' app but I can't really understand it all. I have turned off sleep and am running it in performance mode.

One other issue that may be related: The Wifi on my motherboard isn't working. If I run 'lspci', it comes up as "Network controller: Intel Corporation Wi-Fi 6 AX200 (rev 1a)" but no drivers are installed and I am having trouble getting that working. It's not really an issue, as I use Ethernet anyway, but it may be important.

My hardware: Ryzen 7 5800X3D CPU, 32Gb 3600MT/s DDR4, Gigabyte X570S Aorus Pro AX motherboard, AMD RX 6700XT GPU.

OK. I have tried fixing a few errors that were appearing in the logs, but it is still happening. I really find it hard to make heads or tails of the logs tbh. I have installed the Gnome 'Logs' application - is there a better one anyone would recommend?

The main error I don't understand is this one:

Received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadWindow (invalid Window parameter)' .
(Details: serial 45217 error_code 3 request_code 7 (core protocol) minor_code 0)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the MUTTER_SYNC environment
variable to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the mtk_x_error() function.)

I have the same problem and other people posted similar situations here.

I posted my case on System crashing after returning from lockscreen, maybe a solution for my case could be the same for yours.

I couldn't find a solution yet.