@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: 1250px; /* Figma：内容1200px・パンくずx120起点（padding25と合わせて） */
  margin-inline: auto;
  padding-inline: 20px;
  padding-bottom: 3.75rem;
}
@media screen and (min-width: 768px) {
  .contact__inner {
    padding-inline: 25px;
    padding-bottom: 6rem;
  }
}

/* パンくず：Noto Medium 16px / #2b2b2b / 0.08em / 区切りシェブロン（他ページと統一） */
.contact__breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  padding-block: 27px 25px;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.08em;
  color: #2b2b2b;
}
.contact__breadcrumb a {
  color: #2b2b2b;
}
@media (any-hover: hover) {
  .contact__breadcrumb a:hover {
    color: #1178a8;
    opacity: 1;
  }
}
.contact__breadcrumb-sep {
  width: 5px;
  height: 8px;
  color: transparent; /* テキスト">"を隠しSVGシェブロンに差し替え */
  overflow: hidden;
  background: url("../images/common/breadcrumb_arrow.svg") left center/5px 8px no-repeat;
}

/* ========================================
   フォーム枠（中央寄せ）
   ======================================== */
.contact__form {
  max-width: 700px; /* Figma：フォーム幅700px・中央 */
  margin-inline: auto;
  margin-top: 0; /* パンくず→フォームの間隔はパンくずの padding-bottom(25px)で確保（Figma gap-25） */
}

/* CF7 のラッパ余白を整える（.wpcf7 / .screen-reader-response はそのまま）。
   .wpcf7 が内容幅にシュリンクして入力が狭くなる（→ラジオ折り返し）ため幅100%に固定。 */
.contact .wpcf7,
.contact .wpcf7 > form.wpcf7-form {
  display: block;
  width: 100%;
  margin: 0;
}

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

/* 項目ラベル（フィールドの上）：Figma Noto Medium 16px #2b2b2b・字間0.08em */
.contact .wpcf7-form > p > label {
  display: block;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.2; /* Figmaのラベル高19px相当（Noto normal≈22pxだとフィールドが縦に伸びるため詰める） */
  letter-spacing: 0.08em;
  color: #2b2b2b;
}

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

/* ========================================
   テキスト / メール / テキストエリア
   ======================================== */
.contact .wpcf7-text,
.contact .wpcf7-email,
.contact .wpcf7-textarea {
  display: block;
  width: 100%;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px; /* iOS のズーム回避のため 16px 基準・Figmaも16px */
  letter-spacing: 0.08em;
  color: #2b2b2b;
  background-color: #fafafa; /* Figma bg #fafafa */
  border: 1px solid #b4b4b4; /* Figma 枠 1px #b4b4b4 */
  border-radius: 0; /* Figma 角丸なし */
  -webkit-appearance: none;
  appearance: none;
  transition: border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
}
/* text/email：高さ42px・左padding17px（Figma） */
.contact .wpcf7-text,
.contact .wpcf7-email {
  height: 42px;
  padding: 0 17px;
  line-height: normal;
}
/* textarea：Figma padding 上7/左右18・高さ97px（rows=10 の高さを上書き） */
.contact .wpcf7-textarea {
  height: 97px;
  min-height: 97px;
  padding: 7px 18px;
  line-height: 1.4;
  resize: vertical;
}
.contact .wpcf7-text::placeholder,
.contact .wpcf7-email::placeholder,
.contact .wpcf7-textarea::placeholder {
  color: #b4b4b4; /* Figma placeholder #b4b4b4 */
  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: 12px 27px; /* Figma：項目間 27px */
    padding-left: 16px; /* Figma：ラジオ群の左inset16px */
  }
}
.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: 6px; /* Figma：円→ラベル 6px */
  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: 23px; /* Figma：ラジオ 23px */
  height: 23px;
  margin: 0;
  background-color: #fff;
  border: 2px solid #b4b4b4;
  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: #1178a8;
  /* 中央に青ドット（Figma選択＝ブランド青） */
  background: radial-gradient(circle at center, #1178a8 0 40%, #fff 46% 100%);
}
.contact .wpcf7-radio input[type="radio"]:focus-visible {
  outline: none;
  box-shadow: 0 0 0 0.1875rem rgba(17, 120, 168, 0.25);
}
.contact .wpcf7-list-item-label {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px; /* Figma 16px */
  line-height: normal;
  letter-spacing: 0.08em;
  color: #2b2b2b;
}

/* ========================================
   同意チェック（acceptance）：青チェックをカスタム描画
   ======================================== */
.contact .wpcf7-acceptance .wpcf7-list-item {
  margin: 0;
}
.contact .wpcf7-acceptance label {
  display: inline-flex;
  align-items: center;
  gap: 10px; /* Figma：四角→テキスト 10px */
  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: 24px; /* Figma：24px */
  height: 24px;
  margin: 0;
  background-color: #fff;
  border: 2px solid #2b2b2b; /* Figma：枠2px #2b2b2b */
  border-radius: 0; /* Figma：四角（角丸なし） */
  -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: #1178a8;
  background-color: #1178a8;
  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: 542px; /* Figma：幅542px・中央 */
  height: 40px; /* Figma：高さ40px */
  margin: 56px auto 0; /* Figma：フィールド群→送信 56px */
  padding: 0 10px;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 19px; /* Figma：19px */
  font-weight: 500;
  letter-spacing: 0.17em; /* Figma：3.23px/19 */
  color: #fff;
  background-color: #1178a8; /* Figma：ブランド青 */
  border: 0;
  border-radius: 0; /* Figma：角丸なし */
  -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;
}
