/* 応募・お問い合わせ画面（site.css のあとに読む） */
.fpage{background:#fbf5f8 url("../img/paper-tile.jpg") repeat;background-size:800px auto}
.hd__in .btn--sm{min-height:40px;padding:0 20px;font-size:14px}

.form-page{position:relative;overflow:hidden;padding:56px 20px 96px;background:#fbf5f8 url("../img/paper-tile.jpg") repeat;background-size:800px auto}
.fcube{position:absolute;pointer-events:none;z-index:0;animation:float var(--d,10s) ease-in-out infinite}
.fcube--1{width:84px;left:4%;top:120px;--d:11s}
.fcube--2{width:64px;right:6%;top:300px;--d:9s;animation-delay:-3s}
.fcube--3{width:56px;left:7%;bottom:180px;--d:12s;animation-delay:-6s}
@media (max-width:900px){.fcube--1{width:56px;left:-8px;top:24px}.fcube--2{width:44px;right:-6px;top:120px}.fcube--3{display:none}}

/* 見出し → ステップ → 本文 の順に並べる */
.fwrap{position:relative;z-index:1;width:min(800px,100%);margin-inline:auto;display:flex;flex-direction:column}
.fwrap > *{order:1}
.fwrap__en{order:-3;display:block;text-align:center;font-weight:900;font-size:clamp(48px,9vw,96px);line-height:1;color:transparent;-webkit-text-stroke:2px rgba(29,35,78,.16)}
.form-title{order:-2;text-align:center;font-size:clamp(26px,3.4vw,36px);font-weight:900;line-height:1.4;margin:-20px 0 32px;position:relative}
.form-title::after{content:"";display:block;width:64px;height:6px;border-radius:3px;background:#e83817;margin:14px auto 0}
.form-steps{order:-1}
.fwrap > p{margin:0 0 16px;text-align:center}

/* ステップ */
.form-steps{list-style:none;display:flex;gap:10px;padding:0;margin:0 0 32px}
.form-steps li{flex:1;display:flex;align-items:center;justify-content:center;gap:10px;padding:12px 10px;background:#fff;border-radius:14px;font-weight:900;color:#5a5f7d;box-shadow:0 6px 16px rgba(29,35,78,.08)}
.form-steps li span{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#efeaf3;color:#1d234e;font-family:"Outfit",sans-serif;font-size:16px;transform:rotate(-8deg)}
.form-steps li.is-current{background:#1d234e;color:#fff}
.form-steps li.is-current span{background:#e83817;color:#fff}

/* 入力グループ */
.form-group{border:0;padding:28px 28px 30px;margin:0 0 22px;background:#fff;border-radius:24px;box-shadow:0 14px 34px rgba(29,35,78,.1);min-width:0}
.form-group > legend{float:left;width:100%;font-size:19px;font-weight:900;padding:0 0 12px;margin-bottom:18px;border-bottom:2px dashed #efe3ea;display:flex;align-items:center;gap:10px}
.form-group > legend::before{content:"";width:12px;height:12px;border-radius:3px;background:#e83817;transform:rotate(45deg);flex:0 0 auto}
.form-group > legend + *{clear:both}
@media (max-width:600px){.form-group{padding:22px 18px 24px;border-radius:20px}}

.field{margin-bottom:24px}
.field:last-child{margin-bottom:0}
.label{display:block;font-weight:900;margin-bottom:8px}
.req,.opt{display:inline-block;font-size:12px;font-weight:900;padding:1px 8px;border-radius:999px;vertical-align:.12em;margin-left:6px;line-height:1.6}
.req{background:#c42b0e;color:#fff}
.opt{background:#efeaf3;color:#1d234e}
.help{font-size:14px;color:#5a5f7d;margin:0 0 8px;line-height:1.7}

input[type="text"],input[type="email"],input[type="tel"],input[type="url"],select,textarea{width:100%;font:inherit;font-size:16px;color:#1d234e;padding:13px 16px;border:2px solid #ddd5e2;border-radius:14px;background:#fdfbfc;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}
input::placeholder,textarea::placeholder{color:#a3a6bd}
textarea{resize:vertical;min-height:130px}
input:focus,select:focus,textarea:focus{outline:none;border-color:#1d234e;background:#fff;box-shadow:0 0 0 4px rgba(232,56,23,.22)}
input[type="file"]{font:inherit;max-width:100%;padding:14px;border:2px dashed #ddd5e2;border-radius:14px;background:#fdfbfc;width:100%}
input[type="file"]::file-selector-button{font:inherit;font-weight:900;border:0;border-radius:999px;background:#1d234e;color:#fff;padding:8px 18px;margin-right:12px;cursor:pointer}

.choice{border:0;padding:0;margin:0;min-width:0}
.choice > legend{padding:0}
.choices{display:flex;flex-wrap:wrap;gap:10px}
.choice__item{display:inline-flex;align-items:center;gap:10px;padding:11px 16px;border:2px solid #ddd5e2;border-radius:14px;background:#fff;cursor:pointer;line-height:1.4;font-weight:700;transition:border-color .2s ease,background .2s ease,transform .15s ease}
.choice__item:hover{border-color:#1d234e}
.choice__item:active{transform:scale(.98)}
.choice__item input{width:20px;height:20px;margin:0;accent-color:#e83817;flex:0 0 auto}
.choice__item:has(input:checked){border-color:#e83817;background:#fff4ef}
.choice__item:has(input:focus-visible){box-shadow:0 0 0 4px rgba(232,56,23,.22)}
.inline{display:inline-flex;gap:4px;align-items:center;margin-left:.6em;font-weight:500}

/* エラー */
.has-error input,.has-error select,.has-error textarea,.has-error .choice__item{border-color:#c42b0e}
.error{color:#c42b0e;font-weight:900;font-size:14px;margin:0 0 8px}
.error-box{background:#fff1ee;border:2px solid #c42b0e;border-radius:18px;padding:18px 22px;margin-bottom:22px}
.error-box:focus{outline:3px solid rgba(196,43,14,.35)}
.error-box ul{margin:6px 0 0;padding-left:1.2em}
.error-box a{color:#c42b0e}

/* 完了 */
.done-box{background:#fff;border-radius:24px;padding:30px 28px;margin-bottom:28px;box-shadow:0 14px 34px rgba(29,35,78,.1);border-top:8px solid #e83817;text-align:center}
.done-box p + p{margin-top:12px}
.done-box strong{font-family:"Outfit",sans-serif;font-size:24px;color:#c42b0e}
.small{font-size:14px;color:#5a5f7d}
.center{text-align:center}

.file-note{font-size:14px;margin:8px 0 0}
.file-note.is-error{color:#c42b0e;font-weight:900}
.current-file{background:#faf1f6;padding:12px 14px;border-radius:12px;font-size:15px}

/* 同意 */
.privacy{margin:8px 0 32px;background:#fff;border-radius:24px;padding:24px 28px;box-shadow:0 14px 34px rgba(29,35,78,.1)}
.privacy .choice__item{width:100%}
.pnote{margin-top:16px;font-size:14px;color:#3d4266;line-height:1.75}
.pnote__t{font-weight:900;color:#1d234e;margin-bottom:4px}
.pnote ul{margin:0;padding-left:1.2em}
.pnote li + li{margin-top:4px}
@media (max-width:600px){.privacy{padding:20px 18px}}

/* 確認 */
.confirm{background:#fff;border-radius:24px;padding:10px 28px;margin:0 0 22px;box-shadow:0 14px 34px rgba(29,35,78,.1)}
.confirm__row{display:grid;grid-template-columns:1fr;gap:2px;padding:14px 0;border-bottom:1px dashed #e6dbe2}
.confirm__row:last-child{border-bottom:0}
.confirm dt{font-weight:900;font-size:14px;color:#5a5f7d}
.confirm dd{margin:0;font-weight:700}
.muted{color:#a3a6bd}
@media (min-width:768px){.confirm__row{grid-template-columns:220px 1fr}}
@media (max-width:600px){.confirm{padding:6px 18px}}

/* ボタン */
.form-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:16px;margin-top:28px}
.btn--large{background:#c42b0e;box-shadow:0 6px 0 #8f1f09;font-size:19px;min-height:62px;padding:0 44px;border:0;cursor:pointer;font-family:inherit}
.btn--large:hover{background:#e83817;box-shadow:0 8px 0 #8f1f09}
.btn--large:active{transform:translateY(4px);box-shadow:0 2px 0 #8f1f09}
.btn--ghost{background:#fff;color:#1d234e !important;border:2px solid #1d234e;cursor:pointer;font-family:inherit;font-size:16px}
.btn--ghost:hover{background:#eef0fa}
button.btn{font-family:inherit}
.btn[disabled]{opacity:.6;cursor:wait}

/* ハニーポット（人には見せない） */
.hp{position:absolute !important;left:-10000px;width:1px;height:1px;overflow:hidden}
