/* ==============================

Common

============================== */
/* ==============================

SP Setting

============================== */
.contact_read {
  text-align: center;
  padding: 0 0 2em;
}
@media screen and (min-width: 768px) {
  .contact_read {
    padding: 2.5em 0 4em;
  }
}

.contactForm {
  background: url(../img/line_horizontal_sp.svg) no-repeat 50% 0/96vw 0.2vw;
}
@media screen and (min-width: 768px) {
  .contactForm {
    background: url(../img/line_horizontal_pc.svg) no-repeat 0 0/1440px 1.4px;
  }
}

.contactForm_item {
  background: url(../img/line_horizontal_sp.svg) no-repeat 50% 100%/96vw 0.2vw;
  padding: 1em 5.0666666667vw 1.5em;
  display: flex;
  flex-wrap: wrap;
}
@media screen and (min-width: 768px) {
  .contactForm_item {
    background: url(../img/line_horizontal_pc.svg) no-repeat 0 100%/1440px 1.4px;
    padding: 2.5em 0;
    box-sizing: content-box;
  }
}

.contactForm_name {
  font-weight: normal;
  width: 100%;
  padding: 0 0 0.5em;
}
@media screen and (min-width: 768px) {
  .contactForm_name {
    width: 13em;
    padding: 0.6em 0;
    align-items: flex-start;
  }
}

.contactForm_val {
  width: 100%;
}
@media screen and (min-width: 768px) {
  .contactForm_val {
    width: calc(100% - 13em);
  }
}
.contact_confirm .contactForm_val {
  padding: 0.6rem 0;
}

.contactForm_inputBox {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-start;
}
.contactForm_inputBox + .contactForm_inputBox {
  margin-top: 1.5em;
}

.contactForm_required {
  align-items: center;
  justify-content: center;
  width: calc(3em + 3vw);
  background: #000;
  color: #fff;
  font-size: 2.8vw;
  padding: 0.8em 1.5vw;
  line-height: 1;
  letter-spacing: normal;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .contactForm_required {
    font-size: 1.6rem;
    width: 3em;
    padding: 1em 0.4em;
  }
}

.contactForm_input {
  width: 100%;
  padding: 0.6vw 0 0.6vw 2.5vw;
}
@media screen and (min-width: 768px) {
  .contactForm_input {
    padding: 0 0 0 1em;
  }
}
.contactForm_inputBox.text .contactForm_input {
  padding: 0;
  align-self: stretch;
  display: flex;
  width: 100%;
}
.contactForm_required + .contactForm_input {
  width: calc(100% - 3em + 3vw);
}
@media screen and (min-width: 768px) {
  .contactForm_required + .contactForm_input {
    width: calc(100% - 3em);
  }
}

.wpcf7-form-control-wrap {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
}

.contactForm_ex {
  padding: 0.6vw 0 1.5vw;
}
@media screen and (min-width: 768px) {
  .contactForm_ex {
    padding: 0.7em 0;
  }
}

.wpcf7-form-control-wrap {
  display: block;
}
.contactForm_inputBox.text .wpcf7-form-control-wrap {
  display: flex;
  width: 100%;
}

.wpcf7-list-item {
  margin-left: 0 !important;
}

.wpcf7-radio {
  display: block;
}
@media screen and (min-width: 768px) {
  .wpcf7-radio {
    padding: 0.5em 0;
  }
}
.wpcf7-radio input[type=radio] {
  display: none;
}
.wpcf7-radio .wpcf7-list-item-label {
  position: relative;
  display: flex;
  align-items: center;
  line-height: 1;
  padding: 0.3em 0;
  margin: 0 1em 0 0;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
@media screen and (min-width: 768px) {
  .wpcf7-radio .wpcf7-list-item-label {
    padding: 0.5em 0;
  }
}
.wpcf7-radio .wpcf7-list-item-label::before {
  content: "";
  display: block;
  width: calc(1em + 1px);
  height: calc(1em + 1px);
  border: 1px solid #000;
  border-radius: calc(0.5em + 1px);
  background: #000;
  transition: all 100ms linear 0ms;
  margin: 0 0.5em 0 0;
  box-shadow: inset 0 0 0 0.6em #fff;
  overflow: hidden;
}
.wpcf7-radio input[type=radio]:checked + .wpcf7-list-item-label::before {
  box-shadow: inset 0 0 0 0.15em #fff;
}

.wpcf7-text {
  background: #e6e6e6;
  width: 100%;
  padding: 1.2vw 0.8em;
  outline: none;
}
@media screen and (min-width: 768px) {
  .wpcf7-text {
    padding: 0.7em 0.8em;
    height: 3em;
  }
}

.wpcf7-textarea {
  background: #e6e6e6;
  width: 100%;
  padding: 1.2vw 0.8em;
  outline: none;
  resize: vertical;
}
@media screen and (min-width: 768px) {
  .wpcf7-textarea {
    padding: 0.6em 0.8em;
  }
}

.contactForm_agree {
  text-align: center;
  padding: 0 5.0666666667vw 2em;
}

.contactForm_agreeText {
  margin: 2em 0 1.5em;
}
@media screen and (min-width: 768px) {
  .contactForm_agreeText {
    margin: 5em 0 2em;
  }
}

.wpcf7-acceptance input[type=checkbox] {
  display: none;
}
.wpcf7-acceptance .wpcf7-list-item-label {
  position: relative;
  display: inline-block;
  padding-left: 1.5em;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.wpcf7-acceptance .wpcf7-list-item-label::before {
  content: "";
  display: block;
  width: 1em;
  height: 1em;
  background: #fff;
  border: 1px solid #000;
  border-radius: 2px;
  position: absolute;
  top: 50%;
  left: 0;
  margin-top: -0.5em;
}
.wpcf7-acceptance .wpcf7-list-item-label::after {
  content: "";
  display: block;
  border-right: 0.15em solid #000;
  border-bottom: 0.15em solid #000;
  width: 0.3em;
  height: 0.6em;
  left: 0.36em;
  margin-top: -0.4em;
  opacity: 0;
  position: absolute;
  top: 50%;
  transform: rotate(45deg) scale(0);
  transition: transform 100ms linear 0ms;
}
.wpcf7-acceptance input[type=checkbox]:checked + .wpcf7-list-item-label::before {
  box-shadow: inset 0 0 0 0.15em #fff;
}
.wpcf7-acceptance input[type=checkbox]:checked + .wpcf7-list-item-label::after {
  opacity: 1;
  transform: rotate(45deg) scale(1);
}

.contactForm_submit {
  display: flex;
  justify-content: center;
}
@media screen and (min-width: 768px) {
  .contactForm_submit {
    margin: 2em 0 0;
  }
}
.contactForm_submit .button {
  margin: 0 0.5em;
}
.contact_confirm .contactForm_submit {
  margin: 2em 0 0;
}
@media screen and (min-width: 768px) {
  .contact_confirm .contactForm_submit {
    margin: 4em 0 0;
  }
}

.button.button_submit::after {
  pointer-events: none;
}
.button.button_submit.disabled {
  opacity: 0.3;
}
@media screen and (min-width: 768px) {
  .button.button_submit.disabled::after {
    animation: none;
    opacity: 1;
    background-image: url(../img/arrow_right_black.svg);
  }
}
.button.button_submit .wpcf7-submit {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  padding: 0 15px;
}
@media screen and (min-width: 768px) {
  .button.button_submit .wpcf7-submit {
    transition: opacity 0.2s ease-in, color 0.2s ease-in, background-color 0.2s ease-in;
  }
  .button.button_submit .wpcf7-submit:hover {
    color: #fff;
    background-color: #000;
  }
  .button.button_submit.disabled .button.button_submit .wpcf7-submit {
    color: #000;
    background-color: #fff;
  }
}

.button.button_prev {
  width: calc(7em + 30px);
  background: #e6e6e6;
  background-image: none;
}
.button.button_prev::after {
  display: none;
}
@media screen and (min-width: 768px) {
  .button.button_prev {
    transition: opacity 0.2s ease-in, color 0.2s ease-in, background-color 0.2s ease-in;
  }
  .button.button_prev:hover {
    color: #fff;
    background-color: #000;
  }
}
.button.button_prev .wpcf7-previous {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  padding: 0 15px;
}

.wpcf7-not-valid-tip {
  display: block;
  padding: 1em 1em 0;
  color: #ff0000;
}

.wpcf7-spinner {
  display: none !important;
}

input.wpcf7-not-valid,
textarea.wpcf7-not-valid {
  background-color: #ffe6e6;
}

.wpcf7-response-output {
  border: none !important;
  padding: 0 !important;
}
.wpcf7-form.invalid .wpcf7-response-output {
  color: #ff0000;
}

.contact_confirm pre {
  font: inherit;
}

.contact_complete {
  text-align: center;
  padding: 0 5.0666666667vw;
}
.contact_complete h2 {
  font-size: 3.8vw;
  padding: 2em 0;
}
@media screen and (min-width: 768px) {
  .contact_complete h2 {
    font-size: 3rem;
    padding: 2em 0 1.5em;
  }
}
.contact_complete p {
  padding: 0 0 2em;
}
.contact_complete .contactInfo {
  border: 1px solid #949494;
  padding: 1.5em 2em;
  margin: 3em 0 5em;
  display: inline-block;
}
.contact_complete .contactInfo_title {
  display: inline-block;
  border-bottom: 2px solid #000;
  padding-bottom: 0.8em;
}
.contact_complete .contactInfo_txt {
  padding: 1em 0 0;
  text-align: left;
  line-height: 1.5;
}
.contact_complete .button {
  margin: 0 auto;
  width: 45vw;
}
@media screen and (min-width: 768px) {
  .contact_complete .button {
    width: 240px;
  }
}