/* ========== BASE ========== */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 80px; }
body { margin: 0; -webkit-font-smoothing: antialiased; }

/* ========== NAVBAR ========== */
#navbar { transition: box-shadow 0.3s ease; }
#navbar.scrolled { box-shadow: 0 4px 30px rgba(6, 78, 59, 0.08); }

/* ========== BUTTONS ========== */
.btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: #065f46;
  color: #FEFBF3;
  font-weight: 600;
  font-size: 1rem;
  padding: 14px 28px;
  border-radius: 1rem;
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: background 0.2s, transform 0.15s, box-shadow 0.2s;
  box-shadow: 0 4px 14px rgba(6, 95, 70, 0.25);
}
.btn-primary:hover { background: #047857; transform: translateY(-2px); box-shadow: 0 8px 22px rgba(6, 95, 70, 0.3); }
.btn-primary:active { transform: translateY(0); }

.btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: transparent;
  color: #065f46;
  font-weight: 600;
  font-size: 1rem;
  padding: 14px 28px;
  border-radius: 1rem;
  text-decoration: none;
  border: 2px solid #065f46;
  cursor: pointer;
  transition: background 0.2s, color 0.2s, transform 0.15s;
}
.btn-secondary:hover { background: #065f46; color: #FEFBF3; transform: translateY(-2px); }

/* ========== INPUTS ========== */
.input-field {
  width: 100%;
  padding: 12px 16px;
  border: 2px solid #d1fae5;
  border-radius: 0.75rem;
  font-size: 1rem;
  font-family: inherit;
  color: #064e3b;
  background: #FEFBF3;
  transition: border-color 0.2s, box-shadow 0.2s;
  outline: none;
}
.input-field::placeholder { color: #6ee7b7; }
.input-field:focus { border-color: #059669; box-shadow: 0 0 0 4px rgba(5, 150, 105, 0.12); }

/* ========== SCROLL REVEAL ========== */
.scroll-reveal {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1), transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}
.scroll-reveal.revealed {
  opacity: 1;
  transform: translateY(0);
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .scroll-reveal { opacity: 1; transform: none; transition: none; }
  .btn-primary:hover, .btn-secondary:hover { transform: none; }
}

/* ========== MOBILE MENU ========== */
#mobile-menu { animation: slideDown 0.25s ease; }
@keyframes slideDown {
  from { opacity: 0; transform: translateY(-8px); }
  to { opacity: 1; transform: translateY(0); }
}
