:root{--km-navy:#0b1f3a;--km-green:#075c45;--km-green2:#0a7357;--km-gold:#c59b42;--km-cream:#f7f2e7;--km-paper:#fffdfa;--km-border:#d9dfdf;--km-text:#18222d;--km-muted:#64717d;--km-red:#b42318;--km-shadow:0 18px 50px rgba(11,31,58,.12)}
.km-form-shell{max-width:920px;margin:40px auto;padding:0 20px;color:var(--km-text);font-family:"Noto Sans JP","Yu Gothic",Meiryo,sans-serif;box-sizing:border-box}.km-form-shell *{box-sizing:border-box}.km-form-hero{position:relative;background:linear-gradient(135deg,var(--km-navy),#12385d);color:#fff;border-radius:22px 22px 0 0;padding:38px 46px 34px;overflow:hidden}.km-form-hero:after{content:"";position:absolute;width:270px;height:270px;border:1px solid rgba(255,255,255,.1);border-radius:50%;right:-80px;top:-120px;box-shadow:0 0 0 38px rgba(255,255,255,.025),0 0 0 78px rgba(255,255,255,.02)}.km-kicker{display:inline-flex;background:var(--km-green);border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:7px 15px;font-weight:700;font-size:14px;position:relative;z-index:1}.km-form-hero h1{font-size:clamp(28px,4vw,44px);line-height:1.35;margin:18px 0 12px;letter-spacing:.02em;position:relative;z-index:1}.km-form-hero p{font-size:17px;line-height:1.9;margin:0;max-width:720px;position:relative;z-index:1}.km-form-hero strong{color:#ffe7a5}.km-limit-note{margin-top:16px;padding:12px 15px;border-left:3px solid var(--km-gold);background:rgba(255,255,255,.08);font-size:13px;line-height:1.7;position:relative;z-index:1}.km-progress-wrap{background:#fff;padding:22px 36px;border-left:1px solid var(--km-border);border-right:1px solid var(--km-border)}.km-progress-label{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px;font-weight:700;color:var(--km-navy);font-size:14px}.km-progress{height:8px;background:#e9eeee;border-radius:999px;overflow:hidden}.km-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--km-green),var(--km-gold));border-radius:inherit;transition:width .3s ease}.km-form{background:var(--km-paper);border:1px solid var(--km-border);border-top:0;border-radius:0 0 22px 22px;padding:38px 46px;box-shadow:var(--km-shadow)}.km-step{display:none;animation:kmFade .25s ease}.km-step.is-active{display:block}@keyframes kmFade{from{opacity:.3;transform:translateY(6px)}to{opacity:1;transform:none}}.km-step-heading{margin-bottom:28px;border-bottom:1px solid var(--km-border);padding-bottom:20px}.km-step-heading>span{color:var(--km-green);font-weight:800;font-size:13px;letter-spacing:.08em}.km-step-heading h2{font-size:28px;color:var(--km-navy);margin:5px 0 8px}.km-step-heading p{margin:0;color:var(--km-muted);line-height:1.7}.km-grid{display:grid;gap:20px}.km-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.km-field--full{grid-column:1/-1}.km-field,.km-fieldset{display:block;margin:0 0 24px}.km-field>span,.km-fieldset legend{display:block;font-weight:700;margin-bottom:9px;color:#25313d;font-size:15px}.km-field em,.km-fieldset em,.km-consent em{font-style:normal;color:var(--km-red);font-size:12px;margin-left:6px}.km-field input,.km-field select,.km-field textarea{width:100%;border:1px solid #cbd4d6;background:#fff;border-radius:10px;padding:13px 14px;font-size:16px;color:var(--km-text);outline:none;transition:border-color .2s,box-shadow .2s}.km-field input:focus,.km-field select:focus,.km-field textarea:focus{border-color:var(--km-green2);box-shadow:0 0 0 3px rgba(10,115,87,.12)}.km-field input::placeholder,.km-field textarea::placeholder{color:#a0a8ae}.km-fieldset{border:0;padding:0}.km-radio-grid,.km-check-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.km-radio-grid--wide{grid-template-columns:repeat(3,minmax(0,1fr))}.km-radio-grid label,.km-check-grid label{position:relative;cursor:pointer}.km-radio-grid input,.km-check-grid input{position:absolute;opacity:0;pointer-events:none}.km-radio-grid span,.km-check-grid span{display:flex;align-items:center;justify-content:center;min-height:52px;padding:10px 12px;background:#fff;border:1px solid #cdd6d8;border-radius:10px;text-align:center;font-size:14px;line-height:1.45;transition:.2s}.km-check-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.km-check-grid span{justify-content:flex-start;text-align:left;padding-left:42px;position:relative}.km-check-grid span:before{content:"";position:absolute;left:14px;width:18px;height:18px;border:2px solid #9aa7ac;border-radius:5px}.km-radio-grid input:checked+span,.km-check-grid input:checked+span{border-color:var(--km-green);background:#edf7f3;color:var(--km-green);font-weight:800;box-shadow:0 0 0 2px rgba(7,92,69,.08)}.km-check-grid input:checked+span:before{background:var(--km-green);border-color:var(--km-green);box-shadow:inset 0 0 0 4px #edf7f3}.km-unit{display:flex;align-items:stretch}.km-unit input{border-radius:10px 0 0 10px}.km-unit b{display:flex;align-items:center;padding:0 13px;border:1px solid #cbd4d6;border-left:0;background:#f1f4f4;border-radius:0 10px 10px 0;font-size:14px;color:#53616a;white-space:nowrap}.km-upload{display:block;border:2px dashed #aebbbc;background:#f8fbfa;border-radius:14px;padding:25px;text-align:center;margin-bottom:28px;cursor:pointer}.km-upload input{position:absolute;opacity:0;pointer-events:none}.km-upload-title{display:block;color:var(--km-navy);font-size:18px;font-weight:800}.km-upload-desc{display:block;color:var(--km-muted);font-size:13px;margin:5px 0 15px}.km-upload-button{display:inline-block;background:var(--km-green);color:#fff;border-radius:8px;padding:10px 20px;font-weight:700}.km-file-list{display:block;margin-top:12px;color:var(--km-muted);font-size:13px}.km-consent{display:flex;align-items:flex-start;gap:10px;background:#f4f7f6;border:1px solid var(--km-border);padding:16px;border-radius:10px;margin-top:8px;line-height:1.7}.km-consent input{margin-top:5px;flex:0 0 auto}.km-consent a{color:var(--km-green);font-weight:700}.km-submit-note{margin-top:20px;border-left:4px solid var(--km-gold);background:#fff8e8;padding:16px 18px;border-radius:0 10px 10px 0}.km-submit-note strong{color:var(--km-navy)}.km-submit-note p{margin:5px 0 0;font-size:13px;line-height:1.75}.km-actions{display:flex;justify-content:space-between;gap:14px;margin-top:30px}.km-btn{appearance:none;border:0;border-radius:12px;padding:15px 26px;font-weight:800;font-size:16px;line-height:1.2;cursor:pointer;text-decoration:none;text-align:center;transition:transform .15s,box-shadow .15s,background .15s}.km-btn:hover{transform:translateY(-1px)}.km-btn--primary{margin-left:auto;background:linear-gradient(135deg,var(--km-green),var(--km-green2));color:#fff;box-shadow:0 8px 20px rgba(7,92,69,.22)}.km-btn--primary:after{content:" ›";font-size:22px;vertical-align:-1px}.km-btn--ghost{background:#fff;color:var(--km-navy);border:1px solid #b7c2c4}.km-btn[disabled]{opacity:.6;cursor:wait}.km-error{display:none;background:#fff0ee;color:var(--km-red);border:1px solid #fac3bd;padding:13px 16px;border-radius:10px;margin-top:20px;font-weight:700}.km-error.is-visible{display:block}.km-invalid{border-color:var(--km-red)!important;box-shadow:0 0 0 3px rgba(180,35,24,.1)!important}.km-security{text-align:center;color:#79848b;font-size:12px;margin:18px 0 0}.km-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important}.km-success{background:#fff;border:1px solid var(--km-border);border-radius:22px;padding:50px;text-align:center;box-shadow:var(--km-shadow)}.km-success-icon{width:68px;height:68px;display:grid;place-items:center;margin:0 auto 16px;background:#e9f7f1;color:var(--km-green);border-radius:50%;font-size:38px;font-weight:900}.km-success h2{color:var(--km-navy);font-size:30px}.km-success-next{max-width:520px;margin:28px auto;padding:20px;text-align:left;background:#f7faf9;border-radius:12px}.km-success-next ol{margin:10px 0 0;padding-left:22px;line-height:2}.km-success .km-btn{display:inline-block;margin-top:10px}@media(max-width:760px){.km-form-shell{padding:0 12px;margin:20px auto}.km-form-hero{padding:27px 22px}.km-form-hero h1{font-size:28px}.km-form-hero p{font-size:15px}.km-progress-wrap{padding:18px 20px}.km-form{padding:28px 20px}.km-step-heading h2{font-size:23px}.km-grid--2,.km-radio-grid,.km-radio-grid--wide,.km-check-grid{grid-template-columns:1fr}.km-field--full{grid-column:auto}.km-actions{position:sticky;bottom:0;background:rgba(255,253,250,.96);padding:12px 0 4px;z-index:4}.km-btn{padding:14px 18px;font-size:15px}.km-btn--primary{flex:1}.km-success{padding:35px 20px}}@media(prefers-reduced-motion:reduce){.km-step,.km-progress span,.km-btn{animation:none;transition:none}}

/* Japanese privacy policy modal */
.km-privacy-open{appearance:none;border:0;background:none;padding:0;color:var(--km-green);font:inherit;font-weight:800;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.km-privacy-open:hover{color:var(--km-green2)}.km-privacy-modal[hidden]{display:none!important}.km-privacy-modal{position:fixed;inset:0;z-index:999999;display:grid;place-items:center;padding:18px}.km-privacy-backdrop{position:absolute;inset:0;background:rgba(5,18,34,.72);backdrop-filter:blur(3px)}.km-privacy-dialog{position:relative;width:min(760px,100%);max-height:min(86vh,820px);overflow:auto;background:#fff;border-radius:18px;padding:34px 38px 30px;box-shadow:0 28px 80px rgba(0,0,0,.35);color:var(--km-text);line-height:1.85}.km-privacy-dialog h2{margin:0 42px 12px 0;color:var(--km-navy);font-size:28px}.km-privacy-dialog h3{margin:24px 0 5px;color:var(--km-green);font-size:17px}.km-privacy-dialog p{margin:5px 0}.km-privacy-dialog ul{margin:7px 0 0;padding-left:1.35em}.km-privacy-dialog a{color:var(--km-green);font-weight:700}.km-privacy-lead{background:#f4f7f6;border-left:4px solid var(--km-gold);padding:14px 16px;border-radius:0 9px 9px 0}.km-privacy-close{position:absolute;right:16px;top:14px;width:38px;height:38px;border:0;border-radius:50%;background:#eef2f2;color:var(--km-navy);font-size:27px;line-height:1;cursor:pointer}.km-privacy-close:hover{background:#e1e8e7}.km-privacy-date{text-align:right;color:var(--km-muted);font-size:13px;margin-top:25px!important}.km-privacy-accept{display:block;margin:22px auto 0}.km-privacy-lock{overflow:hidden}@media(max-width:760px){.km-privacy-modal{padding:10px}.km-privacy-dialog{max-height:91vh;border-radius:14px;padding:27px 20px 24px;font-size:14px}.km-privacy-dialog h2{font-size:23px}.km-privacy-dialog h3{font-size:16px}.km-privacy-close{right:10px;top:10px}}

/* v1.0.4: privacy policy is a direct link to the Karimae page */
.km-privacy-link{color:var(--km-green);font-weight:800;text-decoration:underline;text-underline-offset:3px}.km-privacy-link:hover{color:var(--km-green2)}
