/* お問い合わせフォーム */
.contact-form{ max-width:640px; margin:14px 0 0; }
.ph-note{ font-size:12px; color:var(--muted); margin-left:8px; }
.cf-row{ margin:0 0 16px; }
.cf-row > label{ display:block; font-size:13px; font-weight:700; color:var(--navy); margin:0 0 5px; }
.req{ color:var(--neg); }
.cf-count{ font-weight:400; font-size:11px; color:var(--muted); margin-left:6px; }
.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form select,
.contact-form textarea{
  width:100%; font:inherit; font-size:16px; padding:9px 11px;
  border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--ink);
}
.contact-form textarea{ resize:vertical; line-height:1.7; }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus{
  outline:2px solid var(--navy-2); outline-offset:-1px; border-color:var(--navy-2);
}
.cf-err{ min-height:0; margin:5px 0 0; font-size:12px; color:var(--neg); }
.cf-err:empty{ display:none; }
.cf-note{ font-size:12px; color:var(--muted); line-height:1.8; margin:6px 0 16px; }
.cf-actions{ display:flex; align-items:center; gap:14px; }
.cf-submit{ font:inherit; font-size:15px; font-weight:700; color:#fff; background:var(--navy);
  border:none; border-radius:8px; padding:12px 32px; cursor:pointer; }
.cf-submit:hover{ background:var(--navy-2); }
.cf-submit:disabled{ opacity:.55; cursor:default; }
.cf-status{ font-size:13px; color:var(--muted); }
/* ハニーポット（人間には見えない） */
.hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
/* 確認パネル */
.cf-confirm{ max-width:640px; margin:14px 0 0; }
.cf-confirm h2{ margin:0 0 10px; font-size:18px; color:var(--navy); }
.cf-review{ margin:0 0 18px; border:1px solid var(--line); border-radius:10px; background:#fff; overflow:hidden; }
.cf-review dt{ background:#f4f7fa; color:var(--navy); font-weight:700; font-size:12.5px; padding:9px 12px; border-top:1px solid var(--line); }
.cf-review dt:first-child{ border-top:none; }
.cf-review dd{ margin:0; padding:10px 12px 12px; font-size:14px; color:var(--ink); line-height:1.8; word-break:break-word; }
.cf-back{ font:inherit; font-size:14px; color:var(--navy); background:#fff; border:1px solid var(--navy);
  border-radius:8px; padding:12px 24px; cursor:pointer; }
.cf-back:hover{ background:#eef2f6; }
/* 完了パネル */
.cf-done{ max-width:640px; margin:14px 0 0; padding:22px; border:2px solid var(--accent);
  border-radius:12px; background:#fff8ec; }
.cf-done h2{ margin:0 0 8px; font-size:18px; color:var(--navy); }
.cf-done p{ font-size:14px; color:#42505f; line-height:1.9; margin:0 0 14px; }
.cf-again{ font:inherit; font-size:13px; color:var(--navy); background:#fff;
  border:1px solid var(--navy); border-radius:8px; padding:9px 18px; cursor:pointer; }
