.ktdsfm-wrap{
  width:calc(100% - 2rem)!important;
  max-width:var(--ktdsfm-width,760px)!important;
  margin:0 auto!important;
  box-sizing:border-box;
  --ktdsfm-accent:#b3424a;
  --ktdsfm-accent-hover:#96363d;
  --ktdsfm-bg:#f7f3ec;
  --ktdsfm-text:#231815;
  color:var(--ktdsfm-text)
}
.ktdsfm-wrap>.wpcf7,.ktdsfm-wrap .wpcf7-form{width:100%!important;max-width:none!important;margin-left:auto!important;margin-right:auto!important;box-sizing:border-box}
.ktdsfm-heading{text-align:center;margin:0 0 1rem}.ktdsfm-description{margin:0 0 1.25rem}.ktdsfm-description>*:first-child{margin-top:0}.ktdsfm-description>*:last-child{margin-bottom:0}
.ktdsfm-grid{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:.9rem!important;width:100%!important}.ktdsfm-field{display:block!important;width:100%!important;min-width:0!important;margin:0!important;grid-column:1/-1!important}.ktdsfm-field-full{grid-column:1/-1!important}.ktdsfm-label{display:block;margin-bottom:.4rem;font-weight:600}.ktdsfm-label b{font-size:.72em;color:var(--ktdsfm-accent);margin-left:.45em}
.ktdsfm-wrap input[type=text],.ktdsfm-wrap input[type=email],.ktdsfm-wrap input[type=tel],.ktdsfm-wrap select,.ktdsfm-wrap textarea{width:100%!important;max-width:none!important;box-sizing:border-box;border:1px solid #b8b3ac;background:#fff;padding:.7rem .85rem;border-radius:0;font:inherit;margin:0!important}.ktdsfm-wrap textarea{min-height:9rem;resize:vertical}.ktdsfm-wrap input:focus,.ktdsfm-wrap select:focus,.ktdsfm-wrap textarea:focus{outline:2px solid color-mix(in srgb,var(--ktdsfm-accent) 35%,transparent);border-color:var(--ktdsfm-accent)}
.ktdsfm-privacy{border:1px solid #d2ccc4;padding:.75rem;background:rgba(255,255,255,.45)}.ktdsfm-privacy-text{max-height:7rem;overflow:auto;padding:.15rem .35rem;margin-bottom:.65rem}.ktdsfm-privacy-text p:first-child{margin-top:0}.ktdsfm-privacy-text p:last-child{margin-bottom:0}.ktdsfm-acceptance{display:flex;gap:.5rem;justify-content:center;align-items:center;margin:0!important}.ktdsfm-actions{text-align:center;margin-top:.15rem!important}.ktdsfm-real-submit{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important}
.ktdsfm-wrap .ktdsfm-confirm-button,.ktdsfm-modal button{
  appearance:none!important;
  -webkit-appearance:none!important;
  border:1px solid var(--ktdsfm-accent)!important;
  background:var(--ktdsfm-accent)!important;
  background-color:var(--ktdsfm-accent)!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  opacity:1!important;
  padding:.8rem 2.2rem!important;
  min-height:3rem;
  font:inherit!important;
  line-height:1.4!important;
  text-decoration:none!important;
  cursor:pointer;
  transition:.2s;
  box-shadow:none!important
}
.ktdsfm-wrap .ktdsfm-confirm-button:hover,.ktdsfm-modal button:hover{background:var(--ktdsfm-accent-hover)!important;border-color:var(--ktdsfm-accent-hover)!important;color:#fff!important;filter:none!important}
.ktdsfm-wrap .ktdsfm-confirm-button:disabled,.ktdsfm-modal button:disabled{background:#ddd8d3!important;border-color:#ddd8d3!important;color:#fff!important;-webkit-text-fill-color:#fff!important;opacity:1!important;cursor:not-allowed!important}
.ktdsfm-email-error{font-size:.85rem;color:#b00020;margin-top:.35rem}.ktdsfm-email-error[hidden]{display:none}.ktdsfm-notice{padding:1rem;border:1px solid #dba617;background:#fff8d8}
body.ktdsfm-modal-open{overflow:hidden}.ktdsfm-modal{position:fixed;inset:0;z-index:100000;background:rgba(0,0,0,.55);display:grid;place-items:center;padding:1.25rem;--ktdsfm-accent:#b3424a;--ktdsfm-accent-hover:#96363d;color:#231815}.ktdsfm-modal-panel{width:min(92vw,var(--ktdsfm-modal-width,760px));max-height:88vh;background:#fff;padding:clamp(1.1rem,3vw,2rem);box-sizing:border-box;box-shadow:0 20px 60px rgba(0,0,0,.25)}.ktdsfm-modal-panel h3{text-align:center;margin:0 0 1rem}.ktdsfm-modal-scroll{max-height:58vh;overflow:auto}.ktdsfm-modal table{width:100%;border-collapse:collapse}.ktdsfm-modal th,.ktdsfm-modal td{border-bottom:1px solid #ddd;padding:.75rem;text-align:left;vertical-align:top}.ktdsfm-modal th{width:32%;background:#faf8f5}.ktdsfm-modal-actions{display:flex;gap:1rem;justify-content:center;margin-top:1.2rem}.ktdsfm-modal .ktdsfm-back{background:#fff!important;background-color:#fff!important;color:var(--ktdsfm-accent)!important;-webkit-text-fill-color:var(--ktdsfm-accent)!important}.ktdsfm-modal .ktdsfm-back:hover{background:#f8f2f2!important;color:var(--ktdsfm-accent-hover)!important}.ktdsfm-message-panel{text-align:center;width:min(92vw,520px)}.ktdsfm-message-panel p{margin:0 0 1.2rem}
@media(max-width:767px){.ktdsfm-wrap{width:calc(100% - 1.5rem)!important}.ktdsfm-grid{grid-template-columns:minmax(0,1fr)!important;gap:.8rem!important}.ktdsfm-field-full{grid-column:1/-1!important}.ktdsfm-modal th,.ktdsfm-modal td{display:block;width:auto}.ktdsfm-modal th{padding-bottom:.2rem;border-bottom:0}.ktdsfm-modal td{padding-top:.2rem}.ktdsfm-modal-actions{flex-direction:column-reverse}.ktdsfm-modal button{width:100%!important}}

/* KTDS側の完了モーダルへ一本化。CF7標準の緑枠・エラー枠は常に非表示 */
.ktdsfm-wrap .wpcf7-response-output,
.ktdsfm-wrap form.wpcf7-form .wpcf7-response-output,
.ktdsfm-wrap .wpcf7 form .wpcf7-response-output{
  display:none!important;
  visibility:hidden!important;
  height:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  overflow:hidden!important
}

/* テーマ側のカラム指定を遮断し、お問い合わせフォームを常に1カラムに固定 */
.ktdsfm-wrap .wpcf7-form .ktdsfm-grid > *,
.ktdsfm-wrap .wpcf7-form .ktdsfm-field{
  float:none!important;
  flex:none!important;
  max-width:none!important;
  box-sizing:border-box!important;
}

/* v1.0.7 フォーム外観調整 */

/* 「必須」をえんじ色・白文字の小型バッジとして表示 */
.ktdsfm-wrap .ktdsfm-label b,
.ktdsfm-modal .ktdsfm-label b{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  margin-left:.55rem!important;
  padding:.14rem .48rem!important;
  border-radius:999px!important;
  background:#8f3038!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue","Noto Sans JP","Yu Gothic",YuGothic,Arial,sans-serif!important;
  font-size:.67rem!important;
  font-weight:500!important;
  line-height:1.2!important;
  letter-spacing:.04em!important;
  vertical-align:.12em!important;
  white-space:nowrap!important;
}

/* お問い合わせ内容の高さを従来の約3分の2へ */
.ktdsfm-wrap textarea,
.ktdsfm-wrap textarea.wpcf7-textarea{
  min-height:6rem!important;
  height:6rem;
}

/* お問い合わせ内容と個人情報欄の間隔を極小化 */
.ktdsfm-wrap .ktdsfm-field:has(textarea){
  margin-bottom:-.65rem!important;
}
.ktdsfm-wrap .ktdsfm-field:has(textarea) + .ktdsfm-field-full{
  margin-top:-.15rem!important;
}

/* 個人情報欄は細めのゴシック体 */
.ktdsfm-wrap .ktdsfm-privacy,
.ktdsfm-wrap .ktdsfm-privacy-text,
.ktdsfm-wrap .ktdsfm-acceptance{
  font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue","Noto Sans JP","Yu Gothic",YuGothic,Arial,sans-serif!important;
  font-weight:300!important;
  letter-spacing:.01em!important;
}
.ktdsfm-wrap .ktdsfm-privacy-text{
  line-height:1.65!important;
}

/* 確認・送信・戻る・閉じるボタンをゴシック体へ統一 */
.ktdsfm-wrap .ktdsfm-confirm-button,
.ktdsfm-modal button{
  font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue","Noto Sans JP","Yu Gothic",YuGothic,Arial,sans-serif!important;
  font-weight:500!important;
  letter-spacing:.04em!important;
}

/* Cloudflare Turnstile（インテグレーション）を中央揃え */
.ktdsfm-wrap .cf-turnstile,
.ktdsfm-wrap .wpcf7-turnstile,
.ktdsfm-wrap [data-sitekey],
.ktdsfm-wrap iframe[src*="challenges.cloudflare.com"]{
  margin-left:auto!important;
  margin-right:auto!important;
}
.ktdsfm-wrap .cf-turnstile,
.ktdsfm-wrap .wpcf7-turnstile{
  display:flex!important;
  justify-content:center!important;
  width:100%!important;
  text-align:center!important;
}


/* v1.0.9 非表示項目の空行解消・プライバシー欄再調整 */

/* CF7のhiddenタグは外側のcontrol-wrapもグリッド項目になるため完全に除外 */
.ktdsfm-wrap .wpcf7-form-control-wrap[data-name="context-type"],
.ktdsfm-wrap .wpcf7-form-control-wrap[data-name="context-id"],
.ktdsfm-wrap .wpcf7-form-control-wrap[data-name="context-title"],
.ktdsfm-wrap .wpcf7-form-control-wrap[data-name="context-url"],
.ktdsfm-wrap input[type="hidden"][name^="context-"]{
  display:none!important;
  width:0!important;
  height:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
}

/* textarea直後から個人情報欄までを詰める */
.ktdsfm-wrap .ktdsfm-field:has(textarea){
  margin-bottom:0!important;
}
.ktdsfm-wrap .ktdsfm-field:has(textarea) + .wpcf7-form-control-wrap,
.ktdsfm-wrap .ktdsfm-field:has(textarea) ~ .ktdsfm-field-full{
  margin-top:0!important;
}

/* プライバシー本文の枠を小型化。同意チェックは枠外へ */
.ktdsfm-wrap .ktdsfm-privacy-block{
  width:100%!important;
  margin:0!important;
}
.ktdsfm-wrap .ktdsfm-privacy{
  padding:.55rem!important;
}
.ktdsfm-wrap .ktdsfm-privacy-text{
  max-height:5.25rem!important;
  padding:.05rem .25rem!important;
  margin:0!important;
  font-size:.82rem!important;
  line-height:1.55!important;
}
.ktdsfm-wrap .ktdsfm-privacy-text p{
  margin:.2em 0!important;
}
.ktdsfm-wrap .ktdsfm-acceptance{
  margin:.45rem 0 0!important;
  padding:0!important;
  justify-content:center!important;
  border:0!important;
  background:transparent!important;
  font-size:.86rem!important;
}
.ktdsfm-wrap .ktdsfm-acceptance input[type="checkbox"]{
  margin:0!important;
}


/* v1.0.12: 構造を壊さない安全な余白・中央揃え調整 */
.ktdsfm-wrap input.wpcf7-hidden + br{display:none!important;}
.ktdsfm-wrap .ktdsfm-privacy-text{
  max-height:14rem!important;
  min-height:14rem!important;
}
.ktdsfm-wrap .ktdsfm-confirm-button{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  float:none!important;
  margin:.75rem auto 0!important;
}
.ktdsfm-wrap .ktdsfm-real-submit,
.ktdsfm-wrap .wpcf7-spinner{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  clip:rect(0 0 0 0)!important;
  clip-path:inset(50%)!important;
  white-space:nowrap!important;
}
