/* ============================================================
 * お問い合わせの4ページで使うスタイル
 * ============================================================
 * contact.html（入力）／contact-confirm.html（確認）
 * contact-complete.html（完了）／contact-error.html（エラー）
 * 色・ヘッダー・ボタン・フッターは shared.css。ここは入力欄まわりだけ。
 * ============================================================ */

/* ---------- 進み具合（入力 → 確認 → 完了） ---------- */
.step{display:flex;align-items:center;justify-content:center;gap:10px;margin:0 0 44px;
  font-size:12px;font-weight:800;color:var(--ink-dim)}
.step__i{display:inline-flex;align-items:center;gap:8px}
.step__n{display:inline-flex;align-items:center;justify-content:center;
  width:24px;height:24px;border-radius:50%;background:var(--line);color:#fff;
  font-size:12px;line-height:1}
.step__i--on{color:var(--teal-text)}
.step__i--on .step__n{background:var(--teal-text)}
.step__b{width:26px;height:2px;background:var(--line);border-radius:2px}

/* ---------- 入力欄 ---------- */
.form{max-width:720px;margin:0 auto}
.fld{margin:0 0 26px}
.fld__l{display:block;margin:0 0 8px;font-size:13.5px;font-weight:800;color:var(--ink)}
/* 必須と任意は色と文字で示す（色だけだと伝わらない人がいる） */
.tag{display:inline-block;margin-left:8px;padding:3px 8px;border-radius:6px;
  font-size:10.5px;font-weight:800;line-height:1;vertical-align:2px}
.tag--req{background:#fee2e2;color:#b91c1c}
.tag--opt{background:var(--bg-soft);color:var(--ink-dim);border:1px solid var(--line)}
.fld input[type=text],.fld input[type=email],.fld input[type=tel],.fld textarea{
  width:100%;padding:14px 16px;border:1px solid var(--line);border-radius:14px;
  background:#fff;font:inherit;font-size:15px;color:var(--ink);
  transition:border-color .2s,box-shadow .2s}
.fld textarea{min-height:190px;line-height:1.9;resize:vertical}
.fld input:focus,.fld textarea:focus{outline:0;border-color:var(--teal);
  box-shadow:0 0 0 3px rgba(13,148,136,.12)}
/* 入力に不備があるときだけ赤くする（:invalid だけだと最初から赤くなる） */
.fld input:user-invalid,.fld textarea:user-invalid{border-color:var(--red)}
.fld__n{margin:8px 0 0;font-size:12px;color:var(--ink-dim);line-height:1.8}

/* ---------- 種別（ラジオ） ---------- */
.cats{display:grid;gap:10px;grid-template-columns:1fr}
@media(min-width:560px){.cats{grid-template-columns:1fr 1fr}}
.cat{display:flex;align-items:center;gap:10px;padding:15px 18px;border-radius:14px;
  border:1px solid var(--line);background:#fff;font-size:14.5px;font-weight:700;
  cursor:pointer;transition:border-color .2s,background-color .2s,box-shadow .2s}
.cat:hover{border-color:var(--teal)}
.cat input{accent-color:var(--teal);width:18px;height:18px;flex:none}
/* 選んだものが分かるよう、うすい緑の面にする */
.cat:has(input:checked){border-color:var(--teal);background:var(--teal-pale);
  box-shadow:0 6px 16px rgba(13,148,136,.10)}

/* ---------- 確認事項と同意 ---------- */
.note{margin:0 0 26px;padding:26px;border-radius:18px;background:var(--bg-soft);
  border:1px solid var(--line)}
.note__h{margin:0 0 14px;font-size:13px;font-weight:900;color:var(--ink)}
.note p{margin:0 0 12px;font-size:13px;color:var(--ink-mid);line-height:1.95}
.note a{color:var(--teal-dark);text-decoration:underline;text-underline-offset:3px;
  font-weight:800}
.chk{display:flex;align-items:flex-start;gap:10px;margin:0 0 12px;
  font-size:13.5px;font-weight:700;color:var(--ink);cursor:pointer;line-height:1.7}
.chk:last-child{margin:0}
.chk input{accent-color:var(--teal);width:18px;height:18px;flex:none;margin-top:3px}

/* ---------- 確認画面の表 ---------- */
.conf{max-width:720px;margin:0 auto;border-top:1px solid var(--line)}
.conf__row{display:grid;gap:6px;padding:20px 0;border-bottom:1px solid var(--line)}
@media(min-width:640px){.conf__row{grid-template-columns:200px 1fr;gap:28px;align-items:baseline}}
.conf__k{margin:0;font-size:13px;font-weight:900;color:var(--ink)}
.conf__v{margin:0;font-size:14.5px;color:var(--ink-mid);line-height:1.95;
  white-space:pre-wrap;word-break:break-word}
.conf__v:empty::before{content:'（未入力）';color:var(--ink-dim)}

/* ---------- reCAPTCHA ---------- */
.cap{display:flex;flex-direction:column;align-items:center;gap:12px;margin:36px 0 0}
.cap__e{margin:0;font-size:13px;font-weight:800;color:var(--red)}
.cap__n{margin:0;max-width:560px;font-size:12px;color:var(--ink-dim);line-height:1.8;
  text-align:center}
.notice{margin:24px auto 0;max-width:560px;padding:16px 20px;border-radius:14px;
  background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;
  font-size:13px;font-weight:700;line-height:1.8;text-align:center}
[hidden]{display:none!important}

/* ---------- 完了・エラー ---------- */
.done{max-width:640px;margin:0 auto;text-align:center}
.done__ic{width:76px;height:76px;margin:0 auto 26px;border-radius:50%;
  display:grid;place-items:center}
.done__ic svg{width:38px;height:38px}
.done__ic--ok{background:var(--teal-pale);color:var(--teal)}
.done__ic--ng{background:#fef2f2;color:var(--red)}
