:root{--blue:#3d4b5c;--blue2:#5a6b7f;--ink:#1c2430;--muted:#5b6675;--line:#d6dde6;--bg:#f2f5f9;--err:#b42318}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg);line-height:1.45}
.wrap{max-width:560px;margin:0 auto;padding:20px 16px 40px}
.hero{text-align:center;padding:12px 4px 18px}
.badge{width:56px;height:56px;margin:0 auto 10px;border-radius:16px;background:var(--blue);display:grid;place-items:center;font-size:28px}
h1{font-size:1.6rem;line-height:1.2;margin:0 0 8px;letter-spacing:-.01em}
.lede{margin:0;color:var(--muted);font-size:1.05rem}
.card{background:#fff;border-radius:18px;padding:18px 16px 20px;box-shadow:0 1px 2px rgba(20,30,50,.06),0 6px 24px rgba(20,30,50,.06)}
fieldset{border:0;margin:0 0 18px;padding:0;min-width:0}
legend{font-weight:700;font-size:1.05rem;margin-bottom:10px;padding:0;color:var(--blue)}
label{display:block;font-weight:600;font-size:.95rem;margin-bottom:12px}
.req{color:var(--err)}
input,select{display:block;width:100%;margin-top:6px;font:inherit;font-size:16px;font-weight:400;color:var(--ink);background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:12px 12px;min-height:48px;-webkit-appearance:none;appearance:none}
select{background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 20px) 21px,calc(100% - 14px) 21px;background-size:6px 6px;background-repeat:no-repeat;padding-right:36px}
input:focus,select:focus{outline:none;border-color:var(--blue2);box-shadow:0 0 0 3px rgba(47,111,191,.25)}
input.bad,select.bad{border-color:var(--err)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.row3{display:grid;grid-template-columns:1.6fr .8fr 1fr;gap:10px}
@media (max-width:420px){.row3{grid-template-columns:1fr 1fr}.row3 .city{grid-column:1/-1}}
.choice{margin-bottom:12px}
.q{margin:0 0 8px;font-weight:600;font-size:.95rem}
.pills{display:flex;gap:10px}
.pill{flex:1;margin:0;position:relative}
.pill input{position:absolute;opacity:0;width:1px;height:1px;min-height:0;margin:0}
.pill span{display:flex;align-items:center;justify-content:center;min-height:48px;border:1.5px solid var(--line);border-radius:12px;font-weight:600;cursor:pointer}
.pill input:checked+span{background:var(--blue);border-color:var(--blue);color:#fff}
.pill input:focus-visible+span{box-shadow:0 0 0 3px rgba(47,111,191,.35)}
.pills.bad .pill span{border-color:var(--err)}
.boys{display:grid;gap:10px}
.boy{border:1.5px solid var(--line);border-radius:14px;padding:12px 12px 2px;background:#fafbfd}
.boy h3{margin:0 0 8px;font-size:.95rem;color:var(--muted)}
.boy .row{display:grid;grid-template-columns:minmax(110px,.8fr) 1.2fr;gap:10px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
button{width:100%;min-height:54px;border:0;border-radius:14px;background:var(--blue);color:#fff;font:inherit;font-size:1.1rem;font-weight:700;cursor:pointer}
button:hover{background:var(--blue2)}
button:focus-visible{outline:3px solid #9cc0ee;outline-offset:2px}
button[disabled]{opacity:.65;cursor:wait}
.err{color:var(--err);font-weight:600;margin:0 0 12px}
.fine{color:var(--muted);font-size:.85rem;text-align:center;margin:12px 0 0}
.thanks{text-align:center;padding:32px 20px}
.thanks h2{margin:8px 0 6px;font-size:1.5rem}
.thanks p{margin:0;color:var(--muted);font-size:1.05rem}
.check{width:64px;height:64px;margin:0 auto;border-radius:50%;background:#1a7f4b;color:#fff;font-size:34px;font-weight:700;display:grid;place-items:center}

.info{margin-top:18px}
.info h2{margin:0 0 8px;font-size:1.2rem;color:var(--blue)}
.info p{margin:0 0 8px}
.fine a,.info a,.foot a,.doc a{color:var(--blue2)}
.foot{max-width:560px;margin:0 auto;padding:0 16px 32px;text-align:center;color:var(--muted);font-size:.9rem}
.foot p{margin:4px 0}
.doc h1{font-size:1.5rem}
.doc h2{font-size:1.1rem;margin:20px 0 6px;color:var(--blue)}
.doc p,.doc li{margin:0 0 8px}
.doc ul{padding-left:20px;margin:0 0 8px}
.back{display:inline-block;margin-bottom:12px;font-weight:600}
