With {hiddenCountry} you tell LS to show the answer code, which is obviously does.
You need to use the right code, which probably is {hiddenCountry.shown}.
Read the manual about expression manager:
www.limesurvey.org/manual/Expression_Manager
You'll find this:
www.limesurvey.org/manual/Expression_Man...benefits_of_using_EM
?
New Variable Attributes - you can access the following to do your tailoring:
(no suffix) - an alias for qcode.code
.code - the selected response code for the question if it is relevant (otherwise blank), or the text value if it is not a coded question
.NAOK - same as .code, but can be part of calculations or lists even if irrelevant
.value - the assessment value for the question if it is relevant (otherwise blank), or the text value if it is not a coded question -- available is assesments are enabled for the survey, otherwise always zero
.valueNAOK - same as .value, but can be part of calculations or lists even if irrelevant
.shown - the answer as displayed to the user (this is what {INSERTANS:xxx} does)
.qid - the question ID
.gid - the group ID
.sgqa - the SGQA value for the question
.jsName - the correct javascript variable name for the question, regardless whether defined on this page or another
.qseq - the question sequence (starting from 0)
.gseq - the group sequence (starting from 0)
.mandatory - whether the question is mandatory (Y/N)
.question - the text of the question
.relevance - the relevance equation for the question
.grelevance - the relevance equation for the group
.relevanceStatus - whether or not the question is currently relevant (boolean (can be different in PHP and JS))
.type - the question type (the one character code)
But I really recommend to read through this. Might take 30min, but it really helps to better understand Expression Manager.