/* 応募フォーム。recruit.css を読み込んだうえで追加する */
.form-page{max-width:960px}
.apply-head{margin:0 0 var(--space-5);padding-bottom:var(--space-4);border-bottom:var(--border-emphasis) solid var(--navy-700)}
.apply-head__title{margin:0;font:var(--type-page-title);color:var(--text-strong);letter-spacing:var(--tracking-tight)}
.apply-head__back{display:inline-block;margin:0 0 var(--space-3);font:var(--type-caption)}
.apply-notice{display:flex;gap:var(--space-2);margin:0 0 var(--space-6);padding:var(--space-3) var(--space-4);color:var(--red-600);background:var(--red-100);border-radius:var(--radius-md);font:var(--type-label)}

/* 応募する求人 */
.picked{margin:0 0 var(--space-7)}
.picked__head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-3);margin:0 0 var(--space-3)}
.picked__title{margin:0;font:var(--type-section-title);color:var(--text-strong)}
.picked__count{margin:0;font:var(--type-label);color:var(--text-muted)}
.picked__list{display:grid;gap:var(--space-3);margin:0;padding:0;list-style:none}
.picked__item{display:grid;grid-template-columns:2.2em minmax(0,1fr) auto;gap:var(--space-3);padding:var(--space-4);background:var(--surface-card);border:var(--border-hairline) solid var(--line-subtle);border-left:4px solid var(--navy-700);border-radius:var(--radius-md)}
.picked__rank{margin:0;font:var(--type-label);color:var(--text-muted)}
.picked__office{margin:0;font:var(--type-card-title);color:var(--text-strong)}
.picked__job{margin:2px 0 0;font:var(--type-label);color:var(--text-body)}
.picked__tags{display:flex;flex-wrap:wrap;gap:6px;margin:var(--space-2) 0 0;padding:0;list-style:none}
.picked__tag{padding:2px var(--space-2);font:var(--type-caption);color:var(--text-body);background:var(--surface-accent-soft);border-radius:var(--radius-sm)}
.picked__facts{grid-template-columns:6.5em 1fr;gap:2px var(--space-3);margin-top:var(--space-3);font:var(--type-caption)}
.picked__remove{align-self:start;min-height:var(--tap-min);padding:0 var(--space-3);font:var(--type-label);color:var(--text-link);background:var(--white);border:var(--border-hairline) solid var(--line-default);border-radius:var(--radius-sm);cursor:pointer}
.picked__remove:hover{color:var(--text-link-hover)}
.picked__remove:focus-visible{outline:none;box-shadow:var(--ring-focus)}
.picked__empty{margin:0;padding:var(--space-6) var(--space-4);text-align:center;color:var(--text-muted);background:var(--surface-card);border:var(--border-hairline) dashed var(--line-default);border-radius:var(--radius-md)}
.picked__note{margin:var(--space-3) 0 0;font:var(--type-caption);color:var(--text-muted)}

/* フォーム本体 */
.form{display:grid;gap:var(--space-5);margin:0}
.form-row{display:grid;gap:var(--space-2)}
@media (min-width:760px){.form-row{grid-template-columns:13em minmax(0,1fr);gap:var(--space-4);align-items:start}}
.form-row__label{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin:0;font:var(--type-label);color:var(--text-strong);padding-top:10px}
.form-row__body{display:grid;gap:var(--space-3);min-width:0}
.req{padding:1px 6px;font:var(--type-caption);color:var(--text-inverse);background:var(--red-600);border-radius:var(--radius-sm)}
.opt{padding:1px 6px;font:var(--type-caption);color:var(--text-muted);background:var(--surface-sunken);border-radius:var(--radius-sm)}
.input,.textarea,.select{width:100%;min-height:var(--control-height);padding:0 var(--space-3);font:var(--type-body);font-size:16px;color:var(--text-body);background:var(--white);border:var(--border-hairline) solid var(--line-default);border-radius:var(--radius-md)}
.textarea{min-height:140px;padding:var(--space-3);line-height:1.7;resize:vertical}
.input:focus-visible,.textarea:focus-visible,.select:focus-visible{outline:none;box-shadow:var(--ring-focus)}
.input--sm{max-width:8em}
.input--md{max-width:14em}
.input--lg{max-width:20em}
/* 必須項目は未入力の間ピンクで示し、入力されたら白に戻す */
.input:required:invalid,.textarea:required:invalid,.select:required:invalid,input[type="file"]:required:invalid{background:var(--red-100)}
/* 必須のラジオボタン（性別）は、どれも選ばれていない間だけ選択肢をピンクにする */
.condition:has(.condition__box[type="radio"]:required:invalid){background:var(--red-100)}
.input:required:valid,.textarea:required:valid,.select:required:valid,input[type="file"]:required:valid{background:var(--white)}
/* 郵便番号から自動入力する都道府県。触れられないことが分かるよう薄いグレーにする */
.select--locked{background:var(--surface-sunken) !important;color:var(--text-muted);cursor:not-allowed}
.subrow{display:grid;gap:var(--space-2)}
@media (min-width:560px){.subrow{grid-template-columns:7em minmax(0,1fr);align-items:center;gap:var(--space-3)}}
.subrow__label{display:flex;align-items:center;gap:var(--space-2);margin:0;font:var(--type-label);color:var(--text-muted)}
/* 応募する求人の希望順（第1〜第3希望をプルダウンで選択、それ以外は第4希望以降にまとめる） */
.job-rank__ranks{display:grid;gap:var(--space-3)}
.job-rank__select{max-width:26em}
.job-rank__rest{margin-top:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface-sunken);border-radius:var(--radius-md)}
.job-rank__rest-label{margin:0 0 var(--space-2);font:var(--type-label);color:var(--text-muted)}
.job-rank__rest-list{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}
.job-rank__rest-item{padding:2px var(--space-2);font:var(--type-caption);color:var(--text-body);background:var(--white);border:var(--border-hairline) solid var(--line-default);border-radius:var(--radius-sm)}
.inline{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}
.field-note{margin:0;font:var(--type-caption);color:var(--text-muted)}
.file{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}
.form-error{margin:0;font:var(--type-caption);color:var(--red-600)}
.form-actions{display:grid;gap:var(--space-3);justify-items:center;margin-top:var(--space-4);padding-top:var(--space-5);border-top:var(--border-hairline) solid var(--line-default)}
.form-actions .button{min-width:min(280px,100%);justify-content:center}
.form-alert{margin:0;padding:var(--space-3) var(--space-4);font:var(--type-label);color:var(--red-600);background:var(--red-100);border-radius:var(--radius-md)}
.form-done{width:calc(100% - 32px);max-width:560px;max-height:calc(100dvh - 32px);overflow:auto;margin:auto;padding:var(--space-6);border:0;background:var(--surface-accent-soft);border-radius:var(--radius-md)}
.form-done::backdrop{background:rgb(0 0 0 / 45%)}
.form-done .button{margin-top:var(--space-5)}
.form-done__title{margin:0 0 var(--space-2);font:var(--type-section-title);color:var(--text-strong)}
.form-done__text{margin:0;color:var(--text-body);text-wrap:pretty}
.form-done__link{margin:var(--space-4) 0 0;font:var(--type-label)}

/* 入力内容の確認 */
.confirm__lead{margin:0 0 var(--space-4);color:var(--text-body)}
.confirm__facts{grid-template-columns:9em minmax(0,1fr)}
.confirm__actions{display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:center}
.confirm__actions .button{min-width:min(200px,100%)}

/* 連絡先 */
.company-contact{margin-top:var(--space-7);padding-top:var(--space-5);border-top:var(--border-hairline) solid var(--line-default)}
.company-contact__name{margin:0 0 var(--space-2);font:var(--type-card-title);color:var(--text-strong)}
.company-contact__lines{margin:0;font:var(--type-body);color:var(--text-body);line-height:1.9}

.privacy-consent{display:flex;align-items:flex-start;gap:var(--space-3);font:var(--type-body)}
.privacy-consent input{flex:none;width:20px;height:20px;margin:4px 0 0;accent-color:var(--action-primary)}
.privacy-consent input:focus-visible{outline:2px solid var(--action-primary);outline-offset:3px}
.privacy-consent label{min-width:0;cursor:pointer;overflow-wrap:anywhere}
.privacy-consent .req{margin-left:var(--space-2);white-space:nowrap}
