/* ============================================================
   お問い合わせフォーム 送信処理用スタイル
   （js/contact-form.js が動的生成する要素のみ。既存スタイルは変更なし）
   ============================================================ */

/* --- 入力エラー --- */
.final-cta--v2 .cx-error{
  display:block;
  font-size:11.5px;font-weight:700;color:var(--red);
  line-height:1.6;letter-spacing:.01em;
}
.final-cta--v2 .cx-field:not(.is-error) .cx-error{display:none}

.final-cta--v2 .cx-field.is-error input,
.final-cta--v2 .cx-field.is-error select,
.final-cta--v2 .cx-field.is-error textarea{
  border-color:var(--red);
  background:var(--red-light);
}
.final-cta--v2 .cx-field.is-error input:focus,
.final-cta--v2 .cx-field.is-error select:focus,
.final-cta--v2 .cx-field.is-error textarea:focus{
  border-color:var(--red);
  box-shadow:0 0 0 3px rgba(200,16,46,.12);
}

/* --- 送信中の送信ボタン --- */
.final-cta--v2 .cx-btn.is-loading{
  background:#B8CADD;box-shadow:none;cursor:progress;
}

/* --- 送信完了メッセージ --- */
.final-cta--v2 .cx-success{
  text-align:center;
  padding:44px 32px;
  background:#F5F9FF;
  border:1px solid #DBE5F0;border-radius:12px;
  animation:cxSuccessIn .4s ease both;
}
@media(max-width:640px){
  .final-cta--v2 .cx-success{padding:32px 20px}
}
.final-cta--v2 .cx-success__ico{
  width:64px;height:64px;margin:0 auto 20px;
  display:flex;align-items:center;justify-content:center;
  border-radius:50%;
  background:var(--blue);color:#fff;
  box-shadow:0 10px 24px rgba(30,90,166,.28);
}
.final-cta--v2 .cx-success__ico svg{width:28px;height:28px}
.final-cta--v2 .cx-success__h{
  font-size:20px;font-weight:900;color:var(--navy);
  margin:0 0 12px;line-height:1.5;
}
.final-cta--v2 .cx-success__txt{
  font-size:13.5px;color:var(--gray-500);line-height:1.85;margin:0;
}
.final-cta--v2 .cx-success__sub{
  display:inline-block;margin-top:8px;color:var(--gray-400);
}

@keyframes cxSuccessIn{
  from{opacity:0;transform:translateY(8px)}
  to{opacity:1;transform:none}
}
@media(prefers-reduced-motion:reduce){
  .final-cta--v2 .cx-success{animation:none}
}
