:root { --tinta: #1d1b18; --papel: #faf8f4; --linha: #e6e1d8; --acento: #b4532a; --suave: #6f6a62; }
* { box-sizing: border-box; }
body { margin: 0; font: 16px/1.5 system-ui, -apple-system, "Segoe UI", sans-serif; color: var(--tinta); background: var(--papel); }
a { color: inherit; }
header { display: flex; justify-content: space-between; align-items: center; padding: 14px 24px; border-bottom: 1px solid var(--linha); background: #fff; position: sticky; top: 0; }
header .marca { font-weight: 700; text-decoration: none; letter-spacing: .02em; }
header .carrinho { text-decoration: none; border: 1px solid var(--linha); padding: 6px 12px; border-radius: 999px; }
main { max-width: 960px; margin: 0 auto; padding: 24px; }
h1 { font-size: 1.6rem; margin: 8px 0 16px; }
.grelha { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 16px; }
.produto { background: #fff; border: 1px solid var(--linha); border-radius: 12px; padding: 16px; text-decoration: none; display: block; }
.produto .foto, .detalhe .foto { font-size: 64px; text-align: center; background: #f2eee7; border-radius: 8px; padding: 18px 0; }
.produto h2 { font-size: 1rem; margin: 12px 0 4px; }
.preco { color: var(--acento); font-weight: 700; }
.detalhe { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: start; }
@media (max-width: 640px) { .detalhe { grid-template-columns: 1fr; } }
button, .botao { background: var(--tinta); color: #fff; border: 0; padding: 12px 18px; border-radius: 8px; font: inherit; cursor: pointer; text-decoration: none; display: inline-block; }
button.ligeiro { background: transparent; color: var(--tinta); border: 1px solid var(--linha); }
table { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid var(--linha); border-radius: 12px; }
td, th { padding: 10px 12px; border-bottom: 1px solid var(--linha); text-align: left; }
.total { text-align: right; font-size: 1.1rem; margin: 16px 0; }
form { background: #fff; border: 1px solid var(--linha); border-radius: 12px; padding: 20px; display: grid; gap: 14px; max-width: 520px; }
label { display: grid; gap: 4px; font-size: .9rem; color: var(--suave); }
input, select { font: inherit; padding: 10px; border: 1px solid var(--linha); border-radius: 8px; color: var(--tinta); }
.passos { display: flex; gap: 8px; color: var(--suave); font-size: .9rem; margin-bottom: 12px; }
.passos .atual { color: var(--tinta); font-weight: 700; }
.erro { background: #fdecea; color: #8a1c12; border: 1px solid #f3c2bc; padding: 10px 12px; border-radius: 8px; }
.vazio { color: var(--suave); }
footer { text-align: center; color: var(--suave); font-size: .8rem; padding: 32px 0; }
