:root{--ink:#101828;--mute:#475467;--line:#e4e7ec;--bg2:#f6f8fa;--bd:#8a94a6;--navy:#0b2a5b;--blue:#0060f0;--err:#b42318;--ok:#067647}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:#fff;color:var(--ink);font:16px/1.5 "Open Sans",Arial,Helvetica,sans-serif}
.page{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}
a{color:var(--blue)}
.top{background:var(--bg2);color:var(--mute);font-size:12.5px;text-align:center;padding:7px 16px;border-bottom:1px solid var(--line)}
.top b{color:var(--ink);font-weight:600}
header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:12px 16px;max-width:560px;margin:0 auto}
.logo{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--navy)}
.logo span{font:700 23px/1 "Times New Roman",Times,serif;letter-spacing:-.01em}.logo i{font-weight:400;color:#1d4f9c}
main{flex:1;width:100%;max-width:560px;margin:0 auto;padding:4px 16px 40px}
.bar{display:flex;align-items:flex-start;margin:10px 0 0;padding:0 18px 26px}
.dot{width:16px;height:16px;border-radius:50%;background:#98a2b3;flex:none}
.dot.on{background:#fff;border:2px solid var(--navy)}
.dot.ok{background:var(--navy)}
.ln{flex:1;height:2px;background:#98a2b3;margin-top:7px}
.st{position:relative;flex:none}
.st span{position:absolute;top:22px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:11.5px;line-height:1;color:var(--mute)}
.st.cur span{color:var(--ink);font-weight:700}
.ln.ok{background:var(--navy)}
.lbl{display:none}
h1{font:400 30px/1.2 "Times New Roman",Times,serif;margin:26px 0 8px;letter-spacing:-.01em}
.sub{margin:0 0 22px;color:var(--ink)}
.s{display:none}.s.act{display:block}
.cta{margin:26px 0 0}
.opt{display:flex;align-items:center;gap:14px;width:100%;min-height:56px;margin:0 0 10px;padding:12px 16px;border:1px solid var(--bd);border-radius:6px;background:#fff;font:600 16px "Open Sans",Arial,sans-serif;color:var(--ink);text-align:left;cursor:pointer}
.opt:before{content:"";width:20px;height:20px;border-radius:50%;border:1.5px solid #667085;flex:none;box-sizing:border-box}
.opt.sel{border-color:var(--navy);box-shadow:0 0 0 1px var(--navy)}
.opt.sel:before{border:6px solid var(--navy)}
label{display:block;font-weight:700;font-size:15px;margin:0 0 6px}
.f{margin:0 0 18px}
input{width:100%;height:50px;padding:0 14px;border:1px solid var(--bd);border-radius:4px;font:16px "Open Sans",Arial,sans-serif;color:var(--ink);background:#fff}
input:focus,.opt:focus-visible,.btn:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
input.bad{border-color:var(--err)}
.hint{font-size:12.5px;color:var(--mute);margin:4px 0 0}
.msg{font-size:14px;margin:6px 0 0;min-height:0}
.msg.e{color:var(--err)}.msg.g{color:var(--ok)}
.btn{display:block;width:100%;height:52px;margin:0;border:0;border-radius:25px;background:var(--navy);color:#fff;font:600 17px "Open Sans",Arial,sans-serif;cursor:pointer}
.btn[disabled]{opacity:.55;cursor:default}
.back{display:inline-block;margin:18px 0 0;background:none;border:0;padding:4px 0;color:var(--blue);font:600 15px "Open Sans",Arial,sans-serif;cursor:pointer}
.link{background:none;border:0;padding:0;color:var(--blue);font:inherit;text-decoration:underline;cursor:pointer}
.link[disabled]{color:var(--mute);text-decoration:none}
.legal{font-size:12.5px;line-height:1.55;color:#344054;margin:4px 0 16px}
.sec{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--mute);margin:18px 0 0}
.hp{position:absolute;left:-9999px;height:1px;width:1px;overflow:hidden}
#code{letter-spacing:.5em;font-size:22px;text-align:center}
footer{background:var(--bg2);border-top:1px solid var(--line);padding:22px 16px 30px;font-size:12px;color:var(--mute)}
footer div{max-width:560px;margin:0 auto}
footer nav{display:flex;gap:18px;margin:0 0 10px}
footer a{font-weight:600}
@media(min-width:640px){h1{font-size:34px}main{padding-top:12px}}
/* --- Policy Upside: piezas nuevas con los mismos tokens --- */
.ql{display:block;font-weight:700;font-size:15px;margin:18px 0 8px}
.ql:first-child{margin-top:0}
.grp{margin:0 0 6px}
.opt.chk:before{border-radius:4px}
.opt.chk.sel:before{border:0;background:var(--navy) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5 10 16l8-9' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/14px no-repeat}
.opt small{display:block;font-weight:400;font-size:13.5px;color:var(--mute);margin-top:1px}
.opt span{display:block}
select{width:100%;height:50px;padding:0 12px;border:1px solid var(--bd);border-radius:4px;font:16px "Open Sans",Arial,sans-serif;color:var(--ink);background:#fff}
select:focus{outline:2px solid var(--blue);outline-offset:2px}
select.bad{border-color:var(--err)}
.money{position:relative}.money:before{content:"$";position:absolute;left:14px;top:13px;color:var(--mute)}.money input{padding-left:28px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:400px){.row2{grid-template-columns:1fr}}
.multi .opt{min-height:50px}
.nossn{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--mute);margin:14px 0 0}

input::placeholder{color:#98a2b3;opacity:1}
