@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700;800;900&display=swap');

:root{--deep:#051c26;--navy:#082b37;--teal:#097e85;--gold:#efcd81;--paper:#f4f8f6;--ink:#203b43;--muted:#5c747b;--line:#cddbd8;--red:#a93830}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.8 'Noto Sans JP',sans-serif;overflow-wrap:anywhere}
a{color:inherit}
button,input,select{font:inherit}
button{cursor:pointer}
:focus-visible{outline:3px solid #b26724;outline-offset:3px}
.site-header{background:#fff;border-bottom:1px solid var(--line)}
.site-header-inner{max-width:1080px;margin:auto;padding:17px 25px;display:flex;justify-content:space-between;align-items:center;gap:20px}
.brand{text-decoration:none;display:flex;align-items:center;gap:12px;font-size:12px;line-height:1.5;letter-spacing:.04em}
.brand-symbol{font:43px/1 Georgia,serif;color:var(--teal);white-space:nowrap}.brand-symbol span{font-size:22px}
.brand strong{display:block;font-size:15px;letter-spacing:.1em}
.back-link{font-size:13px;font-weight:700;text-decoration:none;border-bottom:1px solid var(--teal);white-space:nowrap}
.intro{background:radial-gradient(ellipse at 85% 25%,#146b7390,transparent 50%),linear-gradient(125deg,var(--deep),#10414a);color:#fff}
.intro-inner{max-width:1080px;margin:auto;padding:70px 25px 72px}
.eyebrow{margin:0 0 10px;color:var(--gold);font-size:12px;letter-spacing:.16em;font-weight:800}
h1{margin:0;font-size:clamp(30px,4.2vw,48px);line-height:1.4;letter-spacing:.02em;font-weight:900}
.intro p:last-child{margin:17px 0 0;color:#d9e8e7;font-size:clamp(15px,1.7vw,19px);line-height:1.8}
main .container{max-width:1080px;margin:auto;padding:55px 25px 100px}
.section-heading{margin:0 0 25px;font-size:clamp(23px,2.6vw,31px);line-height:1.55;color:var(--navy)}
.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.choice{background:#fff;border:1px solid #bcd1cd;box-shadow:0 14px 35px #07323b12;padding:34px;display:flex;flex-direction:column;min-height:315px}
.choice.card{border-top:5px solid var(--teal)}.choice.bank{border-top:5px solid #d9a749}
.choice-icon{font-size:32px;line-height:1;margin-bottom:20px}
.choice h2{margin:0 0 8px;font-size:clamp(22px,2.5vw,30px);line-height:1.5}
.choice p{margin:0 0 26px;font-size:15px;color:var(--muted)}
.choice form,.choice .action{margin-top:auto}
.action{display:flex;align-items:center;justify-content:center;gap:15px;min-height:58px;padding:12px 20px;border:0;border-radius:3px;background:linear-gradient(110deg,#f6dfa6,#e9bd63);color:#233b3d;font-size:18px;font-weight:800;text-decoration:none;text-align:center;box-shadow:inset 0 -3px #b4863c;width:100%}
.action:hover:not(:disabled){filter:brightness(1.04);transform:translateY(-1px)}
.action.secondary{background:#e5efed;box-shadow:none;border:1px solid #b7d0cb}
.action:disabled{opacity:.55;cursor:wait}
.price-strip{background:#fff;margin-top:30px;padding:22px 28px;border:1px solid var(--line);display:flex;gap:16px;align-items:center;justify-content:space-between}
.price-strip strong{font-size:clamp(22px,3vw,33px);line-height:1.3;color:var(--navy);white-space:nowrap}.price-strip strong small{font-size:14px;margin-left:4px}
.fine{font-size:13px;color:var(--muted);line-height:1.8}
.legal-footer{background:var(--deep);color:#d4e4e1;text-align:center;padding:30px 20px;font-size:13px}
.legal-footer a{margin:0 10px;text-underline-offset:3px}
.form-shell{max-width:800px;margin:auto;background:#fff;border:1px solid var(--line);padding:35px 42px 42px;box-shadow:0 15px 35px #07323b12}
.form-shell h2{margin:0 0 8px;font-size:clamp(23px,3vw,31px);line-height:1.55;color:var(--navy)}
.form-shell .lead{margin:0 0 25px;color:var(--muted)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.field{display:flex;flex-direction:column;gap:7px}.field.full{grid-column:1/-1}
.field label{font-size:15px;font-weight:700;color:var(--navy)}
.required{background:#a3372e;color:#fff;border-radius:2px;font-size:11px;padding:2px 6px;margin-left:9px;vertical-align:2px}
.field input,.field select{border:1px solid #92aeaa;border-radius:3px;min-height:52px;background:#fff;padding:11px 14px;color:var(--ink);width:100%}
.field input:focus,.field select:focus{border-color:var(--teal);box-shadow:0 0 0 3px #097e8522;outline:none}
.field input[aria-invalid=true],.field select[aria-invalid=true]{border-color:var(--red)}
.field .hint,.field .error{font-size:12px;line-height:1.55;margin:0}.field .hint{color:var(--muted)}.field .error{color:var(--red);font-weight:700;min-height:0}
.confirm-box{margin:30px 0 20px;padding:20px 23px;background:var(--paper);border-left:4px solid var(--teal)}
.confirm-box strong{display:block;color:var(--navy)}
.consent{display:flex;align-items:flex-start;gap:12px;margin:25px 0;font-weight:600;font-size:14px;line-height:1.8}.consent input{width:20px;height:20px;flex:none;margin-top:4px;accent-color:var(--teal)}
.status{margin:18px 0;padding:14px 18px;background:#fff4f0;color:#8f2a22;border-left:4px solid var(--red);font-weight:700}.status[hidden],section[hidden]{display:none!important}
.summary{display:grid;grid-template-columns:165px 1fr;margin:24px 0 32px;border-top:1px solid var(--line);font-size:15px}.summary dt,.summary dd{margin:0;padding:12px 10px;border-bottom:1px solid var(--line)}.summary dt{font-weight:700;color:var(--navy);background:#f0f7f5}.summary dd{white-space:pre-wrap}
.button-row{display:flex;gap:12px}.button-row .action{flex:1}
.completion{max-width:700px;margin:auto;text-align:center;background:#fff;border:1px solid var(--line);padding:48px 35px;box-shadow:0 15px 35px #07323b12}.completion h2{color:var(--navy);font-size:clamp(25px,3vw,34px)}.completion p{line-height:1.9}.completion .action{max-width:400px;margin:30px auto 0}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:700px){.intro-inner{padding:47px 20px 51px}main .container{padding:35px 16px 70px}.choice-grid{grid-template-columns:1fr}.choice{min-height:0;padding:27px}.form-shell{padding:26px 20px 30px}.form-grid{grid-template-columns:1fr;gap:16px}.field.full{grid-column:auto}.price-strip{display:block}.price-strip strong{display:block;margin-top:5px}.summary{grid-template-columns:115px 1fr;font-size:13px}.button-row{flex-direction:column}.site-header-inner{padding:14px 16px}.brand strong{font-size:12px}.brand-symbol{font-size:34px}.brand-symbol span{font-size:18px}.back-link{font-size:12px}}
