/* Northlane Markets — custom styles beyond Tailwind */

html {
  scroll-behavior: smooth;
}

:root {
  --brand-glow: 0 0 24px rgba(16, 185, 129, 0.45);
}

body {
  font-family: 'Figtree', system-ui, sans-serif;
}

.font-heading {
  font-family: 'Space Grotesk', system-ui, sans-serif;
}

/* Glow buttons */
.btn-glow {
  box-shadow: var(--brand-glow);
  transition: box-shadow 0.25s ease, background-color 0.2s ease, transform 0.15s ease;
}

.btn-glow:hover {
  box-shadow: 0 0 36px rgba(16, 185, 129, 0.65);
}

.btn-glow:active {
  transform: translateY(1px);
}

/* Glass cards */
.card-glass {
  background: rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.14);
}

.card-glass-light {
  background: rgba(255, 255, 255, 0.72);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(6, 78, 59, 0.08);
}

/* Dashboard mockup */
.dash-frame {
  background: linear-gradient(160deg, #064e3b 0%, #022c22 100%);
  border: 1px solid rgba(167, 243, 208, 0.18);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45);
}

.dash-bar {
  height: 6px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  overflow: hidden;
}

.dash-bar > span {
  display: block;
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, #34d399, #059669);
}

/* Grid pattern overlay for dark sections */
.grid-fade {
  background-image:
    linear-gradient(rgba(16, 185, 129, 0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(16, 185, 129, 0.04) 1px, transparent 1px);
  background-size: 40px 40px;
}

/* Scroll animations */
.animate-hidden {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.65s ease, transform 0.65s ease;
}

.animate-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Header states */
#site-header {
  transition: background-color 0.3s ease, box-shadow 0.3s ease, backdrop-filter 0.3s ease;
}

#site-header.is-solid {
  background-color: rgba(2, 44, 34, 0.92);
  backdrop-filter: blur(12px);
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.25);
}

/* Mobile full-screen menu */
#mobile-menu {
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

#mobile-menu.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

#mobile-menu:not(.is-open) {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

/* FAQ details */
details.faq-item summary {
  list-style: none;
  cursor: pointer;
}

details.faq-item summary::-webkit-details-marker {
  display: none;
}

details.faq-item[open] .faq-chevron {
  transform: rotate(180deg);
}

.faq-chevron {
  transition: transform 0.2s ease;
}

/* Cookie banner */
#cookie-banner {
  transition: transform 0.35s ease, opacity 0.35s ease;
}

#cookie-banner.is-hidden {
  transform: translateY(120%);
  opacity: 0;
  pointer-events: none;
}

/* Comparison table */
.compare-table th,
.compare-table td {
  padding: 0.85rem 1rem;
}

/* Focus visible */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid #34d399;
  outline-offset: 2px;
}

/* Counter pulse when animating */
.stat-num {
  font-variant-numeric: tabular-nums;
}

/* Legal prose */
.legal-prose h2 {
  font-family: 'Space Grotesk', system-ui, sans-serif;
  font-size: 1.35rem;
  font-weight: 700;
  color: #022c22;
  margin-top: 2rem;
  margin-bottom: 0.75rem;
}

.legal-prose p,
.legal-prose li {
  color: #374151;
  line-height: 1.7;
  margin-bottom: 0.75rem;
}

.legal-prose ul {
  list-style: disc;
  padding-left: 1.25rem;
  margin-bottom: 1rem;
}
