/* ============================================================
   資料請求・お問い合わせフォーム（Contact Form 7）のスマホ最適化
   2026-10-17 新設。/siryo/ と /contact/ で読み込む。
   ・入力欄は高さ48px以上・文字16px（iOSの自動ズーム防止）
   ・ラベルは上に置き、必須/任意をバッジで明示
   ・チェックボックスは行全体をタップできるカード型
   ・送信ボタンは横幅いっぱい、親指で押せる高さ
   ・LPのフォーム（sakumiru.css / gaten.css の sk-f / gt-f）と同じ見た目に揃える
   page_common.css の .wpcf7（白いカード）の上書きも含む
   ============================================================ */
.wpcf7{padding:22px 18px 26px;width:auto;margin:-13px 16px 0;box-shadow:0 4px 14px rgba(0,0,0,.08);}
.wpcf7 form{display:flex;flex-direction:column;gap:20px;}
.wpcf7 form .mf-f{display:block;margin:0;padding:0;}
.wpcf7 form p{margin:0;}
.mf-label{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:1.5rem;font-weight:700;color:#191919;line-height:1.4;margin:0 0 8px;}
.mf-req,.mf-opt{display:inline-block;font-size:1.1rem;font-weight:700;line-height:1;padding:5px 8px;border-radius:5px;letter-spacing:.04em;}
.mf-req{color:#fff;background:#f08a24;}
.mf-opt{color:#718096;background:#edf2f7;}
.mf-help{font-size:1.25rem;color:#718096;line-height:1.6;margin:6px 0 0;}
.wpcf7 form input[type="text"],
.wpcf7 form input[type="tel"],
.wpcf7 form input[type="email"],
.wpcf7 form input[type="url"],
.wpcf7 form select,
.wpcf7 form textarea{
  width:100%;box-sizing:border-box;font-size:16px;line-height:1.5;color:#191919;
  padding:12px 14px;min-height:48px;border:1.5px solid #cbd5e0;border-radius:10px;background:#fff;
  -webkit-appearance:none;appearance:none;box-shadow:none;transition:border-color .15s,box-shadow .15s;
}
.wpcf7 form textarea{min-height:140px;resize:vertical;}
.wpcf7 form input:focus,.wpcf7 form select:focus,.wpcf7 form textarea:focus{outline:none;border-color:#1cbea1;box-shadow:0 0 0 3px rgba(28,190,161,.18);}
.wpcf7 form input::placeholder,.wpcf7 form textarea::placeholder{color:#a9b2bb;}

/* チェックボックス：カード型・行全体がタップ領域 */
.wpcf7 form .wpcf7-checkbox{display:flex;flex-direction:column;gap:8px;}
.wpcf7 form .wpcf7-checkbox .wpcf7-list-item{display:block;margin:0;}
.wpcf7 form .wpcf7-checkbox label{
  display:flex !important;align-items:flex-start;gap:12px;width:100%;box-sizing:border-box;
  padding:13px 14px;border:1.5px solid #cbd5e0;border-radius:10px;background:#fff;cursor:pointer;
  font-size:1.5rem;line-height:1.5;text-align:left !important;transition:border-color .15s,background .15s;
}
.wpcf7 form .wpcf7-checkbox label:hover{border-color:#1cbea1;background:#f2fbf9;}
.wpcf7 form .wpcf7-checkbox input[type="checkbox"]{
  flex:none;width:22px;height:22px;margin:1px 0 0 !important;padding:0;border:1.5px solid #a0aec0;border-radius:6px;
  background:#fff;-webkit-appearance:none;appearance:none;display:inline-block !important;position:static !important;opacity:1 !important;
  cursor:pointer;
}
.wpcf7 form .wpcf7-checkbox input[type="checkbox"]:checked{background:#1cbea1 url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round' d='M5 12.5l4.5 4.5L19 7.5'/></svg>") center/16px no-repeat;border-color:#1cbea1;}
.wpcf7 form .wpcf7-checkbox label:has(input:checked){border-color:#1cbea1;background:#f2fbf9;}
.wpcf7 form .wpcf7-checkbox .wpcf7-list-item-label{display:inline;flex:1;}

/* 同意 */
.wpcf7 form .mf-privacy{padding:14px 14px 12px;border-radius:10px;background:#f7fafc;}
.wpcf7 form .mf-privacy .wpcf7-acceptance .wpcf7-list-item{margin:0;display:block;}
.wpcf7 form .mf-privacy .wpcf7-acceptance label{display:flex;align-items:center;gap:12px;font-size:1.5rem;font-weight:700;cursor:pointer;}
.wpcf7 form .mf-privacy .wpcf7-acceptance input[type="checkbox"]{flex:none;width:22px;height:22px;margin:0;}
.wpcf7 form .mf-privacy-text{font-size:1.2rem;color:#4a5568;line-height:1.8;margin:8px 0 0;text-align:left;}
.wpcf7 form .mf-privacy-text a{color:#0b7a66;text-decoration:underline;white-space:nowrap;}

/* 送信 */
.wpcf7 form .mf-submit{text-align:center;margin-top:4px;}
.wpcf7 form input[type="submit"]{
  display:block;width:100%;box-sizing:border-box;padding:17px 18px;border:0;border-radius:12px;
  background:#1cbea1;color:#0f1a17;font-size:1.7rem;font-weight:700;line-height:1.4;letter-spacing:.04em;cursor:pointer;
  box-shadow:0 6px 16px rgba(28,190,161,.28);transition:transform .15s,filter .15s;
}
.wpcf7 form input[type="submit"]:hover{transform:translateY(-2px);filter:brightness(1.05);}
.wpcf7 form input[type="submit"]:disabled{opacity:.5;box-shadow:none;transform:none;cursor:not-allowed;}
.wpcf7 form .wpcf7-spinner{display:block;margin:10px auto 0;}
.wpcf7 form .wpcf7-not-valid-tip{display:block;margin-top:6px;font-size:1.25rem;color:#d14343;}
.wpcf7 form .wpcf7-not-valid{border-color:#d14343 !important;}
.wpcf7 form .wpcf7-response-output{margin:0;padding:12px 14px;border:1px solid #e2e8f0;border-radius:10px;font-size:1.35rem;line-height:1.7;}
.wpcf7 form.invalid .wpcf7-response-output,.wpcf7 form.unaccepted .wpcf7-response-output,.wpcf7 form.spam .wpcf7-response-output,.wpcf7 form.failed .wpcf7-response-output{border-color:#f0b4b4;background:#fff5f5;color:#9b2c2c;}
.wpcf7 form.sent .wpcf7-response-output{border-color:#bfe9e0;background:#f2fbf9;color:#0b7a66;}

/* ページ見出しまわり（スマホで余白を詰める） */
.contact-info{padding:0 16px 22px;}
.contact-info h2,.page_title01{line-height:1.4;}

@media screen and (min-width:960px){
  .wpcf7{padding:34px 40px 40px;margin:0 auto 50px;width:100%;max-width:800px;}
  .wpcf7 form .wpcf7-checkbox{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
  .wpcf7 form .wpcf7-checkbox .wpcf7-list-item.full{grid-column:1 / -1;}
  .wpcf7 form input[type="submit"]{max-width:420px;margin:0 auto;}
}
