@charset "UTF-8";

.inner {
  box-sizing: content-box;
  max-width: 1200px;
  padding: 0 2%;
  position: relative;
  margin: 0 auto;
}
.cmn_btn {
  display: block;
  width: 100%;
  text-align: center;
  font-size: 28px;
  font-weight: 700;
  color: #fff;
  background: #FF8F3A;
  transition: 0.3s ease-in-out;
  padding: 16px 0;
  border-radius: 999em;
}
.cmn_btn:hover {
  opacity: 0.7;
}

.cmn_ttl {
  text-align: center;
  font-size: 40px;
  font-weight: 700;
  color: #013AC1;
  margin-bottom: 40px;
}
.cmn_ttl span {
  display: block;
  font-size: 20px;
  font-weight: 600;
  color: #444444;
  margin-bottom: 15px;
}
@media screen and (max-width: 1200px) {
  .inner {
    padding: 0 5%;
  }
  .cmn_btn {
    font-size: 2.33vw;
    padding: 1.33vw 0;
  }
  .cmn_ttl {
    font-size: 3.33vw;
    margin-bottom: 3.33vw;
  }
  .cmn_ttl span {
    font-size: 1.67vw;
    margin-bottom: 1.25vw;
  }
}
@media screen and (max-width: 767px) {
  .inner {
    padding: 0 4%;
  }
  .cmn_btn {
    font-size: 6.38vw;
    padding: 3.77vw 0;
  }
  .cmn_ttl {
    font-size: 7.24vw;
    margin-bottom: 11.59vw;
  }
  .cmn_ttl span {
    font-size: 4.06vw;
    margin-bottom: 1.45vw;
  }
}

/*----------------------------------------------------- */
/*  form           */
/*----------------------------------------------------- */
.form {
  padding: 120px 0;
  background: #F4F4F4;
}

.form_txt {
  text-align: center;
  margin-bottom: 40px;
}

.form_box {
  max-width: 1090px;
  background: #fff;
  border-radius: 30px;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.2);
  padding: 78px 64px;
  margin: 0 auto;
}

@media screen and (max-width: 1200px) {
  .form {
    padding: 10vw 0;
  }
  .form_txt {
    margin-bottom: 3.33vw;
  }
  .form_box {
    border-radius: 2.5vw;
    padding: 6.5vw 5.33vw;
    box-shadow: 0 0 1.67vw rgba(0, 0, 0, 0.2);
  }
}
@media screen and (max-width: 767px) {
  .form {
    padding: 16vw 0;
  }
  .form .cmn_ttl {
    margin-bottom: 5.33vw;
  }
  .form_txt {
    text-align: center;
    margin-bottom: 5.33vw;
  }
  .form_box {
    border-radius: 2.67vw;
    box-shadow: 0 0 2.67vw rgba(0, 0, 0, 0.2);
    padding: 9.07vw 4vw;
  }
}
/*----------------------------------------------------- */
/*  application form           */
/*----------------------------------------------------- */
.app_form {
  width: 100%;
}

.app_block + .app_block {
  margin-top: 50px;
}

.app_block_ttl {
  font-size: 30px;
  font-weight: 700;
  margin-bottom: 30px;
  border-bottom: 1px solid #444444;
  letter-spacing: 0.02em;
  display: inline-block;
}

.app_block_sub {
  font-size: 20px;
  font-weight: 700;
}

.app_row {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}
.app_row + .app_row {
  margin-top: 35px;
}

.app_label {
  width: 280px;
  font-size: 25px;
  font-weight: 500;
  padding-top: 14px;
  line-height: 1.4;
  white-space: nowrap;
}

.app_req {
  color: #CC4A4A;
  font-weight: 500;
}

.app_field {
  position: relative;
  flex: 1;
  min-width: 0;
}

/* input / select / date */
.app_input,
.app_textarea,
.app_select_input {
  width: 100%;
  padding: 15px 10px;
  font-size: 25px;
  font-weight: 500;
  background: #fff;
  border: 1px solid #E2E2E2;
  border-radius: 10px;
  outline: none;
  transition: 0.2s ease-in-out;
}

.app_input::placeholder,
.app_textarea::placeholder {
  color: #B7B7B7;
}

.app_input:focus,
.app_textarea:focus,
.app_select_input:focus {
  border-color: rgba(3, 110, 214, 0.45);
  box-shadow: 0 0 0 4px rgba(3, 110, 214, 0.12);
}

.app_textarea {
  height: 200px;
}

.app_note {
  font-size: 16px;
}
.app_note span {
  font-size: 14px;
  letter-spacing: -0.08em;
}

/* select arrow */
.app_select {
  position: relative;
  max-width: 466px;
}

.app_select_input {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 52px;
}

.app_select_ico {
  position: absolute;
  right: 18px;
  top: 50%;
  width: 10px;
  height: 10px;
  transform: translateY(-50%) rotate(45deg);
  border-right: 2px solid #8B8B8B;
  border-bottom: 2px solid #8B8B8B;
  pointer-events: none;
}

/* date icon */
.app_date {
  position: relative;
  max-width: 466px;
}

.app_post {
  max-width: 466px;
}

/* 3 columns row */
.app_row_cols3 {
  gap: 20px;
}

.app_col {
  width: calc((100% - 40px) / 3);
}

.app_row_cols3 .app_label {
  width: auto;
  padding-top: 0;
  margin-bottom: 10px;
  white-space: normal;
}

/* upload block */
.app_upload_box {
  background: #FAFAFA;
  padding: 40px;
}

/* birth_group */
.birth_group {
  display: flex;
  align-items: center;
  gap: 10px;
  justify-content: flex-start;
}

.birth_group .app_select {
  flex: none !important;
}

.birth_year {
  width: 150px;
}

.birth_month,
.birth_day {
  width: 150px;
}

.birth_unit {
  font-size: 25;
  font-weight: 500;
  margin-right: 5px;
}

.birth_group .app_select_input {
  padding-left: 10px;
}

@media (max-width: 768px) {
  .birth_group {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 15px 10px;
    width: 180px !important;
  }

  .birth_group .app_select.birth_year,
  .birth_group .app_select.birth_month,
  .birth_group .app_select.birth_day {
    width: 100% !important;
  }

  .birth_unit {
    margin-right: 0;
    line-height: 44px; /
  }
}

/* -----------------------------
  upload
------------------------------ */
.app_row_upload {
  align-items: flex-start;
}

.app_upload {
  display: flex;
  align-items: center;
  gap: 15px;
}

.app_upload_main {
  max-width: 400px;
  width: 100%;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 10px;
  background: #fff;
  border: 1px solid #E2E2E2;
  border-radius: 10px;
  padding: 8px 15px;
}

.app_upload_btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #8A8A8A;
  background: #F7F7F7;
  padding: 7px;
  cursor: pointer;
  user-select: none;
}

.app_upload_btn_txt {
  font-size: 25px;
  color: #8A8A8A;
  line-height: 1;
}

.app_upload_hint {
  font-size: 20px;
  color: #8A8A8A;
  white-space: nowrap;
}

.app_upload_input {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  clip-path: inset(50%);
}

.app_upload_status {
  max-width: 223px;
  font-size: 25px;
  color: #8A8A8A;
  word-break: break-all;
  letter-spacing: -0.05em;
}

/* check */
.app_row_check .app_label {
  padding-top: 2px;
}

.app_check {
  display: flex;
  align-items: flex-start;
  gap: 15px;
  cursor: pointer;
  user-select: none;
}

.app_check_input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.app_check_box {
  width: 21px;
  height: 21px;
  border: 2px solid #A6A6A6;
  border-radius: 3px;
  background: #fff;
  position: relative;
  flex: 0 0 auto;
  z-index: 10;
  margin-top: 10px;
}
.app_check_box::before {
  content: "";
  position: absolute;
  top: -10px;
  left: -10px;
  width: 29px;
  height: 29px;
  border: 4px solid #CC4A4A;
  z-index: -1;
}

.app_check_txt {
  font-size: 25px;
}
.app_check_txt a {
  text-decoration: underline;
}

/* checked mark */
.app_check_input:checked + .app_check_box {
  background: #CC4A4A;
}

.app_check_input:checked + .app_check_box::after {
  content: "";
  position: absolute;
  left: 5px;
  top: 1px;
  width: 5px;
  height: 10px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(45deg);
}

/* terms area */
.app_row_terms {
  padding-top: 0;
  border: 1px solid #F1F1F1;
}

.app_terms_body {
  height: 260px;
  overflow: auto;
  padding: 16px 25px;
  font-size: 25px;
}

/* submit */
.app_submit {
  margin-top: 50px;
  display: flex;
  justify-content: center;
}

.app_submit_btn {
  width: 100%;
  max-width: 720px;
  border: none;
  border-radius: 999em;
  font-size: 28px;
  padding: 18px 0;
  font-weight: 700;
  background: #DCDCDC;
  color: #8A8A8A;
  cursor: not-allowed;
  transition: 0.3s ease-in-out;
}

.form_note {
  text-align: center;
  margin: 30px auto 0;
  display: flex;
  justify-content: center;
}

.form_note a {
  text-decoration: underline;
}

/* disabled（初期） */
.app_submit_btn:disabled {
  background: #DCDCDC;
  color: #8A8A8A;
  cursor: not-allowed;
  opacity: 1;
}

/* 有効時（JSで is_active を付与） */
.app_submit_btn.is_active {
  background: #0036BE;
  color: #fff;
  cursor: pointer;
}
.app_submit_btn.is_active:hover {
  opacity: 0.7;
}

/* 入力後 */
.app_input:not([type=date]):not(:placeholder-shown),
.app_textarea:not(:placeholder-shown) {
  background: #EAF4FF;
  border-color: #036ED6;
}

.app_select_input:valid {
  background: #EAF4FF;
  border-color: #036ED6;
}

.app_input.is-filled,
.app_textarea.is-filled {
  background: #EAF4FF;
  border-color: #036ED6;
}

.app_upload_main.is-filled {
  background: #EAF4FF;
  border-color: #036ED6;
}

/* エラー */
.is-error .app_input,
.is-error .app_textarea {
  background: #FFEAEA;
  border-color: #CC4A4A;
}
.is-error .app_select_input {
  background: #FFEAEA;
  border-color: #CC4A4A;
}
.is-error .app_upload_main {
  background: #FFEAEA;
  border-color: #CC4A4A;
}
.is-error .app_upload_status {
  color: #CC4A4A;
}
.is-error .error_txt {
  position: absolute;
  bottom: -1.5em;
  left: 0;
  background: url(../images/ico_error.png) left top 7px no-repeat;
  background-size: 14px;
  padding-left: 20px;
  font-size: 16px;
  color: #CC4A4A;
}

@media screen and (max-width: 1200px) {
  .app_block + .app_block {
    margin-top: 4.17vw;
  }
  .app_block_ttl {
    font-size: 2.5vw;
    margin-bottom: 2.5vw;
  }
  .app_block_sub {
    font-size: 1.67vw;
  }
  .app_row {
    gap: 1vw;
  }
  .app_row + .app_row {
    margin-top: 2.92vw;
  }
  .app_label {
    width: 18.17vw;
    font-size: 2.08vw;
    padding-top: 1.17vw;
  }
  /* input / select / date */
  .app_input,
  .app_textarea,
  .app_select_input {
    padding: 1.25vw 0.83vw;
    font-size: 2.08vw;
    border-radius: 0.83vw;
  }
  .app_input:focus,
  .app_textarea:focus,
  .app_select_input:focus {
    box-shadow: 0 0 0 0.33vw rgba(3, 110, 214, 0.12);
  }
  .app_note {
    font-size: 1.33vw;
  }
  .app_note span {
    font-size: 1.17vw;
  }
  /* select arrow */
  .app_select {
    max-width: 38.83vw;
  }
  .app_select_input {
    padding-right: 4.33vw;
  }
  /* date */
  .app_date {
    max-width: 38.83vw;
  }
  .app_post {
    max-width: 38.83vw;
  }
  /* 3 columns row */
  .app_row_cols3 {
    gap: 1.67vw;
  }
  .app_col {
    width: calc((100% - 3.33vw) / 3);
  }
  .app_row_cols3 .app_label {
    margin-bottom: 0.83vw;
  }
  /* upload block */
  .app_upload_box {
    padding: 3.33vw;
  }
  /* upload */
  .app_upload {
    gap: 1.25vw;
  }
  .app_upload_main {
    max-width: 33.33vw;
    gap: 0.83vw;
    border-radius: 0.83vw;
    padding: 0.67vw 1.25vw;
  }
  .app_upload_btn {
    padding: 0.58vw;
  }
  .app_upload_btn_txt {
    font-size: 2.08vw;
  }
  .app_upload_hint {
    font-size: 1.67vw;
  }
  .app_upload_status {
    max-width: 18.58vw;
    font-size: 2.08vw;
  }
  /* check */
  .app_check {
    gap: 1.25vw;
  }
  .app_check_txt {
    font-size: 2.08vw;
  }
  /* terms area */
  .app_terms_body {
    height: 21.67vw;
    padding: 1.33vw 2.08vw;
    font-size: 2.08vw;
  }
  /* submit */
  .app_submit {
    margin-top: 4.17vw;
  }
  .app_submit_btn {
    max-width: 60vw;
    font-size: 2.33vw;
    padding: 1.33vw 0;
  }
}
@media screen and (max-width: 767px) {
  .app_block + .app_block {
    margin-top: 10.67vw;
  }
  .app_block_ttl {
    font-size: 4.8vw;
    margin-bottom: 4vw;
  }
  .app_block_sub {
    font-size: 4.27vw;
  }
  .app_row {
    display: block;
  }
  .app_row + .app_row {
    margin-top: 6.4vw;
  }
  .app_label {
    width: 100%;
    font-size: 4.27vw;
    padding-top: 0;
    margin-bottom: 10px;
  }
  .app_input,
  .app_textarea,
  .app_select_input {
    padding: 3.2vw 2.67vw;
    font-size: 4.27vw;
    border-radius: 2.67vw;
  }
  .app_note {
    font-size: 3.2vw;
  }
  .app_note span {
    font-size: 3.2vw;
  }
  .app_select_ico {
    right: 2.67vw;
    width: 2.67vw;
    height: 2.67vw;
  }
  .app_select,
  .app_date,
  .app_post {
    max-width: 100%;
  }
  .app_col {
    width: 100%;
  }
  .app_col + .app_col {
    margin-top: 6.4vw;
  }
  .app_upload_box {
    padding: 5.33vw 4.53vw;
  }
  .app_upload {
    display: block;
    gap: 0;
  }
  .app_upload_main {
    max-width: 106.67vw;
    width: 100%;
    border-radius: 2.67vw;
    padding: 2.13vw 4vw;
  }
  .app_upload_btn {
    padding: 1.87vw;
  }
  .app_upload_btn_txt {
    font-size: 4.27vw;
    line-height: 1;
  }
  .app_upload_hint {
    font-size: 4.27vw;
  }
  .app_upload_status {
    display: none;
  }
  .app_row_check .app_label {
    padding-top: 0;
  }
  .app_check {
    padding-left: 1.33vw;
    gap: 4vw;
    margin-top: 1.33vw;
  }
  .app_check_box {
    width: 4.8vw;
    height: 4.8vw;
    margin-top: 1.33vw;
  }
  .app_check_box::before {
    top: -2.13vw;
    left: -2.13vw;
    width: 6.4vw;
    height: 6.4vw;
    border: 0.8vw solid #CC4A4A;
  }
  .app_check_input:checked + .app_check_box::after {
    left: 1.07vw;
    top: 0.27vw;
    width: 1.07vw;
    height: 2.13vw;
  }
  .app_check_txt {
    font-size: 4.27vw;
  }
  .app_note_inline {
    margin-top: 1.33vw;
    padding-left: 9.33vw;
  }
  .app_terms_body {
    height: 26.67vw;
    padding: 2.13vw 3.2vw;
    font-size: 4.27vw;
  }
  .app_submit {
    margin-top: 10.67vw;
  }
  .app_submit_btn {
    width: 100%;
    max-width: 64vw;
    font-size: 6.13vw;
    padding: 2.13vw 0;
    font-weight: 700;
  }
  .form_note {
    margin: 20px auto 0;
    justify-content: flex-start;
  }
  .is-error .error_txt {
    background: url(../images/ico_error.png) left top 0.8vw no-repeat;
    background-size: 3.73vw;
    padding-left: 4.27vw;
    font-size: 3.2vw;
  }
  .is-error .app_upload_btn_txt,
  .is-error .app_upload_hint {
    color: #CC4A4A;
  }
}
/*----------------------------------------------------- */
/*  confirm           */
/*----------------------------------------------------- */
.confirm_ttl {
  font-size: 22px;
  font-weight: 700;
  margin-bottom: 10px;
}
.confirm_ttl span {
  background: #E9E9E9;
  padding: 0 20px;
}

.confirm_table {
  width: 100%;
}
.confirm_table tr {
  border-bottom: 1px solid #D6D6D6;
}
.confirm_table th {
  width: 25%;
  padding: 12px 20px;
  font-size: 18px;
  font-weight: 500;
  text-align: right;
}
.confirm_table td {
  width: 75%;
  padding: 12px 20px;
  font-size: 18px;
}

.confirm_btn_list {
  max-width: 690px;
  margin: 50px auto 0;
  display: flex;
  justify-content: space-between;
}
.confirm_btn_list li:nth-child(1) {
  width: 31%;
}
.confirm_btn_list li:nth-child(2) {
  width: 62%;
}

.confirm_btn {
  display: block;
  width: 100%;
  border-radius: 999em;
  font-size: 28px;
  text-align: center;
  padding: 16px 0;
  font-weight: 700;
  background: #8A8A8A;
  color: #fff;
  transition: 0.3s ease-in-out;
}
.confirm_btn:hover {
  opacity: 0.7;
}

@media screen and (max-width: 767px) {
  .confirm_ttl {
    font-size: 4.8vw;
    margin-bottom: 2.67vw;
  }
  .confirm_ttl span {
    padding: 0 5.33vw;
  }
  .confirm_table {
    width: 100%;
  }
  .confirm_table th {
    width: 35%;
    padding: 2.13vw 2.67vw 2.13vw 0;
    font-size: 4.27vw;
  }
  .confirm_table td {
    width: 65%;
    padding: 2.13vw 0 2.13vw 2.67vw;
    font-size: 4.27vw;
  }
  .confirm_btn_list {
    margin: 8vw auto 0;
    display: block;
  }
  .confirm_btn_list li:nth-child(1) {
    width: 60%;
    margin: 0 auto 5.33vw;
  }
  .confirm_btn_list li:nth-child(2) {
    width: 100%;
    text-align: center;
  }
  .confirm_btn {
    font-size: 6.13vw;
    padding: 1.5vw 0;
  }
}
/*----------------------------------------------------- */
/*  thanks           */
/*----------------------------------------------------- */
.thanks_box {
  text-align: center;
}

.thanks_logo {
  max-width: 330px;
  margin: 0 auto 10px;
}

.thanks_ttl {
  font-size: 24px;
  margin-bottom: 30px;
}

.thanks_link {
  display: block;
  max-width: 500px;
  border-top: 2px solid #013AC1;
  padding-top: 30px;
  font-size: 30px;
  font-weight: 700;
  margin: 0 auto 10px;
}

.thanks_txt {
  font-size: 20px;
  margin-bottom: 10px;
}

.thanks_note {
  font-size: 18px;
}

.thanks_btn {
  max-width: 620px;
  margin: 70px auto 0;
}
.thanks_btn a {
  display: block;
  width: 100%;
  border-radius: 999em;
  font-size: 28px;
  text-align: center;
  padding: 16px 0;
  font-weight: 700;
  background: #0036BE;
  color: #fff;
  transition: 0.3s ease-in-out;
}
.thanks_btn a:hover {
  opacity: 0.7;
}

@media screen and (max-width: 767px) {
  .thanks_logo {
    max-width: 70%;
  }
  .thanks_ttl {
    font-size: 5.33vw;
    margin-bottom: 5.33vw;
  }
  .thanks_link {
    padding-top: 5.33vw;
    font-size: 6.4vw;
  }
  .thanks_txt {
    font-size: 4.8vw;
  }
  .thanks_note {
    font-size: 4.27vw;
  }
  .thanks_btn {
    max-width: 165.33vw;
    margin: 13.33vw auto 0;
  }
  .thanks_btn a {
    font-size: 6.13vw;
    padding: 2.13vw 0;
  }
}
/*----------------------------------------------------- */
/*  company           */
/*----------------------------------------------------- */
.company {
  padding: 120px 0;
}

.company_table {
  max-width: 1000px;
  margin: 0 auto;
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}
.company_table tr {
  border-top: 2px solid #D1D1D1;
}
.company_table th,
.company_table td {
  padding: 45px 20px;
  font-size: 24px;
}
.company_table th {
  width: 28%;
  color: #036ED6;
  vertical-align: middle;
  font-weight: 700;
  position: relative;
  word-break: keep-all;
}
.company_table th::after {
  content: "";
  position: absolute;
  left: 0;
  top: -2px;
  width: 100%;
  height: 2px;
  background: #036ED6;
}
.company_table td {
  width: 72%;
}

@media screen and (max-width: 767px) {
  .company {
    padding: 16vw 0;
  }
  .company_table th,
  .company_table td {
    padding: 5.33vw 2.67vw;
    font-size: 4.27vw;
  }
}
/*----------------------------------------------------- */
/*  tokutei           */
/*----------------------------------------------------- */
.tokutei {
  padding: 120px 0;
}

.tokutei_table {
  max-width: 1000px;
  margin: 0 auto;
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  border-top: 2px solid #C2C2C2;
}
.tokutei_table th,
.tokutei_table td {
  border-bottom: 2px solid #C2C2C2;
  padding: 45px 20px;
  font-size: 24px;
}
.tokutei_table th {
  width: 28%;
  background: #F6F6F6;
  vertical-align: middle;
  font-weight: 700;
  color: #333;
}
.tokutei_table td {
  width: 72%;
}

.tokutei_ttl {
  margin: 70px 0;
  text-align: center;
  font-size: 40px;
  font-weight: 700;
  color: #036ED6;
}

@media screen and (max-width: 767px) {
  .tokutei {
    padding: 16vw 0;
  }
  .tokutei_table th,
  .tokutei_table td {
    padding: 5.33vw 2.67vw;
    font-size: 4.27vw;
  }
  .tokutei_ttl {
    margin: 8vw 0;
    font-size: 5.33vw;
  }
}
/*----------------------------------------------------- */
/*  policy           */
/*----------------------------------------------------- */
.policy {
  padding: 120px 0;
}
.policy p {
  font-size: 24px;
  margin-bottom: 70px;
}
.policy .inner {
  max-width: 1000px;
}
.policy h3 {
  font-size: 38px;
  font-weight: 700;
  color: #036ED6;
}
.policy h4 {
  font-size: 32px;
  font-weight: 700;
  color: #036ED6;
}
.policy .ttl {
  font-size: 26px;
  font-weight: 700;
  margin-bottom: 0;
}
.policy .policy_txt02 {
  text-align: right;
  margin-bottom: 70px;
}
.policy .policy_note {
  font-size: 20px;
}

.policy_list {
  margin-bottom: 70px;
  position: relative;
  margin-left: 1em;
  text-indent: -1em;
}
.policy_list li::before {
  content: "・";
}

@media screen and (max-width: 767px) {
  .policy {
    padding: 16vw 0;
  }
  .policy p {
    font-size: 4.27vw;
    margin-bottom: 8vw;
  }
  .policy h3 {
    font-size: 5.33vw;
  }
  .policy h4 {
    font-size: 4.8vw;
  }
  .policy .ttl {
    font-size: 4.27vw;
  }
  .policy .policy_txt02 {
    margin-bottom: 8vw;
  }
  .policy .policy_note {
    font-size: 3.73vw;
  }
  .policy_list {
    margin-bottom: 8vw;
  }
}

.error_txt {
  display: none;
}

.is-error .app_check_box {
  border: 2px solid #CC4A4A !important;
  background: #FFEAEA;
}

.is-error .error_txt {
  display: block !important;
}

.app_field {
  position: relative;
}


/*----------------------------------------------------- */
/*  request           */
/*----------------------------------------------------- */
.main_request {
  background: #F4F4F4;
}

.request {
  padding: 120px 0;
}

.request .inner {
  max-width: 900px;
}

.request_wrap {
  display: flex;
  justify-content: space-between;
}

.request_contents {
  width: 42%;
}
.request_contents h3 {
  font-size: 24px;
  font-weight: 700;
  text-align: center;
  margin-bottom: 30px;
}
.request_contents h3 span {
  display: inline-block;
  position: relative;
}
.request_contents h3 span::before {
  content: "";
  position: absolute;
  left: -30px;
  top: calc(50% - 28px);
  width: 3px;
  height: 56px;
  transform: rotate(-30deg);
  background: #333;
}
.request_contents h3 span::after {
  content: "";
  position: absolute;
  right: -30px;
  top: calc(50% - 28px);
  width: 3px;
  height: 56px;
  transform: rotate(30deg);
  background: #333;
}

.request_list {
  margin-top: 70px;
  position: relative;
  background: #fff;
  border: 3px solid #036ED6;
  border-radius: 0 20px 20px 20px;
  padding: 25px 35px;
}
.request_list h4 {
  position: absolute;
  top: -40px;
  left: -3px;
  background: #036ED6;
  color: #fff;
  font-size: 24px;
  font-weight: 700;
  padding: 0 20px;
  border-radius: 10px 10px 0 0;
}
.request_list ul li {
  padding-left: 33px;
  background: url(../images/ico_check.png) left top 10px no-repeat;
  background-size: 23px;
  font-size: 24px;
  font-weight: 700;
}
.request_list ul li + li {
  margin-top: 10px;
}

.request_form {
  width: 52%;
  background: #fff;
  border-radius: 30px;
  padding: 50px 40px;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.15);
}

.app_wrap {
  margin-bottom: 10px;
}
.app_wrap .app_label {
  width: 100%;
  margin-bottom: 10px;
  font-size: 18px;
}

.app_req02 {
  font-size: 16px;
  color: #CC4A4A;
  border: 1px solid #CC4A4A;
  border-radius: 20px;
  padding: 2px 10px;
  vertical-align: baseline;
  margin-right: 10px;
}

.request_check {
  margin-top: 30px;
  margin-left: 8px;
}

.request_check .app_check_txt {
  font-size: 18px;
  padding-top: 5px;
}

.app_submit_request {
  max-width: 420px;
  margin: 50px auto 0;
}

#document-form {
  scroll-margin-top: 100px;
}

@media screen and (max-width: 767px) {
  .request {
    padding: 16vw 0;
  }
  .request_wrap {
    margin-top: -20px;
    display: block;
  }
  .request_contents {
    width: 100%;
    margin-bottom: 8vw;
  }
  .request_contents h3 {
    font-size: 4.8vw;
    margin-bottom: 5.3vw;
  }
  .request_contents h3 span::before {
    top: calc(50% - 5.6vw);
    width: 0.53vw;
    height: 11.2vw;
  }
  .request_contents h3 span::after {
    top: calc(50% - 5.6vw);
    width: 0.53vw;
    height: 11.2vw;
  }
  .request_list {
    margin-top: 13.3vw;
    padding: 5.3vw 5.3vw;
    border-radius: 0 10px 10px 10px;
  }
  .request_list h4 {
    top: -8vw;
    left: -0.8vw;
    font-size: 4.8vw;
  }
  .request_list ul li {
    padding-left: 8vw;
    background: url(../images/ico_check.png) left top 1.3vw no-repeat;
    background-size: 5.3vw;
    font-size: 4.8vw;
  }
  .request_list ul li + li {
    margin-top: 2.7vw;
  }
  .request_form {
    width: 100%;
    border-radius: 5.3vw;
    padding: 8vw 5.3vw;
  }
  .app_wrap {
    margin-bottom: 2.7vw;
  }
  .app_wrap .app_label {
    width: 100%;
    margin-bottom: 2.7vw;
    font-size: 4.8vw;
  }
  .app_req02 {
    font-size: 3.7vw;
  }
  .request_check {
    margin-top: 8vw;
    margin-left: 2.1vw;
  }
  .request_check .app_check_txt {
    font-size: 4.2vw;
    padding-top: 0;
  }
  .app_submit_request {
    max-width: 100%;
    margin: 8vw auto 0;
  }
  .app_submit_request .app_submit_btn {
    max-width: 100%;
    font-size: 5.5vw;
  }
}
