/* Contact Form 7 の出力を元デザイン（.ctForm）に合わせる */
.ctForm .wpcf7-form-control-wrap{display:block}
.ctForm .wpcf7-form-control-wrap > input, .ctForm .wpcf7-form-control-wrap > select, .ctForm .wpcf7-form-control-wrap > textarea{display:block}
.ctForm .wpcf7-form-control-wrap .wpcf7-not-valid-tip{display:block; font-size:14px; color:#B3261E; margin-top:8px}
.ctForm .wpcf7-spinner{display:none}
.ctForm .wpcf7-radio, .ctForm .wpcf7-checkbox{display:flex; flex-wrap:wrap; gap:12px}
.ctForm .wpcf7-list-item{margin:0}
/* .fChoice label（ラジオ）は既存CSSがそのまま効く。チェックボックス／同意は .fCheck 相当を再現 */
.fCheckWrap .wpcf7-list-item label{display:inline-flex; align-items:flex-start; gap:12px; font-size:17px; line-height:1.8; color:var(--ink); cursor:pointer}
.fCheckWrap .wpcf7-list-item input{width:22px; height:22px; margin-top:5px; flex:none; accent-color:#B45A09}
.fCheckWrap .wpcf7-list-item a{color:#B45A09; border-bottom:1px solid currentColor}
.fCheckWrap .wpcf7-list-item .rq{color:#B3261E; margin-left:8px; font-size:15px}
.ctForm button.btn{cursor:pointer; font-family:inherit; border:0}
.ctForm .wpcf7-response-output{margin:24px 0 0; padding:14px 18px; border-radius:10px; font-size:15px; line-height:1.8}
.wpcf7 form.sent .wpcf7-response-output{border-color:#3D7A4B; background:#EEF6EF}
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.failed .wpcf7-response-output{border-color:#B3261E; background:#FBEDEC}

/* ===== 送信結果のお知らせ（画面中央のポップアップ） ===== */
.wpcf7 .wpcf7-response-output{position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0}
body.flxDlgOpen{overflow:hidden}
.flxDlg{position:fixed}
.flxDlg{position:fixed; inset:0; z-index:1000; display:flex; align-items:center; justify-content:center; padding:20px}
.flxDlg[hidden]{display:none}
.flxDlgBack{position:absolute; inset:0; background:rgba(40,30,20,.55)}
.flxDlgBody{position:relative; background:#fff; border-radius:14px; padding:44px 40px 36px; max-width:520px; width:100%;
  text-align:center; box-shadow:0 24px 60px rgba(60,40,20,.28); animation:flxDlgIn .28s var(--eOut, ease-out) both}
@keyframes flxDlgIn{from{opacity:0; transform:translateY(14px) scale(.97)} to{opacity:1; transform:none}}
.flxDlgIc{width:66px; height:66px; margin:0 auto 20px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:32px; font-weight:700}
.flxDlg[data-type="ok"] .flxDlgIc{background:#EAF4EC; color:#3D7A4B}
.flxDlg[data-type="ok"] .flxDlgIc::before{content:"✓"}
.flxDlg[data-type="ng"] .flxDlgIc{background:#FBEDEC; color:#B3261E}
.flxDlg[data-type="ng"] .flxDlgIc::before{content:"!"}
.flxDlgTtl{font-size:23px; font-weight:700; color:var(--head); line-height:1.6; margin-bottom:14px}
.flxDlgTxt{font-size:16.5px; line-height:1.95; color:var(--ink)}
.flxDlgList{list-style:none; margin:14px auto 0; padding:16px 18px; background:#FBF6EA; border-radius:8px; text-align:left; max-width:400px}
.flxDlgList li{position:relative; padding-left:20px; font-size:16px; line-height:1.9; font-weight:700; color:var(--head)}
.flxDlgList li::before{content:"・"; position:absolute; left:0; color:#B3261E}
.flxDlgBtn{margin-top:28px; cursor:pointer; font-family:inherit; border:0; padding:16px 44px; font-size:17px}
@media (max-width:768px){ .flxDlgBody{padding:36px 24px 28px} .flxDlgTtl{font-size:20px} .flxDlgTxt{font-size:16px} }
@media (prefers-reduced-motion:reduce){ .flxDlgBody{animation:none} }
