/* FILE: assets/css/page-contact.css */
/* お問い合わせページ（/contact/index.html）固有のスタイル */

/* 右側の会社情報（aside）を削除したため1カラム。
   フォームが横に間延びしないよう読みやすい幅で止め、左寄せにする */
.contact-layout {
  display: grid;
  grid-template-columns: minmax(0, 720px);
  gap: var(--space-lg);
  align-items: start;
}

/* リード文とフォームの間の詰め。
   どちらも .section（上下 6rem）で約192px空いていたため、
   このページだけ間を詰める。.section の共通値は変えない */
.contact-lead {
  padding-bottom: 0;
}

.contact-form-section {
  padding-top: var(--space-lg);
}

.contact-form {
  background-color: var(--color-surface);
  padding: var(--space-lg);
  border-radius: var(--radius-md);
  min-width: 0;
}

.contact-field + .contact-field {
  margin-top: var(--space-md);
}

.contact-field__label {
  display: block;
  font-weight: var(--fw-bold);
  font-size: var(--fs-sm);
  margin-bottom: var(--space-xs);
}

/* 必須マーク */
.contact-field__required {
  display: inline-block;
  margin-left: 0.5em;
  background-color: var(--color-bar);
  color: #FFFFFF;
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
  padding: 0.05em 0.5em;
  vertical-align: 0.1em;
}

.contact-field input[type="text"],
.contact-field input[type="email"],
.contact-field input[type="tel"],
.contact-field select,
.contact-field textarea {
  width: 100%;
  font-family: inherit;
  font-size: var(--fs-base);
  line-height: 1.6;
  color: var(--color-ink);
  background-color: var(--color-bg);
  border: var(--line-width) solid var(--color-line);
  border-radius: var(--radius-sm);
  padding: var(--space-xs) var(--space-sm);
}

.contact-field textarea {
  min-height: 10em;
  resize: vertical;
}

.contact-field__help {
  font-size: var(--fs-xs);
  color: var(--color-muted);
  margin-top: var(--space-xs);
}

/* 同意チェックボックス */
.contact-consent {
  display: flex;
  align-items: flex-start;
  gap: var(--space-xs);
  margin-top: var(--space-lg);
  font-size: var(--fs-sm);
}

.contact-consent input {
  margin-top: 0.4em;
  flex: 0 0 auto;
}

/* 送信ボタン */
.contact-submit {
  font-family: inherit;
  font-size: var(--fs-base);
  border: none;
  cursor: pointer;
  margin-top: var(--space-lg);
  padding: var(--space-sm) var(--space-xl);
}


@media (max-width: 1023px) {
  .contact-layout {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-lg);
  }
}

@media (max-width: 767px) {
  .contact-form {
    padding: var(--space-md);
  }
  .contact-submit {
    width: 100%;
    justify-content: center;
  }
}

/* プライバシーポリシーへの導線。
   同意チェックの文中リンクは小さく見落としやすいので、
   その下に独立した1行のリンクも置いて気づきやすくする */
.contact-privacy-note {
  margin-top: var(--space-sm);
  padding-top: var(--space-sm);
  border-top: var(--line-width) solid var(--color-line);
}

.text-link--block {
  display: inline-block;
  padding-block: var(--space-xs); /* 指で押しやすい高さを確保 */
}

/* ===== 迷惑メール（ロボット）対策の入力欄 =====
   画面には表示しないが、display:none だと無視するロボットがいるため
   画面外へ追い出す方式にする。読み上げソフト向けには aria-hidden で除外済み */
.contact-hp {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* 送信中のボタン */
.contact-submit.is-sending {
  opacity: 0.6;
  pointer-events: none;
}

/* ===== 送信完了ページ / 送信エラー画面 =====
   /contact/thanks/ と send.php のエラー画面で共用する */
.contact-result {
  background-color: var(--color-surface);
  padding: var(--space-lg);
  border-radius: var(--radius-md);
  max-width: 720px;
}

.contact-result__lead {
  font-size: var(--fs-lg);
  font-weight: var(--fw-bold);
  line-height: 1.9;
}

.contact-result__note {
  margin-top: var(--space-md);
  padding-top: var(--space-md);
  border-top: var(--line-width) solid var(--color-line);
  font-size: var(--fs-sm);
  color: var(--color-ink-sub);
}

.contact-result__list {
  margin: 0;
  padding-left: 1.25em;
}

.contact-result__list li + li {
  margin-top: var(--space-xs);
}

.contact-result__actions {
  margin-top: var(--space-lg);
}

.contact-result__back {
  display: inline-block;
  padding: var(--space-sm) var(--space-xl);
  text-decoration: none;
}

.contact-result__mail {
  margin-top: var(--space-md);
  font-size: var(--fs-sm);
  color: var(--color-ink-sub);
}

@media (max-width: 767px) {
  .contact-result {
    padding: var(--space-md);
  }
  .contact-result__back {
    display: block;
    text-align: center;
    padding-inline: var(--space-md);
  }
}
