.content_post .cf7_buy_form {
 .container, p, div {
  margin-bottom: 0;
 }
 br {
  display: none;
 }
 br.show_br {
  display: block;
 }
 input[type="radio"], input[type="checkbox"] {
  width: 18px;
  height: 18px;
  display: inline-block;
  position: relative;
  top: 3px;
  margin-left: 0;
 }
 .small {
  font-size: 0.75em;
  font-weight: 300;
 }
 .wpcf7-not-valid-tip {
  background-color: #eb4b4b;
  border-radius: 5px;
  color: #fff;
  font-size: 0.75em;
  padding: 5px 10px;
 }
 /* フォームセクション */
 .form-section {
  background-color: #fff;
  padding: 30px;
  margin-bottom: 20px;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
 }
 .form-section h2 {
  font-size: 20px;
  margin-bottom: 20px;
  padding-bottom: 10px;
  border-bottom: 2px solid #2c5f2d;
  color: #2c5f2d;
 }
 .form-group {
  margin-bottom: 10px;
 }
 .form-group label {
  display: inline-block;
  margin-bottom: 8px;
  font-weight: 600;
  font-size: 14px;
 }
 .required {
  color: #e74c3c;
  font-size: 12px;
  margin-left: 5px;
  font-weight: normal;
 }
 .optional {
  color: #999;
  font-size: 12px;
  margin-left: 5px;
  font-weight: normal;
 }
 /* 入力フィールド */
 input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="date"], select, textarea {
  width: 100%;
  padding: 12px;
  border: 1px solid #ddd;
  border-radius: 4px;
  font-size: 14px;
  transition: border-color 0.3s;
 }
 input:focus, select:focus, textarea:focus {
  outline: none;
  border-color: #2c5f2d;
 }
 .error-message {
  color: #e74c3c;
  font-size: 13px;
  margin-top: 5px;
  font-weight: bold;
 }
 .input-error {
  border-color: #e74c3c !important;
  background-color: #fff8f8;
 }
 /* グリッドレイアウト */
 .name-group p {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 15px;
 }
 .checkbox-grid .wpcf7-form-control {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-top: 10px;
 }
 .checkbox-item p, .radio-item p {
  display: flex;
  align-items: center;
 }
 .checkbox-item input, .radio-item input {
  width: auto;
  margin-right: 8px;
 }
 .checkbox-item label, .radio-item label {
  margin-bottom: 0;
  font-weight: normal;
  cursor: pointer;
 }
 .radio-group .wpcf7-form-control {
  display: flex;
  gap: 20px;
  margin-top: 10px;
 }
 .input-with-unit p {
  display: flex;
  gap: 10px;
  align-items: center;
 }
 .input-with-unit input {
  flex: 1;
 }
 textarea {
  min-height: 150px;
  resize: vertical;
 }
 /* 商品選択 */
 .product-box {
  padding: 20px;
  border: 2px solid #ddd;
  border-radius: 8px;
  margin-bottom: 15px;
 }
 .product-header p {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 15px;
 }
 .product-title {
  font-size: 18px;
  margin-bottom: 5px;
  color: #2c5f2d;
  font-weight: bold;
 }
 .product-price {
  font-size: 16px;
  font-weight: 600;
  color: #2c5f2d;
 }
 .product-input-area {
  display: flex;
  align-items: center;
  gap: 15px;
 }
 /* 合計金額 */
 .total-box {
  background-color: #f0f8f0;
  padding: 25px;
  border-radius: 8px;
  border-left: 4px solid #2c5f2d;
 }
 /* 情報ボックス */
 .info-box {
  background-color: #fffbea;
  padding: 20px;
  border-radius: 4px;
  border-left: 4px solid #f39c12;
 }
 .info-box h3 {
  font-size: 16px;
  margin-bottom: 10px;
  color: #2c5f2d;
 }
 /* ボタン */
 .submit-button {
  background-color: #2c5f2d;
  color: #fff;
  padding: 18px 40px;
  border: none;
  border-radius: 4px;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  width: 100%;
  transition: background-color 0.3s;
 }
 .submit-button:hover {
  background-color: #1e4620;
 }
 .back-button {
  background-color: #999;
  color: #fff;
  padding: 18px 40px;
  border: none;
  border-radius: 4px;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  width: 100%;
  transition: background-color 0.3s;
  margin-bottom: 10px;
 }
 .back-button:hover {
  background-color: #777;
 }
 /* サンクスページ用 */
 .checkmark-circle {
  width: 80px;
  height: 80px;
  background-color: #2c5f2d;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 20px;
 }
 .checkmark {
  width: 40px;
  height: 40px;
  border: 3px solid #fff;
  border-top: none;
  border-right: none;
  transform: rotate(-45deg);
  margin-top: -8px;
 }
 .success-header {
  text-align: center;
  margin-bottom: 40px;
 }
 .flow-steps {
  margin: 30px 0;
 }
 .flow-step {
  display: flex;
  align-items: flex-start;
  margin-bottom: 20px;
 }
 .step-number {
  background-color: #2c5f2d;
  color: #fff;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
  margin-right: 15px;
  flex-shrink: 0;
 }
 .order-summary {
  background-color: #f9f9f9;
  padding: 25px;
  border-radius: 8px;
  margin: 20px 0;
 }
 .order-detail {
  display: flex;
  justify-content: space-between;
  padding: 10px 0;
  border-bottom: 1px solid #e0e0e0;
 }
 .order-detail:last-child {
  border-bottom: none;
 }
 /* 確認画面用テーブル */
 .confirm-table {
  width: 100%;
  border-collapse: collapse;
 }
 .confirm-table th, .confirm-table td {
  padding: 15px;
  border-bottom: 1px solid #eee;
  text-align: left;
 }
 .confirm-table th {
  width: 30%;
  color: #2c5f2d;
  font-weight: 600;
  vertical-align: top;
 }
 @media (max-width: 768px) {
  .container {
   padding: 15px;
  }
  .name-group, .checkbox-grid {
   grid-template-columns: 1fr;
  }
  .radio-group {
   flex-direction: column;
   gap: 10px;
  }
  .confirm-table th, .confirm-table td {
   display: block;
   width: 100%;
  }
  .confirm-table th {
   padding-bottom: 5px;
  }
  .confirm-table td {
   padding-top: 5px;
  }
 }
 /* 以下、抽出したスタイルクラス */
 /* エラー表示 */
 .error-box {
  background-color: #fee;
  color: #e74c3c;
  padding: 15px;
  border-radius: 5px;
  margin-bottom: 20px;
  border: 1px solid #e74c3c;
 }
 .error-title {
  font-weight: bold;
 }
 .error-list {
  margin-left: 20px;
  margin-top: 5px;
 }
 /* フォーム部品詳細 */
 .unit-label {
  padding: 12px;
  font-weight: 600;
 }
 .product-qty-label {
  font-weight: 600;
  min-width: 80px;
 }
 .quantity-input {
  width: 120px;
  padding: 10px;
  border: 1px solid #ddd;
  border-radius: 4px;
 }
 .unit-span {
  font-weight: 600;
 }
 .subtotal-area {
  margin-left: auto;
  font-size: 16px;
  font-weight: 600;
  color: #666;
 }
 .total-flex {
  display: flex;
  justify-content: space-between;
  align-items: center;
 }
 .total-label {
  font-size: 20px;
  font-weight: 700;
 }
 .total-price-display {
  font-size: 28px;
  font-weight: 700;
  color: #2c5f2d;
 }
 .total-note {
  font-size: 12px;
  color: #666;
  margin-top: 10px;
 }
 .alternative-address {
  margin-top: 20px;
  padding: 20px;
  background-color: #f9f9f9;
  border-radius: 4px;
 }
 .privacy-wrapper {
  display: flex;
  align-items: center;
  margin-top: 20px;
 }
 .privacy-checkbox-input {
  width: auto;
  margin-right: 10px;
 }
 .privacy-link {
  color: #2c5f2d;
 }
 /* 確認画面 */
 .confirm-message {
  margin-bottom: 20px;
 }
 .total-strong {
  color: #2c5f2d;
 }
 .submit-form {
  margin-top: 30px;
 }
 .button-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 15px;
 }
 /* サンクスページ */
 .success-title {
  border: none;
 }
 .step-title {
  margin-bottom: 20px;
  color: #2c5f2d;
 }
 .step-note {
  color: #666;
  font-size: 14px;
 }
 .order-detail-footer {
  border-top: 2px solid #2c5f2d;
  margin-top: 15px;
  padding-top: 15px;
 }
 .order-label-lg {
  font-size: 18px;
  font-weight: 700;
 }
 .order-value-lg {
  font-weight: 700;
  color: #2c5f2d;
  font-size: 20px;
 }
 .alert-box {
  background-color: #fffbea;
  border-left: 4px solid #f39c12;
  padding: 20px;
 }
 .order-summary .alert-box h3 {
  color: #f39c12;
  font-size: 1.2em;
 }
 .order-summary h3 {
  color: #2c5f2d;
 }
 .contact-info {
  margin-top: 10px;
 }
 .back-link-wrapper {
  text-align: center;
  margin-top: 30px;
  display: flex;
  justify-content: center;
  gap: 15px;
 }
 .back-link {
  padding: 15px 20px;
  text-decoration: none;
  background: #e0e0e0;
  color: #333;
  border-radius: 4px;
  font-weight: bold;
 }
 .back-link.black {
  background-color: #333;
  color: #fff;
 }
 /* 銀行振込情報 */
 .bank-info-box {
  background-color: #fffbea;
  border-left: 4px solid #2c5f2d;
 }
 .bank-info-header {
  padding: 15px 0;
  border-bottom: 2px solid #e0e0e0;
  margin-bottom: 15px;
 }
 .bank-info-header-text {
  font-weight: 600;
  margin-bottom: 8px;
  color: #2c5f2d;
 }
 .bank-section-wrapper {
  margin-bottom: 20px;
 }
 .bank-section-title {
  font-weight: 700;
  color: #2c5f2d;
  margin-bottom: 10px;
 }
 .bank-detail-item {
  border-bottom: none;
  padding: 5px 0;
 }
 .bank-detail-item-top {
  border-bottom: none;
  padding: 5px 0;
  margin-top: 10px;
 }
 .bank-label-fixed {
  min-width: 140px;
  display: inline-block;
 }
 .bank-amount-box {
  border-bottom: none;
  padding: 18px;
  /* パディングを少し調整 */
  margin-top: 15px;
  background-color: #fff;
  border-radius: 4px;
 }
 .bank-label-amount {
  width: 120px;
  display: inline-block;
  color: #2c5f2d;
  font-weight: 700;
 }
 .bank-value-amount {
  font-size: 20px;
  font-weight: 700;
  color: #2c5f2d;
 }
 .bank-notes {
  margin-top: 15px;
  font-size: 13px;
  color: #666;
  line-height: 1.8;
 }
}
@media only screen and (max-width: 650px) {
 .content_post .cf7_buy_form {
  .form-section {
   padding-right: 20px;
   padding-left: 20px;
  }
  .product-input-area {
   flex-wrap: wrap;
  }
  .checkbox-grid .wpcf7-form-control {
   grid-template-columns: repeat(2, 1fr);
  }
  input[name="field-size"] {
   width: 11em;
  }
 }
}