.content_block + .content_block {
  margin-top: 7rem;
}
@media (min-width:768px) {
  .content_block.explain {
    text-align: center;
    max-width: 70rem;
    margin: 0 auto;
  }
}
.block_title {
  text-align: center;
  margin-top: 2em;
}
dl.flow {
  counter-reset: count 0;
  margin: 2em 0;
  @media (min-width:768px) {

  }
  & dt {
    counter-increment: count 1;
    font-size: var(--fs-large);
    text-align: center;
    &::before {
      content: counter(count)'．';
    }
  }
  & dd:not(:last-child)::after {
    display: block;
    content: "";
    width: 0.1rem;
    height: 1.5em;
    margin: 0.5em auto;
    background: var(--key-color);
  }
}
.note_wrap {
  width: max-content;
  max-width: 100%;
  margin: 0 auto;
  @media (min-width:768px) {
    text-align: left;
  }
  .note {
    text-indent: -1em;
    padding-left: 1em;
    &::before {
      content: "※";
    }
  }
}
.text {
  @media (min-width:768px) {
    word-break: keep-all;
    overflow-wrap: anywhere;
  }
  + .text {
    margin-top: 1em;
  }
  + .note {
    margin-top: 1em;
  }
}
.form_item {
  @media (min-width:768px) {
    display: flex;
    padding: 1em 0;
    gap: 0 5%;
  }
  & dt {
    margin-bottom: 0.5em;
    @media (min-width:768px) {
      font-size: 1.8rem;
      width: 25%;
      margin-bottom: 0;
    }
    &::before {
      display: inline-block;
      content: "必須";
      color: #FFF;
      font-size: 77%;
      margin-right: 0.3em;
      padding: 0 0.5em;
      background: #EC6D44;
      border-radius: 0.4rem;
    }
    & small {
      display: inline-block;
      margin-left: 3em;
    }
  }
  & dd {
    @media (min-width:768px) {
      font-size: 1.8rem;
      width: 70%;
    }
  }
  + .form_item {
    margin-top: 3rem;
  }
}
.form_item.free dt::before {
  content: "任意";
  background: #888888;
}
input[type=text],
input[type=date],
input[type=tel],
input[type=email] {
  font-size: inherit;
  line-height: 2;
  width: 100%;
  padding: 0 0.5em;
  border: 0.1rem solid #D9D9D9;
  border-radius: 0.4rem;
}
select {
  font-size: inherit;
  line-height: 2;
  width: 100%;
  padding: 0.5em;
  border: 0.1rem solid #D9D9D9;
  border-radius: 0.4rem;
}
input[type=checkbox] {
  width: 16px;
  height: 15px;
}
textarea {
  font-size: inherit;
  width: 100%;
  height: 10em;
  padding: 0.5em;
  border: 0.1rem solid #D9D9D9;
  border-radius: 0.4rem;
}
input::placeholder,
textarea::placeholder {
  color: #A5A5AA;
}
.wpcf7-checkbox {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5em 2em;
}
.birthday dd {
  display: flex;
}
.birthday input[type=number] {
  font-size: inherit;
  line-height: 2;
  width: 100%;
  padding: 0 0.5em;
  border: 0.1rem solid #D9D9D9;
  border-radius: 0.4rem;
}
.day dd span {
  display: flex;
  + span {
    margin-top: 1em;
  }
  .wpcf7-form-control-wrap {
    flex-grow: 1;
  }
}
input[type=button],
input[type=submit] {
  color: inherit;
  font-size: inherit;
  background: transparent;
  border: none;
  cursor: pointer;
}
.privacy_text{
  margin: 5rem 0;
}
.error_message {
  color: #e50012;
}
.recaptcha {
  margin-top: 1em;
}
.recaptcha a {
  font-size: inherit;
}
.btn_wrap {
  display: flex;
  justify-content: space-between;
  gap: 0 4%;
  position: relative;
  .btn {
    font-size: var(--fs-large);
    min-width: auto;
    margin: 0 auto;
    cursor: pointer;
  } 
} 
.btn_wrap .wpcf7-spinner {
  position: absolute;
  right: 50%;
  top: 110%;
  transform: translateX(-50%);
}
.confirm_area {
  display: none;
}
.confirm_area p {
  margin-bottom: 2em;
}
.confirm_area .back_button {
  &::before {
    display: block;
    content: "";
    width: 2.9em;
    height: 2em;
    margin: 0.5rem auto 0;
    background: #FFF;
    mask: url(/assets/img/common/link_arrow_back.svg) no-repeat center /contain;
    --webikit-mask: url(/assets/img/common/link_arrow_back.svg) no-repeat center /contain;
  }
  &::after {
    display: none;
  }
}
/*-----------------------------------------------
送信完了ページ
-----------------------------------------------*/
.page_thanks section {
  height: 50vh;

  & p {
    width: fit-content;
    margin: 0 auto;
  }
}