* { box-sizing: border-box; }
body { font-family: system-ui, sans-serif; margin: 0; color: #1a2b1a; background: #f7f8f5; }
.container { max-width: 640px; margin: 0 auto; padding: 1rem; }
fieldset.dish { border: 1px solid #cdd6cd; border-radius: 8px; margin: 1rem 0; padding: .75rem 1rem; background: #fff; }
legend { font-weight: 600; }
.price { color: #3c6e3c; }
.options { margin-left: 1rem; }
.options label, fieldset label { display: block; margin: .35rem 0; }
input[type=number] { width: 4.5rem; }
input[type=text], input[type=email] { width: 100%; max-width: 320px; padding: .3rem; }
.error { color: #a4231b; font-weight: 600; }
.notice { background: #fff4d6; border: 1px solid #e0c268; padding: .75rem; border-radius: 8px; }
.hint { color: #7a6210; margin: .25rem 0; }
.grand-total, .line-total { font-weight: 600; }
button { background: #3c6e3c; color: #fff; border: 0; border-radius: 8px; padding: .7rem 1.4rem; font-size: 1rem; }
button:disabled { opacity: .5; }
.meta { color: #5a675a; font-size: .9rem; }
.footer { font-size: .85rem; color: #5a675a; }
.hp { position: absolute; left: -9999px; }
.linklike { background: none; color: #3c6e3c; border: 0; padding: 0; text-decoration: underline; cursor: pointer; font-size: 1rem; }
table { border-collapse: collapse; width: 100%; }
th, td { border: 1px solid #cdd6cd; padding: .35rem .5rem; text-align: left; font-size: .92rem; }
