/* ------------------------------
   contact
---------------------------------*/
.contact {
  overflow: hidden;
  width: 100%;
}

/* contact__content */
.contact__content {
  margin-top: min(5.89vw, 8.25rem);
}
.contact__inner {
  width: 78.6%;
  margin: auto;
  max-width: calc(90rem + 14.3%);
}
.contact__content-tit {
  font-size: min(2.07vw, 2.9rem);
  line-height: 1.4;
  font-weight: bold;
  color: #fff;
  background-color: #008cd6;
  border-radius: 1.1rem;
  position: relative;
  padding: min(0.71vw, 1rem) 0;
  display: flex;
  justify-content: center;
}
.contact__content-text {
  font-size: min(1.14vw, 1.6rem);
  line-height: 1.9;
  margin-top: min(2.14vw, 3rem);
  text-align: center;
}
.contact__content-tel {
  width: 66.7%;
  margin: min(1.43vw, 2rem) auto 0;
}
.contact__table {
  background-color: #f7f6f2;
  padding: min(5.71vw, 8rem) 0 min(3.57vw, 5rem);
  margin-top: min(1.43vw, 2rem);
}
.contact__privacy {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: min(2.86vw, 4rem);
}
.contact__privacy a {
  font-size: min(1.14vw, 1.6rem);
  line-height: 1.9;
  color: #008cd6;
  text-decoration: underline;
}

/* -----------------------------
    contact_table
 ------------------------------*/
.contact_table {
  width: 76.5%;
  background-color: #f7f6f2;
  margin: 0 auto;
}
.contact_table th {
  vertical-align: middle;
  width: 32%;
}
.contact_table th label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: min(1.14vw, 1.6rem);
  font-weight: bold;
  padding: 0 clamp(1.5rem, 2.29vw, 2em) 0 clamp(1rem, 1.14vw, 1em);
  text-align: left;
}
.contact_table td {
  padding: clamp(1rem, 1.6vw, 1em) 0;
  vertical-align: middle;
  font-size: min(1.14vw, 1.6rem);
}
[class$="__width_full"] input,
[class$="__width_full"] textarea {
  width: 100%;
  padding: 0.5em;
  border: none;
  font-size: min(1.14vw, 1.6rem);
  line-height: 1.5;
}
[class$="__width_full"] input::placeholder {
  font-size: min(1.14vw, 1.6rem);
}

/* 必須タグ */
.contact_table th span {
  font-weight: normal;
  font-size: min(0.79vw, 1.1rem);
  background-color: #fe9927;
  color: white;
  line-height: 2.2;
  width: clamp(3rem, 2.86vw, 4rem);
  margin-left: 0.8rem;
  display: flex;
  justify-content: center;
}

/*  btn */
.submit__btn {
  display: flex;
  margin: min(2.14vw, 3rem) auto 0;
  width: min(34%, 30rem);
  cursor: pointer;
  justify-content: center;
  align-items: center;
  background-color: #fe9927;
  position: relative;
}
.submit__btn input {
  font-size: min(1.14vw, 1.6rem);
  line-height: 1.9;
  font-weight: bold;
  color: #fff;
  padding: min(1.43vw, 2rem) 0;
  background: none;
  border: none;
  outline: none;
  appearance: none;
}
.wpcf7-list-item input[type="checkbox"] {
  width: min(1.285vw, 1.8rem);
  height: min(1.285vw, 1.8rem);
  vertical-align: middle;
}
.wpcf7-list-item-label {
  font-size: min(1.285vw, 1.8rem);
  line-height: 1.5;
  margin: 0.5rem 0 0 0.7rem;
  display: inline-block;
  vertical-align: bottom;
}
.wpcf7-list-item.first {
  margin: 0;
}
.wpcf7-spinner {
  /* display: none; */
  position: absolute;
  right: 0;
  width: min(1.71vw, 2.4rem);
  height: min(1.71vw, 2.4rem);
}

.wpcf7-spinner::before {
  top: min(0.29vw, 0.4rem);
  left: min(0.29vw, 0.4rem);
  width: min(0.57vw, 0.6rem);
  height: min(0.57vw, 0.6rem);
  border: none;
  border-radius: 100%;
  transform-origin: min(0.57vw, 0.8rem) min(0.57vw, 0.8rem);
}

.wpcf7-not-valid-tip {
  display: none;
}
.contact_table__radio .wpcf7-not-valid-tip {
  display: block;
  padding-top: 0.5em;
  color: #dc3232;
  font-size: 1em;
  font-weight: normal;
  display: block;
}
.invalid-feedback {
  padding-top: 0.5em;
  color: #dc3232;
  font-size: 1em;
  font-weight: normal;
  display: block;
}

/* contact_confirm */
.contact--confilm .contact__table {
  padding: min(3.57vw, 5rem) 0 min(3.57vw, 5rem);
}
.contact--confilm .contact_table tr:nth-child(even) {
  background-color: #fff;
}
.contact--confilm .contact__content td {
  padding: clamp(1rem, 1.6vw, 2em) 0;
}
.contact--confilm .contact__content td.contact_table__text-area {
  padding: clamp(1rem, 1.6vw, 1em) 0 0;
}
.contact_table__text-area p {
  line-height: 1.5;
  white-space: pre-wrap;
}

/* contact_thanks */
.contact__thanks-exp {
  font-size: min(1.285vw, 1.8rem);
  line-height: 2;
  text-align: center;
}
.contact__link {
  width: 100%;
  margin: min(2.85vw, 4rem) 0;
  text-align: center;
}
.contact__link a {
  display: inline-block;
  font-size: min(1.14vw, 1.6rem);
  color: #396eb4 !important;
}

/*--------------------------------
    TB用
----------------------------------- */
@media all and (max-width: 960px) {
  .contact__inner {
    width: 90%;
  }
}

/*---------------------------------
    SP用
----------------------------------- */
@media all and (max-width: 530px) {
  /* contact__content */
  .contact__content {
    margin-top: min(10.67vw, 4rem);
  }
  .contact__inner {
    width: 100%;
  }
  .contact__content-tit {
    font-size: min(5.87vw, 2.2rem);
    padding: min(2.67vw, 1rem) 0;
  }
  .contact__content-text {
    font-size: min(3.73vw, 1.4rem);
    width: 85%;
    margin: min(2.67vw, 1rem) auto 0;
    text-align: left;
  }
  .contact__content-tel {
    width: min(100%, 35.5rem);
    margin: min(2.67vw, 1rem) auto 0;
  }
  .contact__table {
    padding: min(10.67vw, 4rem) 0 min(10.67vw, 4rem);
    margin-top: min(2.67vw, 1rem);
  }
  .contact__privacy {
    margin-top: min(6.67vw, 2.5rem);
  }
  .contact__privacy a {
    font-size: min(3.73vw, 1.4rem);
  }

  /* -----------------------------
    contact_table
 ------------------------------*/
  .contact_table {
    width: 90%;
  }
  .contact_table th {
    width: 100%;
    display: block;
  }
  .contact_table th label {
    font-size: min(4.27vw, 1.6rem);
    padding: 0;
  }
  .contact_table td {
    width: 100%;
    display: block;
    padding: min(2.67vw, 1rem) 0 min(5.33vw, 2rem);
    font-size: min(4.27vw, 1.6rem);
  }
  [class$="__width_full"] input,
  [class$="__width_full"] textarea {
    font-size: min(4.27vw, 1.6rem);
  }
  [class$="__width_full"] input::placeholder {
    font-size: min(4.27vw, 1.6rem);
  }
  .contact_table th span {
    font-size: min(3.47vw, 1.3rem);
    width: min(10.67vw, 4rem);
  }
  .wpcf7-list-item input[type="checkbox"] {
    width: min(4.8vw, 1.8rem);
    height: min(4.8vw, 1.8rem);
  }
  .wpcf7-list-item-label {
    font-size: min(4.27vw, 1.6rem);
  }

  /*  btn */
  .submit__btn {
    margin: min(2.67vw, 1rem) auto 0;
    width: min(80%, 25rem);
  }
  .submit__btn input {
    font-size: min(4.27vw, 1.6rem);
    padding: min(4vw, 1.5rem) 0;
  }

  .wpcf7-spinner {
    width: min(5.33vw, 2rem);
    height: min(5.33vw, 2rem);
  }
  .wpcf7-spinner::before {
    top: min(0.88vw, 3.33px);
    left: min(0.88vw, 3.33px);
    width: min(1.33vw, 0.5rem);
    height: min(1.33vw, 0.5rem);
    transform-origin: min(1.78vw, 6.67px) min(1.78vw, 6.67px);
  }

  /* contact_confilm  */
  .contact--confilm .contact__table {
    padding: min(5.33vw, 2rem) 0 min(10.67vw, 4rem);
  }

  .contact--confilm .contact_table tr {
    display: block;
    padding: min(5.33vw, 2rem) min(2.67vw, 1rem) min(2.67vw, 1rem);
  }
  .contact--confilm .submit__btn {
    margin: min(8vw, 3rem) auto 0;
  }

  /* contact_thanks */
  .contact__thanks-exp {
    font-size: min(3.73vw, 1.4rem);
  }
  .contact__link {
    margin: min(8vw, 3rem) 0;
  }
  .contact__link a {
    font-size: min(3.73vw, 1.4rem);
  }
}
