/* ==========================================================================
   Contact Form 7 - デザイン統合オーバーライド
   ========================================================================== */

/* CF7 デフォルトスタイルのリセット */
.wpcf7 .wpcf7-form {
  margin: 0;
  padding: 0;
}

/* CF7 form-section の背景維持 */
.wpcf7 .form-section {
  background: #F8F8F8;
  padding: 32px;
}

/* CF7が自動挿入する <p> タグのマージンをリセット */
.wpcf7 .form-group p {
  margin: 0;
}

.wpcf7 .form-group br {
  display: none;
}

/* CF7 wrap span をブロック表示に */
.wpcf7 .wpcf7-form-control-wrap {
  display: block;
}

/* CF7 送信ボタン */
.wpcf7 input[type="submit"].btn-filled-black,
.wpcf7 .wpcf7-submit.btn-filled-black {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background: #000000;
  color: #FFFFFF;
  border: 1px solid #000000;
  border-radius: 4px;
  padding: 16px 24px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  width: 100%;
  transition: opacity 0.2s;
}

.wpcf7 input[type="submit"].btn-filled-black:hover {
  opacity: 0.85;
}

/* CF7 バリデーションエラーメッセージ */
.wpcf7 .wpcf7-not-valid-tip {
  color: #E51F1F;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 12px;
  margin-top: 4px;
  display: block;
}

/* CF7 送信完了 / エラーメッセージ */
.wpcf7 .wpcf7-response-output {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  padding: 16px;
  margin: 16px 0 0;
  border-radius: 4px;
}

.wpcf7 .wpcf7-mail-sent-ok,
.wpcf7-form.sent .wpcf7-response-output {
  border-color: #46b450;
  background: #f0fff0;
  color: #2d862d;
}

.wpcf7-form.invalid .wpcf7-response-output,
.wpcf7-form.unaccepted .wpcf7-response-output,
.wpcf7-form.failed .wpcf7-response-output {
  border-color: #E51F1F;
  background: #fff5f5;
  color: #E51F1F;
}

/* CF7 チェックボックス - form-checkbox-group 内のスタイル */
.wpcf7 .form-checkbox-group .wpcf7-checkbox {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.wpcf7 .form-checkbox-group .wpcf7-list-item {
  margin: 0;
}

.wpcf7 .form-checkbox-group .wpcf7-list-item label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  color: #313131;
  cursor: pointer;
}

.wpcf7 .form-checkbox-group .wpcf7-list-item input[type="checkbox"] {
  width: 18px;
  height: 18px;
  border: 1px solid #E3E3E3;
  border-radius: 2px;
  cursor: pointer;
}

/* CF7 スピナー非表示 */
.wpcf7 .wpcf7-spinner {
  display: inline-block;
  margin-left: 8px;
}

/* CF7 invalid状態のインプットボーダー */
.wpcf7 .wpcf7-not-valid {
  border-color: #E51F1F !important;
}

/* CF7 ファイルアップロード */
.wpcf7 input[type="file"] {
  display: flex;
  align-items: center;
  width: 100%;
  padding: 10px 16px;
  border: 1px solid #E3E3E3;
  border-radius: 4px;
  background: #FFFFFF;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  color: #313131;
  cursor: pointer;
  box-sizing: border-box;
  transition: border-color 0.15s ease;
}

.wpcf7 input[type="file"]:focus {
  outline: none;
  border-color: #E51F1F;
}

.wpcf7 input[type="file"]::file-selector-button {
  background: #000000;
  color: #FFFFFF;
  border: none;
  border-radius: 4px;
  padding: 6px 16px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  margin-right: 12px;
  transition: opacity 0.2s ease;
}

.wpcf7 input[type="file"]::file-selector-button:hover {
  opacity: 0.75;
}

.wpcf7 input[type="file"].wpcf7-not-valid {
  border-color: #E51F1F !important;
}
