/* ── Base ─────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 80px; }
body { margin: 0; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { cursor: pointer; border: none; background: none; font: inherit; color: inherit; }
ul, ol { list-style: none; margin: 0; padding: 0; }

/* ── Nav ──────────────────────────────────────────── */
#navbar { background: transparent; }
#navbar.scrolled { background: rgba(2, 6, 23, 0.92); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); box-shadow: 0 1px 0 rgba(255,255,255,0.06); }
.nav-link { position: relative; }
.nav-link::after { content: ''; position: absolute; bottom: 0; left: 50%; width: 0; height: 2px; background: #2dd4bf; transform: translateX(-50%); transition: width 0.2s; }
.nav-link:hover::after { width: 60%; }

/* ── Hero ─────────────────────────────────────────── */
.hero-bg { transform: scale(1.05); }
.hero-content { opacity: 0; transform: translateY(30px); animation: heroIn 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.2s forwards; }
.hero-badge { opacity: 0; transform: translateY(15px); animation: heroIn 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.4s forwards; }
.hero-title { opacity: 0; transform: translateY(25px); animation: heroIn 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.55s forwards; }
.hero-subtitle { opacity: 0; transform: translateY(20px); animation: heroIn 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.7s forwards; }
.hero-ctas { opacity: 0; transform: translateY(15px); animation: heroIn 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.85s forwards; }
.hero-scroll { opacity: 0; animation: heroIn 0.6s cubic-bezier(0.22, 1, 0.36, 1) 1.2s forwards; }
.hero-scroll-dot:hover .hero-scroll-line { animation-duration: 1s; }

@keyframes heroIn {
  to { opacity: 1; transform: translateY(0); }
}

/* ── Reveal on scroll ─────────────────────────────── */
@media (prefers-reduced-motion: no-preference) {
  .reveal, .reveal-tag, .reveal-heading, .reveal-text, .reveal-card, .reveal-gallery, .reveal-img, .reveal-grid, .reveal-contact-info, .reveal-stats, .stat-item {
    opacity: 1; transform: none;
  }
}

/* ── Tags ─────────────────────────────────────────── */
.reveal-tag { letter-spacing: 0.1em; }

/* ── Cards ────────────────────────────────────────── */
.menu-card { transform: translateY(0); }
.menu-item { transition: transform 0.15s; }
.menu-item:hover { transform: translateX(4px); }
.visit-card { transform: translateY(0); }
.visit-card:hover { transform: translateY(-4px); }
.visit-icon { transition: transform 0.2s; }
.visit-card:hover .visit-icon { transform: scale(1.08); }

/* ── Form ─────────────────────────────────────────── */
.form-input { transition: border-color 0.2s, box-shadow 0.2s; }
.form-input:focus { border-color: #14b8a6; box-shadow: 0 0 0 4px rgba(20, 184, 166, 0.12); }
.form-submit { position: relative; overflow: hidden; }
.form-submit::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,0.15), transparent);
  opacity: 0; transition: opacity 0.2s;
}
.form-submit:hover::after { opacity: 1; }

/* ── Mobile nav ───────────────────────────────────── */
.mobile-nav-link { transition: background 0.15s, color 0.15s; }
#mobile-menu { transition: max-height 0.3s ease, opacity 0.3s ease; }
