*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
img { display: block; max-width: 100%; }

/* ── Hero Gradient ── */
.hero-gradient {
  background: linear-gradient(160deg, #8B3A2A 0%, #C1694F 30%, #E8956A 55%, #DF9E45 80%, #C4822E 100%);
}
.hero-pattern {
  background-image: radial-gradient(circle, white 1px, transparent 1px);
  background-size: 32px 32px;
}

/* ── Hero Animations ── */
.hero-subtitle {
  opacity: 0;
  animation: fadeUp 0.8s ease forwards 0.3s;
}
.hero-headline {
  opacity: 0;
  animation: fadeUp 0.8s ease forwards 0.5s;
}
.hero-description {
  opacity: 0;
  animation: fadeUp 0.8s ease forwards 0.7s;
}
.hero-cta {
  opacity: 0;
  animation: fadeUp 0.8s ease forwards 0.9s;
}
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: translateY(0); }
}

/* ── Scroll Indicator ── */
.scroll-indicator { opacity: 0.6; }
.scroll-line {
  animation: scrollDown 1.6s ease-in-out infinite;
}
@keyframes scrollDown {
  0% { transform: translateY(-100%); }
  100% { transform: translateY(200%); }
}

/* ── Navbar ── */
.nav-link { color: rgba(44, 24, 16, 0.6); }
.navbar-scrolled .nav-link { color: rgba(44, 24, 16, 0.7); }
.navbar-scrolled .nav-link:hover { color: #C1694F; }
.navbar-scrolled .nav-link-border { border-color: #C1694F; }
.navbar-scrolled .nav-link-border:hover { background: #C1694F; color: white; }

/* ── Dividers ── */
.divider {
  height: 1px;
  background: linear-gradient(to right, transparent, rgba(193, 105, 79, 0.2), transparent);
}

/* ── Reveal Animations (below-fold only — progressive enhancement) ── */
.reveal, .reveal-tag, .reveal-title, .reveal-info, .reveal-grid, .reveal-map {
  opacity: 1;
  transform: none;
  transition: opacity 0.7s ease, transform 0.7s ease;
}
.reveal-tag { transition-delay: 0.1s; }
.reveal-title { transition-delay: 0.2s; }
.reveal-info { transition-delay: 0.3s; }

@media (prefers-reduced-motion: no-preference) {
  .reveal, .reveal-tag, .reveal-title, .reveal-info {
    opacity: 0;
    transform: translateY(20px);
  }
  .reveal-grid { opacity: 0; transform: translateY(24px); }
  .reveal-map { opacity: 0; transform: translateY(24px); }
  .revealed.reveal, .revealed.reveal-tag, .revealed.reveal-title, .revealed.reveal-info {
    opacity: 1;
    transform: translateY(0);
  }
  .revealed.reveal-grid, .revealed.reveal-map {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ── Menu Items ── */
.menu-item {
  padding: 14px 0;
  border-bottom: 1px solid rgba(44, 24, 16, 0.07);
}
.menu-item:first-child { border-top: 1px solid rgba(44, 24, 16, 0.07); }

/* ── Contact Form ── */
.contact-input:focus ~ label,
.contact-input:not(:placeholder-shown) ~ label {
  top: -20px;
  font-size: 11px;
}
.contact-btn {
  position: relative;
  overflow: hidden;
}
.contact-btn::before {
  content: '';
  position: absolute;
  inset: 0;
  background: #C1694F;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.4s ease;
  z-index: 0;
}
.contact-btn span,
.contact-btn svg { position: relative; z-index: 1; }
.contact-btn:hover::before { transform: scaleX(1); }
.contact-btn:hover { border-color: #C1694F; color: white; }

/* ── Mobile Menu ── */
.mobile-link { color: rgba(44, 24, 16, 0.7); }
.mobile-link:hover { color: #C1694F; }
.mobile-menu-open .mobile-link { opacity: 1; pointer-events: auto; }

/* ── Responsive ── */
@media (max-width: 767px) {
  .hero-headline { font-size: 2.75rem; }
  @media (min-width: 480px) { .hero-headline { font-size: 3.25rem; } }
}
