.contact__description {
  text-align: center;
  margin-bottom: 7.5em;
}

.form_title {
  text-align: center;
  margin-bottom: 7.5em;
}

#contact #form form table tbody tr, #confirm tbody tr {
  display: flex;
  justify-content: space-between;
  width: 100%;
  max-width: 900px;
  margin: 0 auto 1.5em;
}
#contact #form form table tbody tr:last-of-type, #confirm tbody tr:last-of-type {
  flex-wrap: wrap;
  margin-bottom: 4.5em;
}
#contact #form form table tbody tr:last-of-type th, #confirm tbody tr:last-of-type th {
  margin-bottom: 0.5em;
}
#contact #form form table tbody tr:last-of-type td, #confirm tbody tr:last-of-type td {
  flex-basis: 100%;
}
#contact #form form table tbody tr th, #confirm tbody tr th {
  flex-basis: 24%;
  padding-top: 0.7em;
  letter-spacing: 0;
}
#contact #form form table tbody tr th div, #confirm tbody tr th div {
  display: flex;
  justify-content: space-between;
}
#contact #form form table tbody tr th div span, #confirm tbody tr th div span {
  display: block;
}
#contact #form form table tbody tr th div .need, #confirm tbody tr th div .need {
  display: block;
  text-align: center;
  font-size: 0.78em;
  width: 3.38em;
  height: 1.6em;
  background-color: #E50000;
  border-radius: 1em;
  color: #fff;
  padding-top: 0.25em;
  margin-top: 0em;
}
#contact #form form table tbody tr td, #confirm tbody tr td {
  flex-basis: 74.5%;
}
#contact #form form table tbody tr td input, #confirm tbody tr td input {
  font-size: 1em;
  width: 100%;
  height: 2.78em;
  border: 0.06em solid #666;
  padding-left: 0.8em;
  font-family: "Zen Kaku Gothic New", sans-serif;
}
#contact #form form table tbody tr td input::placeholder, #confirm tbody tr td input::placeholder {
  color: #d4d2d2;
  font-size: 0.89em;
}
#contact #form form table tbody tr td textarea, #confirm tbody tr td textarea {
  font-size: 1em;
  width: 100%;
  height: 20.5em;
  border: 0.06em solid #666;
  padding: 0.7em 0.8em;
  resize: none;
  font-weight: 400 !important;
  font-family: "Zen Kaku Gothic New", sans-serif;
}
#contact #form form table tbody tr td textarea::placeholder, #confirm tbody tr td textarea::placeholder {
  color: #d4d2d2;
  font-size: 0.89em;
}
#contact #form form table tbody tr td .policy__agree, #confirm tbody tr td .policy__agree {
  padding: 1em 0;
}
#contact #form form table tbody tr td .policy__agree input[type=checkbox], #confirm tbody tr td .policy__agree input[type=checkbox] {
  position: relative;
  width: 1.2em;
  height: 1.2em;
  border: 0.1em solid #000;
  vertical-align: -5px;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  margin-right: 0.8em;
  vertical-align: -0.45em;
}
#contact #form form table tbody tr td .policy__agree input[type=checkbox]:checked:before, #confirm tbody tr td .policy__agree input[type=checkbox]:checked:before {
  position: absolute;
  top: -0.35em;
  left: 0.05em;
  transform: rotate(50deg);
  width: 0.8em;
  height: 0.8em;
  border-right: 0.4em solid #F29600;
  border-bottom: 0.4em solid #F29600;
  content: "";
}
#contact #form form table tbody tr td .policy__agree a, #confirm tbody tr td .policy__agree a {
  text-decoration: underline;
  text-decoration-color: #bbb;
}
#contact #form form table tbody tr .error, #confirm tbody tr .error {
  display: inline-block;
  color: #ea300b;
  margin-top: 3px;
}
#contact #form form table tbody tr .error:before, #confirm tbody tr .error:before {
  content: "\f06a";
  font-family: FontAwesome;
  margin-right: 0.3em;
}
#contact #form form table tbody tr .fukidashi, #confirm tbody tr .fukidashi {
  display: none;
  margin-left: 20px;
  background-color: #a00;
}
#contact #form form table tbody tr .fukidashi:after, #confirm tbody tr .fukidashi:after {
  border-right-color: #a00;
}
#contact #form form table tbody tr:nth-of-type(4) th, #confirm tbody tr:nth-of-type(4) th {
  align-items: flex-start;
  padding-top: 1em;
}

#confirm table {
  width: 100%;
}
#confirm table tbody tr {
  border-bottom: 0.08em solid #bbb;
  display: flex;
  justify-content: space-between;
  width: 100%;
  max-width: 900px;
  margin: 0 auto;
}
#confirm table tbody tr:nth-of-type(1) {
  border-top: 0.08em solid #bbb;
}
#confirm table tbody tr:nth-of-type(4) th {
  padding-top: 2em;
}
#confirm table tbody tr:last-of-type {
  flex-wrap: initial;
}
#confirm table tbody tr:last-of-type th {
  margin-bottom: 0;
}
#confirm table tbody tr:last-of-type td {
  flex-basis: 65%;
}
#confirm table tbody th, #confirm table tbody td {
  padding: 2em 1.6em 2em 0;
  vertical-align: top;
  text-align: left;
  font-weight: normal;
}
#confirm table tbody th {
  flex-basis: 28%;
}
#confirm table tbody td {
  flex-basis: 65%;
}
#confirm table tfoot td {
  text-align: center;
}
#confirm table tfoot td form {
  display: inline-block;
}
#confirm table tfoot td form:nth-of-type(1) {
  margin-right: 1.2em;
}
#confirm table tfoot td form:nth-of-type(2) {
  margin-left: 1.2em;
}

#complete {
  padding: 1.7em 0.83em;
}
#complete .form_title {
  margin-bottom: 2em;
  font-size: 1.67em;
  color: #E50000;
  font-weight: 500;
}
#complete .text {
  font-size: 1em;
  text-align: center;
  margin-bottom: 4.5em;
  line-height: 2.4;
}

@media screen and (max-width: 768px) {
  .contact__description {
    margin-bottom: 3em;
    font-size: 1.15em;
  }
  .form_title {
    margin-bottom: 2.8em;
    font-size: 0.87em;
    line-height: 1.8;
  }
  #contact #form form table tbody, #confirm tbody {
    font-size: 4.4vw;
  }
  #contact #form form table tbody tr, #confirm tbody tr {
    flex-direction: column;
    width: 100%;
    margin: 0 auto 1.2em;
  }
  #contact #form form table tbody tr:last-of-type, #confirm tbody tr:last-of-type {
    margin-bottom: 2.5em;
  }
  #contact #form form table tbody tr:last-of-type th, #confirm tbody tr:last-of-type th {
    margin-bottom: 0em;
  }
  #contact #form form table tbody tr th, #confirm tbody tr th {
    margin-bottom: 0.6em;
  }
  #contact #form form table tbody tr th div, #confirm tbody tr th div {
    width: 80%;
  }
  #contact #form form table tbody tr th div .need, #confirm tbody tr th div .need {
    width: 4.1em;
    height: 1.75em;
  }
  #contact #form form table tbody tr td .policy__agree, #confirm tbody tr td .policy__agree {
    padding: 1em 0 0;
  }
  #contact #form form table tbody tr td textarea, #confirm tbody tr td textarea {
    height: 22em;
  }
  #contact #form form table tbody tr:nth-of-type(3) th, #contact #form form table tbody tr:nth-of-type(4) th, #confirm tbody tr:nth-of-type(3) th, #confirm tbody tr:nth-of-type(4) th {
    margin-bottom: 0.9em;
  }
  #confirm {
    font-size: 4.4vw;
  }
  #confirm table {
    width: 100%;
  }
  #confirm table tbody tr {
    flex-direction: column;
  }
  #confirm table tbody tr:last-of-type th {
    margin-bottom: 0.8em;
  }
  #confirm table tbody tr:last-of-type td {
    flex-basis: 65%;
  }
  #confirm table tbody th {
    padding: 2em 1.6em 0 0;
  }
  #confirm table tbody th div {
    width: 85%;
  }
  #confirm table tbody td {
    padding: 0.3em 1.6em 2em 0;
  }
  #confirm table tfoot td {
    text-align: center;
    display: flex;
    justify-content: space-between;
    gap: 0.6em;
  }
  #confirm table tfoot td form {
    display: inline-block;
    flex-basis: 50%;
  }
  #confirm table tfoot td form:nth-of-type(1) {
    margin-right: 0;
  }
  #confirm table tfoot td form:nth-of-type(2) {
    margin-left: 0;
  }
  #complete {
    font-size: 4.4vw;
    padding: 0em 0em;
  }
  #complete .form_title {
    margin-bottom: 1.5em;
    font-size: 1.3em;
    color: #E50000;
    font-weight: 500;
  }
  #complete .text {
    font-size: 0.9em;
    text-align: center;
    margin-bottom: 3em;
    line-height: 1.9;
  }
}
/* btn
---------------------------------------------------------------- */
.contactbtn {
  background-color: #E50000;
  border-radius: 3em;
  width: 19.5em;
  height: 4em;
  margin: 0 auto;
  display: block;
  text-align: center;
  font-size: 1em;
  font-weight: 500;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  border: none;
  cursor: pointer;
  transition: all 0.3s;
}
.contactbtn input, .contactbtn a {
  width: 100%;
  height: 100%;
  background: none;
  border: none;
  font-size: 1em;
  letter-spacing: 0.1em;
  text-align: center;
  color: #fff;
}
.contactbtn input:hover, .contactbtn a:hover {
  cursor: pointer;
}
.contactbtn a {
  display: block;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-left: 0;
}
.contactbtn::after {
  content: "";
  background: url(../images/top/icon1-1.svg) no-repeat center/contain;
  width: 0.85em;
  height: 0.85em;
  position: absolute;
  right: 1em;
  top: 37%;
}
.contactbtn:hover {
  opacity: 0.7;
}
.contactbtn.contactbtn--back {
  background: none;
  background-color: #fff;
  border: 0.11em solid #E50000;
}
.contactbtn.contactbtn--back input, .contactbtn.contactbtn--back a {
  color: #E50000;
  font-weight: 500;
}
.contactbtn.contactbtn--back::after {
  content: inherit;
}
.contactbtn.contactbtn--back:hover {
  opacity: 0.7;
}
.contactbtn.contactbtn--narrow input, .contactbtn.contactbtn--narrow a {
  letter-spacing: 0;
}

@media screen and (max-width: 1172px) {
  .contactbtn {
    font-size: 1.53vw;
  }
}
@media screen and (max-width: 768px) {
  .contactbtn {
    font-size: 4.4vw;
    width: 100%;
    height: 3.8em;
  }
}