@charset "UTF-8";
/* =========================================================
   お問い合わせ（page-contact.php）固有スタイル ＝ 自己完結
   - ヒーロー / パンくず / フォーム枠 / Contact Form 7 コントロール装飾。
   - work-common.css は読み込まない（既存 work/blog への回帰リスク回避）。
   - 透かし／jp／en は親 style.css の .heading をそのまま流用。
   - 重要：CF7 の HTML・クラス・hidden・nonce・送信ボタンは無改変。
     ここでは .contact 名前空間 ＋ .wpcf7-* への CSS だけで見た目を整える。
   - 当テーマは共通リセットで input 等を appearance:none・border/背景なしにしている。
     そのためラジオ／チェックは「青丸／青チェック」をカスタム描画する。
   - コンテナ規約：max-width 1200px / padding-inline 20px(SP)・25px(PC) / BP 768px。
   ========================================================= */

.contact {
  --header-h: 80px;
  background-color: #fff;
}

/* ========================================
   ヒーロー（グレー帯）：共通 .heading を中に配置
   ======================================== */
.contact__hero {
  overflow: hidden; /* 透かし(CONTACT)のはみ出しをクリップ */
  padding-block: 3.5rem;
  background-color: #e6eaeb;
}
@media screen and (min-width: 768px) {
  .contact__hero {
    padding-block: 8rem 3.5rem;
  }
}

.contact__hero-inner {
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: 20px;
}
@media screen and (min-width: 768px) {
  .contact__hero-inner {
    padding-inline: 25px;
  }
}

/* ========================================
   コンテナ / パンくず
   ======================================== */
.contact__inner {
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: 20px;
  padding-bottom: 3.75rem;
}
@media screen and (min-width: 768px) {
  .contact__inner {
    padding-inline: 25px;
    padding-bottom: 6rem;
  }
}

.contact__breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5em;
  padding-block: 1.25rem;
  font-size: 0.8125rem;
  letter-spacing: 0.04em;
  color: #6b7378;
}
.contact__breadcrumb a {
  color: #6b7378;
}
@media (any-hover: hover) {
  .contact__breadcrumb a:hover {
    color: #1178a8;
    opacity: 1;
  }
}
.contact__breadcrumb-sep {
  color: #aab2b6;
}

/* ========================================
   フォーム枠（中央寄せ）
   ======================================== */
.contact__form {
  max-width: 720px;
  margin-inline: auto;
  margin-top: 1rem;
}
@media screen and (min-width: 768px) {
  .contact__form {
    margin-top: 1.5rem;
  }
}

/* CF7 のラッパ余白を整える（.wpcf7 / .screen-reader-response はそのまま） */
.contact .wpcf7 {
  margin: 0;
}

/* ========================================
   フィールド行・ラベル
   - CF7 は <p><label>ラベル<br><span.wrap>…項目…</span></label></p> 構造。
   - 同意チェック／送信ボタンの <p> は直下に label を持たないため別扱い。
   ======================================== */
.contact .wpcf7-form p {
  margin: 0 0 1.5rem;
}
@media screen and (min-width: 768px) {
  .contact .wpcf7-form p {
    margin-bottom: 1.75rem;
  }
}

/* 項目ラベル（フィールドの上） */
.contact .wpcf7-form > p > label {
  display: block;
  font-size: 0.9375rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
  color: #2b2b2b;
}

/* ラベルテキストとコントロールの間隔（<br> の下のコントロール） */
.contact .wpcf7-form-control-wrap {
  display: block;
  margin-top: 0.625rem;
}

/* ========================================
   テキスト / メール / テキストエリア
   ======================================== */
.contact .wpcf7-text,
.contact .wpcf7-email,
.contact .wpcf7-textarea {
  display: block;
  width: 100%;
  padding: 0.9375rem 1.125rem;
  font-family: inherit;
  font-size: 1rem; /* iOS のズーム回避のため 16px 基準 */
  line-height: 1.6;
  color: #2b2b2b;
  background-color: #f5f7f8;
  border: 0.0625rem solid #dfe4e7;
  border-radius: 0.375rem;
  -webkit-appearance: none;
  appearance: none;
  transition: border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
}
.contact .wpcf7-textarea {
  min-height: 9.5rem;
  resize: vertical;
}
.contact .wpcf7-text::placeholder,
.contact .wpcf7-email::placeholder,
.contact .wpcf7-textarea::placeholder {
  color: #9aa3a8;
  opacity: 1;
}
.contact .wpcf7-text:focus,
.contact .wpcf7-email:focus,
.contact .wpcf7-textarea:focus {
  outline: none;
  background-color: #fff;
  border-color: #2193c8;
  box-shadow: 0 0 0 0.1875rem rgba(33, 147, 200, 0.15);
}

/* ========================================
   ラジオ（お問い合わせ種別）：PC=横並び / SP=縦並び
   - リセットで appearance:none のため、青丸をカスタム描画。
   ======================================== */
.contact .wpcf7-radio {
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
}
@media screen and (min-width: 768px) {
  .contact .wpcf7-radio {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 0.75rem 2rem;
  }
}
.contact .wpcf7-radio .wpcf7-list-item {
  margin: 0; /* CF7 既定の margin-left を解除 */
}
.contact .wpcf7-radio .wpcf7-list-item label {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0;
  font-weight: 400; /* 外側の項目ラベル(太字)を継承しない */
  cursor: pointer;
}
.contact .wpcf7-radio input[type="radio"] {
  /* テーマのリセット input[type=radio]{display:none} を打ち消して図形を出す
     （.contact .wpcf7-radio input[type=radio]=詳細度0,3,1 > input[type=radio]=0,1,1） */
  display: inline-block;
  vertical-align: middle;
  flex-shrink: 0;
  width: 1.25rem;
  height: 1.25rem;
  margin: 0;
  background-color: #fff;
  border: 0.125rem solid #c1c8cc;
  border-radius: 50%;
  -webkit-appearance: none;
  appearance: none;
  cursor: pointer;
  transition: border-color 0.2s ease, background 0.2s ease;
}
.contact .wpcf7-radio input[type="radio"]:checked {
  border-color: #2193c8;
  /* 中央に青ドット（::before は input に不可のため radial-gradient で描画） */
  background: radial-gradient(circle at center, #2193c8 0 38%, #fff 44% 100%);
}
.contact .wpcf7-radio input[type="radio"]:focus-visible {
  outline: none;
  box-shadow: 0 0 0 0.1875rem rgba(33, 147, 200, 0.25);
}
.contact .wpcf7-list-item-label {
  font-size: 0.9375rem;
  line-height: 1.5;
  color: #2b2b2b;
}

/* ========================================
   同意チェック（acceptance）：青チェックをカスタム描画
   ======================================== */
.contact .wpcf7-acceptance .wpcf7-list-item {
  margin: 0;
}
.contact .wpcf7-acceptance label {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  margin: 0;
  font-weight: 400;
  cursor: pointer;
}
.contact .wpcf7-acceptance input[type="checkbox"] {
  /* テーマのリセット input[type=checkbox]{display:none} を打ち消して四角を出す */
  display: inline-block;
  vertical-align: middle;
  flex-shrink: 0;
  width: 1.25rem;
  height: 1.25rem;
  margin: 0;
  background-color: #fff;
  border: 0.125rem solid #c1c8cc;
  border-radius: 0.25rem;
  -webkit-appearance: none;
  appearance: none;
  cursor: pointer;
  transition: border-color 0.2s ease, background-color 0.2s ease;
}
.contact .wpcf7-acceptance input[type="checkbox"]:checked {
  border-color: #2193c8;
  background-color: #2193c8;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M3 8.5l3.2 3.2L13 4.8' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 0.875rem;
}
.contact .wpcf7-acceptance input[type="checkbox"]:focus-visible {
  outline: none;
  box-shadow: 0 0 0 0.1875rem rgba(33, 147, 200, 0.25);
}

/* ========================================
   送信ボタン（フラットな青・中央寄せ）
   ======================================== */
.contact .wpcf7-submit {
  display: block;
  width: 100%;
  max-width: 28rem;
  margin: 2.5rem auto 0;
  padding: 1.0625rem 1.5rem;
  font-family: inherit;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #fff;
  background-color: #2188bd;
  border: 0;
  border-radius: 0.375rem;
  -webkit-appearance: none;
  appearance: none;
  cursor: pointer;
  transition: background-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}
@media (any-hover: hover) {
  .contact .wpcf7-submit:hover {
    background-color: #1178a8;
    box-shadow: 0 0.5rem 1rem rgba(17, 120, 168, 0.25);
    transform: translateY(-0.125rem);
    opacity: 1;
  }
}
.contact .wpcf7-submit:disabled {
  opacity: 0.6;
  cursor: default;
  transform: none;
  box-shadow: none;
}
/* 送信中スピナー（CF7 が submit の隣に出力）を中央に */
.contact .wpcf7-spinner {
  display: block;
  margin: 1rem auto 0;
}

/* ========================================
   バリデーション / 送信結果メッセージ
   ======================================== */
.contact .wpcf7-form-control.wpcf7-not-valid {
  border-color: #e0526a;
  background-color: #fdf3f4;
}
.contact .wpcf7-not-valid-tip {
  margin-top: 0.375rem;
  font-size: 0.8125rem;
  font-weight: 400;
  color: #e0526a;
}
/* 結果メッセージ：初期(空・aria-hidden)は枠なし。状態クラスのときだけ表示 */
.contact .wpcf7-response-output {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 0.875rem;
  line-height: 1.6;
}
.contact .wpcf7-form.invalid .wpcf7-response-output,
.contact .wpcf7-form.unaccepted .wpcf7-response-output,
.contact .wpcf7-form.payment-required .wpcf7-response-output,
.contact .wpcf7-form.spam .wpcf7-response-output,
.contact .wpcf7-form.failed .wpcf7-response-output,
.contact .wpcf7-form.aborted .wpcf7-response-output {
  margin-top: 1.5rem;
  padding: 0.875rem 1.125rem;
  border: 0.0625rem solid #e0a5af;
  border-radius: 0.375rem;
  background-color: #fdf3f4;
  color: #b23a4e;
}
.contact .wpcf7-form.sent .wpcf7-response-output {
  margin-top: 1.5rem;
  padding: 0.875rem 1.125rem;
  border: 0.0625rem solid #9fd0bb;
  border-radius: 0.375rem;
  background-color: #eef8f3;
  color: #1f7a59;
}
