:root { color-scheme: light; }
* { box-sizing: border-box; }
body { margin: 0; font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; line-height: 1.6; color: #1a1a1a; background: #fff; }
.wrap { max-width: 42rem; margin: 0 auto; padding: 1.5rem 1rem; }
.eyebrow { text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.8rem; color: #555; margin-bottom: 0.5rem; }
h1 { font-size: 2rem; line-height: 1.2; margin: 0 0 1rem; }
h2 { font-size: 1.35rem; margin: 2.5rem 0 0.75rem; }
h3 { font-size: 1.05rem; margin: 1.5rem 0 0.25rem; }
.sub { font-size: 1.1rem; }
.note, .fine { color: #555; font-size: 0.95rem; }
.cta { display: inline-block; background: #0b5fff; color: #fff; padding: 0.8rem 1.4rem; border-radius: 0.4rem; text-decoration: none; font-weight: 700; border: 0; cursor: pointer; font-size: 1rem; }
.cta:hover, .cta:focus { background: #0049d6; }
.cards { display: grid; gap: 1rem; }
@media (min-width: 40rem) { .cards { grid-template-columns: 1fr 1fr; } }
.card { border: 1px solid #ddd; border-radius: 0.5rem; padding: 1rem 1.25rem; }
.price { font-size: 1.25rem; font-weight: 700; }
form label { display: block; margin: 0.9rem 0; }
form input[type="text"], form input[type="email"], form input[type="url"] { display: block; width: 100%; padding: 0.6rem; margin-top: 0.3rem; border: 1px solid #999; border-radius: 0.3rem; font-size: 1rem; }
fieldset { border: 1px solid #ccc; border-radius: 0.3rem; margin: 0.9rem 0; }
fieldset label { margin: 0.4rem 0; }
.check { font-weight: 400; }
.opt { color: #555; font-size: 0.9rem; }
.form-error { color: #b00020; font-weight: 700; }
input.invalid { border-color: #b00020; }
footer { border-top: 1px solid #ddd; margin-top: 2rem; color: #555; }
a { color: #0b5fff; }
