/* ============================================================
   wp-compat.css — WordPress化で生じる差分の吸収（静的版CSSは無改変・このファイルだけで調整）
   読み込み順：common.css → ページ別CSS → このファイル（enqueue.php）
   内訳：
     1. お問い合わせ（Contact Form 7 の出力構造）
     2. お知らせ一覧・詳細（静的版に無いページ。トップのお知らせと同じトーンで作成）
     3. FAQ・本文の補助
   ============================================================ */

/* ---------- 1. Contact Form 7 ---------- */

/* 入力欄を包む span を、静的版の「input が直接 .c-form__control の子」と同じ見た目にする */
.p-contact .wpcf7-form-control-wrap {
  display: block;
}
/* 同意チェック：静的版は label/checkbox/p が .c-form__agree 直下の flex 子。CF7の入れ子は無いものとして扱う */
.c-form__agree .wpcf7-form-control-wrap,
.c-form__agree .wpcf7-form-control,
.c-form__agree .wpcf7-list-item {
  display: contents;
}
.c-form__agree .wpcf7-list-item {
  margin: 0;
}
.c-form__agree .wpcf7-list-item-label {
  display: none;
}
/* 順序：チェックボックス → ラベル → エラー（静的版と同じ並び） */
.c-form__agree .wpcf7-form-control-wrap {
  order: 0;
}
.c-form__agree > label {
  order: 1;
}
.c-form__agree > .c-form__error {
  order: 2;
}

/* CF7が自動で出す、フィールド直下のエラー文言（静的版の .c-form__error と同じ見た目） */
.p-contact .wpcf7-not-valid-tip {
  display: block;
  margin: 8px 0 0;
  font: 700 14px/1.5 var(--font-sans);
  color: var(--c-red);
}
.p-contact .c-form__agree .wpcf7-not-valid-tip {
  flex-basis: 100%;
  text-align: center;
  order: 2;
}
.p-contact .wpcf7-not-valid {
  border-color: var(--c-red);
}

/* CF7が先頭に出す隠しフィールド入れ物・スクリーンリーダー用文言：画面には出さない */
.p-contact .hidden-fields-container {
  display: none;
}
.p-contact .screen-reader-response {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.p-contact .screen-reader-response ul {
  display: none;
}

/* CF7の送信結果メッセージ（静的版には無い）。成功時は完了メッセージを別途表示するので隠す */
.p-contact .wpcf7-response-output {
  margin: 24px 0 0;
  padding: 12px 16px;
  border: 1px solid var(--c-line);
  border-radius: 4px;
  background: var(--c-bg);
  font: 400 14px/1.7 var(--font-sans);
  color: var(--c-text);
  text-align: center;
}
.p-contact .wpcf7-form.init .wpcf7-response-output,
.p-contact .wpcf7-form.resetting .wpcf7-response-output,
.p-contact .wpcf7-form.submitting .wpcf7-response-output,
.p-contact .wpcf7-form[data-status="init"] .wpcf7-response-output,
.p-contact .wpcf7-form[data-status="sent"] .wpcf7-response-output {
  display: none;
}
.p-contact .wpcf7-form.invalid .wpcf7-response-output,
.p-contact .wpcf7-form.unaccepted .wpcf7-response-output,
.p-contact .wpcf7-form.failed .wpcf7-response-output,
.p-contact .wpcf7-form.spam .wpcf7-response-output,
.p-contact .wpcf7-form.aborted .wpcf7-response-output {
  border-color: var(--c-red);
  color: var(--c-red);
  font-weight: 700;
}
/* 送信中のスピナー（CF7が出す）は使わない */
.p-contact .wpcf7-spinner {
  display: none;
}

/* hidden 属性が display 指定に負けないように（フォーム全体の出し分け用） */
.p-contact .c-form__table[hidden],
.p-contact .c-form__actions[hidden],
.p-contact .p-contact__complete[hidden] {
  display: none;
}

/* 送信完了メッセージ（CF7の送信成功後に表示）。静的版に無い要素なので、フォーム周りと同じトーンで */
.p-contact__complete {
  margin: 40px 0 0;
  padding: 40px 24px;
  border: 1px solid var(--c-line);
  border-radius: 4px;
  background: var(--c-bg);
  text-align: center;
}
.p-contact__complete:focus {
  outline: none;
}
.p-contact__complete-title {
  margin: 0 0 16px;
  font: 700 24px/1.5 var(--font-serif);
  color: var(--c-blue);
}
.p-contact__complete-text {
  margin: 0;
  font: 400 16px/1.8 var(--font-sans);
  color: var(--c-text);
}
.p-contact__complete-text + .p-contact__complete-text {
  margin-top: 12px;
}
@media (max-width: 767px) {
  .p-contact__complete {
    padding: 30px 16px;
  }
  .p-contact__complete-title {
    font-size: 20px;
  }
  .p-contact__complete-text {
    font-size: 14px;
  }
}

/* ---------- 2. お知らせ一覧・詳細 ---------- */
/* 一覧：トップの .p-top-news__list / __item / __date / __link と同じ見た目（top.css はトップ専用のため複製） */
.p-news {
  margin-top: 40px;
  margin-bottom: 100px;
}
.p-news__list {
  max-width: 1080px;
}
.p-news__list .p-top-news__item {
  display: flex;
  align-items: center;
  gap: 30px;
  box-sizing: border-box;
  min-height: 78px;
  padding: 8px 0;
  border-bottom: 1px solid var(--c-line);
}
.p-news__list .p-top-news__date {
  flex: none;
  width: 86px;
  font: 700 16px/1.44 var(--font-sans);
  color: var(--c-text);
}
.p-news__list .p-top-news__link {
  font: 400 16px/1.44 var(--font-sans);
  color: var(--c-text);
  text-decoration: none;
}
.p-news__list .p-top-news__link:hover {
  text-decoration: underline;
}
.p-news__empty {
  font: 400 16px/1.8 var(--font-sans);
  color: var(--c-text);
}

/* ページ送り */
.p-news__pager {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  margin-top: 40px;
  font: 400 16px/1.4 var(--font-sans);
}
.p-news__pager a,
.p-news__pager span {
  display: inline-block;
  min-width: 40px;
  padding: 10px 12px;
  border: 1px solid var(--c-line);
  border-radius: 4px;
  text-align: center;
  color: var(--c-text);
}
.p-news__pager .current {
  background: var(--c-blue);
  border-color: var(--c-blue);
  color: var(--c-white);
}
.p-news__pager a:hover {
  background: var(--c-blue-pale);
}

/* 詳細 */
.p-news__article {
  max-width: 880px;
}
.p-news__meta {
  margin: 0 0 8px;
  font: 700 16px/1.44 var(--font-sans);
  color: var(--c-gray-3);
}
.p-news__title {
  margin: 0 0 30px;
  padding-bottom: 20px;
  border-bottom: 2px solid var(--c-blue);
  font: 700 28px/1.5 var(--font-serif);
  color: var(--c-text);
}
.p-news__body {
  font: 400 16px/1.9 var(--font-sans);
  color: var(--c-text);
  word-break: break-word;
}
/* リセットで0になっている余白を、本文に限って戻す */
.p-news__body > * + * {
  margin-top: 1.4em;
}
.p-news__body h2 {
  margin-top: 2em;
  padding-left: 12px;
  border-left: 4px solid var(--c-blue);
  font: 700 22px/1.5 var(--font-sans);
}
.p-news__body h3 {
  margin-top: 1.8em;
  font: 700 19px/1.5 var(--font-sans);
}
.p-news__body h4 {
  margin-top: 1.6em;
  font: 700 17px/1.5 var(--font-sans);
}
.p-news__body ul {
  list-style: disc;
  padding-left: 1.5em;
}
.p-news__body ol {
  list-style: decimal;
  padding-left: 1.5em;
}
.p-news__body li + li {
  margin-top: 0.4em;
}
.p-news__body a {
  color: var(--c-link);
  text-decoration: underline;
}
.p-news__body img {
  max-width: 100%;
  height: auto;
}
.p-news__body strong {
  font-weight: 700;
}
.p-news__body table {
  width: 100%;
  border-collapse: collapse;
}
.p-news__body th,
.p-news__body td {
  padding: 10px 12px;
  border: 1px solid var(--c-line);
  text-align: left;
}
.p-news__back {
  margin-top: 50px;
}

/* 404 */
.p-notfound {
  margin-top: 60px;
  margin-bottom: 100px;
  text-align: center;
}
.p-notfound__text {
  margin: 0 0 30px;
  font: 400 16px/1.8 var(--font-sans);
  color: var(--c-text);
}

@media (max-width: 767px) {
  .p-news {
    margin-top: 30px;
    margin-bottom: 80px;
  }
  .p-news__list {
    max-width: none;
  }
  .p-news__list .p-top-news__item {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    min-height: 0;
    padding: 20px 0;
  }
  .p-news__list .p-top-news__item:first-child {
    padding-top: 0;
  }
  .p-news__list .p-top-news__link {
    text-decoration: underline;
  }
  .p-news__title {
    font-size: 22px;
  }
  .p-news__body {
    font-size: 15px;
  }
}
