/* =====================================================================
   app.css — 補足スタイル（site.css のデザインシステムを上書きしない範囲）
   ===================================================================== */

/* スクロール出現アニメーションは無効化して常時表示にする。
   site.css の `.rv { opacity: 0 }` は JS / IO / 初回描画に依存して内容が
   消えるリスクがあるため（spec §5.3 でも「任意」）、ここで上書きする。 */
.rv,
.rv.in {
  opacity: 1 !important;
  transform: none !important;
  animation: none !important;
  transition: none !important;
}

/* マーク（inline symbol）は常に currentColor */
.mark svg {
  fill: currentColor;
}
.contact-cta .mark-lg svg,
.contact-cta .giant svg {
  fill: currentColor;
}

/* フォーカスリングはデザイン仕様に合わせ、main へ移動したときは強調しない */
#main-content:focus {
  outline: none;
}
.form-done:focus {
  outline: none;
}

/* summary のタップ領域を 44px 以上に（a11y） */
.faq-item summary {
  min-height: 44px;
}

/* パンくずの最終項目は操作不可なのでリンク色にしない */
.breadcrumb li[aria-current='page'] {
  color: var(--color-text);
}

/* テーマ切替ボタンのホバー */
.theme-switch button:hover {
  color: var(--color-text);
}

/* チェックリスト（spec_table を 30 項目に使う場合の行間調整） */
.spec-row ul {
  align-content: start;
}

/* モバイルメニュー開時、背面のスクロールを止める（JS が body に付与） */
body {
  overflow-x: hidden;
}

/* 404 ページ */
.notfound {
  min-height: min(70svh, 640px);
  display: flex;
  align-items: center;
}
.notfound h1 {
  font-size: var(--font-size-4xl);
  margin-top: var(--spacing-lg);
}
.notfound p {
  margin-top: var(--spacing-lg);
  color: var(--color-muted);
  max-width: 640px;
}
.notfound .actions {
  margin-top: var(--spacing-2xl);
  display: flex;
  gap: var(--spacing-md);
  flex-wrap: wrap;
}
