@charset "UTF-8";
/* ================================================
   お問い合わせページ専用スタイル
   対象テンプレート: page-contact.php (#CONTACT)
   ※このファイルは直接編集します（SCSSからは生成しません）
   ※ベースデザイン（base-contact.html）のpx指定を
     サイト共通のrem（1rem = 10px 相当）へ換算しています
   ================================================ */
/* ----------------------------
    セクション
---------------------------- */
#CONTACT .sec--contact {
  padding-bottom: 13.8rem;
}
@media only screen and (max-width: 767px) {
  #CONTACT .sec--contact {
    padding-bottom: 9.6rem;
  }
}
#CONTACT + .cta {
  margin-top: 0;
}

/* 前文・注意書き ------------------------------ */
#CONTACT .sec--contact .sec__title__outer {
  width: 100%; /* 共通の width:max-content / text-align:center を解除 */
  text-align: left;
}
@media only screen and (max-width: 767px) {
  #CONTACT .sec--contact .sec__title__outer {
    width: calc(100% - 6rem); /* .inner と同じ左右余白 */
  }
}
#CONTACT .sec--contact .text {
  width: 100%;
  max-width: 77.2rem;
  margin: 0 auto;
}
#CONTACT .sec--contact .text p {
  font-size: 1.6rem;
  line-height: 1.8125;
}
#CONTACT .sec--contact .text .note {
  font-size: 1.4rem;
  font-weight: 400;
  color: #000;
  margin-top: 1.6rem;
}
/* ----------------------------
    一覧ページ
---------------------------- */
#CONTACT{
  .contact--view{
    padding-top: 8rem;
  }
  .list--contact{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8rem 4rem;
    margin: 8rem 0;
    @media (max-width: 767px){
    grid-template-columns: 1fr;
    }
    .list--contact__item{
      display: flex;
      flex-direction: column;
      gap: 2rem;
    }
    .sub__title{
      font-size: 2.2rem;
      font-weight: 700;
      border-bottom: 1px solid #dcdcdc;
    }
    .contact__grid__box{
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 2rem;
      margin-top: auto;
      @media (max-width: 767px){
        grid-template-columns: 1fr;
      }
    }
    .tel__box{
      border: 1px solid #dcdcdc;
      padding: 1.5rem 0;
      text-align: center;
      .tel{
        font-size: 2.3rem;
        font-weight: 700;
      }
    }
    .list--contact__link{
      display: flex;
      justify-content: center;
      align-items: center;
      background-color: #2e2e2e;
      color: #fff;
      padding: 1rem;
    }
  }

}
/* ----------------------------
    フォーム共通
---------------------------- */
#CONTACT .form__wrap {
  width: 100%;
  max-width: 77.2rem;
  margin: 0 auto;
  font-weight: 400;
  font-size: 1.6rem;
  line-height: 1.8125;
  letter-spacing: 0;
  color: #000;
}
@media only screen and (max-width: 767px) {
  #CONTACT .form__wrap {
    max-width: none;
  }
}

/* ステップ ------------------------------ */
#CONTACT .form__step {
  display: flex;
  width: 41.5rem;
  height: 7.1rem;
  margin: 6.4rem auto;
  padding: 0;
  list-style: none;
}
@media only screen and (max-width: 767px) {
  #CONTACT .form__step {
    width: 100%;
    max-width: 41.5rem;
  }
}
#CONTACT .form__step__item {
  position: relative;
  flex: 1 1 0;
  text-align: center;
  font-weight: 700;
  color: #999;
}
#CONTACT .form__step__item::before { /* 円と円をつなぐ線 */
  content: "";
  position: absolute;
  top: 2rem;
  right: 50%;
  width: 100%;
  height: 1px;
  background: #DDD;
}
#CONTACT .form__step__item:first-child::before {
  display: none;
}
#CONTACT .form__step__item .num {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 4rem;
  height: 4rem;
  margin: 0 auto 0.8rem;
  border-radius: 50%;
  background: #F5F5F5;
  font-size: 1.6rem;
  line-height: 1;
}
#CONTACT .form__step__item .label {
  display: block;
  font-size: 1.6rem;
  line-height: 1.4375;
}
#CONTACT .form__step__item.is-current {
  color: #000;
}
#CONTACT .form__step__item.is-current .num {
  background: #333;
  color: #fff;
}

/* 行 ------------------------------------ */
#CONTACT .form__row {
  margin-bottom: 3.2rem;
}
#CONTACT .form__row:last-of-type {
  margin-bottom: 0;
}
#CONTACT .form__label {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  margin-bottom: 1rem;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.6;
}
#CONTACT .form__label .req { /* 必須バッジ 34×20 */
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.4rem;
  height: 2rem;
  padding: 0.4rem 0.5rem;
  border-radius: 0.2rem;
  background: #DF0000;
  color: #fff;
  font-size: 1.2rem;
  font-weight: 400;
  line-height: 1;
}

/* 入力欄 -------------------------------- */
#CONTACT .form__input,
#CONTACT .form__textarea,
#CONTACT .form__select select {
  display: block;
  width: 100%;
  border: 1px solid #888;
  border-radius: 0.4rem;
  background: #fff;
  font-family: inherit;
  font-size: 1.6rem;
  color: #000;
  transition: border-color 0.2s;
}
#CONTACT .form__input,
#CONTACT .form__select select {
  height: 5rem;
  padding: 1.3rem 1.5rem 1.6rem; /* 枠の外側から文字まで 上14px / 左15px / 下17px */
  line-height: 1.9rem;
}
#CONTACT .form__textarea {
  min-height: 20rem;
  padding: 1.3rem 1.5rem 1.6rem;
  line-height: 2.9rem;
  resize: vertical;
}
#CONTACT .form__input::placeholder,
#CONTACT .form__textarea::placeholder {
  color: #BBB;
}
#CONTACT .form__input:focus-visible,
#CONTACT .form__textarea:focus-visible,
#CONTACT .form__select select:focus-visible {
  outline: 2px solid #333;
  outline-offset: 2px;
  border-color: #333;
}

/* コンボボックス ------------------------ */
#CONTACT .form__select {
  position: relative;
  display: block;
  width: 27.2rem;
  max-width: 100%;
}
#CONTACT .form__select select {
  -webkit-appearance: none;
  appearance: none;
  padding-right: 4rem;
  cursor: pointer;
}
#CONTACT .form__select select:invalid {
  color: #BBB;
}
#CONTACT .form__select select option {
  color: #000;
}
#CONTACT .form__select::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 1.8rem;
  width: 0.8rem;
  height: 0.8rem;
  margin-top: -0.6rem;
  border-right: 1px solid #333;
  border-bottom: 1px solid #333;
  transform: rotate(45deg);
  pointer-events: none;
}

/* ラジオ -------------------------------- */
#CONTACT .form__choices {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem 2.4rem;
}
#CONTACT .form__choices label {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  font-size: 1.6rem;
  line-height: 1.8125;
  cursor: pointer;
}
#CONTACT .form__choices input {
  width: 2rem;
  height: 2rem;
  margin: 0;
  accent-color: #333;
  appearance: auto;
  -webkit-appearance: auto;
}

/* reCAPTCHA・同意・送信 ------------------ */
#CONTACT .form__recaptcha {
  display: flex;
  justify-content: center;
  margin-top: 6.4rem;
}
#CONTACT .form__agree {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.8rem;
  margin-top: 2.4rem;
  font-size: 1.4rem;
}
#CONTACT .form__agree input {
  width: 1.6rem;
  height: 1.6rem;
  margin: 0;
  accent-color: #333;
  appearance: auto;
  -webkit-appearance: auto;
}
#CONTACT .form__agree a {
  color: #000;
  text-decoration: underline;
}
#CONTACT .form__submit__outer {
  margin-top: 2.4rem;
  text-align: center;
}
#CONTACT .form__submit,
#CONTACT .form__back {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 25.6rem;
  height: 5rem;
  border-radius: 0;
  font-family: inherit;
  font-size: 1.4rem;
  text-decoration: none;
  cursor: pointer;
  transition: background 0.2s, color 0.2s;
}
#CONTACT .form__submit {
  border: none;
  background: #333; /* ★活性時の色は確認中：確定したら変更 */
  color: #fff;
}
#CONTACT .form__submit:hover {
  background: #000;
}
#CONTACT .form__submit:disabled {
  background: #A0A0A0;
  cursor: not-allowed;
}
#CONTACT .form__back {
  border: 1px solid #888;
  background: #fff;
  color: #000;
}
#CONTACT .form__back:hover {
  background: #F5F5F5;
}
/* 確認画面・完了画面のボタン並び */
#CONTACT .form__btns {
  display: flex;
  justify-content: center;
  gap: 1.6rem;
  margin-top: 6.4rem;
}
@media only screen and (max-width: 767px) {
  #CONTACT .form__submit,
  #CONTACT .form__back {
    width: 100%;
    max-width: 25.6rem;
  }
  #CONTACT .form__btns {
    flex-direction: column-reverse;
    align-items: center;
    gap: 1.2rem;
  }
}

/* ----------------------------
    確認画面（STEP2）
---------------------------- */
#CONTACT .confirm__list {
  margin: 0;
  padding: 0;
}
#CONTACT .confirm__row {
  padding-bottom: 1.6rem;
  margin-bottom: 3.2rem;
  border-bottom: 1px solid #DDD;
}
#CONTACT .confirm__row:last-child {
  margin-bottom: 0;
}
#CONTACT .confirm__label {
  margin: 0 0 1rem;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.6;
}
#CONTACT .confirm__value {
  margin: 0;
  padding: 0 1.5rem;
  font-size: 1.6rem;
  line-height: 1.8125;
  word-break: break-all;
  white-space: pre-wrap;
}
#CONTACT .confirm__value:empty::before {
  content: "—";
  color: #BBB;
}

/* ----------------------------
    完了画面（STEP3）
---------------------------- */
#CONTACT .thanks {
  text-align: center;
}
#CONTACT .thanks__title {
  margin: 0 0 3.2rem;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.8;
}
#CONTACT .thanks__text {
  margin: 0 0 1.6rem;
  font-size: 1.6rem;
  line-height: 1.8125;
}
#CONTACT .thanks__note {
  margin: 3.2rem 0 0;
  font-size: 1.4rem;
  line-height: 1.8125;
  color: #000;
}

/* ----------------------------
    郵便番号＋住所検索（修理窓口）
---------------------------- */
#CONTACT .form__zip {
  display: flex;
  align-items: stretch;
  gap: 1.2rem;
}
#CONTACT .form__zip .form__input {
  width: 27.2rem;
  max-width: 100%;
}
#CONTACT .form__zip__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  flex-shrink: 0;
  height: 5rem;
  padding: 0 1.6rem;
  border: none;
  border-radius: 0.4rem;
  background: #333;
  color: #fff;
  font-family: inherit;
  font-size: 1.4rem;
  line-height: 1.8125; /* line-height:1 だと和文の字面が上に寄るため共通値で上下中央に揃える */
  cursor: pointer;
  transition: background 0.2s;
}
#CONTACT .form__zip__btn:hover {
  background: #000;
}
#CONTACT .form__zip__btn:disabled {
  background: #A0A0A0;
  cursor: not-allowed;
}
#CONTACT .form__zip__icon {
  flex-shrink: 0;
}
#CONTACT .form__zip__error {
  margin-top: 0.8rem;
  font-size: 1.4rem;
  line-height: 1.6;
  color: #DF0000;
}
@media only screen and (max-width: 767px) {
  #CONTACT .form__zip {
    gap: 0.8rem;
  }
  #CONTACT .form__zip .form__input {
    width: auto;
    flex: 1 1 auto;
    min-width: 0;
  }
  #CONTACT .form__zip__btn {
    padding: 0 1.2rem;
  }
}
