@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Lato:ital,wght@0,100;0,300;0,400;0,700;0,900;1,100;1,300;1,400;1,700;1,900&display=swap'");
/* # =================================================================
# Contact
# ================================================================= */
/* -- contact -- */
.contact {
  width: 100%;
  max-width: 960px;
  margin: 0 auto;
}
.contact__inner {
  padding: 105px 0;
}
.contact__heading {
  font-size: 40px;
  text-align: center;
}
.contact__content {
  margin-top: 100px;
}


/* -- form -- */
.form-item + .form-item {
  margin-top: 25px;
}
.form-item p {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-column-gap: 10px;
     -moz-column-gap: 10px;
          column-gap: 10px;
}
.form-item p:has(.wpcf7-radio) {
  margin-bottom: 40px;
}
.form-item p:has(textarea) {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}
.form-item p:has(.wpcf7-acceptance) {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  margin-top: 40px;
}
.form-item p > *:first-child {
  width: 180px;
  font-size: 18px;
  font-weight: 500;
}
.form-item p > *:not(:first-child) {
  width: calc(100% - 190px);
}
.form-item p .wpcf7-radio {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  row-gap: 16px;
}
.form-item p .wpcf7-radio label {
  position: relative;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  cursor: pointer;
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
.form-item p .wpcf7-radio label::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  display: block;
  width: 22px;
  height: 22px;
  background-color: #fff;
  border-radius: 50%;
}
.form-item p .wpcf7-radio label:has(input:checked)::before {
  border: 2px solid #171c61;
}
.form-item p .wpcf7-radio label:has(input:checked)::after {
  content: "";
  position: absolute;
  left: 4px;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  display: block;
  width: 14px;
  height: 14px;
  background-color: #171c61;
  border-radius: 50%;
}
.form-item p .wpcf7-radio label:hover {
  opacity: 0.6;
}
.form-item p .wpcf7-list-item-label {
  padding-left: 30px;
}
.form-item p .wpcf7-radio input {
  display: none;
}
.form-item p input[type=text],
.form-item p input[type=tel],
.form-item p input[type=email],
.form-item p textarea {
  width: 100%;
  background-color: #fff;
  padding: 16px 20px 17px;
}
.form-item p input[type=text]::-webkit-input-placeholder, .form-item p input[type=tel]::-webkit-input-placeholder, .form-item p input[type=email]::-webkit-input-placeholder, .form-item p textarea::-webkit-input-placeholder {
  color: #b0b2b5;
}
.form-item p input[type=text]::-moz-placeholder, .form-item p input[type=tel]::-moz-placeholder, .form-item p input[type=email]::-moz-placeholder, .form-item p textarea::-moz-placeholder {
  color: #b0b2b5;
}
.form-item p input[type=text]:-ms-input-placeholder, .form-item p input[type=tel]:-ms-input-placeholder, .form-item p input[type=email]:-ms-input-placeholder, .form-item p textarea:-ms-input-placeholder {
  color: #b0b2b5;
}
.form-item p input[type=text]::-ms-input-placeholder, .form-item p input[type=tel]::-ms-input-placeholder, .form-item p input[type=email]::-ms-input-placeholder, .form-item p textarea::-ms-input-placeholder {
  color: #b0b2b5;
}
.form-item p input[type=text]::placeholder,
.form-item p input[type=tel]::placeholder,
.form-item p input[type=email]::placeholder,
.form-item p textarea::placeholder {
  color: #b0b2b5;
}
.form-item p .wpcf7-acceptance {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  row-gap: 12px;
}
.form-item p .wpcf7-acceptance label {
  position: relative;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  cursor: pointer;
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
.form-item p .wpcf7-acceptance label::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  display: block;
  width: 20px;
  height: 20px;
  background-color: #fff;
}
.form-item p .wpcf7-acceptance label:has(input:checked)::before {
  background-color: #171c61;
}
.form-item p .wpcf7-acceptance label:has(input:checked)::after {
  content: "";
  position: absolute;
  left: 3px;
  top: 10px;
  -webkit-transform: translateY(-50%) rotate(-45deg);
          transform: translateY(-50%) rotate(-45deg);
  display: block;
  width: 14px;
  height: 8px;
  border-left: 2px solid #fff;
  border-bottom: 2px solid #fff;
}
.form-item p .wpcf7-acceptance label:hover {
  opacity: 0.6;
}
.form-item p .wpcf7-acceptance input {
  display: none;
}

p:has(.privacy-link) {
  width: 100%;
  margin-top: 10px;
}
p:has(.privacy-link) .privacy-link {
  font-size: 13px;
  color: #363e47;
  text-decoration: underline;
  margin-left: 220px;
}

.form-buttons {
  margin-top: 80px;
}

.confirm-button,
.return-button,
.submit-button {
  width: 100%;
  display: block;
  margin-top: 10px;
}
.confirm-button label,
.return-button button,
.submit-button .wpcf7-submit {
  display: block;
  width: 100%;
  font-size: 18px;
  text-align: center;
  border: 2px solid #171c61;
  padding: 20px;
  cursor: pointer;
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
.confirm-button label,
.submit-button .wpcf7-submit {
  background-color: #171c61;
  color: #fff;
}
.return-button button {
  background-color: #fff;
  color: #171c61;
}

.confirm-button label:hover,
.return-button button:hover,
.submit-button .wpcf7-submit:hover {
  opacity: 0.6;
}

.confirm-button .wpcf7-form-control-wrap,
.confirm-button .wpcf7-form-control-wrap span {
  display: block;
  width: 100%;
  margin: 0;
}
.confirm-button input {
  display: none;
}
.submit-button .wpcf7-submit:disabled {
  pointer-events: none;
}

.wpcf7-not-valid-tip {
  margin: 10px 0 0 20px;
}
.form-item p .wpcf7-list-item {
  margin: 0;
}

@media screen and (max-width: 768px) {
  .contact__heading {
    font-size: 30px;
  }

  .form-item p {
    flex-direction: column;
  }
  .form-item p > *:first-child,
  .form-item p > *:not(:first-child) {
    width: 100%; 
  }
  .form-item p > *:not(:first-child) {
    margin: 15px 0 0 0;
  }
  .form-item p .wpcf7-radio {
    margin-top: 20px;
  }
  .form-item p .wpcf7-acceptance {
    margin-top: 30px;
  }
  p:has(.privacy-link) .privacy-link {
    margin-left: 30px;
  }
}


/* -- 確認画面 -- */
.wpcf7-form-control-wrap:has(.js-write.is-hidden),
.js-confirm-text.is-hidden,
.js-confirm.is-hidden,
.confirm-button.is-hidden {
  display: none!important;
}
.form-item:has(.js-write.is-hidden) + .form-item:has(.js-write.is-hidden) {
  margin-top: 50px;
}
.form-item:has(.js-write.is-hidden) + p>.privacy-link {
  margin-left: 190px;
}
@media screen and (max-width: 768px) {
  .form-item:has(.js-write.is-hidden) + p>.privacy-link {
    margin-left: 0px;
  }
}


/* -- tel-box -- */
.tel-box {
  width: 100%;
  background-color: #ffffff;
  border-radius: 20px;
  margin-top: 70px;
}
.tel-box__inner {
  padding: 70px 20px 55px;
}
.tel-box__heading {
  font-size: 20px;
  font-weight: bold;
  text-align: center;
  line-height: 1.7;
}
.tel-box__button {
  width: 100%;
  max-width: 400px;
  margin: 30px auto;
}