/* ============================================================
   FUBON FOOD — Thực đơn 30 ngày (custom.css)
   Light theme behaviors beyond the Tailwind design: active
   nav state, scrolled header, reveal animation, nutrition
   bars, FAQ state.
   ============================================================ */

/* Prevent unrevealed slide elements from causing horizontal scroll
   (clip does not create a scroll container, so sticky header keeps working) */
html,
body {
  overflow-x: clip;
}
@supports not (overflow: clip) {
  html {
    overflow-x: hidden;
  }
}

/* Active desktop nav link */
.nav-link {
  color: rgb(100 116 139); /* slate-500 */
  transition: color 0.2s ease;
  position: relative;
}
.nav-link:hover {
  color: #0059b2;
}
.nav-link.nav-active {
  color: #0059b2;
}
.nav-link.nav-active::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -8px;
  height: 2.5px;
  border-radius: 2px;
  background: linear-gradient(to right, #0059b2, #2e9bff);
}

/* Scrolled sticky header */
#site-header.header-scrolled {
  box-shadow: 0 10px 30px -12px rgba(15, 23, 42, 0.18);
}

/* Scroll reveal */
.reveal {
  opacity: 0;
  transform: translateY(26px);
  transition: opacity 0.7s ease, transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}
.reveal.revealed {
  opacity: 1;
  transform: translateY(0);
}
/* Directional slide variants */
.reveal.reveal-left {
  transform: translateX(-48px);
}
.reveal.reveal-right {
  transform: translateX(48px);
}
.reveal.reveal-left.revealed,
.reveal.reveal-right.revealed {
  transform: translate(0, 0);
}

/* Nutrition ratio bars grow on scroll */
.bar {
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 1.1s cubic-bezier(0.22, 1, 0.36, 1) 0.15s;
}
.bar-grown {
  transform: scaleX(1);
}

/* FAQ open state */
.faq-open {
  border-color: rgba(0, 89, 178, 0.35) !important;
  box-shadow: 0 8px 24px -12px rgba(0, 89, 178, 0.25);
}

/* Menu table row hover */
#menu-table tbody tr {
  transition: background-color 0.15s ease;
}
#menu-table tbody tr:hover {
  background-color: #f0f7ff;
}

/* Hero gradient text fallback letter-spacing */
h1 .bg-clip-text {
  letter-spacing: -0.01em;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .reveal,
  .reveal.reveal-left,
  .reveal.reveal-right { opacity: 1; transform: none; transition: none; }
  .bar { transform: scaleX(1); transition: none; }
  .animate-bounce, .animate-ping { animation: none; }
  html { scroll-behavior: auto; }
}
