:root { color-scheme: light; }
body { margin: 0; font: 16px/1.45 system-ui, sans-serif; background: #fdf9f1; color: #1c1c17; }
.bar, main { max-width: 40rem; margin: 0 auto; padding: 1rem; }
.bar { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
a { color: #a33800; }
h1 { font-size: 1.6rem; line-height: 1.2; }
form, fieldset { display: grid; gap: 0.75rem; }
label { display: grid; gap: 0.25rem; font-size: 0.9rem; }
[hidden] { display: none !important; }
.check { display: flex; gap: 0.5rem; align-items: flex-start; }
input, select, button { font: inherit; padding: 0.7rem; border: 1px solid #e5dec9; border-radius: 0.4rem; width: 100%; box-sizing: border-box; }
button { background: #a33800; color: #fff; border: 0; }
.notice { background: #fff; border: 1px solid #e5dec9; padding: 0.75rem; }
aside { margin-top: 1.5rem; padding: 1rem; background: #fff; border-radius: 0.5rem; }
.plan-wrap { display: grid; gap: 1.5rem; }
.plan-grid { display: grid; gap: 0.75rem; }
.plan-card { display: grid; gap: 0.3rem; padding: 0.9rem; border: 1px solid #e5dec9; border-radius: 0.5rem; background: #fff; cursor: pointer; }
.plan-card input[type="radio"] { width: auto; margin-right: 0.4rem; }
.plan-card strong { font-size: 1.05rem; }
.plan-price { color: #a33800; font-weight: 600; }
.plan-hours { color: #4a4a3a; font-size: 0.9rem; }
.plan-summary { color: #4a4a3a; font-size: 0.9rem; }
.plan-form fieldset { border: 1px solid #e5dec9; border-radius: 0.5rem; padding: 0.9rem; }
.plan-form legend { padding: 0 0.4rem; font-weight: 600; }
.plan-terms { background: #fff; border: 1px solid #e5dec9; padding: 0.9rem; border-radius: 0.5rem; }
.plan-proposal { background: #faf7f2; border: 1px dashed #a33800; padding: 0.9rem; border-radius: 0.5rem; }
.plan-proposal ul { margin: 0.5rem 0 0; padding-left: 1.2rem; }
.plan-hours-rule { background: #fff8f3; border: 1px solid #a33800; padding: 0.9rem; border-radius: 0.5rem; }
.plan-hours-rule h2 { margin: 0 0 0.4rem; font-size: 1.05rem; }
textarea { font: inherit; width: 100%; min-height: 5rem; padding: 0.7rem; border: 1px solid #e5dec9; border-radius: 0.4rem; box-sizing: border-box; }
dl { display: grid; grid-template-columns: max-content 1fr; gap: 0.4rem 0.8rem; }
dt { font-weight: 600; }
.muted { color: #675c50; }
@media (min-width: 720px) {
  .plan-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.legal-page, .legal-precontract, .legal-accept { display: grid; gap: 0.75rem; }
.legal-nav, .legal-footer { display: flex; flex-wrap: wrap; gap: 0.6rem 1rem; }
.legal-footer { max-width: 40rem; margin: 0 auto; padding: 1rem; flex-direction: column; }
.legal-identity-line { width: 100%; margin: 0; font-size: 0.85rem; line-height: 1.45; color: #4a4a3a; }
.legal-pending { background: #fff8f3; border: 1px solid #a33800; padding: 0.9rem; border-radius: 0.5rem; }
.legal-form, .legal-vat { background: #fff; border: 1px solid #e5dec9; padding: 0.9rem; border-radius: 0.5rem; }
.legal-cookies { width: 100%; border-collapse: collapse; font-size: 0.9rem; }
.legal-cookies th, .legal-cookies td { border: 1px solid #e5dec9; padding: 0.45rem; text-align: left; vertical-align: top; }
main:has(.checkout-shell) { max-width: 68rem; }
.checkout-layout { display: grid; gap: 1rem; }
.checkout-progress { display: flex; flex-wrap: wrap; gap: 0.5rem; list-style: none; padding: 0; margin: 0 0 1rem; }
.checkout-progress button { width: auto; background: #fff; color: #1c1c17; border: 1px solid #e5dec9; }
.checkout-progress button[aria-current="step"] { background: #a33800; color: #fff; border-color: #a33800; }
.checkout-nav { display: flex; gap: 0.5rem; align-items: center; position: sticky; bottom: 0; background: #fdf9f1; padding: 0.6rem 0; }
.checkout-nav button { width: auto; min-width: 9rem; }
#checkout-back { background: #fff; color: #a33800; border: 1px solid #a33800; }
.checkout-side { background: #fff; border: 1px solid #e5dec9; border-radius: 0.75rem; padding: 1rem; }
.pay-methods { display: grid; gap: 0.6rem; }
.pay-card { display: flex; align-items: center; gap: 0.75rem; border: 1px solid #e5dec9; border-radius: 0.75rem; padding: 0.8rem 1rem; background: #fff; }
.pay-card input { width: auto; }
.pay-card:has(input:checked) { border-color: #a33800; }
.pay-mark { font: 700 0.72rem/1 system-ui, sans-serif; letter-spacing: 0.04em; border: 1px solid currentColor; border-radius: 0.3rem; padding: 0.28rem 0.4rem; }
.payment-marks { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin: 0 0 1rem; }
.payment-marks p { width: 100%; margin: 0; font-size: 0.85rem; }
@media (min-width: 800px) {
  .checkout-layout { grid-template-columns: minmax(0, 1.5fr) minmax(16rem, 0.7fr); align-items: start; }
  .checkout-side { position: sticky; top: 1rem; }
}
#pagamento { display: grid; gap: 0.75rem; margin-top: 1rem; padding: 1rem; background: #fff; border: 2px solid #a33800; border-radius: 0.5rem; }
#pagamento .check { display: flex; align-items: center; gap: 0.6rem; }
#pagamento input[type="radio"] { width: auto; }
#pagamento button { width: auto; min-width: 12rem; }
@media (max-width: 640px) {
  .bar, main { padding: 0.75rem; }
  h1 { font-size: 1.35rem; }
  .legal-footer { padding: 0.75rem; }
}
