.spApplication { scroll-margin-top: 120px; }
.spTestNotice { padding: 18px 22px; background: #fff6dc; border: 1px solid #dcc17d; border-radius: 12px; color: #73551b; font-size: 14px; line-height: 1.8; }
.spTestNotice strong { font-weight: 800; }
.spJump { display: block; padding: 18px 24px; margin: 25px 0; border-radius: 40px; background: #0b4f9d; color: #fff; font-size: 17px; font-weight: 700; text-align: center; }
.spSteps { display: flex; list-style: none; padding: 0; gap: 8px; margin: 26px 0; }
.spSteps li { flex: 1; padding: 12px 8px; background: #e8eef5; color: #5d718b; text-align: center; font-size: 15px; border-radius: 6px; }
.spSteps [aria-current=step] { background: #0b4f9d; color: #fff; font-weight: 700; }
.spForm, .spConfirm, .spComplete { margin-top: 20px; padding: clamp(20px, 3vw, 35px); border: 1px solid #cfdfeb; border-radius: 18px; background: #fff; font-size: 16px; line-height: 1.8; }
.spHint { margin-bottom: 22px; color: #59718d; font-size: 14px; }
.spField { margin: 0 0 24px; padding: 0; border: 0; min-width: 0; scroll-margin-top: 120px; }
.spField > label, .spField legend { display: block; margin-bottom: 10px; font-size: 17px; font-weight: 700; }
.spApplication b { display: inline-block; margin-left: 10px; padding: 2px 7px; border-radius: 4px; color: #a62e22; background: #fff0ec; font-size: 11px; font-weight: 700; }
.spField input[type=text], .spField input[type=tel], .spField input[type=email] { display: block; box-sizing: border-box; width: 100%; min-height: 49px; padding: 10px 14px; background: #f9fcff; border: 1px solid #afc5da; border-radius: 8px; color: #183b63; font: inherit; }
.spField input:focus-visible, .spButton:focus-visible { outline: 3px solid #87b7e5; outline-offset: 3px; }
.spField input[aria-invalid=true] { border-color: #b2382b; }
.spField small { display: block; margin: 7px 0; color: #59718d; font-size: 13px; }
.spChoices label { display: inline-flex; align-items: center; gap: 9px; padding: 12px 16px; margin: 8px 8px 0 0; border: 1px solid #cfdfeb; border-radius: 8px; font-size: 16px; }
.spApplication input[type=checkbox], .spApplication input[type=radio] { appearance: auto; flex: 0 0 20px; width: 20px; height: 20px; accent-color: #0b4f9d; }
.spAgreement { padding: 18px; background: #edf6fc; border-radius: 10px; }
.spAgreement p { margin-bottom: 14px; }
.spAgreement a, .spErrors a { text-decoration: underline; }
.spAgreement > label { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; font-size: 15px; }
.spAgreement b { margin-left: 0; }
.spButton { display: flex; align-items: center; justify-content: center; gap: 22px; width: min(100%, 390px); min-height: 56px; margin: 25px auto 0; padding: 14px 20px; border: 0; border-radius: 40px; color: #fff; background: #0b4f9d; font: inherit; font-weight: 700; cursor: pointer; }
.spButton:hover { background: #073770; }
.spButton--back { background: #e6eef6; color: #183b63; }
.spButton--back:hover { background: #d6e3f0; }
.spActions { display: flex; gap: 15px; }
.spErrors { margin: 20px 0; padding: 20px; background: #fff2ee; border: 1px solid #d6a398; border-radius: 10px; color: #a62e22; font-size: 15px; line-height: 1.8; }
.spErrors p { font-weight: 700; }
.spErrors ul { margin-top: 8px; padding-left: 20px; list-style: disc; }
.spFieldError { color: #a62e22; font-size: 14px; margin-top: 8px; }
.spConfirm h3, .spComplete h3 { color: #073770; font-size: 24px; font-weight: 800; margin-bottom: 16px; }
.spConfirm dl { margin-top: 25px; }
.spConfirm dl > div { display: grid; grid-template-columns: 150px minmax(0,1fr); border-bottom: 1px solid #cfdfeb; }
.spConfirm dt { padding: 14px; background: #edf6fc; font-weight: 700; }
.spConfirm dd { padding: 14px; overflow-wrap: anywhere; }
.spComplete { text-align: center; }
.spComplete__mark { margin: 0 auto 18px; display: grid; place-items: center; width: 65px; height: 65px; background: #0b4f9d; color: #fff; border-radius: 50%; font-size: 32px; }
.spReply { text-align: left; padding: 22px; margin-top: 25px; background: #edf6fc; border-radius: 12px; }
.spReply h4 { font-weight: 700; margin-bottom: 14px; font-size: 15px; }
.spReply p { font-size: 16px; line-height: 1.9; }
.spField[hidden] { display: none; }
@media(max-width:600px) { .spActions { flex-direction: column-reverse; gap: 0; } .spConfirm dl > div { grid-template-columns: 1fr; } .spChoices label { display: flex; margin-right: 0; } }
