/* footer-unified.css — TOP(index.html L801-820)のフッターを正準として全ページで強制統一。
 * 各静的ページのインラインCSSが色ドリフトしても、本ファイルを最後に読み込ませて上書きする。
 * serve-static / top-shell で全公開ページの <head> 末尾に注入。重要箇所は !important で確実化。 */

/* ============================================================
 * スクロール表示アニメ(data-anim)を全ページで「必ず表示」に固定 (2026-07-18)
 * ------------------------------------------------------------
 * サブページ(about/concept/faq 等)は GSAP の gsap.from(opacity:0) + ScrollTrigger で
 * 表示していたため、ブラウザバック(bfcache 復帰)時に ScrollTrigger が再計算されず
 * 要素が opacity:0 のまま=「戻ると本文が真っ白/表示されない」不具合になっていた。
 * TOP(index.html)は既に同じ強制表示を入れて回避済み。これを共通CSSへ移し全ページに適用する。
 * 外部シートの !important は GSAP がセットするインライン style="opacity:0" にも勝つため、
 * アニメ有無に関わらず最終位置(表示・transform無し)で確実に描画される。デザイン/配色/レイアウトは不変。 */
[data-anim], [data-anim] > *, [data-anim] * { opacity: 1 !important; transform: none !important; }
/* 静的サブページ(about/concept/faq 等)は .fade-up{opacity:0}+JS(.visible付与)方式。
 * これも bfcache 復帰で opacity:0 のまま=真っ白になるため、クラス方式も強制表示に含める。 */
.fade-up, .fade-up.visible { opacity: 1 !important; transform: none !important; }
.footer { padding: 80px 0 0 !important; background: #2D2D2D !important; color: #fff !important; }
.footer-inner { max-width: 1400px !important; margin: 0 auto !important; padding: 0 40px !important; display: grid !important; grid-template-columns: 1.2fr 1fr 1fr 1.4fr !important; gap: 48px !important; }
.footer-logo { margin-bottom: 16px !important; }
.footer-logo img { height: 24px !important; filter: brightness(0) invert(1) !important; }
.footer-desc { font-size: 15px !important; line-height: 2 !important; color: rgba(255,255,255,0.7) !important; }
.footer-sns a { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
.footer-nav-title { font-size: 13px !important; font-weight: 700 !important; letter-spacing: 0.15em !important; text-transform: uppercase !important; color: rgba(255,255,255,0.92) !important; margin-bottom: 16px !important; }
.footer-nav a { display: block !important; font-size: 14px !important; color: rgba(255,255,255,0.72) !important; padding: 2px 0 !important; line-height: 1.5 !important; letter-spacing: 0.03em !important; transition: color 0.3s !important; text-decoration: none !important; }
.footer-nav a:hover { color: #fff !important; }
.footer-col-last { display: grid !important; grid-template-columns: 1.2fr 1fr !important; gap: 24px !important; }
.footer-bottom { max-width: 1400px !important; margin: 48px auto 0 !important; padding: 32px 40px 24px !important; border-top: 1px solid rgba(255,255,255,0.08) !important; display: flex !important; justify-content: space-between !important; align-items: center !important; flex-wrap: wrap !important; gap: 16px !important; }
.footer-legal { display: flex !important; gap: 24px !important; flex-wrap: wrap !important; justify-content: center !important; }
.footer-legal a { font-size: 12px !important; color: rgba(255,255,255,0.66) !important; text-decoration: none !important; transition: color 0.3s !important; letter-spacing: 0.04em !important; white-space: nowrap !important; }
.footer-legal a:hover { color: rgba(255,255,255,0.72) !important; }
.footer-copy { font-size: 12px !important; color: rgba(255,255,255,0.66) !important; letter-spacing: 0.06em !important; }
@media (max-width: 1024px) { .footer-inner { grid-template-columns: 1fr 1fr !important; gap: 32px !important; } }
/* === スマホ フッター 正準(2026-06-21 全配信系統で唯一の真実。header.css/mobile.css の重複ブロックは撤去済) === */
@media (max-width: 768px) {
  .footer { padding: 40px 0 0 !important; }
  .footer-inner { grid-template-columns: 1fr 1fr !important; gap: 20px 16px !important; padding: 0 20px !important; text-align: left !important; }
  .footer-brand { grid-column: 1 / -1 !important; text-align: center !important; }
  .footer-logo { margin-bottom: 6px !important; }
  .footer-desc { font-size: 12px !important; line-height: 1.7 !important; }
  /* スマホは SNS(Instagram/LINE)をフッターから消し、ハンバーガーメニュー内(.mm-sns)に移設 */
  .footer-sns { display: none !important; }
  /* GUIDE/ACCOUNT を 2x2 グリッドに溶け込ませる */
  .footer-col-last { display: contents !important; }
  .footer-nav-title { font-size: 12px !important; margin-bottom: 10px !important; letter-spacing: 0.12em !important; }
  .footer-nav a { font-size: 12.5px !important; padding: 2px 0 !important; line-height: 1.4 !important; }
  .footer-newsletter { margin-top: 16px !important; }
  .footer-newsletter input { padding: 10px 12px !important; font-size: 16px !important; } /* iOSズーム防止 */
  .footer-newsletter button { padding: 10px 14px !important; font-size: 12px !important; }
  .footer-bottom { flex-direction: column !important; align-items: center !important; text-align: center !important; padding: 20px 16px 16px !important; margin-top: 28px !important; }
  .footer-legal { gap: 12px 16px !important; }
  .footer-legal a { font-size: 11px !important; white-space: nowrap !important; }
  .footer-copy { font-size: 10px !important; }
}
