Starting stacks were:

UTG+2 - $10000 | Hero (LJ) - $20500 | Villain (CO) - $20500 | BTN - $55000

Preflop ($75): Hero is LJ with Q♦Q♥️
UTG calls $50, UTG+1 calls $50, UTG+2 calls $50, hero raises $500, HJ folds, CO calls $500, BTN calls $500, 4 folds, UTG+2 calls $500

Flop ($2100): K♦3♠Q♠
UTG+2 checks, Hero bets $1000, CO raises $2000, BTN folds, UTG+2 calls $2000, hero calls $2000

Turn ($8100): 7♦
UTG+2 checks, hero checks, CO bets $500, UTG+2 calls $500, hero raises $5300, CO calls $5300, UTG+2 calls $5300

River ($24000): 8♦
Hero checks, CO goes all-in for $12700, UTG+2 folds, hero calls $12700

Showdown: CO reveals A♦K♠. Hero reveals Q♦Q♥️. Hero wins $50,000 with three of a kind, Queens.

Here's my logic for the call on the river: "If he had pocket kings, he would have raised on the flop instead of calling. If he had two diamonds, he would have bet more on the turn than he bet on the flop. Therefore he has nothing."

Still, it had been an up and down session where I'd started with $6000 and doubled my money, so I wasn't sure if I wanted to risk it all on this particular hand.

My question is: was this a justified call or did I just get lucky?