/* ── Base & Utilities ── */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 80px; }
body { margin: 0; }

::selection { background: #a7f3d0; color: #064e3b; }

/* ── Header ── */
#header { background: rgba(254, 253, 248, 0.85); backdrop-filter: blur(16px); border-bottom: 1px solid rgba(6, 95, 70, 0.06); }
#header.scrolled { background: rgba(254, 253, 248, 0.95); box-shadow: 0 1px 20px rgba(6, 78, 59, 0.06); }

.nav-link { position: relative; }
.nav-link::after { content: ''; position: absolute; bottom: -2px; left: 0; width: 0; height: 1.5px; background: #059669; transition: width 0.25s ease; }
.nav-link:hover::after { width: 100%; }

/* ── Buttons ── */
.btn-primary {
  background: linear-gradient(135deg, #065f46 0%, #047857 100%);
  color: #fefdf8;
  border-radius: 14px;
  padding: 0.75rem 1.75rem;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
  white-space: nowrap;
}
.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 8px 30px rgba(6, 95, 70, 0.3); background: linear-gradient(135deg, #047857 0%, #059669 100%); }
.btn-primary:active { transform: translateY(0); }

.btn-secondary {
  border-radius: 14px;
  padding: 0.75rem 1.75rem;
  transition: background 0.2s ease, transform 0.2s ease;
  white-space: nowrap;
}
.btn-secondary:hover { transform: translateY(-2px); }

/* ── Mobile Menu ── */
.mobile-link { position: relative; }
#mobile-menu.open { opacity: 1; pointer-events: all; }
#mobile-menu.closed { opacity: 0; pointer-events: none; }

/* ── Hero Animations ── */
.hero-badge { animation: fadeInDown 0.8s ease both; }
.hero-image { animation: fadeIn 1s ease 0.2s both; }
.hero-float { animation: float 4s ease-in-out infinite; }
.hero-float-delayed { animation: float 4s ease-in-out 1s infinite; }

@keyframes fadeInDown {
  from { opacity: 0; transform: translateY(-16px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-10px); }
}
@keyframes floatDelayed {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}

/* ── Scroll Indicator ── */
.scroll-line { animation: scrollPulse 2s ease-in-out infinite; }
@keyframes scrollPulse {
  0%, 100% { opacity: 0.4; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.2); }
}

/* ── Floating Decorations ── */
.float { animation: float 3.5s ease-in-out infinite; }
.float-delayed { animation: float 3.5s ease-in-out 0.8s infinite; }

/* ── Scroll Reveal ── */
.scroll-reveal {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
.scroll-reveal.revealed {
  opacity: 1;
  transform: translateY(0);
}
.scroll-reveal:nth-child(2) { transition-delay: 100ms; }
.scroll-reveal:nth-child(3) { transition-delay: 200ms; }
.scroll-reveal:nth-child(4) { transition-delay: 300ms; }

/* ── Focus Styles ── */
:focus-visible { outline: 2px solid #059669; outline-offset: 2px; border-radius: 4px; }

/* ── Form ── */
input:focus, textarea:focus {
  border-color: #34d399 !important;
  box-shadow: 0 0 0 3px rgba(52, 211, 153, 0.15);
}

/* ── Responsive ── */
@media (max-width: 768px) {
  #header .h-18 { height: 72px; }
}
