@font-face {
	font-family: 'Caviar Dreams';
	src: url(../fonts/CaviarDreams.woff);
}

@font-face {
	font-family: 'Caviar Dreams';
	src: url(../fonts/Caviar_Dreams_Bold.woff);
	font-weight: bold;
}

@font-face {
	font-family: 'Caviar Dreams';
	src: url(../fonts/CaviarDreams_Italic.woff);
	font-style: italic;
}

@font-face {
	font-family: 'Caviar Dreams';
	src: url(../fonts/CaviarDreams_BoldItalic.woff);
	font-weight: bold;
	font-style: italic;
}

body {
	background-image: repeating-linear-gradient(45deg, white, blanchedalmond 1mm);
	font-family: Arial;
	margin: 0;
}

h1 {
	font-size: 32pt;
	font-family: Verdana;
}

p {
	font-size: 14pt;
}

ul {
	font-size: 14pt;
	list-style-type: square;
}

p.greeting {
	font-size: 24pt;
}

.picture img {
	width: 67%;
}

ul li strong {
	font-style: italic;
}

.advertising {
	margin-left: 30pt;
}

.advertising p {
	font-size: 12pt;
	margin-top: 2pt;
	margin-bottom: 2pt;
}

header {
	text-align: right;
	grid-area: header;
}

footer {
	text-align: right;
	grid-area: footer;
}

.bar-title {
	font-variant-caps: small-caps;
	font-size: 60pt;
}

.time {
	font-variant-numeric: oldstyle-nums;
	font-size: larger;
}

table.price-list th,
table.price-list td {
	border: grey thin solid;
	padding: 2pt;
}

table.catalog td {
	border-bottom: black thin dotted;
	padding: 3pt;
}

table.catalog tr:last-child td {
	border-bottom: none;
}

table.catalog img {
	width: 200px;
}

.price-list thead th {
	color: white;
	background-color: grey;
}

.price-list tfoot th {
	font-style: italic;
	text-align: right;
}

nav {
	grid-area: nav;
	background-color: blanchedalmond;
	padding: 20px;
}

nav div,
nav a {
	font-size: 24pt;
	margin: 10px 0px;
}

main {
	grid-area: main;
	min-height: 700px;
}

table.price-list th [colspan=2] {
	text-align: center;
}

table.price-list td:last-child:not(td:only-child) {
	border: none;
	background-color: lightgrey;
}

table.price-list td[rowspan] {
	font-size: larger;
}

table.catalog h3 {
	font-family: 'Caviar Dreams';
	font-size: 32pt;
	font-variant-caps: all-small-caps;
}

i.icon-drink {
	content: url(../images/drink.jpg);
	height: 1em;
}

main h2 {
	font-size: 28pt;
	text-transform: uppercase;
}

table.catalog h3 {
	letter-spacing: 10pt;
}

table.catalog h3::after {
	content: ":";
}

table.catalog h3+p::first-letter {
	font-size: 150%;
	background-color: blanchedalmond;
	vertical-align: top;
}

ul li::marker {
	font-size: 150%;
	color: orange;
}

header h1.header1 {
	font: bold 48pt 'Caviar Dreams';
	text-transform: uppercase;
	letter-spacing: 18pt;
	background: padding-box padding-box url(../images/sushi.jpg) left / auto 80% no-repeat, padding-box padding-box url(../images/rolls.png) 160px / auto 80% no-repeat, radial-gradient(circle farthest-side at right, blanchedalmond, blanchedalmond 67%, white 90%);
	margin: 0;
	padding: 12pt 8pt 0 0;
	border-bottom: 12pt solid salmon;
}

header h1.header2 {
	font: 36pt Verdana;
	letter-spacing: 8pt;
	margin: 0;
	padding: 0 36pt 0 0;
}

div.container {
	min-width: 768px;
	max-width: 1024px;
	margin-left: auto;
	margin-right: auto;
	background: url(../images/mate.png) left bottom 200px / 200px no-repeat, rgba(255, 255, 255, 0.8);
	display: grid;
	grid-template-areas:
		"header header"
		"nav    main"
		"footer footer";
	grid-template-columns: 240px 1fr;
	grid-template-rows: auto 1fr auto;
	gap: 10px;
}

.poddon {
	margin: 0;
	font: bold italic 20pt 'Caviar Dreams';
	background-color: blanchedalmond;
	border-bottom: solid salmon;
}

.authors {
	padding: 0 20pt 0 0;
}

ol {
	list-style-type: upper-roman;
}

ol li::marker {
	color: orange;
}

table.catalog td:first-child {
	width: 33%;
}

nav a {
	color: maroon;
	text-decoration: none;
	display: block;
	transition-property: color, background-color, translate;
	transition-duration: 1.5s, 1.5s, 2s;
	transition-delay: .5s, .5s, 0;
}

nav a:active,
nav a:hover {
	color: blanchedalmond;
	background-color: maroon;
	translate: 10px;
	transition-property: color, background-color, translate;
	transition-duration: 1s;
}

table.catalog img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

form {
	width: auto;
	padding: 0 10pt;
	margin-bottom: 10pt;
	border: thin dotted orange;
	border-radius: 5pt;
}

input,
select,
textarea {
	font: 12pt monospace;
	border: medium solid orange;
	border-radius: 5pt;
	padding: 5pt;
}

input:required+span::after,
select:required+span::after {
	font: 24pt monospace;
	content: '*';
	vertical-align: top;
}

input:user-valid,
select:user-valid {
	border-color: green;
}

input:user-invalid,
select:user-invalid {
	border-color: red;
}

input[type="checkbox"] {
	appearance: none;
	-webkit-appearance: none;
	width: 1ex;
	height: 1ex;
	border: 1px solid orange;
	border-radius: 0;
	background-color: transparent;
	display: inline-block;
	vertical-align: middle;
	margin-right: 5px;
}

input[type="checkbox"]:checked {
	background-color: orange;
}

input[type="radio"] {
	appearance: none;
	-webkit-appearance: none;
	width: 1ex;
	height: 1ex;
	border: 1px solid orange;
	border-radius: 50%;
	background-color: transparent;
	display: inline-block;
	vertical-align: middle;
	margin-right: 5px;
}

input[type="radio"]:checked {
	background-color: orange;
}

nav .mate {
	display: block;
	width: 100%;
	margin-top: 20px;
}

fieldset {
	width: 50%;
	max-width: 100%;
}

@media screen and (max-width: 480px) {
	div.container {
		display: block;
		min-width: 0 !important;
		max-width: 100% !important;
		width: 100% !important;
		width: 100vw;
		background: rgba(255, 255, 255, 0.8);
	}

	nav {
		display: block;
		float: none;
		width: 100%;
		margin: 0;
		padding: 10pt;
		border-radius: 0;
	}

	main {
		display: block;
		margin-left: 0;
		width: 100%;
		max-width: 100%;
		padding: 10pt;
		box-sizing: border-box;
		min-height: initial;
		overflow-x: hidden;
	}

	header h1.header1 {
		font: bold 42pt 'Caviar Dreams';
		letter-spacing: initial;
		background: radial-gradient(circle farthest-side at right,
				blanchedalmond, blanchedalmond 67%, white 90%);
	}

	header h1.header2 {
		font: 32pt Verdana;
		letter-spacing: initial;
	}

	table.catalog,
	table.catalog tr,
	table.catalog tr td {
		display: block;
		width: 100%;
	}

	table.catalog tr td:first-of-type {
		width: 100%;
	}

	table.catalog img {
		height: 150px;
	}

	table.catalog h3 {
		font-size: 28pt;
		letter-spacing: 4pt;
		word-break: break-word;
		padding-right: 20pt;
	}

	table.catalog p {
		word-break: break-word;
		padding-right: 20pt;
	}

	html,
	body {
		overflow-x: hidden;
		max-width: 100%;
	}

	table.catalog td {
		padding-right: 20pt;
	}

	.poddon {
		padding-right: 10pt;
	}

	form {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		box-sizing: border-box;
		overflow-x: hidden;
	}

	fieldset {
		width: 100%;
		max-width: 100%;
		min-width: 0;
		box-sizing: border-box;
		padding: 5pt;
	}

	textarea {
		width: 100% !important;
		max-width: 100% !important;
		box-sizing: border-box;
	}

	input,
	select {
		max-width: 100%;
		box-sizing: border-box;
	}
}

@media print {
	body {
		background: none;
	}

	nav {
		display: none;
	}

	main {
		margin-left: 0;
	}

	.poddon {
		page-break-before: auto;
	}
}