:root { color-scheme: light; --blue:#0a3b96; --text:#151515; --muted:#70747d; --line:#dfe2e7; --danger:#ff5454; --soft:#f6f8fb; }
* { box-sizing: border-box; }
html { background:#f2f3f5; }
body { margin:0; color:var(--text); font-family:"PingFang SC","Microsoft YaHei","Helvetica Neue",Arial,sans-serif; font-size:16px; line-height:1.55; -webkit-font-smoothing:antialiased; }
button,input,textarea { font:inherit; }
.form-shell { width:100%; max-width:750px; min-height:100vh; margin:0 auto; background:#fff; box-shadow:0 0 24px rgba(0,0,0,.06); }
.hero { display:block; width:100%; height:auto; aspect-ratio:1400/788; object-fit:cover; }
.form-card { padding:0 32px 36px; }
.intro h1 { margin:-7px 0 13px; text-align:center; font-size:28px; line-height:1.5; font-weight:650; letter-spacing:-.8px; }
.intro h2 { margin:0 0 20px; text-align:center; font-size:22px; line-height:1.5; font-weight:700; }
.notice-copy { margin-bottom:29px; font-size:16px; line-height:1.52; }
.notice-copy p { margin:0; }
.field { margin:0 0 28px; padding:0; border:0; min-inline-size:0; }
.field label,.field legend { display:block; margin:0 0 11px; font-size:17px; font-weight:600; line-height:1.5; }
.required { color:#ff5b5b; font-weight:400; margin-right:7px; }
input[type="text"],input[type="tel"],textarea { display:block; width:100%; min-height:48px; border:1px solid #d8dce3; border-radius:11px; background:#fff; padding:11px 13px; color:var(--text); outline:none; box-shadow:0 2px 5px rgba(0,0,0,.035); transition:border-color .18s,box-shadow .18s; }
textarea { min-height:106px; resize:vertical; }
input[type="text"]:focus,input[type="tel"]:focus,textarea:focus { border-color:#3971d2; box-shadow:0 0 0 3px rgba(57,113,210,.12); }
.choice { display:flex!important; align-items:flex-start; gap:10px; margin:0 0 13px!important; font-size:16px!important; font-weight:400!important; cursor:pointer; }
.choice input { appearance:none; flex:0 0 21px; width:21px; height:21px; margin:1px 0 0; border:1px solid #c3c7ce; background:#fff; cursor:pointer; position:relative; }
.choice input[type="checkbox"] { border-radius:6px; }
.choice input[type="radio"] { border-radius:50%; }
.choice input:checked { border-color:var(--blue); background:var(--blue); }
.choice input[type="checkbox"]:checked::after { content:""; position:absolute; left:6px; top:2px; width:6px; height:11px; border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg); }
.choice input[type="radio"]:checked::after { content:""; position:absolute; inset:5px; border-radius:50%; background:#fff; }
.choice span { flex:1; line-height:1.5; }
.inline-choices { display:flex; gap:40px; }
.inline-choices .choice { min-width:60px; }
.field-help { color:#7b7f87; font-size:14px; margin:-6px 0 10px; line-height:1.5; }
.error { display:none; color:var(--danger); margin:7px 0 0; font-size:13px; line-height:1.4; }
.field.invalid .error { display:block; }
.field.invalid input[type="text"],.field.invalid input[type="tel"] { border-color:var(--danger); }
.recent { margin:5px 0 22px; }
.recent-title { text-align:center; font-size:13px; color:#8c8f95; margin-bottom:9px; }
.ticker-window { overflow:hidden; height:31px; background:#fafbfc; border-radius:7px; }
.ticker { display:flex; white-space:nowrap; width:max-content; animation:ticker 30s linear infinite; font-size:12px; color:#777b83; line-height:31px; }
.ticker span { padding-right:26px; }
@keyframes ticker { to { transform:translateX(-50%); } }
.form-message { min-height:0; text-align:center; color:var(--danger); font-size:14px; margin:0 0 8px; }
.submit-btn { width:100%; min-height:48px; border:0; border-radius:12px; background:#f3f8fc; color:#151515; box-shadow:0 2px 5px rgba(0,0,0,.05); font-weight:650; cursor:pointer; transition:background .18s,transform .05s; }
.submit-btn:hover { background:#e9f2fb; }
.submit-btn:active { transform:translateY(1px); }
.submit-btn:disabled { opacity:.58; cursor:wait; }
.page-footer { padding:0 24px 22px; text-align:center; color:#a2a5aa; font-size:12px; }
.success-layer { position:fixed; inset:0; z-index:20; display:grid; place-items:center; padding:24px; background:rgba(6,18,45,.55); }
.success-layer[hidden] { display:none; }
.success-card { width:min(360px,100%); padding:30px 25px 24px; border-radius:18px; background:#fff; text-align:center; box-shadow:0 22px 60px rgba(0,0,0,.24); }
.success-icon { display:grid; place-items:center; width:58px; height:58px; margin:0 auto 13px; border-radius:50%; color:#fff; background:#1da36c; font-size:33px; }
.success-card h2 { margin:0 0 8px; font-size:23px; }
.success-card p { margin:0 0 22px; color:#656a73; font-size:14px; }
.success-copy { display:flex; flex-direction:column; gap:4px; line-height:1.6; }
.success-card button { min-width:140px; padding:10px 20px; border:0; border-radius:10px; color:#fff; background:var(--blue); cursor:pointer; }

@media (max-width:520px) {
  html { background:#fff; }
  .form-shell { box-shadow:none; }
  .form-card { padding:0 20px 30px; }
  .intro h1 { margin:-5px 0 13px; font-size:27px; }
  .intro h2 { font-size:22px; }
  .notice-copy { margin-bottom:29px; }
  .field { margin-bottom:28px; }
}
@media (max-width:365px) {
  .form-card { padding-left:16px; padding-right:16px; }
  .intro h1 { font-size:24px; }
  body { font-size:15px; }
}
