@charset "UTF-8";
/* bl_form */
.bl_form {
  background: #fff;
}
.bl_form_item {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.bl_form_item:not(:first-child) {
  margin-top: 24px;
}
.bl_form_ttl {
  width: 100%;
  display: flex;
  align-items: center;
  position: relative;
}
.bl_form_ttl span {
  position: relative;
  padding-right: 64px;
}
.el_required span::after,
.el_optional span::after {
  font-size: 15px;
  font-weight: bold;
  color: #fff;
  width: 48px;
  height: 24px;
  padding-bottom: 1px;
  display: flex;
  justify-content: center;
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
}
.el_required span::after {
  content: "必須";
  background: #4a90e2;
}
.el_optional span::after {
  content: "任意";
  background: #9a9a9a;
}
.bl_form input {
  width: 500px;
  height: 40px;
  padding: 0 16px 3px;
  border-radius: 5px;
  border: 1px solid #969696;
  background: #fff;
}
.bl_form input[name="contact-email"],
.bl_form input[name="contact-tel"] {
  padding-bottom: 0;
}
/* テキストエリア */
.bl_form textarea {
  width: 500px;
  height: 160px;
  padding: 10px 0 0 16px;
  background: #fff;
  border: 1px solid #969696;
  border-radius: 5px;
  resize: none;
}
.bl_form_btnWrapper .wpcf7-form-control {
  position: relative;
  z-index: 2;
  width: 258px;
  height: 56px;
  padding-bottom: 4px;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.04em;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #ffffff;
}
.bl_form_btnWrapper .wpcf7-previous {
  width: 204px;
  border: 1px solid #3a95ac;
  background: #fff;
  color: #3a95ac;
}
.bl_form_btnWrapper .wpcf7-spinner {
  display: none;
}
.wpcf7-form-control-wrap {
  display: flex;
}
/* エラー */
.wpcf7-form.invalid .bl_form_selectWrapper {
  position: relative;
}
.wpcf7-form.invalid .bl_form_selectWrapper:has(.wpcf7-not-valid-tip) {
  padding-bottom: 24px;
}
.wpcf7-form.invalid .bl_form_selectWrapper:has(.wpcf7-not-valid-tip) .wpcf7-form-control-wrap {
  position: static;
  padding-bottom: 0;
}
.wpcf7-form.invalid .bl_radioWrapper {
  position: relative;
}
.wpcf7-form.invalid .bl_radioWrapper:has(.wpcf7-not-valid-tip) {
  padding-bottom: 32px;
}
.wpcf7-form.invalid .bl_radioWrapper:has(.wpcf7-not-valid-tip) .wpcf7-form-control-wrap {
  position: static;
  padding-bottom: 0;
}
.wpcf7-form.invalid .bl_form_ttl {
  margin-bottom: 24px;
}
.wpcf7-form.invalid .wpcf7-form-control-wrap {
  display: flex;
}
.wpcf7-form.invalid .wpcf7-form-control-wrap:has(.wpcf7-not-valid-tip) {
  padding-bottom: 24px;
}
.wpcf7-form.invalid .bl_ageWrapper:has(.wpcf7-not-valid-tip) {
  padding-bottom: 24px;
}
.wpcf7-form.invalid .bl_ageWrapper:has(.wpcf7-not-valid-tip) .wpcf7-form-control-wrap {
  padding-bottom: 0;
}
.wpcf7-not-valid-tip {
  position: absolute;
  bottom: 0;
  left: 0;
  font-size: 0.9em;
}
.wpcf7-form.invalid .wpcf7-response-output {
  display: none;
}
input[type="text"],
input[type="checkbox"],
input[type="submit"],
select,
::placeholder {
  font-family: "noto-sans-jp", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "游ゴシック Medium", "游ゴシック体", "Yu Gothic Medium", YuGothic, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}
.wpcf7 form .wpcf7-response-output {
  border: none;
}
@media screen and (max-width: 750px) {
  .bl_form_item {
    gap: calc(12 / 750 * 100vw);
  }
  .bl_form_item:not(:first-child) {
    margin-top: calc(40 / 750 * 100vw);
  }
  .bl_form_ttl {
    font-size: calc(30 / 750 * 100vw);
  }
  .bl_form_ttl span {
    padding-right: calc(96 / 750 * 100vw);
  }
  .el_required span::after,
  .el_optional span::after {
    font-size: calc(26 / 750 * 100vw);
    width: calc(80 / 750 * 100vw);
    height: calc(40 / 750 * 100vw);
    line-height: 1;
    padding-top: calc(5 / 750 * 100vw);
    right: 0;
  }
  .bl_form input {
    width: 100%;
    height: calc(64 / 750 * 100vw);
    font-size: calc(32 / 750 * 100vw);
    padding: 0 calc(16 / 750 * 100vw) calc(4 / 750 * 100vw);
  }
  /* テキストエリア */
  .bl_form textarea {
    width: 100%;
    height: calc(403 / 750 * 100vw);
    padding: calc(10 / 750 * 100vw) 0 0 calc(16 / 750 * 100vw);
    font-size: calc(32 / 750 * 100vw);
  }
  /* ボタン */
  .bl_form_btnWrapper {
    margin: calc(64 / 750 * 100vw) auto 0;
    gap: calc(64 / 750 * 100vw);
  }
  .bl_form_btnWrapper span::after {
    width: calc(36 / 750 * 100vw);
    height: calc(36 / 750 * 100vw);
    right: calc(24 / 750 * 100vw);
  }
  .bl_form_btnWrapper .wpcf7-form-control {
    width: calc(320 / 750 * 100vw);
    height: calc(80 / 750 * 100vw);
    padding-bottom: calc(4 / 750 * 100vw);
    font-size: calc(30 / 750 * 100vw);
  }
  .bl_form_btnWrapper .wpcf7-previous {
    width: calc(240 / 750 * 100vw);
    border-width: calc(2 / 750 * 100vw);
  }
  /* エラー */
  .wpcf7-form.invalid .bl_form_selectWrapper:has(.wpcf7-not-valid-tip) {
    padding-bottom: calc(48 / 750 * 100vw);
  }
  .wpcf7-form.invalid .bl_radioWrapper:has(.wpcf7-not-valid-tip) {
    padding-bottom: calc(48 / 750 * 100vw);
  }
  .wpcf7-form.invalid .wpcf7-form-control-wrap:has(.wpcf7-not-valid-tip) {
    padding-bottom: calc(48 / 750 * 100vw);
  }
  .wpcf7-form.invalid .bl_ageWrapper:has(.wpcf7-not-valid-tip) {
    padding-bottom: calc(48 / 750 * 100vw);
  }
}
/*====================================================================
エラー文の非表示
（ラジオボタンやチェックボックスクリックで他のバリデーションが勝手に表示されるため）
======================================================================*/
.wpcf7-form.hide_error_message .wpcf7-not-valid-tip {
  display: none;
}
/**Mac,iPad Safari**/
@media only screen and (min-device-width: 768px) {
  _::-webkit-full-page-media,
  _:future,
  :root {
  }
}
