:root{--ink:#172033;--muted:#657087;--line:#dfe4ec;--bg:#f5f7fb;--card:#fff;--brand:#0c5ea8;--brand2:#1a87c7;--accent:#f2a01f;--danger:#b42318;--radius:18px;--shadow:0 18px 45px rgba(23,32,51,.09)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;line-height:1.75}.site-header{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.header-inner{max-width:1180px;margin:auto;padding:16px 24px;display:flex;justify-content:space-between;align-items:center;gap:24px}.brand{display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none}.brand-mark{width:44px;height:44px;display:grid;place-items:center;border-radius:12px;background:linear-gradient(135deg,var(--brand),var(--brand2));color:#fff;font-size:24px;font-weight:800}.brand strong,.brand small{display:block}.brand small{color:var(--muted);font-size:12px}.nav{display:flex;align-items:center;gap:20px}.nav a{color:var(--ink);text-decoration:none;font-size:14px}.nav .lang{border:1px solid var(--line);padding:7px 13px;border-radius:999px}.hero{background:linear-gradient(120deg,#0b4d88,#0f75b7);color:#fff;padding:78px 24px;position:relative;overflow:hidden}.hero:after{content:"";position:absolute;width:420px;height:420px;border-radius:50%;right:-120px;top:-180px;border:90px solid rgba(255,255,255,.08)}.hero.compact{padding:48px 24px}.hero-inner{max-width:1180px;margin:auto;position:relative;z-index:1}.hero h1{font-size:clamp(30px,5vw,52px);line-height:1.25;max-width:850px;margin:8px 0 18px}.hero.compact h1{font-size:clamp(28px,4vw,42px);margin-bottom:0}.hero p{max-width:760px;margin:0;font-size:17px}.eyebrow{letter-spacing:.22em;font-size:12px!important;font-weight:800;color:#bfe6ff}.content-wrap{max-width:1180px;margin:36px auto 70px;padding:0 24px;display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:26px;position:relative;z-index:2}.single-wrap,.policy-wrap{max-width:920px;margin:36px auto 70px;padding:0 24px;position:relative;z-index:2}.card,.side-card,.result-card{background:var(--card);border:1px solid rgba(223,228,236,.9);border-radius:var(--radius);box-shadow:var(--shadow)}.form-card{padding:42px}.section-heading{display:flex;gap:16px;margin-bottom:32px}.section-heading>span{color:var(--brand);font-weight:800}.section-heading h2{margin:0;font-size:26px}.section-heading p{margin:3px 0 0;color:var(--muted)}.field{margin:0 0 26px}.field label,.field legend{display:block;font-weight:700;margin-bottom:8px}.field b{background:#e9f3fb;color:var(--brand);font-size:11px;padding:3px 7px;border-radius:5px;margin-left:7px}.field input,.field textarea{width:100%;border:1px solid #cfd6e2;border-radius:10px;background:#fff;padding:13px 14px;font:inherit;color:var(--ink);transition:.2s}.field input:focus,.field textarea:focus{outline:none;border-color:var(--brand2);box-shadow:0 0 0 4px rgba(26,135,199,.12)}fieldset.field{border:0;padding:0}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.choice{border:1px solid var(--line);border-radius:10px;padding:12px 14px!important;display:flex!important;align-items:center;gap:9px;margin:0!important;font-weight:500!important}.choice input{width:auto}.other-field{display:none}.other-field.visible{display:block}.char-count{text-align:right;font-size:12px;color:var(--muted);margin-top:3px}.privacy-box{background:#f7faff;border:1px solid #dbe9f7;border-radius:12px;padding:16px;margin-bottom:24px}.privacy-box label{display:flex;gap:10px;align-items:flex-start}.privacy-box a{color:var(--brand)}.primary-button,.secondary-button{border:0;border-radius:10px;padding:15px 22px;font:inherit;font-weight:800;text-decoration:none;display:flex;align-items:center;justify-content:center;gap:20px;cursor:pointer}.primary-button{width:100%;background:linear-gradient(135deg,var(--brand),var(--brand2));color:#fff}.primary-button.inline{width:auto;display:inline-flex}.secondary-button{background:#eef1f5;color:var(--ink)}.button-row{display:flex;gap:14px;justify-content:flex-end;margin-top:28px}.button-row form{margin:0}.button-row .primary-button,.button-row .secondary-button{width:auto}.side-card{padding:28px;height:max-content;margin-top:0}.side-card h3{margin-top:0}.side-card p,.side-card dd{color:var(--muted)}.side-card dl{margin-bottom:0}.side-card dt{font-size:12px;font-weight:800;color:var(--brand);margin-top:16px}.side-card dd{margin:2px 0}.alert{padding:13px 15px;border-radius:9px;margin-bottom:22px}.alert.error{background:#fff0ef;color:var(--danger);border:1px solid #f4c7c3}.field-error{display:block;color:var(--danger);margin-top:5px}.confirm-card{padding:42px}.confirm-list{display:grid;grid-template-columns:200px 1fr;margin:0}.confirm-list dt,.confirm-list dd{margin:0;padding:18px;border-bottom:1px solid var(--line)}.confirm-list dt{font-weight:800;background:#f7f9fc}.policy-card{padding:46px}.policy-card h2{margin-top:36px;border-left:4px solid var(--brand);padding-left:12px;font-size:21px}.policy-date{text-align:right;color:var(--muted);margin-top:40px}.result-wrap{min-height:68vh;display:grid;place-items:center;padding:70px 24px}.result-card{text-align:center;max-width:700px;padding:52px}.result-card h1{font-size:34px;margin:8px 0 14px}.result-card .eyebrow{color:var(--brand)}.result-icon{width:74px;height:74px;border-radius:50%;display:grid;place-items:center;margin:0 auto 18px;background:#e7f7ef;color:#16804a;font-size:34px;font-weight:800}.error-icon{background:#fff0ef;color:var(--danger)}.site-footer{text-align:center;padding:30px 20px;color:var(--muted);font-size:13px}.hp{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
@media(max-width:850px){.content-wrap{grid-template-columns:1fr}.side-card{margin-top:0}.nav a:not(.lang){display:none}.brand small{display:none}.form-card,.confirm-card,.policy-card{padding:28px}.choice-grid{grid-template-columns:1fr}.confirm-list{grid-template-columns:1fr}.confirm-list dt{border-bottom:0;padding-bottom:5px}.confirm-list dd{padding-top:5px}.button-row{flex-direction:column-reverse}.button-row form,.button-row .primary-button,.button-row .secondary-button{width:100%}}
@media(max-width:520px){.header-inner{padding:12px 16px}.brand strong{font-size:13px}.brand-mark{width:38px;height:38px}.hero{padding:60px 20px}.content-wrap{padding:0 14px}.form-card{padding:23px}.section-heading h2{font-size:22px}.result-card{padding:34px 22px}.result-card h1{font-size:28px}}
