@charset "UTF-8";
.contact-intro__inner {
  padding-top: 10rem;
  line-height: 1.35;
  margin-bottom: 8rem;
}
@media screen and (max-width: 767px) {
  .contact-intro__inner {
    padding-top: 3rem;
    margin-bottom: 4rem;
  }
}

.contact-intro__heading {
  font-size: 3rem;
  margin-bottom: 3rem;
  font-weight: bold;
}
@media screen and (max-width: 767px) {
  .contact-intro__heading {
    font-size: 2rem;
  }
}

.contact-intro__em {
  color: #cb0000;
}

.contact-intro__gold {
  color: #8c8260;
  text-decoration: underline;
  font-weight: bold;
}
.contact-intro__gold:hover {
  opacity: 0.7;
}

.contact-intro__text {
  font-size: 1.8rem;
  margin-bottom: 2rem;
}
@media screen and (max-width: 767px) {
  .contact-intro__text {
    font-size: 1.6rem;
  }
}
.contact-intro__text span {
  font-size: 2.4rem;
  font-weight: bold;
}
@media screen and (max-width: 767px) {
  .contact-intro__text span {
    font-size: 1.8rem;
  }
}
.contact-intro__text:last-child {
  margin-bottom: 0;
}

.contact__title {
  font-weight: bold;
  font-size: 2rem;
  margin-bottom: 2rem;
}
.contact__title span:first-child {
  color: #cb0000;
  font-size: 1.8rem;
}

.contact-form {
  background: #fff;
  padding: 6rem 8rem;
}
@media screen and (max-width: 767px) {
  .contact-form {
    padding: 3rem 1.6rem;
  }
}

/* 見出し（legend） */
.contact-form__legend {
  display: block;
  font-size: 2rem;
  font-weight: 700;
  border-left: 3px solid #8c8260;
  padding-left: 1.4rem;
  margin-bottom: 2rem;
  line-height: 1.4;
}

.contact-form__legend-marker {
  color: #ff0000;
}

/* 行・カラムのレイアウト */
.contact-form__group {
  border: 0;
  padding: 0;
}

.contact-form__rows {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
@media screen and (max-width: 767px) {
  .contact-form__rows {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    margin-bottom: 2rem;
  }
}
.contact-form__rows .contact-form__row {
  width: 50%;
  max-width: 48rem;
}
@media screen and (max-width: 767px) {
  .contact-form__rows .contact-form__row {
    width: 100%;
  }
}

.contact-form__row {
  margin-bottom: 3rem;
}
@media screen and (max-width: 767px) {
  .contact-form__row {
    margin-bottom: 2rem;
  }
}
.contact-form__row:last-child {
  margin-bottom: 0;
}

.contact-form__row--half {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}

/* ラベル */
.contact-form__label {
  display: block;
  font-size: 1.8rem;
  margin-bottom: 8px;
  line-height: 1.4;
}
@media screen and (max-width: 767px) {
  .contact-form__label {
    font-size: 1.6rem;
  }
}
.contact-form__label span {
  color: #ff0000;
}
.contact-form__label small {
  font-size: 1.2rem;
}

.contact-form__req {
  color: #ff0000;
  font-weight: 700;
  margin-left: 0.25em;
}

.contact-form__note {
  font-size: 1.2rem;
  color: inherit;
  opacity: 0.7;
  margin-left: 0.5em;
}

/* ヘルプテキスト（例：法人の場合〜） */
.contact-form__help {
  display: block;
  font-size: 1.2rem; /* 指定どおり */
  line-height: 1.6;
  margin-top: 6px;
  opacity: 0.7;
}

/* ---------- 入力要素の初期化＆上書き ---------- */
/* 共通：テキスト・メール・電話・日付・数字・パスワード */
.contact-form__input,
.contact-form__textarea,
.contact-form__radios input[type=radio],
.contact-form__checks input[type=checkbox] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-color: transparent;
  background-image: none;
  border-radius: 0; /* 角丸を打ち消し */
  -webkit-box-shadow: none;
          box-shadow: none;
  outline: none;
}

/* テキスト入力とテキストエリアのベース */
.contact-form__input,
.contact-form__textarea {
  display: block;
  width: 100%;
  padding: 0.5em 0.6em;
  font: inherit;
  color: inherit;
  background: #f5f5f5;
  border: #f5f5f5 1px solid;
}

/* フォーカス時 */
.contact-form__input:focus,
.contact-form__textarea:focus {
  border: 1px solid rgba(0, 0, 0, 0.32);
}

/* プレースホルダー（濃度0.2） */
.contact-form__input::-webkit-input-placeholder, .contact-form__textarea::-webkit-input-placeholder {
  opacity: 0.2;
}
.contact-form__input::-moz-placeholder, .contact-form__textarea::-moz-placeholder {
  opacity: 0.2;
}
.contact-form__input:-ms-input-placeholder, .contact-form__textarea:-ms-input-placeholder {
  opacity: 0.2;
}
.contact-form__input::-ms-input-placeholder, .contact-form__textarea::-ms-input-placeholder {
  opacity: 0.2;
}
.contact-form__input::placeholder,
.contact-form__textarea::placeholder {
  opacity: 0.2;
}

.contact-form__input::-webkit-input-placeholder,
.contact-form__textarea::-webkit-input-placeholder {
  opacity: 0.2;
}

.contact-form__input::-moz-placeholder,
.contact-form__textarea::-moz-placeholder {
  opacity: 0.2;
}

.contact-form__input:-ms-input-placeholder,
.contact-form__textarea:-ms-input-placeholder {
  opacity: 0.2;
}

/* numberやdateのスピン/カレンダーアイコンなど非表示（必要に応じて） */
input[type=number].contact-form__input::-webkit-outer-spin-button,
input[type=number].contact-form__input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

input[type=number].contact-form__input {
  -moz-appearance: textfield;
}

input[type=date].contact-form__input::-webkit-calendar-picker-indicator {
  opacity: 0.6;
} /* 残す場合 */
/* ---------- チェックボックスのカスタム ---------- */
/* input自体は隠し、隣のspanで見た目を作る（ラベルで囲む前提） */
.contact-form__check input[type=checkbox] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.contact-form__check {
  display: inline-block;
  margin: 0 16px 8px 0;
  position: relative;
  cursor: pointer;
}

.contact-form__check span {
  padding-left: 1.4em;
  display: inline-block;
  line-height: 1.4;
}

/* 枠 */
.contact-form__check span::before {
  content: "";
  position: absolute;
  top: 0.2em;
  left: 0;
  width: 1.1em;
  height: 1.1em;
  border: 1px solid rgba(0, 0, 0, 0.16);
  border-radius: 2px;
  background: #fff;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

/* チェックマーク */
.contact-form__check span::after {
  content: "";
  position: absolute;
  top: 0.35em;
  left: 0.15em;
  width: 0.8em;
  height: 0.45em;
  border-left: 3px solid #8c8260;
  border-bottom: 3px solid #8c8260;
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
  opacity: 0;
  -webkit-transition: opacity 0.2s ease;
  transition: opacity 0.2s ease;
}

/* チェック時表示 */
.contact-form__check input[type=checkbox]:checked + span::after {
  opacity: 1;
}

/* ---------- ラジオボタンのカスタム ---------- */
.contact-form__radio {
  display: inline-block;
  margin: 0 16px 8px 0;
  position: relative;
  cursor: pointer;
}

.contact-form__radio input[type=radio] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.contact-form__radio span {
  padding-left: 1.6em;
  display: inline-block;
  line-height: 1.4;
}

.contact-form__radio span::before {
  content: "";
  position: absolute;
  top: 0.2em;
  left: 0;
  width: 1.1em;
  height: 1.1em;
  border: 1px solid rgba(0, 0, 0, 0.16);
  border-radius: 50%;
  background: #fff;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

.contact-form__radio span::after {
  content: "";
  position: absolute;
  top: 7px;
  left: 4px;
  width: 0.6em;
  height: 0.6em;
  background: #8c8260;
  border-radius: 50%;
  opacity: 0;
  -webkit-transition: opacity 0.2s ease;
  transition: opacity 0.2s ease;
}

.contact-form__radio input[type=radio]:checked + span::after {
  opacity: 1;
}

/* ---------- テキストエリア ---------- */
.contact-form__textarea {
  min-height: 220px;
  resize: vertical;
  line-height: 1.5;
}

/* ---------- 送信ボタン ---------- */
.contact-form__actions {
  text-align: center;
  margin-top: 2rem;
}
@media screen and (max-width: 767px) {
  .contact-form__actions {
    margin-top: 1.6rem;
  }
}

.contact-form__submit {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  display: inline-block;
  border: 1px solid transparent;
  border-radius: 40px;
  padding: 2rem;
  font: inherit;
  font-weight: bold;
  color: #fff;
  background-color: #aaa;
  cursor: pointer;
  max-width: 47rem;
  width: 100%;
  pointer-events: none;
  -webkit-transition: 0.3s;
  transition: 0.3s;
}
.contact-form__submit.active {
  -webkit-transition: 0.3s;
  transition: 0.3s;
  background-color: #8c8260;
  color: #fff;
  pointer-events: auto;
}

.contact-form__back-btn {
  display: inline-block;
  border: 1px solid transparent;
  border-radius: 40px;
  padding: 2rem;
  font: inherit;
  font-weight: bold;
  background-color: #aaa;
  cursor: pointer;
  max-width: 14rem;
  width: 100%;
  color: #fff;
  -webkit-transition: 0.3s;
  transition: 0.3s;
}
@media screen and (max-width: 767px) {
  .contact-form__back-btn {
    max-width: 50rem;
  }
}

.contact-form__send-btn {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  display: inline-block;
  border: 1px solid #8c8260;
  border-radius: 40px;
  padding: 2rem;
  font: inherit;
  font-weight: bold;
  background-color: #8c8260;
  color: #fff;
  cursor: pointer;
  max-width: 32rem;
  width: 100%;
  -webkit-transition: 0.3s;
  transition: 0.3s;
}
@media screen and (max-width: 767px) {
  .contact-form__send-btn {
    max-width: 50rem;
  }
}

/* ---------- 細かな調整 ---------- */
.contact-form__title {
  font-size: 1.8rem;
  font-weight: 700;
  margin-bottom: 12px;
}

.contact-form__note {
  font-size: 1.2rem;
  opacity: 0.7;
}

.contact__note {
  font-size: 1.4rem;
}

/* ====== CF7 チェックボックス ====== */
.wpcf7-form .wpcf7-checkbox .wpcf7-list-item {
  display: inline-block;
  margin: 0 1.6rem 0.8rem 0;
}

.wpcf7-form .wpcf7-checkbox .wpcf7-list-item label {
  position: relative;
  display: inline-block;
  cursor: pointer;
  padding-left: 1.4em; /* ボックス分の余白 */
  line-height: 1.4;
}

/* 入力は隠す */
.wpcf7-form .wpcf7-checkbox .wpcf7-list-item input[type=checkbox] {
  position: absolute;
  opacity: 0;
  inline-size: 0;
  block-size: 0;
}

/* テキスト部分（CF7既定のラベル span） */
.wpcf7-form .wpcf7-checkbox .wpcf7-list-item .wpcf7-list-item-label {
  position: relative;
  display: inline-block;
  padding-left: 0; /* ここは不要 */
}

/* 枠（□） */
.wpcf7-form .wpcf7-checkbox .wpcf7-list-item .wpcf7-list-item-label::before {
  content: "";
  position: absolute;
  inset-block-start: 0.23em;
  inset-inline-start: -1.4em;
  inline-size: 1.1em;
  block-size: 1.1em;
  border: 1px solid rgba(0, 0, 0, 0.16);
  border-radius: 0.2rem;
  background: #fff;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

/* チェックマーク（✓） */
.wpcf7-form .wpcf7-checkbox .wpcf7-list-item .wpcf7-list-item-label::after {
  content: "";
  position: absolute;
  inset-block-start: 0.35em;
  inset-inline-start: -1.25em;
  inline-size: 0.8em;
  block-size: 0.45em;
  -webkit-border-start: 0.3rem solid #8c8260;
          border-inline-start: 0.3rem solid #8c8260;
  -webkit-border-after: 0.3rem solid #8c8260;
          border-block-end: 0.3rem solid #8c8260;
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
  opacity: 0;
  -webkit-transition: opacity 0.2s ease;
  transition: opacity 0.2s ease;
}

/* チェック時に表示 */
.wpcf7-form .wpcf7-checkbox .wpcf7-list-item input[type=checkbox]:checked + .wpcf7-list-item-label::after {
  opacity: 1;
}

/* フォーカス可視化 */
/* ====== CF7 ラジオボタン ====== */
.wpcf7-form .wpcf7-radio .wpcf7-list-item {
  display: inline-block;
  margin: 0 1.6rem 0.8rem 0;
}

.wpcf7-form .wpcf7-radio .wpcf7-list-item label {
  position: relative;
  display: inline-block;
  cursor: pointer;
  padding-left: 1.6em;
  line-height: 1.4;
}

.wpcf7-form .wpcf7-radio .wpcf7-list-item input[type=radio] {
  position: absolute;
  opacity: 0;
  inline-size: 0;
  block-size: 0;
}

.wpcf7-form .wpcf7-radio .wpcf7-list-item .wpcf7-list-item-label {
  position: relative;
  display: inline-block;
}

.wpcf7-form .wpcf7-radio .wpcf7-list-item .wpcf7-list-item-label::before {
  content: "";
  position: absolute;
  inset-block-start: 0.2em;
  inset-inline-start: -1.6em;
  inline-size: 1.1em;
  block-size: 1.1em;
  border: 1px solid rgba(0, 0, 0, 0.16);
  border-radius: 50%;
  background: #fff;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

.wpcf7-form .wpcf7-radio .wpcf7-list-item .wpcf7-list-item-label::after {
  content: "";
  position: absolute;
  inset-block-start: 0.45em;
  inset-inline-start: -1.37em;
  inline-size: 0.6em;
  block-size: 0.6em;
  background: #8c8260;
  border-radius: 50%;
  opacity: 0;
  -webkit-transition: opacity 0.2s ease;
  transition: opacity 0.2s ease;
}

.wpcf7-form .wpcf7-radio .wpcf7-list-item input[type=radio]:checked + .wpcf7-list-item-label::after {
  opacity: 1;
}

/* 初期状態：確認UIを隠す */
#contact-form input.wpcf7-submit,
#contact-form .contact-form__back-btn,
#contact-confirm {
  display: none !important;
}

/* 確認モード中だけ表示切替 */
#contact-form.is-confirm .contact-form__confirm-btn {
  display: none !important;
}

#contact-form.is-confirm .contact-form__back-btn {
  display: inline-block !important;
}

#contact-form.is-confirm #contact-confirm {
  display: block !important;
}

/* 送信ボタン（CF7本体の submit）は常に非表示。確認画面の「この内容で送信する」からJSでクリック */
#contact-form input.wpcf7-submit {
  display: none !important;
}

.contact-confirm__actions {
  margin-top: 3rem;
}
.contact-confirm__actions > p {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 2rem;
}
@media screen and (max-width: 767px) {
  .contact-confirm__actions {
    gap: 1rem;
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
    -webkit-flex-direction: column-reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
  }
}

.contact-confirm__title {
  font-weight: bold;
  font-size: 2rem;
  margin-bottom: 3rem;
}

.contact-confirm__row {
  margin-bottom: 3rem;
}
@media screen and (max-width: 767px) {
  .contact-confirm__row {
    margin-bottom: 2rem;
  }
}

.contact-confirm__term {
  font-size: 1.8rem;
  margin-bottom: 1.2rem;
  font-weight: 500;
  padding: 1rem 1.4rem;
  background: #f5f5f5;
}
@media screen and (max-width: 767px) {
  .contact-confirm__term {
    font-size: 1.6rem;
  }
}

.contact-confirm__desc {
  font-size: 1.6rem;
  line-height: 1.5;
  padding: 0 1.4rem;
}
@media screen and (max-width: 767px) {
  .contact-confirm__desc {
    font-size: 1.4rem;
  }
}

.contact-thanks__inner {
  line-height: 2;
  padding-top: 8rem;
  padding-bottom: 8rem;
}
@media screen and (max-width: 767px) {
  .contact-thanks__inner {
    padding-top: 3rem;
    padding-bottom: 3rem;
  }
}

.contact-thanks__actions {
  text-align: center;
  margin-top: 3rem;
}

/* 初期は確認枠を隠す */
#contact-confirm[hidden] {
  display: none !important;
}

/* 確認モードのとき：#contact-form 直下の要素のうち confirm 以外を全て隠す */
#contact-form.is-confirm > :not(#contact-confirm) {
  display: none !important;
}

/* 確認枠は出す */
#contact-form.is-confirm #contact-confirm {
  display: block !important;
}

/* 念のため：確認枠のボタンは確実に操作可 */
#contact-confirm .contact-form__back-btn,
#contact-confirm .contact-form__send-btn {
  pointer-events: auto;
}

#contact-confirm {
  scroll-margin-top: 12rem;
}

.wpcf7-spinner {
  display: none;
}