:root{--navy:#102a43;--blue:#0b64c0;--cyan:#00a6c8;--ink:#18212b;--muted:#64748b;--line:#d9e2ec;--pale:#eff8ff;--gold:#f0b429;--white:#fff;--shadow:0 18px 50px rgba(16,42,67,.12)}
*{box-sizing:border-box}body{margin:0;background:linear-gradient(150deg,#f5fbff 0,#fff 48%,#f4f8fb 100%);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif;line-height:1.65}.topbar{height:76px;padding:0 max(24px,calc((100vw - 1120px)/2));display:flex;align-items:center;gap:14px;background:#fff;border-bottom:1px solid #e8eef3}.brand-mark{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,var(--blue),var(--cyan));display:grid;place-items:center;color:#fff;font:800 24px/1 Georgia}.topbar strong,.topbar span{display:block}.topbar strong{color:var(--navy);font-size:15px}.topbar span{font-size:12px;color:var(--muted)}main{max-width:1120px;margin:0 auto;padding:58px 24px 80px;display:grid;grid-template-columns:.8fr 1.35fr;gap:64px;align-items:start}.intro{position:sticky;top:36px;padding-top:24px}.eyebrow{font-size:13px;font-weight:800;letter-spacing:.12em;color:var(--blue);text-transform:uppercase}.intro h1{font-size:clamp(40px,5vw,66px);line-height:1.12;letter-spacing:-.045em;color:var(--navy);margin:16px 0 24px}.intro h1 em{font-style:normal;color:var(--blue);position:relative}.intro h1 em:after{content:"";position:absolute;height:8px;border-radius:9px;left:0;right:0;bottom:0;background:rgba(0,166,200,.25);z-index:-1}.intro>p{font-size:17px;color:#415466;max-width:420px}.notice{margin-top:30px;border-left:4px solid var(--gold);background:#fff8e6;padding:14px 16px;font-size:13px;color:#66521b;border-radius:0 8px 8px 0}.simulator{background:#fff;border:1px solid #e2eaf0;border-radius:22px;box-shadow:var(--shadow);overflow:hidden}.steps{display:grid;grid-template-columns:1fr 1fr;background:#f6f9fb;color:#93a1ad;font-size:13px;font-weight:700}.steps span{padding:14px;text-align:center;border-bottom:3px solid transparent}.steps span.active{color:var(--blue);border-color:var(--blue);background:#fff}form,.result{padding:38px 42px 44px}h2{margin:0;color:var(--navy);font-size:28px;letter-spacing:-.02em}.lead{margin:4px 0 32px;color:var(--muted);font-size:14px}fieldset{border:0;border-top:1px solid var(--line);padding:26px 0 28px;margin:0}legend{float:left;width:100%;font-size:16px;font-weight:800;color:var(--navy);margin-bottom:16px}legend+*{clear:both}legend span{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--navy);color:#fff;font-size:13px;margin-right:9px}.choice-grid{display:grid;gap:12px}.choice-grid.two{grid-template-columns:1fr 1fr}.choice-grid label{position:relative;border:1.5px solid var(--line);border-radius:12px;padding:16px 14px 15px 43px;cursor:pointer;min-height:65px}.choice-grid label:has(input:checked){border-color:var(--blue);background:var(--pale);box-shadow:0 0 0 1px var(--blue)}.choice-grid input{position:absolute;left:14px;top:19px;accent-color:var(--blue);width:18px;height:18px}.choice-grid b,.choice-grid small{display:block}.choice-grid small{color:var(--muted);font-size:12px}.field-row{display:grid;grid-template-columns:1fr 1.2fr;gap:12px}.select-label,.money-label{font-size:12px;font-weight:700;color:var(--muted)}select,input[type=number]{width:100%;height:48px;border:1.5px solid var(--line);border-radius:10px;background:#fff;margin-top:5px;padding:0 12px;font:inherit;font-size:16px;color:var(--ink)}select:focus,input:focus{outline:3px solid rgba(11,100,192,.18);border-color:var(--blue)}.money-label{position:relative}.money-label input{padding-right:46px}.money-label i{position:absolute;right:13px;bottom:10px;font-style:normal;color:var(--ink);font-size:15px}.hint{font-size:12px;color:var(--muted);margin:10px 0 0}.counter{display:flex;align-items:center;justify-content:center;gap:14px;background:#f6f9fb;border-radius:12px;padding:12px}.counter button{width:42px;height:42px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--blue);font-size:24px;cursor:pointer}.counter output{font-size:28px;font-weight:800;color:var(--navy);min-width:30px;text-align:right}.check{display:flex;gap:12px;align-items:flex-start;padding:15px;border:1px solid var(--line);border-radius:10px;font-size:14px;cursor:pointer}.check input{width:20px;height:20px;accent-color:var(--blue);flex:0 0 auto}.primary,.secondary{border:0;border-radius:11px;padding:15px 21px;font:700 16px/1 inherit;cursor:pointer}.primary{width:100%;background:linear-gradient(100deg,var(--blue),#078bb0);color:#fff;box-shadow:0 8px 22px rgba(11,100,192,.24)}.primary span{float:right}.result-head{text-align:center;padding-bottom:24px}.result-head h2{font-size:31px;margin-top:7px}.result-head p{color:var(--muted);margin:4px 0}.amount-card{background:linear-gradient(135deg,var(--navy),#174e76);color:#fff;border-radius:18px;padding:27px;text-align:center;box-shadow:0 12px 30px rgba(16,42,67,.2)}.amount-card>span{display:block;font-size:13px;opacity:.8}.amount-card strong{display:block;font-size:44px;line-height:1.3;letter-spacing:-.04em}.amount-card small{opacity:.85}.multi{margin-top:16px;padding:16px;border-radius:12px;background:#fff6db;border:1px solid #f5d77c;color:#614c08}.multi b,.multi span{display:block}.multi span{font-size:13px}.summary,.caution{margin-top:24px}.summary h3{font-size:14px;color:var(--navy);margin-bottom:5px}.summary dl{margin:0}.summary dl div{display:flex;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line);padding:9px 0;font-size:13px}.summary dt{color:var(--muted)}.summary dd{margin:0;font-weight:700;text-align:right}.caution{background:#f6f9fb;border-radius:12px;padding:16px;font-size:13px}.caution b{color:var(--navy)}.caution p{margin:4px 0 0;color:#526273}.actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:24px}.actions .primary{padding:12px}.secondary{background:#fff;color:var(--navy);border:1px solid var(--line)}footer{border-top:1px solid var(--line);background:#fff;padding:24px;text-align:center;color:var(--muted);font-size:12px}footer p{margin:2px}
@media(max-width:820px){main{grid-template-columns:1fr;gap:28px;padding-top:30px}.intro{position:static;padding-top:0}.intro h1{font-size:42px}.intro>p{max-width:none}.notice{margin-top:18px}.simulator{border-radius:16px}form,.result{padding:30px 24px}.topbar{padding:0 18px}}@media(max-width:520px){main{padding:24px 14px 56px}.intro h1{font-size:36px}.choice-grid.two,.field-row,.actions{grid-template-columns:1fr}.topbar strong{font-size:13px}.amount-card strong{font-size:38px}}@media print{.topbar,.intro,form,.steps,.actions,footer{display:none!important}body,main,.simulator{background:#fff;box-shadow:none;border:0}main{display:block;padding:0}.result{display:block!important}.simulator{max-width:700px;margin:auto}}
.notice{border:2px solid #e4a711;border-left:2px solid #e4a711;background:#fff7d6;padding:16px 18px;font-size:14px;color:#4d3a06;border-radius:12px;box-shadow:0 8px 22px rgba(153,110,0,.12)}.notice b,.notice strong{display:block}.notice b{color:#3c2d05;margin-bottom:8px;font-size:15px}.notice b span{display:inline-block;margin-right:8px;padding:2px 8px;border-radius:999px;background:#b65a00;color:#fff;font-size:12px;letter-spacing:.08em}.notice strong{font-size:15px;line-height:1.55}.science-list{clear:both;margin:0 0 14px;padding:13px 15px;border-radius:10px;background:#eef7ff;border:1px solid #cfe6f8;color:#27445e;font-size:13px}.science-list b,.science-list span{display:block}.science-list b{color:var(--blue);margin-bottom:3px}
.steps{grid-template-columns:repeat(3,1fr)}
.eligibility{padding:38px 42px 44px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.ineligible-message{margin-top:2px;padding:18px;border:2px solid #d85858;border-radius:12px;background:#fff3f3;color:#7a2020}
.ineligible-message b{display:block;font-size:17px}
.ineligible-message p{margin:5px 0 0;font-size:14px}
.eligibility h2 a{color:var(--blue);text-decoration-thickness:2px;text-underline-offset:3px}
.eligibility h2 a:hover{color:#074c91}
.question-note{clear:both;margin:0 0 14px;padding:11px 13px;border-radius:9px;background:#f6f9fb;color:#526273;font-size:13px}
@media(max-width:820px){.eligibility{padding:30px 24px}}
@media(max-width:520px){.steps{font-size:12px}.steps span{padding:12px 5px}}
@media print{.eligibility{display:none!important}}
