	html {
		position: relative;
		margin: auto;
		background: rgb(64,64,64);
	}

	body {
		padding: 1rem 2.5rem;
		background: rgb(255,255,255) 100% no-repeat;
		margin: 2rem auto;
	}

	header {
		display: block;
		text-align: center;
	}

	header h1 {
		margin-top: 0%;
		padding-top: 0.25em;
	}

	header h3 {
		margin: 0%;
	}

	header img {
		max-height: 100%;
		max-width: 25em;
		height: auto;
		width: auto;
	}

	footer {
		text-align: center;
	}

	nav.left, nav.right {
		position: absolute;
		top: 0%;
		bottom: 0%;
		width: 2em;
	}

	nav.left a:hover, nav.right a:hover {
		background-color: rgba(0,0,0,0.25);
		text-shadow: 0 0 0.25em black;
	}

	nav.left {
		left: 0%;
	}

	nav.right {
		right: 0%;
	}

	nav.left a, nav.right a {
		color: rgb(64,64,64);
		text-decoration: none;

		height: 100%;
		width: 100%;

		display: flex;
		flex-flow: column nowrap;
		justify-content: center;
		align-items: center;
	}

	nav.left > a > span {
		transform: rotate(90deg);
		white-space: nowrap;
	}

	nav.right > a > span {
		transform: rotate(-90deg);
		white-space: nowrap;
	}











	article,
	table {
		width: 100%;
		page-break-inside: avoid;
	}

	article {
		flex: 1 auto;
		display: flex;
		flex-flow: column nowrap;
	}

	article header,
	table caption {
		border-top: thin solid;
		padding-top: 0.5em;
	}

	article span {
		flex: 0 0 auto;
		display: flex;
		flex-flow: row nowrap;
		margin: auto 0%;
	}

	article label {
		flex: 0 0 auto;
	}

	table tr:first-child td {
		padding-top: 0.5em;
	}

	table tr td:first-child {
		padding-left: 1em;
	}

	table tr td:last-child {
		padding-right: 1em;
	}

	table tr:last-child td {
		padding-bottom: 1em;
	}

	article label.food {
		flex: 1 auto;
	}

	article label.food,
	table td.food {
		width: 100%;
		text-align: center;
	}

@media not print {
	html.A4 {
		width: 94.5vw; /* 21.0cm * 4.5vw */
		height: 133.65vw; /* 29.7cm * 4.5vw */
		font-size: 1.65vw;
	}

	html.A4 > body {
	}
}

@media only print {
	@page { margin: 0mm; }

	html.A4 {
		width: 210mm;
		height: 297mm;
		font-size: 11pt;
	}
	html.A4 body {
		padding: 10mm 25mm;
	}

	html {
		color: black;
		background: white;
	}
	body {
		position: absolute;
		top: 0%;
		left: 0%;
		right: 0%;
		bottom: 0%;
		margin: 0%;
		color: black;
		background: white;
	}

	nav { display: none; }
}

@media only screen and (max-width: 480px) {
	body {
		-webkit-text-size-adjust: none;
		font-size: 3em;
	}
}

/* --- temp test --- *

	body {
		height: 100%;
		display: flex;
		flex-flow: column nowrap;
	}

	header, footer {
		flex: 0 0 auto;
	}

	section {
		flex: 1 auto;
		display: flex;
		flex-flow: column nowrap;
	}

	article header {
		border-bottom: none;
		padding-bottom: 0%;

		border-top: medium solid;
		padding-top: 0.5em;
	}

/* --- --- --- */
