.contact-form {
  width: 100%;
  max-width: 1200px;
  margin: 30px auto;
  padding: 75px 25px;
  border: 2px solid var(--color-border);
  border-radius: 20px;
  background-color: var(--color-bg2);
}

.contact-form label {
  display: block;
  font-weight: bold;
  margin-bottom: 10px;
  font-size: 0.9rem;
}

.contact-form input,
.contact-form textarea {
  width: 100%;
  padding: 10px;
  margin-bottom: 20px;
  border: 1px solid var(--color-border);
  border-radius: 4px;
  background-color: var(--color-bg);
  font-size: 1rem;
}

.required {
  color: #ff5863;
  margin-left: 10px;
  font-size: 0.75rem;
}

.form-group {
  margin-bottom: 20px;
}

.contact-form {
  position: relative;
}
.submit-button {
  margin: 10px auto;
  padding: 10px 50px;
  position: absolute;
  right: 10%;
  bottom: 5px;
  color: var(--color-button-text);
  border: 2px solid var(--color-button-border);
  border-radius: 25px;
  background-color: var(--color-bg2);
  box-shadow: 0px 5px 12px #cad4e2, -6px -6px 12px #fff;
  cursor: pointer;
  font-size: 0.9rem;
  transform: 0.3s;
}

.submit-button:hover {
  color: #cad4e2;
  background-color: var(--color-button-text);
  bottom: 3px;
  box-shadow: 0 0 4px #cad4e2, -2px -2px 4px #fff;
  opacity: 0.8;
}

/* PC表示用のスタイル（768px以上） */
@media screen and (min-width: 768px) {
  .contact-form {
    margin: 0 auto;
    padding: 100px 50px;
  }

  .contact-form label {
    font-size: 1.2rem;
    margin-bottom: 15px;
  }

  .required {
    color: #ff5863;
    margin-left: 10px;
    font-size: 0.9rem;
  }

  .submit-button {
    margin: 20px auto;
    padding: 10px 50px;
    right: 5%;
    font-size: 1rem;
  }
}

/* ===== CONTACT レイアウト調整 ===== */

/* セクション内のフォームを中央に・幅を制御 */
.section.contact .wpcf7 form {
  max-width: 720px; /* 画面が広くても読みやすい幅に */
  margin: 0 auto;
}

/* フォームの外枠（既存 .contact-form に上書き） */
.contact-form {
  width: 100%;
  max-width: 720px; /* 1200px → 720px 程度に絞る */
  margin: 0 auto;
  padding: clamp(20px, 4vw, 32px);
  border: 2px solid var(--color-border, #99b5e5);
  border-radius: 16px;
  background: #fff;
  box-sizing: border-box;
}

/* 1項目ごとの間隔 */
.contact-form .form-item {
  margin: 0 0 18px;
}

/* ラベルと必須マーク */
.contact-form label {
  display: block;
  font-weight: 600;
  margin-bottom: 8px;
}
.contact-form .required {
  color: #c53030;
  font-size: 0.85rem;
  margin-left: 0.5em;
}

/* 入力UIの共通 */
.contact-form .input-text,
.wpcf7 form input[type="text"],
.wpcf7 form input[type="email"],
.wpcf7 form input[type="url"],
.wpcf7 form textarea {
  width: 100%;
  padding: 12px 14px;
  line-height: 1.6;
  border: 2px solid #c5d5f2;
  border-radius: 8px;
  background: #f9fbff;
  box-sizing: border-box;
}

/* テキストエリアの高さ */
.contact-form .input-textarea,
.wpcf7 form textarea {
  min-height: 160px;
  resize: vertical;
}

/* 同意チェック（acceptance） */
.wpcf7-acceptance .wpcf7-list-item {
  margin: 0;
}
.wpcf7-acceptance input[type="checkbox"] {
  margin-right: 8px;
}
.contact-form .form-item.agree {
  font-size: 0.95rem;
  color: #333;
}

/* 送信ボタンを中央に・はみ出し防止 */
.contact-form .form-item.submit {
  text-align: center;
}
.contact-form .submit-button,
.wpcf7 form input[type="submit"] {
  display: inline-block;
  width: 220px; /* 100% だとはみ出しやすい → 固定幅 */
  max-width: 100%;
  padding: 12px 16px;
  border-radius: 999px;
  border: 2px solid #99b5e5;
  background: #e9f2ff;
  color: #2b6cb7;
  cursor: pointer;
}

/* 成功/エラーのメッセージ */
.wpcf7 form .wpcf7-response-output {
  margin-top: 16px;
  border-radius: 8px;
  padding: 0.75em 1em;
  font-size: 0.9rem;
}

.section.contact .wpcf7 form {
  max-width: 720px;
  margin: 0 auto;
}
.contact-form {
  width: 100%;
  max-width: 720px;
  margin: 0 auto;
  padding: clamp(20px, 4vw, 32px);
  border: 2px solid #99b5e5;
  border-radius: 16px;
  background: #fff;
  box-sizing: border-box;
}
.contact-form .form-item {
  margin: 0 0 18px;
}
.contact-form label {
  display: block;
  font-weight: 600;
  margin-bottom: 8px;
}
.required {
  color: #c53030;
  font-size: 0.85rem;
  margin-left: 0.5em;
}
.input-text,
.input-textarea {
  width: 100%;
  box-sizing: border-box;
  padding: 12px 14px;
  border: 2px solid #c5d5f2;
  border-radius: 8px;
  background: #f9fbff;
  line-height: 1.6;
}
.input-textarea {
  min-height: 160px;
  resize: vertical;
}
.wpcf7-acceptance .wpcf7-list-item {
  margin: 0;
} /* 同意の行間を詰める */
.contact-form .form-item.submit {
  text-align: center;
}
.submit-button,
.wpcf7 form input[type="submit"] {
  display: inline-block;
  width: 220px;
  max-width: 100%;
  padding: 12px 16px;
  border-radius: 999px;
  border: 2px solid #99b5e5;
  background: #e9f2ff;
  color: #2b6cb7;
}
.wpcf7 form .wpcf7-response-output {
  margin-top: 16px;
  border-radius: 8px;
  padding: 0.75em 1em;
  font-size: 0.9rem;
}
