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

   CONTACT PAGE

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

.form_wrapper {
  display: none;
}
.form_wrapper.active {
  display: block;
}

.op-main--contact {

  background-color: #ffffff;

}



.contact {

  padding: 8rem 0 8rem;

}



.contact .op-container {

  max-width: 124rem;

  padding: 0 2rem;

}



.contact__inner {

  margin: 0 auto;

}



.contact__content .contact__intro {

  margin-bottom: 10rem;

}

.contact__content .contact__intro p {

  font-weight: 400;

  font-size: 1.6rem;

  line-height: 1.8;

  letter-spacing: 0.06em;

  color: #111111;

}

.contact__content .contact__intro small {

  font-weight: 400;

  font-size: 1.2rem;

  line-height: 1.5;

  letter-spacing: 0.06em;

  color: #111111;

}



.contact__content p {

  font-size: 1.6rem;

  letter-spacing: 0.06em;

  line-height: 1.8;

  color: #111;

  margin: 0;

}



/* titres de section "お客様情報" / "ご希望情報" dans le contenu */

.contact__content h2 {

  margin: 4rem 0 5rem;

  font-size: 4.2rem;

  font-weight: 500;

  line-height: 1;

  letter-spacing: 0.12em;

  text-align: center;

  color: #021237;

  position: relative;

}



.contact__content h2::after {

  content: "";

  display: block;

  width: 8rem;

  height: 2px;

  background-color: #113A95;

  margin: 2rem auto 0;

}



/* responsive */

@media (max-width: 768px) {

  .contact {

    padding: 4rem 0 6rem;

  }



  .contact__inner {

    max-width: 100%;

  }



  .contact__content h2 {

    font-size: 1.8rem;

  }

}









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

   CONTACT FORM SKIN (MW WP Form)

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



.contact-form {

  margin-top: 4rem;

  font-size: 1.4rem;

  color: #333;

}



/* titres de bloc "お客様情報" / "ご希望情報" */

.contact-form__section-title {

  margin: 4rem 0 5rem;

  font-size: 2rem;

  font-weight: 700;

  letter-spacing: 0.12em;

  text-align: center;

  color: #021237;

  position: relative;

}



.contact-form__section-title::after {

  content: "";

  display: block;

  width: 8rem;

  height: 2px;

  background-color: #021237;

  margin: 0.8rem auto 0;

}



/* table-like layout */

.contact-form__table {

  border-top: 1px solid #e3e6ee;

  margin-bottom: 8rem;

}



.contact-form__row {

  display: flex;

  border-bottom: 1px solid #e3e6ee;

}



/* colonne de gauche (labels bleu foncé) */

.contact-form__label {

  flex: 0 0 24rem;

  background-color: #021237;

  color: #fff;

  display: flex;

  flex-direction: row;

  justify-content: space-between;

  align-items: flex-start;

  padding: 3rem 2rem;

  text-align: center;

}



.contact-form__label-text {

  font-size: 1.6rem;

  letter-spacing: 0.06em;

  font-weight: 600;

  line-height: 1.8;

  color: #fff;

}



.contact-form__required {

  display: flex;

  align-items: center;

  justify-content: center;

  width: 4.1rem;

  height: 2.1rem;

  font-size: 1.2rem;

  line-height: 1.5;

  font-weight: 600;

  letter-spacing: 0.06em;

  background: #fff;

  color: #113A95;

  margin-top: 0.5rem;

}

.contact-form__required--not {

  background: transparent;

  color: #fff;

  border: 1px solid #fff;

}



/* colonne de droite (champs) */

.contact-form__field {

  flex: 1 1 auto;

  padding: 2rem;

  margin-top: 0.5rem;

  font-size: 1.6rem;

  font-weight: 400;

}



.contact-form__field--inline {

  display: flex;

  flex-wrap: wrap;

  align-items: center;

  gap: 1.2rem;

  font-size: 1.6rem;

  font-weight: 400;

}



/* champs de base */

.contact-form__input,

.contact-form__textarea,

.contact-form__select,

.contact-form input[type="text"],

.contact-form input[type="email"],

.contact-form input[type="tel"],

.contact-form textarea,

.contact-form select {

  width: 100%;

  max-width: 100%;

  padding: 1.4rem 1.4rem;

  border: 1px solid #D5D6D8;

  border-radius: 0.4rem;

  background-color: #F5F5F5;

  font-size: 1.6rem;

  line-height: 1.8;

  letter-spacing: 0.06em;

  font-weight: 400;

  font-family: inherit;

  box-sizing: border-box;

  max-height: 4rem;

}



input[type="text"].contact-form__input--500, 

input[type="tel"].contact-form__input--500 {

  max-width: 50rem;

}



.contact-form select.contact-form__select--140 {

  max-width: 14rem;

  padding: 0 1.4rem;

  height: 4rem;

}



.mwform-radio-field-text {

  color: #111;

  font-weight: 400;

  font-size: 1.6rem;

  line-height: 1.8;

  letter-spacing: 0.06em;

}



.contact-form__textarea {

  min-height: 12rem;

  resize: vertical;

}



/* placeholders gris clair */

.contact-form input::placeholder,

.contact-form textarea::placeholder {

  color: #b5bcc8;

}



/* petites lignes à l’intérieur d’une même field */

.contact-form__field-line {

  margin-bottom: 1.2rem;

  display: flex;

  align-items: center;

  gap: 1rem;

  font-weight: 400;

  font-size: 1.6rem;

  line-height: 1.8;

  letter-spacing: 0.06em;

  color: #111111;

}



.contact-form__field-line:last-child {

  margin-bottom: 0;

}



.contact-form__field-line--flex {

  display: flex;

  align-items: center;

  gap: 0.6rem;

}



.contact-form__field-line--free {

  margin-top: 0.6rem;

}



/* mini label à l’intérieur de la colonne droite */

.contact-form__sub-label {

  display: inline-block;

  min-width: 8.5rem;

  font-weight: 400;

  font-size: 1.6rem;

  line-height: 1.8;

  letter-spacing: 0.06em;

  color: #111111;

}



.explanation-text {

  display: inline-block;

  font-weight: 400;

  font-size: 1.6rem;

  line-height: 1.8;

  letter-spacing: 0.06em;

  color: #111111;

}



.contact-form__field-line--aligntop {

  align-items: flex-start;

}



/* select + unité */

.contact-form__select {

  width: auto;

  min-width: 14rem;

}



.contact-form__tilde {

  padding: 0 0.4rem;

}



.contact-form__unit {

  font-size: 1.3rem;

  color: #555;

}



/* radio / checkbox */

.contact-form__field input[type="radio"],

.contact-form__field input[type="checkbox"] {

  margin-right: 0.4rem;

}

.contact-form__field input[type="radio"] {

  width: 1.8rem;

  height: 1.8rem;

  transform: translateY(0.2rem);

}



/* note sous textarea */

.contact-form__note {

  margin-top: 0.6rem;

  font-size: 1.2rem;

  color: #777;

}



/* bas de formulaire : accord + bouton */

.contact-form__bottom {

  margin-top: -3rem;

  text-align: center;

}



.contact-form__agreement {

  margin-bottom: 2rem;

  width: fit-content;

  margin: auto;

  font-weight: 400;

  font-size: 1.6rem;

  line-height: 1.8;

  letter-spacing: 0.06em;

  color: #111111;

  position: relative;

  left: 2rem;

}

.contact-form__agreement .cbx {

  position: absolute;

  left: -3.5rem;

  top: 0.5rem;

  width: 2rem;

  height: 2rem;

}



.contact-form__privacy-link {

  margin-left: 0.4rem;

  color: #113a95;

  text-decoration: underline;

}



.contact-form__submit-wrap {

  display: flex;

  justify-content: center;

  margin-top: 4.5rem;

}



.contact-form__submit,

.contact-form input.contact-form__submit,

.contact-form__submit-wrap .btn--back {

  display: inline-block;

  min-width: 24rem;

  padding: 1.4rem 3.2rem;

  border: none;

  border-radius: 0;

  background-color: #113a95;

  border: 1px solid #113a95;

  color: #fff;

  font-size: 1.6rem;

  font-weight: 700;

  letter-spacing: 0.12em;

  cursor: pointer;

  max-width: 36rem;

  width: 100%;

  height: 6rem;

  font-weight: 500;

  line-height: 1;

  letter-spacing: 0.06em;

  text-align: center;

  transition: .3s;

}

.contact-form__submit-wrap .btn--back {

  background-color: #fff;

  color: #113A95;

}

.contact-form__submit-wrap .btn--back:hover {

  color: #fff;

  background-color: #113a95;

}



.input-ctn {

  max-width: 36rem;

  width: 100%;

  position: relative;

  z-index: 15;

  display: flex;

  gap: 5rem;

  justify-content: center;

}

.input-ctn:has(.btn--back) {

  max-width: 72rem;

}



.input-ctn::before {

  content: "";

  background: url(../../assets/img/common/chevron_right_white.svg) no-repeat;

  background-size: contain;

  width: 0.7rem;

  height: 1.4rem;

  position: absolute;

  inset: 50% 3rem auto auto;

  transform: translateY(-50%);

  transition: .3s;

}



.contact-form__bottom .input-ctn .contact-form__submit:hover {

  background-color: #fff;

  color: #113a95;

  border: 1px solid #113a95;

}



.mw_wp_form .error {

  color: #ff0000;

  font-size: 1.6rem;

  font-weight: 500;

  /* position: absolute;

  left: 2rem;

  top: 3rem; */

}

.mw_wp_form_confirm .contact-form__note {

  display: none;

}

.mw_wp_form_confirm .contact-form__field-line--aligntop {

  display: none;

}

.mw_wp_form_confirm br {

  display: none;

}

.mw_wp_form:has(.error) .contact-form__field-line,

.mw_wp_form:has(.error) .contact-form__field {

  /* position: relative;

  margin-bottom: 5rem; */

}

.contact-form__field-line:has([name="area_1"] + .error),

.contact-form__field-line:has([name="area_2"] + .error),

.contact-form__field-line:has([name="size_free"] + .error) {

    display: grid;

    grid-template-columns: 8rem 1fr;

}

input[name="area_1"] + .error,

input[name="area_2"] + .error,

input[name="size_free"] + .error {

  grid-column: 2;

}





/* ---------- Responsive ---------- */



@media (max-width: 768px) {

  .contact-form__row {

    flex-direction: column;

  }



  .contact-form__label {

    flex-basis: auto;

    width: 100%;

    align-items: flex-start;

    padding: 0.8rem 1.6rem;

    text-align: left;

  }



  .contact-form__field {

    padding: 1.2rem 1.6rem 1.6rem;

  }



  .contact-form__select {

    min-width: 0;

    width: 100%;

  }



  .contact-form__field-line--flex {

    flex-direction: column;

    align-items: flex-start;

  }



  .contact-form__sub-label {

    margin-bottom: 0.2rem;

  }



  .contact-form__submit,

  .contact-form input.contact-form__submit {

    width: 100%;

  }

  .input-ctn {

    max-width: 36rem;

    width: 100%;

    position: relative;

    z-index: 15;

    display: flex;

    gap: 2rem;

    justify-content: center;

    flex-direction: column;

    align-items: center;

  }

  .input-ctn:has(.btn--back) {

    max-width: 72rem;

  }



  .contact {

    padding: 0rem 0 5rem;

  }



  .contact-form__field-line.contact-form__field-line--flex div:has(.next){

    display: flex;

    width: 100%;

    align-items: center;

    gap: 0.6rem;

  }

}



@media (max-width:431px) {

  .mw_wp_form .horizontal-item + .horizontal-item + .horizontal-item {

    margin-left: 0;

  }

}