/* お問い合わせ種別セレクトボックスのスタイル */

.input_box select {
  width: 100%;
  padding: 10px;
  border: 1px solid #ddd;
  border-radius: 4px;
  font-size: 16px;
  background-color: #fff;
  background-image: url('data:image/svg+xml;charset=US-ASCII,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 4 5"><path fill="#666" d="M2 0L0 2h4zm0 5L0 3h4z"/></svg>');
  background-repeat: no-repeat;
  background-position: right 10px center;
  background-size: 12px;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
}

.input_box select:focus {
  outline: none;
  border-color: #007cba;
  box-shadow: 0 0 0 2px rgba(0, 124, 186, 0.2);
}

.input_box select option {
  padding: 8px;
}

/* 必須マークのスタイル調整 */
.required {
  background-color: #e74c3c;
  color: white;
  padding: 2px 6px;
  border-radius: 3px;
  font-size: 12px;
  margin-left: 8px;
  font-weight: bold;
}

/* =================================
   リアルタイムバリデーション用スタイル
   ================================= */

/* バリデーション状態のインプット */
.input_box input.valid {
  border-color: #27ae60;
  background-color: #f8fff8;
}

.input_box input.invalid {
  border-color: #e74c3c;
  background-color: #fff8f8;
}

.input_box select.valid {
  border-color: #27ae60;
  background-color: #f8fff8;
}

.input_box select.invalid {
  border-color: #e74c3c;
  background-color: #fff8f8;
}

.input_box textarea.valid {
  border-color: #27ae60;
  background-color: #f8fff8;
}

.input_box textarea.invalid {
  border-color: #e74c3c;
  background-color: #fff8f8;
}

/* 入力欄直下のエラーメッセージ */
.field_error {
  color: #e60012;
  font-size: 12px;
  margin-top: 4px;
  margin-bottom: 4px;
  display: none;
  font-weight: normal;
}

.field_error.show {
  display: block;
}

/* 従来のエラーメッセージ（互換性のため残す） */
.error_message {
  color: #e74c3c;
  font-size: 12px;
  margin-top: 4px;
  display: none;
  background-color: #fff5f5;
  padding: 4px 8px;
  border-radius: 3px;
  border-left: 3px solid #e74c3c;
}

.error_message.show {
  display: block;
}

/* 現行フォーム風の必須エラー表示（使用されなくなったが互換性のため残す） */
.required_error {
  color: #e60012;
  font-size: 12px;
  margin-top: 2px;
  display: none;
  font-weight: normal;
}

.required_error.show {
  display: block;
}

/* 必須項目のラベル下にエラー表示 */
.title .required_error {
  margin-top: 4px;
  margin-left: 0;
}

/* レスポンシブ対応 */
@media screen and (max-width: 768px) {
  .input_box select {
    font-size: 14px;
    padding: 8px;
  }

  .field_error,
  .error_message,
  .required_error {
    font-size: 11px;
  }

  .error_message {
    padding: 3px 6px;
  }
}