/* ========== Form（共通フォームスタイル） ========== */

/* フォーム全体 */
.form-wrapper {
  max-width: 640px;
  margin: 0 auto;
}

/* 各フィールド */
.form-group {
  margin-bottom: 1.5rem;
}

/* ラベル */
.form-group label {
  display: block;
  margin-bottom: 0.5rem;
  font-weight: 600;
  color: var(--color-text);
  font-size: 0.95rem;
}

/* 必須マーク */
.form-group .required {
  color: var(--color-accent, #ff6600);
  margin-left: 0.3em;
  font-size: 0.85em;
}

/* インプット・セレクト・テキストエリア共通 */
.form-group input[type="text"],
.form-group input[type="email"],
.form-group input[type="tel"],
.form-group input[type="url"],
.form-group input[type="number"],
.form-group select,
.form-group textarea {
  width: 100%;
  padding: 0.6rem 0.8rem;
  border: 1px solid var(--color-border);
  border-radius: 4px;
  font-size: 1rem;
  background-color: #fff;
  color: var(--color-text);
  transition: border-color 0.3s;
}

.form-group textarea {
  min-height: 120px;
  resize: vertical;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  border-color: var(--color-primary);
  outline: none;
}

/* チェックボックス・ラジオ */
.form-check {
  display: flex;
  align-items: center;
  margin-bottom: 0.8rem;
  font-size: 0.9rem;
}

.form-check input[type="checkbox"],
.form-check input[type="radio"] {
  margin-right: 0.5rem;
}

/* エラーメッセージ */
.form-error {
  color: #d00;
  font-size: 0.85rem;
  margin-top: 0.3rem;
}

/* 送信ボタン */
.form-submit {
  text-align: center;
  margin-top: 2rem;
}

.form-submit button {
  padding: 0.8em 2em;
  font-size: 1rem;
  font-weight: bold;
  color: #fff;
  background-color: var(--color-primary);
  border: none;
  border-radius: 9999px;
  transition: background-color 0.3s;
}

.form-submit button:hover {
  background-color: #005fa3;
}
