:root {
  --header-height: 4rem;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 5rem;
}

body {
  font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  overflow-x: hidden;
}

/* Header scroll state */
#site-header {
  background-color: transparent;
  backdrop-filter: blur(0);
  border-bottom: 1px solid transparent;
}

#site-header.scrolled {
  background-color: rgba(2, 6, 23, 0.8);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom-color: rgba(30, 41, 59, 0.8);
}

/* Mobile menu animation */
.mobile-menu {
  max-height: 0;
  opacity: 0;
  transition: max-height 0.35s ease, opacity 0.25s ease;
}

.mobile-menu.open {
  max-height: 24rem;
  opacity: 1;
}

/* Nav link underline effect */
.nav-link {
  position: relative;
}

.nav-link::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -4px;
  width: 0;
  height: 2px;
  background: linear-gradient(to right, #818cf8, #e879f9);
  transition: width 0.25s ease;
}

.nav-link:hover::after {
  width: 100%;
}

/* Reveal on scroll */
.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}

.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Feature card hover */
.feature-card {
  transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}

.feature-card:hover {
  transform: translateY(-6px);
  border-color: rgba(129, 140, 248, 0.5);
  box-shadow: 0 20px 40px -20px rgba(99, 102, 241, 0.45);
}

/* CTA button pulse for hero */
.btn-pulse {
  animation: btnPulse 3s ease-in-out infinite;
}

@keyframes btnPulse {
  0%, 100% {
    box-shadow: 0 10px 30px -10px rgba(99, 102, 241, 0.5);
  }
  50% {
    box-shadow: 0 10px 40px -8px rgba(217, 70, 239, 0.6);
  }
}

/* ---------------------------------------------------------
   Outbound booking CTA
   Makes the "Get started" button read clearly as a link
   that leaves the page and opens the Calendly booking flow.
   --------------------------------------------------------- */
.cta-outbound {
  position: relative;
  text-decoration: none;
  transition: transform 0.2s ease, box-shadow 0.25s ease,
    background-color 0.2s ease, border-color 0.2s ease, filter 0.2s ease;
}

.cta-outbound .cta-icon {
  transition: transform 0.2s ease;
}

.cta-outbound:hover {
  transform: translateY(-2px);
}

.cta-outbound:hover .cta-icon,
.cta-outbound:focus-visible .cta-icon {
  transform: translate(2px, -2px);
}

.cta-outbound:active {
  transform: translateY(0);
  filter: brightness(0.96);
}

/* Keyboard accessibility — visible focus ring for every CTA */
.cta-outbound:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(15, 23, 42, 1), 0 0 0 6px rgba(129, 140, 248, 0.9);
}

/* Solid (white) variants of the CTA in header + mobile menu */
a.cta-outbound.bg-white:focus-visible {
  box-shadow: 0 0 0 3px rgba(2, 6, 23, 1), 0 0 0 6px rgba(129, 140, 248, 0.9);
}

/* Gradient variants get a slightly stronger hover glow */
a.cta-outbound.bg-gradient-to-r:hover {
  box-shadow: 0 14px 40px -14px rgba(129, 140, 248, 0.75);
}

/* Footer link CTA gets an underline cue since it is inline text */
footer .cta-outbound {
  text-decoration: underline;
  text-decoration-color: rgba(129, 140, 248, 0.6);
  text-underline-offset: 3px;
}

footer .cta-outbound:hover {
  text-decoration-color: rgba(232, 121, 249, 0.9);
}

/* Form input styling */
.form-input {
  transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.form-input:focus {
  outline: none;
  border-color: #818cf8;
  box-shadow: 0 0 0 3px rgba(129, 140, 248, 0.25);
}

/* Section headings gradient accent */
.section-accent {
  background: linear-gradient(to right, #818cf8, #e879f9);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* Footer link hover */
.footer-link {
  transition: color 0.2s ease;
}

.footer-link:hover {
  color: #ffffff;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .btn-pulse {
    animation: none;
  }

  .cta-outbound,
  .cta-outbound .cta-icon {
    transition: none;
  }

  .cta-outbound:hover,
  .cta-outbound:hover .cta-icon {
    transform: none;
  }
}

/* Responsive tweaks */
@media (min-width: 768px) {
  :root {
    --header-height: 5rem;
  }
}
