If you want a variable to contain a string you must enclose the string in single quotes.
Code:
<xsl:variable name="page-layout" select="'A4-portrait'"/>
In your example you are populating $page-layout with the contents of a root element in your XML input called <A4-portrait>, which I would hazard a guess doesn't exist.
Also, the above is not a 'template', but a stylesheet. In fact you don't have any templates in the above example. Trying to use consistent terminology makes communicating easier and avoids misunderstandings.