@charset "UTF-8";
* {
  padding: 0;
  margin: 0;
  box-sizing: border-box;
  list-style: none;
}
*:before, *:after {
  box-sizing: border-box;
}
*:focus {
  outline: none;
}

.inner {
  width: 90%;
  margin: 0 auto;
}
.inner-form {
  max-width: 57.5vw;
}
@media screen and (max-width: 767px) {
  .inner-form {
    width: 100%;
    max-width: 88.785vw;
  }
}

h2.h2-form {
  font-size: 2.083vw;
  line-height: 1.8;
  text-align: center;
  color: #564444;
}
@media screen and (max-width: 767px) {
  h2.h2-form {
    font-size: 5.607vw;
  }
}

h3.h3-form {
  font-size: 1.25vw;
  line-height: 2.4;
  letter-spacing: 0.05em;
  text-align: center;
}
@media screen and (max-width: 767px) {
  h3.h3-form {
    font-size: 3.738vw;
  }
}

main #form {
  width: 98%;
  margin: 0 auto;
  padding-top: 80px;
  padding-bottom: 5.208vw;
  margin-bottom: -13.021vw;
  border-bottom-left-radius: 6.25vw;
  border-bottom-right-radius: 6.25vw;
}
@media screen and (max-width: 767px) {
  main #form {
    width: 97%;
    padding-top: 92px;
    padding-bottom: 16vw;
    margin-bottom: -5vw;
    border-bottom-left-radius: 5.607vw;
    border-bottom-right-radius: 5.607vw;
  }
}
main #form .form-campaign_date {
  width: 100%;
  max-width: 39.063vw;
  margin: 0 auto;
  margin-top: 2.083vw;
  justify-content: space-between;
}
main #form .form-campaign_date .campaign_date-title {
  width: 16%;
  font-size: 1.042vw;
  letter-spacing: 0.08em;
  color: #fcfcfc;
  background-color: #ed7428;
  padding: 0.417vw 0.833vw;
  border-radius: 1.979vw;
  display: flex;
  justify-content: center;
  align-items: center;
}
main #form .form-campaign_date .campaign_date-date {
  width: 81%;
  font-size: 1.25vw;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
main #form .form-campaign_date .campaign_date-date span {
  font-size: 1.667vw;
}
@media screen and (max-width: 767px) {
  main #form .form-campaign_date {
    width: 100%;
    max-width: none;
    flex-direction: column;
    align-items: center;
  }
  main #form .form-campaign_date .campaign_date-title {
    width: 27%;
    font-size: 3.738vw;
    padding: 1.869vw 3.738vw;
    border-radius: 8.879vw;
    margin-bottom: 1.869vw;
  }
  main #form .form-campaign_date .campaign_date-date {
    width: 100%;
    font-size: 3.505vw;
  }
  main #form .form-campaign_date .campaign_date-date span {
    font-size: 4.673vw;
  }
}
main #form .form-notice {
  width: 100%;
  background: #fff7e8;
  border: 1px solid #ed7428;
  border-radius: 1.042vw;
  padding: 1.667vw 2.083vw;
  margin: 0 auto;
  margin-top: 2.083vw;
}
main #form .form-notice p {
  font-size: 0.833vw;
  line-height: 2;
  margin-top: 1.25vw;
}
@media screen and (max-width: 767px) {
  main #form .form-notice {
    border-radius: 3.738vw;
    padding: 5.607vw 3.738vw;
    margin-top: 9.346vw;
  }
  main #form .form-notice p {
    font-size: 2.804vw;
    margin-top: 3.738vw;
  }
}
main .submitted_box {
  width: 100%;
  text-align: center;
  padding: 2.448vw 0;
  border-radius: 0.833vw;
  background-color: #fff7e8;
  margin-top: 2.083vw;
}
@media screen and (max-width: 767px) {
  main .submitted_box {
    font-size: 4.206vw;
    padding: 4.206vw 0;
    border-radius: 1.869vw;
    margin-top: 9.346vw;
  }
}
main .thanks_txt {
  line-height: 2;
  text-align: center;
  margin-top: 2.083vw;
}
@media screen and (max-width: 767px) {
  main .thanks_txt {
    margin-top: 7.477vw;
  }
}
main .thsnks_x_txt {
  font-size: 1.042vw;
  text-align: center;
  margin-top: 3.333vw;
  margin-bottom: 1.25vw;
}
@media screen and (max-width: 767px) {
  main .thsnks_x_txt {
    font-size: 3.738vw;
    margin-top: 7.477vw;
    margin-bottom: 3.738vw;
  }
}
main .thanks_x_btn {
  width: 25.625vw;
  margin-bottom: 3.646vw;
}
@media screen and (max-width: 767px) {
  main .thanks_x_btn {
    width: 77.103vw;
    margin-bottom: 14.953vw;
  }
}

/* form */
form {
  margin-top: 3.333vw;
}
@media screen and (max-width: 767px) {
  form {
    margin-top: 8vw;
  }
}
form.contact_form-step02 p.annotation_txt, form.contact_form-step02 p.question_txt, form.contact_form-step02 p.contact_address_txt, form.contact_form-step02 p.step02_hidden_txt {
  display: none;
}
form.contact_form-step02 p.submit_txt {
  display: block;
}
form.contact_form-step02 .form_block {
  padding: 0.521vw 0;
}
form.contact_form-step02 .form_block.--textfield {
  padding: 1.563vw 0;
}
form.contact_form-step02 .form_block.--job {
  padding: 1.563vw 0;
}
@media screen and (max-width: 767px) {
  form.contact_form-step02 .form_block {
    padding: 1.042vw 0 0.521vw;
  }
  form.contact_form-step02 .form_block.--textfield {
    padding: 1.042vw 0;
  }
  form.contact_form-step02 .form_block.--job {
    padding: 1.042vw 0;
  }
}
form.contact_form-step02 .char-counter {
  display: none;
}
form.contact_form-step02 .diagnosis_link {
  display: none;
}
form.contact_form-step02 .input_box-school_grade_other {
  margin-top: 0;
}
form.contact_form-step02 .select_wrapper.--diagnosis {
  margin: 0;
}
form p {
  line-height: 1.62;
}
form p.description_txt {
  margin-top: 0.521vw;
  margin-left: 0.833vw;
}
@media screen and (max-width: 767px) {
  form p.description_txt {
    margin-top: 2.336vw;
    margin-left: 0;
  }
}
form p.submit_txt {
  font-size: 1.667vw;
  text-align: center;
  color: #ed7428;
  margin-bottom: 2.917vw;
  display: none;
}
@media screen and (max-width: 767px) {
  form p.submit_txt {
    font-size: 4.673vw;
  }
}
form .form_block {
  display: block;
  padding-bottom: 3.333vw;
}
@media screen and (max-width: 767px) {
  form .form_block {
    padding-bottom: 9.346vw;
  }
}
form .form_label {
  font-size: 1.25vw;
  line-height: 1.5;
  margin-bottom: 1.25vw;
}
@media screen and (max-width: 767px) {
  form .form_label {
    font-size: 3.738vw;
    margin-bottom: 2.804vw;
  }
}
@media screen and (max-width: 767px) {
  form .gridno .form_label {
    line-height: 1.3;
    margin-bottom: 0;
    display: block;
  }
  form .gridno .form_label::before {
    top: 0.4vw;
  }
}
form .input_box.--date {
  display: flex;
  align-items: flex-end;
}
form .input_box.--date p {
  font-size: 1.042vw;
  margin-left: 0.5vw;
}
@media screen and (max-width: 767px) {
  form .input_box.--date p {
    font-size: 4.206vw;
    margin-left: 1vw;
  }
}
form .input_box-add_02, form .input_box-school_grade_other {
  margin-top: 2.083vw;
}
form .input_box-add_02 p, form .input_box-school_grade_other p {
  margin-bottom: 0.521vw;
}
@media screen and (max-width: 767px) {
  form .input_box-add_02, form .input_box-school_grade_other {
    margin-top: 5.841vw;
  }
  form .input_box-add_02 p, form .input_box-school_grade_other p {
    margin-bottom: 2.336vw;
  }
}
form .input_box-objective_other {
  margin-top: 0.521vw;
}
@media screen and (max-width: 767px) {
  form .input_box-objective_other {
    margin-top: 0;
  }
  form .input_box-objective_other p {
    font-size: 3.738vw;
  }
}
@media screen and (max-width: 767px) {
  form .gridno .form-required {
    padding: 0 1.402vw 0.467vw;
  }
}
form {
  /* 入力欄 */
}
form .form_field {
  width: 100%;
  font-size: 1.042vw;
  line-height: 1.5;
  font-weight: 400;
  color: #564444;
  border: 1px solid #a0a2ad;
  background: #fcfcfc;
  border-radius: 0.417vw;
  padding: 0.833vw;
}
@media screen and (max-width: 767px) {
  form .form_field {
    font-size: 16px;
    border-radius: 1.869vw;
    padding: 3.738vw;
  }
}
form .form_field--textfield {
  width: 100%;
  line-height: 2;
  height: 18.333vw;
}
@media screen and (max-width: 767px) {
  form .form_field--textfield {
    height: 93.925vw;
  }
}
form input:-webkit-autofill {
  box-shadow: 0 0 0 1000px #f7f4f0 inset;
  text-fill-color: #564444;
  -webkit-box-shadow: 0 0 0 1000px #f7f4f0 inset;
  -webkit-text-fill-color: #564444;
}
form input[type=date] {
  width: 35%;
}
@media screen and (max-width: 767px) {
  form input[type=date] {
    width: 50%;
    -webkit-appearance: none;
    height: 3.125vw;
  }
  form input[type=date]::-webkit-date-and-time-value {
    text-align: left;
  }
}
form input[type=date]:invalid {
  color: #bababa;
}
form input[type=date]:valid {
  color: inherit;
}
form ::-moz-placeholder {
  font-weight: 400;
  color: #564444;
}
form ::placeholder {
  font-weight: 400;
  color: #564444;
}
form {
  /* プルダウン */
}
form .select_wrapper {
  position: relative;
  width: 30%;
}
@media screen and (max-width: 767px) {
  form .select_wrapper {
    width: 50%;
  }
}
form .select_wrapper.--school_grade {
  width: 50%;
}
@media screen and (max-width: 767px) {
  form .select_wrapper.--school_grade {
    width: 85%;
  }
}
form .select_wrapper.--diagnosis {
  width: 32%;
  margin: 0 auto;
}
@media screen and (max-width: 767px) {
  form .select_wrapper.--diagnosis {
    width: 100%;
  }
}
form .select_wrapper::after {
  content: "";
  position: absolute;
  top: 1.5vw;
  right: 1.042vw;
  width: 1.51vw;
  height: 0.885vw;
  background: url(../images/icon_arrow.svg) no-repeat center top/contain;
  pointer-events: none;
}
@media screen and (max-width: 767px) {
  form .select_wrapper::after {
    top: 5.5vw;
    right: 4.673vw;
    width: 5.841vw;
    height: 3.271vw;
  }
}
form .select_wrapper select {
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
  width: 100%;
  border: 1px solid #c6c6c6;
  padding: 1.042vw;
  background-clip: padding-box;
  box-sizing: border-box;
}
@media screen and (max-width: 767px) {
  form .select_wrapper select {
    border: 1px solid #c6c6c6;
    padding: 3.972vw;
  }
}
form .input_area {
  position: relative;
}
form {
  /* 文字カウント */
}
form .char-counter {
  font-size: 1.094vw;
  color: #c6c6c6;
  position: absolute;
  bottom: 0.26vw;
  right: 0.781vw;
}
@media screen and (max-width: 767px) {
  form .char-counter {
    font-size: 3.271vw;
    bottom: 1.168vw;
    right: 2.336vw;
  }
}
form {
  /* 制限文字数（300字）を超えたときに適用するスタイル */
}
form .char-counter.over {
  color: red;
  font-weight: bold;
}
form {
  /* error */
}
form .error-field {
  background-color: #fff6f4; /* 背景色を薄い赤に */
  border-color: #f24222 !important; /* 枠線を赤に */
}
form .error-check-label .form_check {
  /* 例: チェックボックスのUI部分（span）の背景色と枠線を変更 */
  background-color: #fcdfdf;
  border: 1px solid #cc7f7f;
}
form .error_txt {
  font-size: 1.094vw;
  color: #ed4d1c;
  padding-top: 2.083vw;
  text-align: center;
  display: none;
}
@media screen and (max-width: 767px) {
  form .error_txt {
    font-size: 4vw;
    padding-top: 0;
    margin-bottom: 5vw;
  }
}
form {
  /* 確認画面時 */
}
form input.form_field:-moz-read-only, form textarea.form_field:-moz-read-only {
  background: #f4f4f4;
  color: #564444;
}
form input.form_field:read-only,
form textarea.form_field:read-only {
  background: #f4f4f4;
  color: #564444;
}
form input:read-only:-webkit-autofill {
  box-shadow: 0 0 0 1000px #f4f4f4 inset;
  text-fill-color: #564444;
  -webkit-box-shadow: 0 0 0 1000px #f4f4f4 inset;
  -webkit-text-fill-color: #564444;
}
form .select_wrapper.readonly-style {
  opacity: 1;
}
form .select_wrapper.readonly-style::after {
  content: none;
}
form select.readonly-style {
  opacity: 1;
  color: #000;
}
form {
  /* チェックボックス */
}
form .form_check {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  position: relative;
  width: 1.198vw;
  height: 1.198vw;
  border-radius: 0.104vw;
  border: 1px solid transparent;
  background-color: #eae1d6;
  cursor: pointer;
}
form .form_check:checked {
  background-color: #ed7428;
}
form .form_check:checked::after {
  content: "";
  position: absolute;
  top: 0.208vw;
  left: 0.05vw;
  width: 0.99vw;
  height: 0.573vw;
  border-bottom: 4px solid #ffffff;
  border-left: 4px solid #ffffff;
  transform: rotate(-45deg);
}
@media screen and (max-width: 767px) {
  form .form_check {
    width: 4.673vw;
    height: 4.673vw;
  }
  form .form_check:checked::after {
    top: 0.818vw;
    left: 0.467vw;
    width: 3.505vw;
    height: 2.103vw;
  }
}
form .form_radio-wrapper {
  display: grid;
  gap: 1.042vw 0;
  width: 98%;
  margin: 0 auto;
}
form .form_radio-wrapper.--consent {
  text-align: center;
  gap: 0.521vw 0;
}
@media screen and (max-width: 767px) {
  form .form_radio-wrapper {
    gap: 4.673vw 0;
    margin-top: 4.673vw;
  }
  form .form_radio-wrapper.--consent {
    gap: 2.336vw 0;
    margin-top: 9.346vw;
  }
}
form .checkbox_span {
  margin-left: 0.469vw;
  font-size: 0.833vw;
  color: #564444;
}
@media screen and (max-width: 767px) {
  form .checkbox_span {
    margin-left: 2.103vw;
    font-size: 2.804vw;
  }
}
form .readonly-style {
  pointer-events: none; /* ユーザー操作無効 */
  opacity: 1; /* 薄く表示して選択済み感を出す */
  cursor: default; /* カーソル変化 */
}
form .readonly-style.form_radio:checked {
  border: 1px solid #eae1d6;
}
form .readonly-style.form_radio:checked::after {
  background-color: #eae1d6;
}
form .readonly-style.form_check:checked {
  background-color: #ed7428;
}
form .diagnosis_link {
  text-align: center;
}
form .diagnosis_link p {
  margin-bottom: 0.9vw;
}
@media screen and (max-width: 767px) {
  form .diagnosis_link {
    width: 100%;
    text-align: center;
    margin-top: 7.5vw;
    margin-bottom: 5vw;
  }
  form .diagnosis_link p {
    margin-bottom: 3.505vw;
  }
}
form {
  /* 個人情報 */
}
form .consent_block {
  width: 100%;
  margin: 0 auto;
  padding-bottom: 1.25vw;
}
@media screen and (max-width: 767px) {
  form .consent_block {
    padding-bottom: 5.607vw;
  }
}
form {
  /* 送信ボタン */
}
form .btn_area {
  display: flex;
  justify-content: center;
  gap: 0 2.917vw;
  margin-bottom: 6.25vw;
}
@media screen and (max-width: 767px) {
  form .btn_area {
    flex-direction: column;
    align-items: center;
    gap: 3.738vw 0;
    margin-bottom: 18.692vw;
  }
}
form .btn_area .btn_link {
  margin: 0;
}

/* form *//*# sourceMappingURL=form.css.map */