/* Contact Form 7 × お問い合わせ（旧 otoiawase レイアウト合わせ） */

.otoiawase-page .wpcf7 {
  width: 100%;
  max-width: none;
  margin: 0;
}

.otoiawase-page .wpcf7 form {
  margin: 0;
  padding: 0;
}

/* CF7 が挿入する p タグで dl の flex が崩れるのを防ぐ */
.otoiawase-page .wpcf7 form p {
  margin: 0;
  padding: 0;
}

.otoiawase-page .wpcf7 form > p,
.otoiawase-page .wpcf7 form .btn-box > p,
.otoiawase-page .wpcf7 form dl.parts > p {
  display: contents;
}

.otoiawase-page .wpcf7 form dl.parts {
  margin: 0;
}

.otoiawase-page .wpcf7 form .wpcf7-form-control-wrap {
  display: block;
}

.otoiawase-page .form .parts dd .wpcf7-form-control-wrap.text01,
.otoiawase-page .form .parts dd .wpcf7-form-control-wrap:has(.text01),
.otoiawase-page .form .parts dd .wpcf7-form-control-wrap:has(.textarea01) {
  width: 100%;
}

/* 姓・名 / せい・めい など横並び2入力 */
.otoiawase-page .form .parts.name dd,
.otoiawase-page .form .parts dd:has(.text02) {
  align-items: center;
}

.otoiawase-page .form .parts.name dd > .label,
.otoiawase-page .form .parts dd:has(.text02) > .label {
  flex: 0 0 auto;
}

.otoiawase-page .form .parts.name dd .wpcf7-form-control-wrap,
.otoiawase-page .form .parts dd:has(.text02) .wpcf7-form-control-wrap {
  display: inline-flex;
  width: auto;
  flex: 0 0 auto;
  align-items: center;
}

.otoiawase-page .form .parts.name dd input.text02,
.otoiawase-page .form .parts dd:has(.text02) input.text02 {
  flex: 0 1 auto;
  min-width: 0;
}

@media only screen and (min-width: 768px) {
  .otoiawase-page .form .parts.name dd,
  .otoiawase-page .form .parts dd:has(.text02) {
    flex-wrap: nowrap;
  }

  .otoiawase-page .form .parts.name dd input.text02,
  .otoiawase-page .form .parts dd:has(.text02) input.text02 {
    width: 442px;
    max-width: calc(50% - 80px);
  }

  .otoiawase-page .form .parts.name dd input.text02.last,
  .otoiawase-page .form .parts dd:has(.text02) input.text02.last {
    margin-right: 0;
  }
}

.otoiawase-page .form .parts dd .wpcf7-checkbox,
.otoiawase-page .form .parts dd .wpcf7-form-control-wrap:has(.wpcf7-checkbox) {
  width: 100%;
}

.otoiawase-page .form .parts dd .wpcf7-checkbox {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}

.otoiawase-page .form .parts dd .wpcf7-list-item {
  display: inline-flex;
  align-items: center;
  margin: 0 45px 0 0;
}

.otoiawase-page .form .parts dd .wpcf7-list-item label {
  display: inline-flex;
  align-items: center;
  margin: 0;
  cursor: pointer;
}

.otoiawase-page .form .parts dd .wpcf7-list-item input[type="checkbox"] {
  margin-right: 0.35em;
}

/* 入力欄（CF7 の wpcf7-form-control 付きでも旧デザインを適用） */
.otoiawase-page .form .parts dd input.wpcf7-form-control.text01,
.otoiawase-page .form .parts dd input.wpcf7-form-control.text02,
.otoiawase-page .form .parts dd input.wpcf7-form-control.text03,
.otoiawase-page .form .parts dd input.wpcf7-form-control.text04,
.otoiawase-page .form .parts dd input.wpcf7-form-control.text05,
.otoiawase-page .form .parts dd textarea.wpcf7-form-control.textarea01 {
  max-width: 100%;
}

.otoiawase-page .form .btn-box .wpcf7-form-control-wrap {
  display: block;
  width: auto;
}

.otoiawase-page .form .btn-box input.wpcf7-submit.btn01 {
  margin: 0 50px;
}

/* バリデーション・送信メッセージ */
.otoiawase-page .wpcf7 form .wpcf7-not-valid-tip {
  color: #f00;
  font-size: 14px;
  width: 100%;
  flex: 1 1 100%;
}

.otoiawase-page .form .parts.name dd .wpcf7-not-valid-tip,
.otoiawase-page .form .parts dd:has(.text02) .wpcf7-not-valid-tip {
  order: 10;
}

.otoiawase-page .wpcf7 form .wpcf7-response-output {
  margin: 1.5em 0 0;
  padding: 1em;
  border: none;
  text-align: center;
}

.otoiawase-page .wpcf7 form.invalid .wpcf7-response-output {
  color: #f00;
}

.otoiawase-page .wpcf7 form.sent .wpcf7-response-output {
  display: none;
}

.otoiawase-page .wpcf7-spinner {
  margin-left: 0.5em;
  vertical-align: middle;
}

/* 確認中はフォームを非表示（hidden は使わない＝CF7送信が止まるため） */
.otoiawase-page .wpcf7.is-behind-confirm {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  margin: 0;
  padding: 0;
  overflow: hidden;
  visibility: hidden;
  pointer-events: none;
}

.otoiawase-page .wpcf7.is-behind-confirm * {
  pointer-events: none;
}

/* 送信前確認パネル（フォームの上に表示・クリック可能に） */
.otoiawase-page #cf7-confirm-panel:not([hidden]) {
  position: relative;
  z-index: 20;
}

.otoiawase-page #cf7-confirm-panel .btn-box button {
  pointer-events: auto;
  cursor: pointer;
}

.otoiawase-page #cf7-confirm-panel[hidden] {
  display: none !important;
}

.otoiawase-page #cf7-confirm-panel.confirm {
  margin-top: 0;
  border-top: 1px solid #e3e3e3;
}

.otoiawase-page #cf7-confirm-panel .cf7-confirm-body .parts dd {
  padding-top: 25px;
  justify-content: flex-start;
  text-align: left;
}

@media only screen and (max-width: 767px) {
  .otoiawase-page .form .parts dd .wpcf7-list-item {
    margin: 0 4% 0.5em 0;
  }

  .otoiawase-page .form .btn-box input.wpcf7-submit.btn01 {
    margin: 0 3vw;
  }
}
