As you say, you have -
imm8 = 0010 0100
imm3 = 011
but you also have
i = 0
imm32 = ZeroExtend(i:imm3:imm8,32) =>
imm32 = ZeroExtend(0:011:00100100,32) =>
imm32 = ZeroExtend(001100100100,32) =>
imm32 = 00000000000000000000001100100100 = 0x00000324
The ADR instruction description explains that "This instruction adds an immediate value to the PC value to form a PC-relative address, and writes the result to the
As you are in Thumb mode, the value of PC is equal to the (4 byte aligned) address of the instruction + 4 bytes.
In your case the instruction is at address
PC = 0x080461FC + 4 = 0x08046200
The address calculation is then -
PC + imm32 = 0x08046200 + 0x00000324 = 0x08046524
This is what you see in IDA's disassembly.
If you look in the 'Operation' section of the ADR instruction in the ARM architecture reference manual you can see this explained.