@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 {
    font-family: Arial;
    margin: 0;
    background-image:
        repeating-linear-gradient(45deg, white, blanchedalmond 1mm);
}
p { font-size: 14pt; }
ul {
    font-size: 14pt;
    list-style-type: square;
}
p.greeting { font-size: 24pt; }
ul li strong {
    font-style: italic;
}
.advertising { margin-left :30pt; }
.advertising p {
    font-size: 12pt;
    margin-top: 2pt;
    margin-bottom: 2pt;
}
footer {
    text-align: right;
    break-before: avoid;
}
.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 img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}
table.price-list thead {
    color: white;
    background-color: grey;
}
table.price-list tfoot {
    font-style: italic;
    text-align: right;
}
nav {
    background-color: blanchedalmond;
    float: left;
    width: 200px;
    margin: 10px 0px 10px 10px;
    padding: 20px;
    border-radius: 10px;
}
nav div, nav a {
    font-size: 24pt;
    margin: 10px 0px;
}
main {
    margin-left: 300px;
    min-height: 600px;
}
table.catalog tr:last-child td {
    border-bottom: none;
}
table.price-list th[colspan=2] {
    text-align: center;
}
table.catalog h3 + p::first-letter {
    font-size: 150%;
    background-color: blanchedalmond;
    vertical-align: top;
}
ul li::marker {
    font-size: 150%;
    color: orange;
}
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;
    letter-spacing: 10pt;
}
table.catalog h3::after {
    content: ':';
}
i.icon-drink {
    content: url(../images/drink.jpg);
    height: 1em;
}
h2 {
    font-size: 28pt;
    text-transform: uppercase;
}
header { text-align: right; }
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) 50px 620px / 160px auto no-repeat,
              rgba(255, 255, 255, 0.8);
}
footer address {
    font: italic bold 20pt 'Caviar Dreams';
    background-color: blanchedalmond;
    margin: 0;
    padding: 8pt 8pt 4pt 0;
    border-bottom: 2pt solid salmon;
}
footer p {
    margin: 0;
    padding: 8pt 8pt 18pt 0;
}
ol.adv {
    list-style-type: upper-roman;
}
ol.adv li::marker {
    color: orange;
}
table.catalog tr td:first-of-type {
    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;
}
form {
    width: min-content;
    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], input[type=radio] {
    appearance: none;
    width: 1ex;
    height: 1ex;
    background-color: white;
    border: none;
    border-radius: 0;
    outline: solid orange;
    outline-offset: 1pt;
    margin-right: 8pt;
    vertical-align: middle;
}
input[type=checkbox]:checked, input[type=radio]:checked {
    background-color: orange;
}
input[type=radio] {
    border-radius: 50%;
}
@media screen and (max-width: 400px) {
    nav {
        float: none;
        width: initial;
        margin: initial;
        border-radius: initial;
    }
    main {
        margin-left: initial;
        min-height: initial;
    }
    div.container {
        min-width: initial;
        max-width: initial;
        width: 100vw;
        background: rgba(255, 255, 255, 0.8);
    }
    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;
    }
    table.catalog tr td:first-of-type {
        width: initial;
    }
    table.catalog img {
        height: 150px;
    }
    table.catalog h3 {
        font-size: 38pt;
    }
}
@media print {
    * { background: transparent; }
    nav { display: none; }
    main { margin-left: initial; }
}