/* ✅ 共通スタイル (全ページ共通) */
.section-padding {
  padding: 80px 0;
}

/* contact.css */
.contact-container {
  max-width: 800px;
  margin: 0 auto;
  padding: 0 20px;
}

/* ✅ ヘッダー */
.contact-hero {
  width: 100%;
  height: 300px;
  background: #ECF8E5;
  display: flex;
  align-items: center;
  justify-content: center;
  border-bottom-left-radius: 50% 10%;
  border-bottom-right-radius: 50% 10%;
  text-align: center;
}

.contact-title {
  font-size: 48px;
  font-weight: bold;
  color: #34736C;
}

/* ✅ フォームエリア */
.contact-form, .contact-confirm, .contact-thanks {
  text-align: center;
}

.contact-form h2, .contact-confirm h2, .contact-thanks h2 {
  font-size: 36px;
  font-weight: bold;
  color: #34736C;
  margin-bottom: 30px;
}

.contact-container p {
  font-size: 18px;
  line-height: 1.8;
  color: #333;
  margin-bottom: 24px;
}

.wpcf7 {
  width: 100%;
  box-sizing: border-box;
}

/* ✅ フォーム（CF7対応） */
.wpcf7-form {
  display: flex;
  flex-direction: column;
  gap: 20px;
  background: #fff;
  border-radius: 10px;
  text-align: left;
  padding: 40px 20px;
  max-width: 800px;
  margin: 0 auto;
}

label {
  display: block;
  font-size: 18px;
  font-weight: bold;
  color: #333;
  text-align: left;
  margin-bottom: 8px;
}

span.required-star {
  color: red;
  font-weight: bold;
  margin-left: 5px;
}

.cf7-field, .form-control {
  width: 100%;
  padding: 32px 16px;
  font-size: 18px;
  border: 1px solid #ccc;
  border-radius: 5px;
  outline: none;
  transition: border-color 0.6s ease;
}

.cf7-field:focus, .form-control:focus {
  border-color: #01b973;
}

textarea.cf7-field {
  height: 150px;
  resize: vertical;
}

/* ✅ フォームグループのスタイル */
.form-group {
  margin-bottom: 24px;
}

.form-input {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

/* ✅ ボタン（CF7確認・送信） */
.confirm-buttons, .buttons {
  margin-top: 40px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 20px;
}

.confirm-btn,
.submit-btn {
  display: inline-block;
  width: 100%;
  max-width: 320px;
  min-width: 240px;
  padding: 16px 24px;
  font-size: 18px;
  font-weight: bold;
  text-align: center;
  color: white;
  border: none;
  border-radius: 30px;
  cursor: pointer;
  transition: background 0.3s ease-in-out, transform 0.2s ease-in-out;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
}

/* 背景色・アクション別に個別指定 */
.confirm-btn {
  background: #34736C;
}
.confirm-btn:hover {
  background: #01b973;
  transform: translateY(-4px);
}
.confirm-btn:active {
  background: #019f65;
  transform: scale(0.98);
}

.submit-btn {
  background: #34736C;
}
.submit-btn:hover {
  background: #01b973;
  transform: translateY(-4px);
}
.submit-btn:active {
  background: #019f65;
  transform: scale(0.98);
}

/* ✅ 確認画面の入力内容 */
.cf7-confirm p {
  font-size: 18px;
  color: #333;
  padding: 32px 16px;
  margin-bottom: 15px;
  background-color: #f9f9f9;
  border-radius: 6px;
  line-height: 1.6;
  text-align: left;
}

/* ✅ サンクスページのメッセージ */
.contact-thanks p {
  font-size: 20px;
  color: #333;
  margin-top: 20px;
}

/* ラジオボタン全体の配置 */
.wpcf7-radio {
  display: flex;
  flex-direction: column;
  gap: 12px;
  align-items: flex-start;
}

.wpcf7-radio label {
  position: relative;
  padding-left: 32px;
  cursor: pointer;
  font-size: 18px;
  color: #333;
  user-select: none;
}

.wpcf7-radio input[type="radio"] {
  position: absolute;
  opacity: 0;
}

.wpcf7-radio label::before {
  content: "";
  position: absolute;
  left: 0;
  top: 3px;
  width: 20px;
  height: 20px;
  border: 2px solid #ccc;
  border-radius: 50%;
  background-color: white;
  box-sizing: border-box;
  transition: border-color 0.3s, background-color 0.3s;
}

.wpcf7-radio input[type="radio"]:checked + span::before {
  border-color: #01b973;
  background-color: white;
}

.wpcf7-radio input[type="radio"]:checked + span::after {
  content: "";
  position: absolute;
  left: 6px;
  top: 9px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #01b973;
}

/* ✅ レスポンシブ対応 */
@media (max-width: 768px) {
  .contact-title {
    font-size: 36px;
  }

  .contact-container {
    max-width: 100%;
    padding: 0 16px;
  }

  .contact-container p {
    font-size: 16px;
    line-height: 1.7;
    padding: 0 10px;
  }

  .wpcf7-form {
    padding: 24px 16px;
  }

  .cf7-field, .form-control {
    font-size: 16px;
    padding: 24px 12px;
  }

  .wpcf7-radio label {
    font-size: 16px;
  }

  .confirm-btn, .submit-btn {
    font-size: 16px;
    padding: 14px;
  }

  .cf7-confirm p, .form-control {
    font-size: 16px;
  }
}


@media (max-width: 576px) {
  .contact-form {
    padding: 40px 16px;
  }

  .contact-form h2, .contact-confirm h2, .contact-thanks h2 {
    font-size: 28px;
  }
  .contact-container p {
    font-size: 15px;
    line-height: 1.6;
    padding: 0 5px;
  }
  .confirm-btn,
  .submit-btn {
    font-size: 16px;
    max-width: 100%;
  }

  .cf7-confirm p {
    padding: 24px 12px;
  }
}
