/* ページ固有のスタイル。
   デザインシステム（styles.css）に載っていない hover / focus / 出現アニメーションだけをここに置く。
   元デザイン（Claude Design）の style-hover 属性を、通常のCSSへ書き換えたもの。 */

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
  margin: 0;
  background: var(--color-bg);
  color: var(--color-text);
  font-family: 'Zen Kaku Gothic New', var(--font-body), sans-serif;
}
a { color: var(--color-accent-700); }
a:hover { color: var(--color-accent-600); }

/* スクリーンリーダー専用テキスト */
.visually-hidden {
  position: absolute; width: 1px; height: 1px;
  overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%);
  white-space: nowrap;
}

/* ヘッダーのナビ */
.nav-link:hover { color: var(--color-accent-700); }

/* チラシのボタン */
.flyer-btn:hover { box-shadow: var(--shadow-md); }
.flyer-btn:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }

/* カード画像のズーム */
.zoom-img { transition: transform 0.5s ease; }
.zoom-wrap:hover .zoom-img { transform: scale(1.03); }
@media (prefers-reduced-motion: reduce) { .zoom-img { transition: none; } .zoom-wrap:hover .zoom-img { transform: none; } }

/* SNSのピル型リンク */
.sns-pill:hover { background: var(--color-accent-100); }

/* スクロールで出現。JSが動く環境でだけ隠す（JS無効時は最初から見える） */
.js .reveal { opacity: 0; transform: translateY(14px); transition: opacity 0.7s ease, transform 0.7s ease; }
.js .reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .js .reveal { opacity: 1; transform: none; transition: none; }
}

/* チラシ拡大（ライトボックス）
   display は必ずCSS側で持つ。インラインstyleに書くと [hidden] より強く、閉じられなくなる。 */
#flyer-lightbox {
  position: fixed; inset: 0; z-index: 100;
  display: flex; align-items: center; justify-content: center;
  padding: 20px;
}
#flyer-lightbox[hidden] { display: none; }
