body { font-family: system-ui, sans-serif; max-width: 42rem; margin: 2rem auto; padding: 0 1rem; line-height: 1.5; color: #1b1b1f; }
.banner { background: #f2f2f7; border-radius: .5rem; padding: .6rem .9rem; font-size: .9rem; }
.price { font-size: 1.6rem; font-weight: 600; }
.buy { display: inline-block; background: #1b1b1f; color: #fff; padding: .7rem 1.4rem; border-radius: .4rem; text-decoration: none; }
footer { margin-top: 3rem; font-size: .8rem; color: #55555c; }
footer a { color: inherit; }
.receipt table { width: 100%; border-collapse: collapse; margin: 1rem 0; }
.receipt th, .receipt td { text-align: left; padding: .35rem .5rem; border-bottom: 1px solid #dcdce2; }
.receipt td.num, .receipt th.num { text-align: right; font-variant-numeric: tabular-nums; }
.receipt .total td { font-weight: 600; border-bottom: 2px solid #1b1b1f; }
.receipt .notice { border: 1px solid #1b1b1f; border-radius: .4rem; padding: .6rem .9rem; }
.receipt dl { display: grid; grid-template-columns: max-content 1fr; gap: .2rem 1rem; }
.receipt dt { color: #55555c; }
@media print { body { margin: 0; max-width: none; } .no-print { display: none; } }
.rating { font-size: 1.1rem; }
.about p, .about ul, .about ol { margin: .6rem 0; }
.cards { list-style: none; padding: 0; }
.cards li { border: 1px solid #dcdce2; border-radius: .5rem; padding: .7rem .9rem; margin: .6rem 0; }
.price-sm { color: #55555c; margin-left: .4rem; }
.review { border-left: 3px solid #dcdce2; margin: 1rem 0; padding: .2rem 1rem; }
.review .stars { margin: 0; letter-spacing: .1rem; }
.review .meta { font-size: .85rem; color: #55555c; }
.review .reply { background: #f2f2f7; border-radius: .4rem; padding: .5rem .8rem; }
.note { font-size: .85rem; color: #55555c; }
.contact input[type=text], .contact input[type=email], .contact textarea, .review-form textarea { width: 100%; max-width: 100%; box-sizing: border-box; padding: .45rem; font: inherit; }
.hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.errors { color: #8a1c1c; }
