/* e-NAQUEST フォーム共通（確認画面・選択肢・reCAPTCHA 表記）— style.css の後に読み込む */

/* reCAPTCHA のバッジは表示する（画面右下） */
.grecaptcha-badge { z-index: 90; }
.form-recaptcha-note { font-size: 11px; line-height: 1.8; color: rgba(242,242,242,.55); margin: 4px 0 0; }
.form-recaptcha-note a { text-decoration: underline; text-underline-offset: 2px; }

.form-hint { font-size: 12px; line-height: 1.8; color: rgba(242,242,242,.6); margin-top: 8px; }
.form-hint a, .form-row-check a { color: var(--cyan); text-decoration: underline; text-underline-offset: 3px; }
.form-row-check label span { line-height: 1.6; }

/* チェックボックス・ラジオの選択肢 */
.choice-group { display: flex; flex-wrap: wrap; gap: 8px; border: 0; padding: 0; margin: 0; }
.choice-group legend { display: block; font-size: 12px; letter-spacing: .08em; margin-bottom: 10px; color: rgba(242,242,242,.85); padding: 0; }
.choice { position: relative; display: inline-flex; }
.choice input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.choice span {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 13px; line-height: 1.5; letter-spacing: .03em;
  padding: 9px 14px; border-radius: 999px;
  border: 1px solid rgba(242,242,242,.25); background: rgba(242,242,242,.04);
  cursor: pointer; transition: border-color .2s, background .2s, color .2s;
}
.choice span::before { content: ""; width: 14px; height: 14px; flex: none; border: 1.5px solid rgba(242,242,242,.6); border-radius: 4px; transition: background .2s, border-color .2s; }
.choice input[type="radio"] + span::before { border-radius: 50%; }
.choice input:checked + span { border-color: var(--cyan); background: rgba(0,175,236,.14); color: #fff; }
.choice input:checked + span::before { background: var(--cyan); border-color: var(--cyan); box-shadow: inset 0 0 0 2.5px var(--bg-dark); }
.choice input:focus-visible + span { outline: 2px solid var(--cyan); outline-offset: 2px; }
.form-row.is-invalid .choice span { border-color: #ff5a5a; }
.form-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; }
@media (max-width: 640px) { .form-grid-2 { grid-template-columns: 1fr; } }

/* 確認画面 */
.form-confirm { border-top: 1px solid rgba(242,242,242,.15); padding-top: 28px; }
.form-confirm[hidden], .form-step-input[hidden] { display: none; }
.form-confirm-lead { font-size: 13px; line-height: 1.9; color: rgba(242,242,242,.8); margin-bottom: 20px; }
.confirm-list { display: grid; gap: 0; border-top: 1px solid rgba(242,242,242,.12); margin: 0 0 20px; }
.confirm-list > div { display: grid; grid-template-columns: 160px 1fr; gap: 16px; padding: 14px 0; border-bottom: 1px solid rgba(242,242,242,.12); }
.confirm-list dt { font-size: 12px; letter-spacing: .06em; color: rgba(242,242,242,.6); padding-top: 2px; }
.confirm-list dd { font-size: 14px; line-height: 1.8; word-break: break-word; margin: 0; }
.confirm-list dd.is-empty { color: rgba(242,242,242,.35); }
@media (max-width: 640px) { .confirm-list > div { grid-template-columns: 1fr; gap: 4px; } }
.form-actions-confirm { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; }
.btn-back { font: inherit; font-size: 14px; letter-spacing: .06em; color: rgba(242,242,242,.8); padding: 12px 4px; border-bottom: 1px solid transparent; transition: color .2s, border-color .2s; }
.btn-back:hover { color: #fff; border-color: currentColor; }
.contact-form:has(> .form-step-input[hidden]) { border-top: 0; padding-top: 0; }
