/* --- Contact（Contact Form 7 用）--- */

/* レイアウト */
.contact-page .contact-container{
  max-width: 760px;
  margin: 0 auto;
  padding: 32px 16px 48px;
}
.contact-page .contact-title{
  text-align: center;
  font-weight: 800;
  letter-spacing: .02em;
  margin: 0 0 20px;
}

/* 行レイアウト */
.contact-page .wpcf7-form .cf7-row{ margin-bottom:16px; }
.contact-page .wpcf7-form .cf7-label{
  display:block; margin:0 0 6px; font-weight:600;
}
.contact-page .wpcf7-form .req,
.contact-page .wpcf7-form .opt{
  display:inline-block; font-size:.78rem; line-height:1;
  padding:3px 6px; border-radius:999px; vertical-align:middle; margin-left:6px;
}
.contact-page .wpcf7-form .req{ background:#fee2e2; color:#b91c1c; }
.contact-page .wpcf7-form .opt{ background:#eef2ff; color:#374151; }

/* 入力要素 */
.contact-page .wpcf7-form input[type="text"],
.contact-page .wpcf7-form input[type="email"],
.contact-page .wpcf7-form input[type="tel"],
.contact-page .wpcf7-form textarea{
  width:100%; font-size:16px;
  border:1px solid #d1d5db; border-radius:10px;
  padding:10px 12px; background:#fff;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.contact-page .wpcf7-form textarea{ min-height:160px; resize:vertical; }
.contact-page .wpcf7-form input:focus,
.contact-page .wpcf7-form textarea:focus{
  outline:none; border-color:#111; box-shadow:0 0 0 3px rgba(17,17,17,.08);
}

/* 同意（acceptance） */
.contact-page .wpcf7-form .cf7-accept label{ cursor:pointer; }
.contact-page .wpcf7-form .cf7-accept input[type="checkbox"]{
  width:18px; height:18px; margin-right:10px; vertical-align:middle;
}
.contact-page .wpcf7-form .cf7-accept a{ color:#111; text-decoration:underline; }

/* 送信ボタン */
.contact-page .wpcf7-form .cf7-actions{
  margin-top:18px; display:flex; justify-content:center;
}
.contact-page .wpcf7-form .cf7-submit{
  min-width:180px; padding:12px 18px;
  border:0; border-radius:10px;
  background:#111; color:#fff; font-weight:700; cursor:pointer;
  transition:opacity .15s ease, transform .02s;
}
.contact-page .wpcf7-form .cf7-submit:hover{ opacity:.9; }
.contact-page .wpcf7-form .cf7-submit:active{ transform:translateY(1px); }

/* バリデーション表示 */
.contact-page .wpcf7-form .wpcf7-not-valid{ border-color:#dc2626 !important; }
.contact-page .wpcf7-form .wpcf7-not-valid-tip{
  color:#dc2626; font-size:.9rem; margin-top:4px;
}
.contact-page .wpcf7 .wpcf7-response-output{
  margin-top:14px; border-radius:8px; padding:10px 12px;
}
.contact-page .wpcf7 form.submitting .wpcf7-submit{ opacity:.7; pointer-events:none; }

/* レスポンシブ */
@media (max-width: 480px){
  .contact-page .contact-container{ padding:24px 14px 40px; }
  .contact-page .wpcf7-form .cf7-submit{ width:100%; min-width:0; }
}

/* 小さく下部に表示する連絡先情報 */
.contact-page .contact-info--small{ 
  margin-top: 14px; 
  font-size: 12px; 
  color: #6b7280; /* subdued gray */
  text-align: center; 
}
.contact-page .contact-info--small a{ color: inherit; text-decoration: underline; }
.contact-page .contact-info--small strong{ font-weight: 600; }