/* ============================================================
   ONGROUP — hover-glow.css
   Global soft, luxurious gold hover glow (上品×豪華).
   Loaded LAST so it layers over existing styles without
   rewriting them. Gold = existing var(--gold) #D4AF37.
   ============================================================ */

:root { --glow-soft: 0 0 24px -4px rgba(212,175,55,0.55), 0 0 60px 4px rgba(212,175,55,0.25); }

/* ---- buttons ---- */
.btn, .btn--ghost, .btn--outline, .btn--gold,
.card-toggle, .youtube-button, .artist-yt-button,
.btn-submit, .form-submit-btn, .to-top {
  transition: color 0.45s ease, border-color 0.45s ease,
              box-shadow 0.45s ease, background 0.45s ease, transform 0.45s ease !important;
}
.btn:hover, .btn--ghost:hover, .btn--outline:hover, .btn--gold:hover,
.card-toggle:hover, .youtube-button:hover, .artist-yt-button:hover,
.btn-submit:hover, .form-submit-btn:hover {
  box-shadow: var(--glow-soft) !important;
}
.to-top:hover {
  box-shadow: 0 0 24px -2px rgba(212,175,55,0.8), 0 0 64px 4px rgba(212,175,55,0.3) !important;
}

/* ---- cards ---- */
.world-card, .news-card, .news-item, .story-card,
.audience-card, .window-card, .business-card, .future-card {
  transition: border-color 0.45s ease, box-shadow 0.45s ease, transform 0.45s ease !important;
}
.world-card:hover, .news-card:hover, .news-item:hover, .story-card:hover,
.audience-card:hover, .window-card:hover, .business-card:hover, .future-card:hover {
  border-color: var(--gold) !important;
  box-shadow: var(--glow-soft) !important;
  transform: translateY(-2px) !important;
}

/* ---- video frames ---- */
.video-wrapper {
  transition: border-color 0.45s ease, box-shadow 0.45s ease, transform 0.45s ease !important;
}
.video-wrapper:hover {
  border-color: var(--gold) !important;
  box-shadow: var(--glow-soft) !important;
  transform: translateY(-2px) !important;
}

/* ---- nav + text links ---- */
.main-nav a, .lang-switch-link, .mobile-menu a,
.footer-col a, .news-item__more, .brand {
  transition: color 0.4s ease, text-shadow 0.4s ease !important;
}
.main-nav a:hover, .lang-switch-link:hover, .mobile-menu a:hover,
.footer-col a:hover, .news-item__more:hover {
  color: var(--gold) !important;
  text-shadow: 0 0 12px rgba(212,175,55,0.55), 0 0 28px rgba(212,175,55,0.3) !important;
}

/* ---- future-vision list ---- */
.future-vision__list li { transition: color 0.4s ease, text-shadow 0.4s ease, transform 0.4s ease !important; }
.future-vision__list li:hover {
  color: var(--gold) !important;
  text-shadow: 0 0 12px rgba(212,175,55,0.55), 0 0 28px rgba(212,175,55,0.3) !important;
}

/* ---- privacy links ---- */
.privacy-article a:hover { text-shadow: 0 0 12px rgba(212,175,55,0.5) !important; }

/* business card: glow persists while opened */
.business-card:has(.card-back.is-open),
.business-card.is-card-open {
  border-color: var(--gold) !important;
  box-shadow: var(--glow-soft) !important;
}
.business-card:has(.card-back.is-open):hover,
.business-card.is-card-open:hover {
  box-shadow: 0 0 32px -2px rgba(212,175,55,0.75), 0 0 80px 6px rgba(212,175,55,0.35) !important;
}
.card-toggle[aria-expanded="true"] {
  color: var(--gold) !important;
  text-shadow: 0 0 12px rgba(212,175,55,0.55), 0 0 28px rgba(212,175,55,0.3) !important;
}

@media (prefers-reduced-motion: reduce) {
  .btn, .card-toggle, .world-card, .news-card, .business-card,
  .video-wrapper, .main-nav a { transition: none !important; }
}
