:root{
  --fg:#1a2230; --muted:#5b6676; --line:#d5dbe4; --bg:#f4f6f9; --card:#fff;
  --accent:#0b5cab; --accent-dark:#094a8a; --error:#c0392b; --req:#c0392b;
}
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{margin:0;background:var(--bg);color:var(--fg);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Hiragino Sans","Noto Sans JP",Meiryo,sans-serif;
  line-height:1.7;font-size:16px;}
.wrap{max-width:720px;margin:0 auto;padding:24px 16px 64px;}

.site-header{margin-bottom:24px;}
.brand{color:var(--muted);font-size:.85rem;margin:0 0 4px;}
.site-header h1{font-size:1.4rem;line-height:1.5;margin:0 0 12px;}
.lead{background:#eef4fb;border-left:4px solid var(--accent);padding:10px 14px;margin:0 0 12px;font-weight:700;font-size:.98rem;}
.service-link{font-size:.92rem;margin:8px 0 0;}
a{color:var(--accent);}
a:hover{color:var(--accent-dark);}

fieldset{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:20px 18px;margin:0 0 20px;}
legend{font-weight:700;font-size:1.1rem;padding:0 8px;color:var(--accent-dark);}
.section-note{font-size:.85rem;color:var(--muted);margin:0 0 16px;}

.field{margin-bottom:18px;}
.field:last-child{margin-bottom:0;}
label,.label-like{display:block;font-weight:700;font-size:.95rem;margin-bottom:6px;}
label.sub{font-weight:500;font-size:.82rem;color:var(--muted);margin-bottom:3px;}
.req{color:var(--req);margin-left:3px;}

input[type=text],input[type=tel],input[type=email],input[type=date]{
  width:100%;padding:11px 12px;font-size:16px;border:1px solid var(--line);border-radius:8px;
  background:var(--card);color:var(--fg);-webkit-appearance:none;appearance:none;}
input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(11,92,171,.15);}
input::placeholder{color:var(--muted);opacity:1;}
input[type=date]::-webkit-datetime-edit{color:var(--fg);}
input.invalid{border-color:var(--error);background:#fdf3f2;}

.inline{display:flex;align-items:center;gap:8px;}
.inline input{flex:1;}
.suffix{font-weight:700;white-space:nowrap;}
.name-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.hint{font-size:.82rem;color:var(--muted);margin:5px 0 0;}

.notices{margin:0;padding-left:1.4em;font-size:.9rem;color:#333c4a;}
.notices li{margin-bottom:12px;}
.notices li:last-child{margin-bottom:0;}

.agree{display:flex;gap:10px;align-items:flex-start;font-weight:500;font-size:.92rem;cursor:pointer;}
.agree input{width:20px;height:20px;margin-top:2px;flex-shrink:0;}

.hp-field{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden;}

.form-error{background:#fdecea;border:1px solid #f5c6c0;color:var(--error);border-radius:8px;
  padding:12px 14px;margin-bottom:16px;font-size:.9rem;font-weight:700;white-space:pre-line;}
.actions{text-align:center;margin-bottom:20px;}
button{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:15px 32px;
  font-size:1.05rem;font-weight:700;cursor:pointer;width:100%;max-width:360px;transition:background .15s;}
button:hover{background:var(--accent-dark);}
button:disabled{background:#9db3c8;cursor:not-allowed;}
.submitting{text-align:center;color:var(--muted);margin-top:12px;}
.captcha-box{margin:0 0 16px;display:flex;justify-content:center;}

.done-panel{background:#eef7ee;border:1px solid #bfe0bf;border-radius:10px;padding:24px 20px;margin-bottom:20px;}
.done-panel h2{margin-top:0;color:#1f7a34;}
.done-panel .muted{color:var(--muted);font-size:.9rem;}

.contact{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:20px 18px;}
.contact h2{font-size:1.05rem;margin:0 0 10px;color:var(--accent-dark);}
.contact p{margin:4px 0;font-size:.92rem;}
.contact .org{font-weight:700;}

@media (max-width:480px){
  .wrap{padding:16px 12px 48px;}
  .site-header h1{font-size:1.2rem;}
  fieldset{padding:16px 14px;}
  legend{font-size:1rem;}
  .name-grid{grid-template-columns:1fr;gap:10px;}
  button{max-width:none;}
}
@media (prefers-color-scheme:dark){
  :root{--fg:#e6eaf0;--muted:#9aa6b4;--line:#3a4453;--bg:#161b22;--card:#1e252f;--accent:#4a9be8;--accent-dark:#6bb0ef;}
  .lead{background:#1d2b3a;}
  input.invalid{background:#3a2422;}
  .form-error{background:#3a2422;border-color:#7a3b34;}
  .done-panel{background:#1e2e22;border-color:#375f3b;}
  .done-panel h2{color:#7fd393;}
  .notices{color:#c8d0da;}
}
