/* ============================================================
   common-form.css
   お問い合わせフォーム（inquiry.html / rental_form.html）共通スタイル
   前提: style.css → common-sub.css → このファイル の順に読み込むこと
   フォーム部分は Contact Form 7 の出力HTML（.wpcf7-*）に合わせて指定している
   ============================================================ */

.cf-wrap{max-width:960px;margin:0 auto;}

/* ---------- 注意書き・電話案内 ---------- */
.cf-notes{list-style:none;margin:0 0 36px;padding:20px 24px;background:var(--pt-paper);border-radius:4px;}
.cf-notes li{position:relative;padding-left:1.2em;font-size:14px;color:#555;line-height:1.8;}
.cf-notes li::before{content:'※';position:absolute;left:0;}
.cf-tel{
  margin:0 0 24px;
  padding:26px 24px;
  text-align:center;
  border:2px solid var(--pt-accent);
  border-radius:6px;
}
.cf-tel-lead{margin:0;font-size:15px;font-weight:700;color:var(--pt-accent-dark);}
.cf-tel-num{margin:6px 0 4px;font-family:"Oswald",sans-serif;font-size:36px;font-weight:700;letter-spacing:.04em;color:var(--pt-orange);}
.cf-tel-num a{color:inherit;text-decoration:none;}
.cf-tel-num i{font-size:.7em;margin-right:4px;}
.cf-tel-time{margin:0;font-size:14px;color:#666;}

.cf-lead{margin:0 0 20px;font-size:15px;color:#555;line-height:1.8;}

/* ---------- 必須／任意ラベル ---------- */
.cf-req,.cf-opt{
  display:inline-block;
  margin-right:8px;
  padding:2px 8px;
  border-radius:3px;
  font-size:11px;
  font-weight:700;
  line-height:1.6;
  vertical-align:2px;
  color:#fff;
}
.cf-req{background:#c0504d;}
.cf-opt{background:#a8a8a8;}

/* ---------- 項目（左：ラベル／右：入力欄） ---------- */
.cf-form{border-top:1px solid var(--pt-line);}
.cf-row{
  display:grid;
  grid-template-columns:260px 1fr;
  border-bottom:1px solid var(--pt-line);
}
.cf-label{
  padding:22px 20px;
  background:var(--pt-paper);
  font-size:15px;
  font-weight:700;
  color:var(--pt-ink);
}
.cf-label small{display:block;margin-top:4px;padding-left:44px;font-size:12px;font-weight:400;color:#888;}
.cf-field{padding:18px 20px;min-width:0;}
.cf-note{margin:8px 0 0;font-size:13px;color:#888;}

/* 姓・名などを横に並べる */
.cf-field--name{display:flex;flex-wrap:wrap;gap:12px 20px;}
.cf-field--name .cf-sub{flex:1 1 200px;}
.cf-field--address{display:flex;flex-direction:column;gap:14px;}
.cf-sub{display:block;margin:0;}
.cf-sub > span:first-child{display:block;margin-bottom:4px;font-size:13px;color:#666;}

/* ---------- 入力欄（CF7出力） ---------- */
.wpcf7-form-control-wrap{display:block;position:relative;}
.wpcf7-text,.wpcf7-email,.wpcf7-tel,.wpcf7-textarea,.wpcf7-select{
  width:100%;
  max-width:100%;
  padding:12px 14px;
  border:1px solid #cfcac2;
  border-radius:4px;
  background:#fff;
  font-size:16px; /* iOSで拡大されないよう16px */
  line-height:1.6;
  color:var(--pt-ink);
  transition:border-color .2s, box-shadow .2s;
}
.wpcf7-textarea{min-height:200px;resize:vertical;}
.wpcf7-select{
  max-width:420px;
  appearance:none;
  padding-right:40px;
  background-image:linear-gradient(45deg,transparent 50%,#7f7667 50%),linear-gradient(135deg,#7f7667 50%,transparent 50%);
  background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;
  background-size:6px 6px;
  background-repeat:no-repeat;
}
.cf-short{max-width:220px;}
.wpcf7-text:focus,.wpcf7-email:focus,.wpcf7-tel:focus,.wpcf7-textarea:focus,.wpcf7-select:focus{
  outline:none;
  border-color:var(--pt-accent);
  box-shadow:0 0 0 3px rgba(158,147,129,.2);
}
.wpcf7-form ::placeholder{color:#b5b5b5;}

/* ラジオ・チェックボックス */
.wpcf7-radio,.wpcf7-checkbox,.wpcf7-acceptance{display:flex;flex-wrap:wrap;gap:10px 28px;padding:6px 0;}
.wpcf7-list-item{margin:0;}
.wpcf7-list-item label{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:15px;}
/* style.css で input の appearance がリセットされているため、標準の見た目に戻す */
.wpcf7-list-item input{-webkit-appearance:auto;appearance:auto;display:inline-block;flex:none;width:18px;height:18px;margin:0;accent-color:var(--pt-accent-dark);}
.wpcf7-acceptance a{color:var(--pt-accent-dark);text-decoration:underline;}

/* ---------- 送信ボタン ---------- */
.cf-submit{margin-top:40px;text-align:center;}
.wpcf7-submit{
  min-width:280px;
  padding:16px 40px;
  border:0;
  border-radius:40px;
  background:var(--pt-accent);
  color:#fff;
  font-size:17px;
  font-weight:700;
  letter-spacing:.1em;
  cursor:pointer;
  transition:background .25s, transform .2s;
}
.wpcf7-submit:hover{background:var(--pt-accent-dark);transform:translateY(-2px);}
.wpcf7-submit:disabled{opacity:.6;cursor:default;transform:none;}
.wpcf7-spinner{display:block;margin:12px auto 0;}

/* ---------- エラー・送信結果メッセージ（CF7） ---------- */
.wpcf7-not-valid{border-color:#c0504d !important;background:#fff8f8;}
.wpcf7-not-valid-tip{display:block;margin-top:6px;font-size:13px;color:#c0504d;}
/* CF7の入力チェック（画面側＋サーバー側）で同じエラー文が2回追加されることがあるため、2つ目以降は隠す */
.wpcf7-not-valid-tip ~ .wpcf7-not-valid-tip{display:none;}
.wpcf7 form .wpcf7-response-output{
  margin:28px 0 0;
  padding:14px 18px;
  border:2px solid var(--pt-accent);
  border-radius:4px;
  font-size:15px;
  text-align:center;
}
.wpcf7 form.init .wpcf7-response-output,
.wpcf7 form.resetting .wpcf7-response-output,
.wpcf7 form.submitting .wpcf7-response-output{display:none;}
.wpcf7 form.sent .wpcf7-response-output{border-color:#5a9e6f;background:#f3faf5;color:#2f6b40;}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output{border-color:#c0504d;background:#fff8f8;color:#a33;}
.screen-reader-response{position:absolute;overflow:hidden;clip:rect(1px,1px,1px,1px);height:1px;width:1px;margin:-1px;padding:0;border:0;}

/* ---------- スマホ ---------- */
@media(max-width:760px){
  .cf-row{grid-template-columns:1fr;}
  .cf-label{padding:14px 16px;}
  .cf-label small{display:inline;margin-left:6px;padding-left:0;}
  .cf-field{padding:16px 4px 20px;}
  .cf-tel-num{font-size:30px;}
  .wpcf7-submit{width:100%;min-width:0;}
}
