/* 出店者応募フォーム スタイル - 最優先適用 */

/* 基本設定 - テーマのスタイルを上書き */
.exhibitor-form-container {
  max-width: 800px !important;
  margin: 0 auto !important;
  padding: 40px 30px !important;
  background-color: #f8f6f3 !important;
  font-family: "Hiragino Sans", "ヒラギノ角ゴシック", "Yu Gothic", "游ゴシック",
    "Meiryo", "メイリオ", sans-serif !important;
  box-sizing: border-box !important;
}

/* Contact Form 7のデフォルトスタイルをリセット */
.wpcf7-form {
  margin: 0 !important;
  padding: 0 !important;
}

.wpcf7-form-control-wrap {
  margin: 0 !important;
  padding: 0 !important;
}

.wpcf7-form-control {
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  background: none !important;
  box-shadow: none !important;
}

/* ヘッダー部分 - 最優先適用 */
.form-header {
  text-align: center !important;
  margin-bottom: 50px !important;
}

.form-header h2 {
  font-size: 2.2em !important;
  font-weight: bold !important;
  color: #333 !important;
  margin-bottom: 25px !important;
  line-height: 1.2 !important;
}

.form-header p {
  font-size: 1.1em !important;
  line-height: 1.6 !important;
  color: #666 !important;
  margin-bottom: 25px !important;
}

.notice-box {
  background-color: #f0f0f0 !important;
  border: 1px solid #ddd !important;
  border-radius: 8px !important;
  padding: 20px !important;
  margin: 25px 0 !important;
  text-align: left !important;
}

.notice-box p {
  margin: 0 !important;
  font-size: 0.95em !important;
  color: #555 !important;
  line-height: 1.5 !important;
}

.contact-info {
  font-size: 0.9em !important;
  color: #888 !important;
  margin-top: 20px !important;
}

/* セクション - 最優先適用 */
.form-section {
  background-color: #fff !important;
  border-radius: 12px !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1) !important;
  padding: 35px !important;
  margin-bottom: 35px !important;
}

.form-section h3 {
  font-size: 1.4em !important;
  font-weight: bold !important;
  color: #333 !important;
  margin-bottom: 20px !important;
  border-bottom: 2px solid #e74c3c !important;
  padding-bottom: 12px !important;
}

.form-section p {
  font-size: 1em !important;
  color: #666 !important;
  margin-bottom: 8px !important;
  line-height: 1.5 !important;
}

/* プラン選択 - 最優先適用 */
.plan-selection {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)) !important;
  gap: 25px !important;
  margin-top: 25px !important;
}

.plan-card {
  position: relative !important;
  border: 2px solid #e0e0e0 !important;
  border-radius: 12px !important;
  padding: 8px;
  background-color: #fff !important;
  transition: all 0.3s ease !important;
  cursor: pointer !important;
}

.plan-card p {
  margin: 0 !important;
  padding: 0 !important;
}

.plan-card br {
  display: none !important;
}

.plan-card:hover {
  border-color: #e74c3c !important;
  box-shadow: 0 4px 12px rgba(231, 76, 60, 0.2) !important;
}

.plan-card.selected {
  border-color: #e74c3c !important;
  background-color: #fff5f5 !important;
}

/* CF7のradioタグ用のスタイル */
.plan-selection input[type="radio"] {
  position: absolute !important;
  opacity: 0 !important;
  pointer-events: none !important;
  margin: 0 !important;
  width: 0 !important;
  height: 0 !important;
}

.plan-selection label {
  display: none !important; /* CF7のラベルを非表示 */
}

/* カード全体をクリック可能にする */
.plan-card {
  position: relative !important;
  cursor: pointer !important;
}

.plan-card::after {
  content: "選択する" !important;
  position: absolute !important;
  right: 20px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  font-size: 0.9em !important;
  color: #e74c3c;
  background-color: #fff;
  font-weight: bold !important;
  z-index: 5 !important;
  border: 1px #e74c3c solid;
  padding: 8px 16px;
  border-radius: 130px;
}

/* 選択状態のスタイル */
.plan-selection input[type="radio"]:checked + label + .plan-card,
.plan-selection input[type="radio"]:checked ~ .plan-card {
  border-color: #e74c3c !important;
  background-color: #fff5f5 !important;
}

.plan-selection input[type="radio"]:checked + label + .plan-card::after,
.plan-selection input[type="radio"]:checked ~ .plan-card::after {
  content: "選択中" !important;
  color: #fff !important;
  background-color: #e74c3c !important;
  padding: 5px 10px !important;
  border-radius: 15px !important;
  font-size: 0.8em !important;
}

/* 従来のスタイル（後方互換性のため） */
.plan-radio {
  position: absolute !important;
  pointer-events: none !important;
  margin: 0 !important;
  margin-right: 0 !important;
  width: 0 !important;
  height: 0 !important;
}

.plan-radio + .plan-label::after {
  content: "選択する" !important;
  position: absolute !important;
  right: 20px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  font-size: 0.9em !important;
  color: #e74c3c !important;
  font-weight: bold !important;
  z-index: 5 !important;
}

.plan-label {
  display: block !important;
  padding: 25px !important;
  cursor: pointer !important;
  height: 100% !important;
}

.plan-content h4 {
  padding-left: 32px;
  font-size: 1.2em !important;
  font-weight: bold !important;
  color: #333 !important;
  margin-bottom: 12px !important;
}

.plan-price {
  font-size: 1.4em !important;
  font-weight: bold !important;
  color: #e74c3c !important;
  margin-bottom: 8px !important;
}

.plan-remaining {
  font-size: 0.9em !important;
  color: #e74c3c !important;
  margin-bottom: 12px !important;
  display: inline-block !important;
  padding: 4px 8px !important;
  border: 2px solid #e74c3c !important;
  border-radius: 4px !important;
  background-color: #fff !important;
  font-weight: bold !important;
}

.plan-remaining p {
  color: #e74c3c !important;
}

.plan-detail-link {
  color: #000000 !important;
  text-decoration: none !important;
  font-size: 0.9em !important;
  font-weight: bold !important;
}

.plan-detail-link:hover {
  text-decoration: underline !important;
}

/* フォームフィールド - 縦配列スタイル */
.form-fields {
  margin-top: 25px !important;
}

.field-group {
  margin-bottom: 30px !important;
}

.field-label {
  display: block !important;
  font-size: 1em !important;
  font-weight: normal !important;
  color: #333 !important;
  margin-bottom: 15px !important;
  line-height: 1.4 !important;
}

.field-group input,
.field-group textarea,
.field-group select {
  width: 100% !important;
  padding: 15px 18px !important;
  border: 1px solid #d8d8d8 !important;
  border-radius: 6px !important;
  font-size: 1em !important;
  box-sizing: border-box !important;
  background-color: #fff !important;
  color: #333 !important;
  transition: border-color 0.3s ease !important;
}

.field-group input:focus,
.field-group textarea:focus,
.field-group select:focus {
  border-color: #e74c3c !important;
  outline: none !important;
  box-shadow: 0 0 0 2px rgba(231, 76, 60, 0.1) !important;
}

.field-group textarea {
  min-height: 120px !important;
  resize: vertical !important;
}

.field-group ::placeholder {
  color: #999 !important;
  font-style: normal !important;
  opacity: 1 !important;
}

/* 見出しと必須タグを横並びにする */
.form-section h3 {
  display: flex !important;
  align-items: center !important;
  margin-bottom: 10px !important;
}

/* 必須ラベルをh3内の文字の後ろに配置 */
.form-section h3 .CF7_req {
  margin-left: 10px !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  margin-right: 0 !important;
}

.form-section h3 + .CF7_req {
  margin-left: auto !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.CF7_unreq {
  font-size: 0.75em !important;
  padding: 3px 6px !important;
  background: #cbcbcb !important;
  color: #fff !important;
  border-radius: 3px !important;
  margin-left: 10px !important;
  display: inline-block !important;
  vertical-align: middle !important;
}

/* 任意ラベルをh3内の文字の後ろに配置 */
.form-section h3 .CF7_unreq {
  margin-left: 10px !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  margin-right: 0 !important;
}

.form-section h3 + .CF7_unreq {
  margin-left: auto !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* ラジオボタン・チェックボックス - Contact Form 7の実際の構造に対応 */
.radio-group,
.checkbox-group {
  margin: 20px 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
}

/* 複数選択可能ラベル */
.checkbox-group::before {
  content: "複数選択可能" !important;
  display: inline-block !important;
  /* width: 126px; */
  font-size: 0.7em !important;
  color: #989898 !important;
  font-weight: bold !important;
  margin-bottom: 10px !important;
  padding: 5px 10px !important;
  background-color: #ffffff !important;
  border: 1px solid #989898 !important;
  border-radius: 4px !important;
  text-align: center !important;
}

/* Contact Form 7が生成する実際のHTML構造に対応 - 最高優先度 */
.exhibitor-form-container .radio-group .wpcf7-list-item,
.exhibitor-form-container .checkbox-group .wpcf7-list-item,
.wpcf7-form .radio-group .wpcf7-list-item,
.wpcf7-form .checkbox-group .wpcf7-list-item {
  display: flex !important;
  align-items: center !important;
  margin: 0 !important;
}

/* ラジオボタンとチェックボックスのラベル - 最高優先度 */
.exhibitor-form-container .radio-group .wpcf7-list-item label,
.exhibitor-form-container .checkbox-group .wpcf7-list-item label,
.wpcf7-form .radio-group .wpcf7-list-item label,
.wpcf7-form .checkbox-group .wpcf7-list-item label {
  display: flex !important;
  align-items: center !important;
  padding: 12px 15px !important;
  background: none !important;
  border: none !important;
  cursor: pointer !important;
  transition: all 0.3s ease !important;
  font-size: 1em !important;
  width: 100% !important;
  box-sizing: border-box !important;
  min-height: 50px !important;
  margin: 0 !important;
  flex: 1 !important;
  position: relative !important;
  z-index: 2 !important;
}

/* カスタムラジオボタンとチェックボックスのアイコン - 常に表示 */
.exhibitor-form-container .radio-group .wpcf7-list-item label::before,
.exhibitor-form-container .checkbox-group .wpcf7-list-item label::before,
.wpcf7-form .radio-group .wpcf7-list-item label::before,
.wpcf7-form .checkbox-group .wpcf7-list-item label::before {
  content: "" !important;
  display: inline-block !important;
  width: 20px !important;
  height: 20px !important;
  border: 2px solid #d8d8d8 !important;
  border-radius: 50% !important;
  margin-right: 12px !important;
  flex-shrink: 0 !important;
  transition: all 0.3s ease !important;
  background-color: #fff !important;
  position: relative !important;
  z-index: 2 !important;
  box-sizing: border-box !important;
}

.exhibitor-form-container .checkbox-group .wpcf7-list-item label::before,
.wpcf7-form .checkbox-group .wpcf7-list-item label::before {
  border-radius: 4px !important;
}

/* チェックボックスとラジオボタンの実際の要素を表示 */
.exhibitor-form-container .radio-group .wpcf7-list-item input[type="radio"],
.exhibitor-form-container
  .checkbox-group
  .wpcf7-list-item
  input[type="checkbox"],
.wpcf7-form .radio-group .wpcf7-list-item input[type="radio"],
.wpcf7-form .checkbox-group .wpcf7-list-item input[type="checkbox"] {
  display: inline-block !important;
  width: 20px !important;
  height: 20px !important;
  margin-right: 12px !important;
  cursor: pointer !important;
  accent-color: #e74c3c !important;
  flex-shrink: 0 !important;
  position: relative !important;
  z-index: 3 !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

/* ラジオボタンとチェックボックスのコンテナに枠を追加 - 常に表示 */
.exhibitor-form-container .radio-group .wpcf7-list-item,
.exhibitor-form-container .checkbox-group .wpcf7-list-item,
.wpcf7-form .radio-group .wpcf7-list-item,
.wpcf7-form .checkbox-group .wpcf7-list-item {
  display: flex !important;
  align-items: center !important;
  margin: 0 !important;
  padding: 8px !important;
  background-color: #f8f9fa !important;
  border: 2px solid #e0e0e0 !important;
  border-radius: 8px !important;
  margin-bottom: 10px !important;
  transition: all 0.3s ease !important;
  cursor: pointer !important;
  position: relative !important;
  min-height: 50px !important;
  box-sizing: border-box !important;
}

/* ラベル全体をクリック可能にする（実際の要素は表示） */
.exhibitor-form-container .radio-group .wpcf7-list-item label,
.exhibitor-form-container .checkbox-group .wpcf7-list-item label,
.wpcf7-form .radio-group .wpcf7-list-item label,
.wpcf7-form .checkbox-group .wpcf7-list-item label {
  position: relative !important;
  cursor: pointer !important;
  width: 100% !important;
  height: 100% !important;
  display: flex !important;
  align-items: center !important;
}

/* ホバー効果をコンテナに適用 - 選択可能であることを示す */
.exhibitor-form-container .radio-group .wpcf7-list-item:hover,
.exhibitor-form-container .checkbox-group .wpcf7-list-item:hover,
.wpcf7-form .radio-group .wpcf7-list-item:hover,
.wpcf7-form .checkbox-group .wpcf7-list-item:hover {
  background-color: #fff5f5 !important;
  border-color: #e74c3c !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 2px 8px rgba(231, 76, 60, 0.2) !important;
}

/* ホバー時のアイコン変化 */
.exhibitor-form-container .radio-group .wpcf7-list-item:hover label::before,
.exhibitor-form-container .checkbox-group .wpcf7-list-item:hover label::before,
.wpcf7-form .radio-group .wpcf7-list-item:hover label::before,
.wpcf7-form .checkbox-group .wpcf7-list-item:hover label::before {
  border-color: #e74c3c !important;
  background-color: #fff5f5 !important;
}

/* 選択時のチェックボックスとラジオボタンのスタイル */
.exhibitor-form-container
  .radio-group
  .wpcf7-list-item
  input[type="radio"]:checked,
.exhibitor-form-container
  .checkbox-group
  .wpcf7-list-item
  input[type="checkbox"]:checked,
.wpcf7-form .radio-group .wpcf7-list-item input[type="radio"]:checked,
.wpcf7-form .checkbox-group .wpcf7-list-item input[type="checkbox"]:checked {
  accent-color: #e74c3c !important;
  transform: scale(1.1) !important;
}

/* ホバー効果 */
.radio-group .wpcf7-list-item label:hover,
.checkbox-group .wpcf7-list-item label:hover {
  background-color: #fff5f5 !important;
  border-color: #e74c3c !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 2px 8px rgba(231, 76, 60, 0.2) !important;
}

/* 選択された時のスタイル - コンテナに適用 - より確実なセレクター */
.exhibitor-form-container
  .radio-group
  .wpcf7-list-item:has(input[type="radio"]:checked),
.exhibitor-form-container
  .checkbox-group
  .wpcf7-list-item:has(input[type="checkbox"]:checked),
.wpcf7-form .radio-group .wpcf7-list-item:has(input[type="radio"]:checked),
.wpcf7-form
  .checkbox-group
  .wpcf7-list-item:has(input[type="checkbox"]:checked) {
  background-color: #fff5f5 !important;
  border-color: #e74c3c !important;
  color: #e74c3c !important;
}

/* フォールバック: :has()が使えない場合の代替 */
.exhibitor-form-container
  .radio-group
  .wpcf7-list-item
  input[type="radio"]:checked,
.exhibitor-form-container
  .checkbox-group
  .wpcf7-list-item
  input[type="checkbox"]:checked,
.wpcf7-form .radio-group .wpcf7-list-item input[type="radio"]:checked,
.wpcf7-form .checkbox-group .wpcf7-list-item input[type="checkbox"]:checked {
  background-color: #fff5f5 !important;
  border-color: #e74c3c !important;
  color: #e74c3c !important;
}

/* 選択された時のコンテナスタイル - より確実な方法 */
.exhibitor-form-container
  .radio-group
  .wpcf7-list-item
  input[type="radio"]:checked
  ~ *,
.exhibitor-form-container
  .checkbox-group
  .wpcf7-list-item
  input[type="checkbox"]:checked
  ~ *,
.wpcf7-form .radio-group .wpcf7-list-item input[type="radio"]:checked ~ *,
.wpcf7-form
  .checkbox-group
  .wpcf7-list-item
  input[type="checkbox"]:checked
  ~ * {
  background-color: #fff5f5 !important;
  border-color: #e74c3c !important;
  color: #e74c3c !important;
}

/* 選択された時のコンテナ背景色変更 - JavaScript用クラス */
.exhibitor-form-container .radio-group .wpcf7-list-item.selected,
.exhibitor-form-container .checkbox-group .wpcf7-list-item.selected,
.wpcf7-form .radio-group .wpcf7-list-item.selected,
.wpcf7-form .checkbox-group .wpcf7-list-item.selected {
  background-color: #fff5f5 !important;
  border-color: #e74c3c !important;
  color: #e74c3c !important;
}

/* 選択された時のカスタムアイコンスタイル - より確実なセレクター */
.exhibitor-form-container
  .radio-group
  .wpcf7-list-item
  input[type="radio"]:checked
  + label::before,
.exhibitor-form-container
  .checkbox-group
  .wpcf7-list-item
  input[type="checkbox"]:checked
  + label::before,
.wpcf7-form
  .radio-group
  .wpcf7-list-item
  input[type="radio"]:checked
  + label::before,
.wpcf7-form
  .checkbox-group
  .wpcf7-list-item
  input[type="checkbox"]:checked
  + label::before {
  background-color: #e74c3c !important;
  border-color: #e74c3c !important;
}

/* 選択された時の実際の要素のスタイル */
.exhibitor-form-container
  .radio-group
  .wpcf7-list-item
  input[type="radio"]:checked,
.exhibitor-form-container
  .checkbox-group
  .wpcf7-list-item
  input[type="checkbox"]:checked,
.wpcf7-form .radio-group .wpcf7-list-item input[type="radio"]:checked,
.wpcf7-form .checkbox-group .wpcf7-list-item input[type="checkbox"]:checked {
  background-color: #e74c3c !important;
  border-color: #e74c3c !important;
  color: #fff !important;
}

/* 選択された時のチェックマーク - より確実なセレクター */
.exhibitor-form-container
  .checkbox-group
  .wpcf7-list-item
  input[type="checkbox"]:checked
  + label::after,
.wpcf7-form
  .checkbox-group
  .wpcf7-list-item
  input[type="checkbox"]:checked
  + label::after {
  content: "✓" !important;
  position: absolute !important;
  left: 6px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  color: #fff !important;
  font-size: 14px !important;
  font-weight: bold !important;
  z-index: 3 !important;
  display: block !important;
  width: 20px !important;
  height: 20px !important;
  line-height: 20px !important;
  text-align: center !important;
  pointer-events: none !important;
}

/* 選択された時のラジオボタンの中央ドット - より確実なセレクター */
.exhibitor-form-container
  .radio-group
  .wpcf7-list-item
  input[type="radio"]:checked
  + label::after,
.wpcf7-form
  .radio-group
  .wpcf7-list-item
  input[type="radio"]:checked
  + label::after {
  content: "" !important;
  position: absolute !important;
  left: 8px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 8px !important;
  height: 8px !important;
  background-color: #fff !important;
  border-radius: 50% !important;
  z-index: 3 !important;
  display: block !important;
  pointer-events: none !important;
}

/* 選択された時のラベルスタイル */
.exhibitor-form-container
  .radio-group
  .wpcf7-list-item
  input[type="radio"]:checked
  + label,
.exhibitor-form-container
  .checkbox-group
  .wpcf7-list-item
  input[type="checkbox"]:checked
  + label,
.wpcf7-form .radio-group .wpcf7-list-item input[type="radio"]:checked + label,
.wpcf7-form
  .checkbox-group
  .wpcf7-list-item
  input[type="checkbox"]:checked
  + label {
  color: #e74c3c !important;
  font-weight: bold !important;
}

/* 選択された時のラベルスタイル - JavaScript用クラス */
.exhibitor-form-container .radio-group .wpcf7-list-item.selected label,
.exhibitor-form-container .checkbox-group .wpcf7-list-item.selected label,
.wpcf7-form .radio-group .wpcf7-list-item.selected label,
.wpcf7-form .checkbox-group .wpcf7-list-item.selected label {
  color: #e74c3c !important;
  font-weight: bold !important;
}

/* Contact Form 7の特定のセレクターで確実に適用 */
.wpcf7-form .radio-group,
.wpcf7-form .checkbox-group {
  margin: 20px 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
}

.wpcf7-form .radio-group .wpcf7-list-item,
.wpcf7-form .checkbox-group .wpcf7-list-item {
  display: flex !important;
  align-items: center !important;
  margin: 8px 0 !important;
}

.wpcf7-form .radio-group .wpcf7-list-item label,
.wpcf7-form .checkbox-group .wpcf7-list-item label {
  display: flex !important;
  align-items: center !important;
  padding: 12px 15px !important;
  background-color: #f8f9fa !important;
  border: 2px solid #e0e0e0 !important;
  border-radius: 8px !important;
  cursor: pointer !important;
  transition: all 0.3s ease !important;
  font-size: 1em !important;
  width: 100% !important;
  box-sizing: border-box !important;
  min-height: 50px !important;
  margin: 0 !important;
  flex: 1 !important;
}

.wpcf7-form .radio-group .wpcf7-list-item input[type="radio"],
.wpcf7-form .checkbox-group .wpcf7-list-item input[type="checkbox"] {
  display: inline-block !important;
  width: 20px !important;
  height: 20px !important;
  margin-right: 12px !important;
  cursor: pointer !important;
  accent-color: #e74c3c !important;
  flex-shrink: 0 !important;
  position: relative !important;
  z-index: 3 !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

.wpcf7-form .radio-group .wpcf7-list-item input[type="radio"]:checked,
.wpcf7-form .checkbox-group .wpcf7-list-item input[type="checkbox"]:checked {
  accent-color: #e74c3c !important;
  transform: scale(1.1) !important;
  background-color: #e74c3c !important;
  border-color: #e74c3c !important;
  color: #fff !important;
}

.wpcf7-form .radio-group .wpcf7-list-item input[type="radio"]:checked + label,
.wpcf7-form
  .checkbox-group
  .wpcf7-list-item
  input[type="checkbox"]:checked
  + label {
  background-color: #fff5f5 !important;
  border-color: #e74c3c !important;
  color: #e74c3c !important;
  font-weight: bold !important;
  box-shadow: 0 0 0 3px rgba(231, 76, 60, 0.2) !important;
}

/* 送信ボタンの表示を確実にする */
.wpcf7 input.wpcf7-submit {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/* フォーム全体の送信ボタン */
.exhibitor-form-container .wpcf7 input.wpcf7-submit {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  margin: 0 auto !important;
}

/* 同意事項チェックボックス - スリムデザイン */
.agreement-checkboxes {
  margin-top: 25px !important;
}

.checkbox-item {
  margin-bottom: 15px !important;
  padding: 0 !important;
  background-color: #f8f9fa !important;
  border-radius: 6px !important;
  border-left: 3px solid #e74c3c !important;
  transition: all 0.3s ease !important;
  cursor: pointer !important;
}

.checkbox-item:hover {
  background-color: #fff5f5 !important;
  border-left-color: #c0392b !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 2px 8px rgba(231, 76, 60, 0.1) !important;
}

.agreement-label {
  display: block !important;
  padding: 15px !important;
  cursor: pointer !important;
  margin: 0 !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

/* Contact Form 7の同意事項チェックボックス - 最高優先度 */
.exhibitor-form-container .agreement-checkboxes .checkbox-item .wpcf7-list-item,
.wpcf7-form .agreement-checkboxes .checkbox-item .wpcf7-list-item {
  display: flex !important;
  align-items: center !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
}

.exhibitor-form-container
  .agreement-checkboxes
  .checkbox-item
  .wpcf7-list-item
  label,
.wpcf7-form .agreement-checkboxes .checkbox-item .wpcf7-list-item label {
  font-size: 0.95em !important;
  line-height: 1.4 !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  margin: 0 !important;
  padding: 0 !important;
  background: none !important;
  border: none !important;
  width: 100% !important;
  flex: 1 !important;
}

.exhibitor-form-container
  .agreement-checkboxes
  .checkbox-item
  .wpcf7-list-item
  input[type="checkbox"],
.wpcf7-form
  .agreement-checkboxes
  .checkbox-item
  .wpcf7-list-item
  input[type="checkbox"] {
  width: 18px !important;
  height: 18px !important;
  margin-right: 10px !important;
  cursor: pointer !important;
  accent-color: #e74c3c !important;
  transform: scale(1.2) !important;
  flex-shrink: 0 !important;
  position: relative !important;
  z-index: 2 !important;
}

/* 同意事項のラベル全体をクリック可能にする */
.exhibitor-form-container .agreement-label,
.wpcf7-form .agreement-label {
  display: block !important;
  cursor: pointer !important;
  width: 100% !important;
  padding: 0 16px !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}

.exhibitor-form-container .agreement-label:hover,
.wpcf7-form .agreement-label:hover {
  background-color: #fff5f5 !important;
}

/* 同意事項のチェックボックスが選択された時のスタイル */
.exhibitor-form-container
  .agreement-checkboxes
  .checkbox-item:has(input[type="checkbox"]:checked),
.wpcf7-form
  .agreement-checkboxes
  .checkbox-item:has(input[type="checkbox"]:checked) {
  background-color: #fff5f5 !important;
  border-left-color: #c0392b !important;
}

/* フォールバック: :has()が使えない場合の代替 */
.exhibitor-form-container
  .agreement-checkboxes
  .checkbox-item
  input[type="checkbox"]:checked
  ~ *,
.wpcf7-form
  .agreement-checkboxes
  .checkbox-item
  input[type="checkbox"]:checked
  ~ * {
  background-color: #fff5f5 !important;
  border-left-color: #c0392b !important;
}

/* 注意書き - 最優先適用 */
.note {
  font-size: 0.9em !important;
  color: #666 !important;
  margin-top: 12px !important;
  padding: 12px 15px !important;
  background-color: #f0f8ff !important;
  border-radius: 4px !important;
  border-left: 3px solid #007bff !important;
  line-height: 1.4 !important;
}

/* 送信ボタン - 最優先適用 */
.submit-section {
  text-align: center !important;
  margin-top: 50px !important;
}

.wpcf7 input.wpcf7-submit {
  background-color: #e74c3c !important;
  color: #fff !important;
  border: none !important;
  padding: 18px 45px !important;
  font-size: 1.2em !important;
  font-weight: bold !important;
  border-radius: 8px !important;
  cursor: pointer !important;
  transition: background-color 0.3s ease !important;
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  margin: 0 auto !important;
}

.wpcf7 input.wpcf7-submit:hover {
  background-color: #c0392b !important;
}

/* ポップアップ - 最優先適用 */
.plan-popup {
  display: none !important;
  position: fixed !important;
  z-index: 1000 !important;
  left: 0 !important;
  top: 0 !important;
  width: 100% !important;
  height: 100% !important;
  background-color: rgba(0, 0, 0, 0.5) !important;
}

.popup-content {
  background-color: #fff !important;
  margin: 5% auto !important;
  padding: 0 !important;
  border-radius: 12px !important;
  width: 90% !important;
  max-width: 600px !important;
  position: relative !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3) !important;
}

.popup-close {
  position: absolute !important;
  right: 15px !important;
  top: 15px !important;
  font-size: 28px !important;
  font-weight: bold !important;
  cursor: pointer !important;
  color: #999 !important;
  z-index: 1001 !important;
}

.popup-close:hover {
  color: #333 !important;
}

.popup-body {
  padding: 30px !important;
}

.popup-body h3 {
  font-size: 1.5em !important;
  color: #333 !important;
  margin-bottom: 20px !important;
  border-bottom: 2px solid #e74c3c !important;
  padding-bottom: 10px !important;
}

.popup-actions {
  text-align: center !important;
  margin-top: 30px !important;
}

.popup-select-btn {
  background-color: #e74c3c !important;
  color: #fff !important;
  border: none !important;
  padding: 12px 30px !important;
  font-size: 1.1em !important;
  font-weight: bold !important;
  border-radius: 6px !important;
  cursor: pointer !important;
  transition: background-color 0.3s ease !important;
}

.popup-select-btn:hover {
  background-color: #c0392b !important;
}

/* レスポンシブデザイン - 最優先適用 */
@media screen and (max-width: 768px) {
  .exhibitor-form-container {
    padding: 25px 20px !important;
  }

  .form-header {
    margin-bottom: 35px !important;
  }

  .form-header h2 {
    font-size: 1.8em !important;
    margin-bottom: 20px !important;
  }

  .form-section {
    padding: 25px !important;
    margin-bottom: 25px !important;
  }

  .plan-selection {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }

  .field-group {
    margin-bottom: 25px !important;
  }

  .field-label {
    font-size: 0.95em !important;
    margin-bottom: 12px !important;
  }

  .popup-content {
    width: 95% !important;
    margin: 10% auto !important;
  }

  .popup-body {
    padding: 20px !important;
  }
}

@media screen and (max-width: 480px) {
  .exhibitor-form-container {
    padding: 20px 15px !important;
  }

  .form-header h2 {
    font-size: 1.5em !important;
  }

  .form-section {
    padding: 20px !important;
  }

  .plan-content {
    padding: 8px !important;
  }

  .plan-price {
    font-size: 1.2em !important;
  }

  .wpcf7 input.wpcf7-submit {
    padding: 15px 35px !important;
    font-size: 1.1em !important;
  }
}

/* フォームバリデーション - 最優先適用 */
.wpcf7-not-valid {
  border-color: #e74c3c !important;
}

.wpcf7-not-valid-tip {
  color: #e74c3c !important;
  font-size: 0.9em !important;
  margin-top: 5px !important;
}

.wpcf7-response-output {
  margin: 20px 0 !important;
  padding: 15px !important;
  border-radius: 8px !important;
  text-align: center !important;
}

.wpcf7-mail-sent-ok {
  background-color: #d4edda !important;
  color: #155724 !important;
  border: 1px solid #c3e6cb !important;
  padding: 15px !important;
  border-radius: 8px !important;
  margin: 20px 0 !important;
  font-size: 14px !important;
  line-height: 1.4 !important;
}

.wpcf7-mail-sent-ng {
  background-color: #f8d7da !important;
  color: #721c24 !important;
  border: 1px solid #f5c6cb !important;
  padding: 15px !important;
  border-radius: 8px !important;
  margin: 20px 0 !important;
  font-size: 14px !important;
  line-height: 1.4 !important;
}

.wpcf7-spam-blocked {
  background-color: #f8d7da !important;
  color: #721c24 !important;
  border: 1px solid #f5c6cb !important;
  padding: 15px !important;
  border-radius: 8px !important;
  margin: 20px 0 !important;
  font-size: 14px !important;
  line-height: 1.4 !important;
}

.wpcf7-validation-errors {
  background-color: #f8d7da !important;
  color: #721c24 !important;
  border: 1px solid #f5c6cb !important;
  padding: 15px !important;
  border-radius: 8px !important;
  margin: 20px 0 !important;
  font-size: 14px !important;
  line-height: 1.4 !important;
}

/* 追加の最優先スタイル */
.exhibitor-form-container * {
  box-sizing: border-box !important;
}

.exhibitor-form-container input,
.exhibitor-form-container textarea,
.exhibitor-form-container select {
  font-family: inherit !important;
}

/* テーマのスタイルを完全に上書き */
.exhibitor-form-container .wpcf7-form-control-wrap {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

.exhibitor-form-container .wpcf7-form-control {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  background: none !important;
  box-shadow: none !important;
  outline: none !important;
  font-size: inherit !important;
  line-height: inherit !important;
}

/* テキストフィールドのスタイル */
.exhibitor-form-container .text-field {
  padding: 12px 15px !important;
  border: 1px solid #d8d8d8 !important;
  border-radius: 6px !important;
  background-color: #fff !important;
  color: #333 !important;
  font-size: 1em !important;
  transition: border-color 0.3s ease !important;
}

.exhibitor-form-container .text-field:focus {
  border-color: #e74c3c !important;
  outline: none !important;
  box-shadow: 0 0 0 2px rgba(231, 76, 60, 0.1) !important;
}

/* メールフィールドのスタイル */
.exhibitor-form-container .email-field {
  padding: 12px 15px !important;
  border: 1px solid #d8d8d8 !important;
  border-radius: 6px !important;
  background-color: #fff !important;
  color: #333 !important;
  font-size: 1em !important;
  transition: border-color 0.3s ease !important;
}

.exhibitor-form-container .email-field:focus {
  border-color: #e74c3c !important;
  outline: none !important;
  box-shadow: 0 0 0 2px rgba(231, 76, 60, 0.1) !important;
}

/* セレクトフィールドのスタイル - 確実に適用 */
.exhibitor-form-container .select-field,
.radio-group select,
.checkbox-group select,
.exhibitor-form-container select {
  padding: 12px 15px !important;
  border: 2px solid #d8d8d8 !important;
  border-radius: 8px !important;
  background-color: #fff !important;
  color: #333 !important;
  font-size: 1em !important;
  transition: all 0.3s ease !important;
  cursor: pointer !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

.exhibitor-form-container .select-field:focus,
.radio-group select:focus,
.checkbox-group select:focus,
.exhibitor-form-container select:focus {
  border-color: #e74c3c !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(231, 76, 60, 0.2) !important;
  background-color: #fff5f5 !important;
  transform: translateY(-1px) !important;
}

/* セレクトボックスの選択状態を明確にする */
.exhibitor-form-container .select-field:hover,
.radio-group select:hover,
.checkbox-group select:hover,
.exhibitor-form-container select:hover {
  border-color: #e74c3c !important;
  background-color: #fff5f5 !important;
  box-shadow: 0 2px 8px rgba(231, 76, 60, 0.1) !important;
}

/* セレクトボックスのオプション選択時のスタイル */
.exhibitor-form-container .select-field option:checked,
.radio-group select option:checked,
.checkbox-group select option:checked,
.exhibitor-form-container select option:checked {
  background-color: #e74c3c !important;
  color: #fff !important;
  font-weight: bold !important;
}

/* テキストエリアのスタイル */
.exhibitor-form-container .textarea-field {
  padding: 12px 15px !important;
  border: 1px solid #d8d8d8 !important;
  border-radius: 6px !important;
  background-color: #fff !important;
  color: #333 !important;
  font-size: 1em !important;
  transition: border-color 0.3s ease !important;
  min-height: 100px !important;
  resize: vertical !important;
}

.exhibitor-form-container .textarea-field:focus {
  border-color: #e74c3c !important;
  outline: none !important;
  box-shadow: 0 0 0 2px rgba(231, 76, 60, 0.1) !important;
}

/* ラジオボタンとチェックボックスのスタイル */
.exhibitor-form-container input[type="radio"],
.exhibitor-form-container input[type="checkbox"] {
  display: inline-block !important;
  margin: 0 !important;
  vertical-align: middle !important;
  width: 20px !important;
  height: 20px !important;
  cursor: pointer !important;
  accent-color: #e74c3c !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

.exhibitor-form-container label {
  display: flex !important;
  align-items: center !important;
  margin: 0 !important;
  padding: 0 !important;
  font-weight: normal !important;
  cursor: pointer !important;
}

/* 必須・任意ラベル - 最優先適用 */
.CF7_req {
  font-size: 0.75em !important;
  padding: 3px 6px !important;
  background: #e74c3c !important;
  color: #fff !important;
  border-radius: 3px !important;
  margin-left: 10px !important;
  margin-right: 10px;
  font-weight: bold !important;
  display: inline-block !important;
  vertical-align: middle !important;
}

.plan_bikou {
  text-align: center;
  font-size: 1rem;
  color: #c0392b;
}

.text_wrap {
  font-size: 0.8rem !important;
}
