/* nashpoint.fi — behaviour layer replacing the Framer runtime (hover states, reveals, menu, FAQ, carousel). */

html {
  scroll-behavior: smooth;
}

/* ---- reveal-on-scroll / hero appear (initial state is inline; JS flips to .np-shown) ---- */
[data-np-reveal],
[data-framer-appear-id] {
  transition:
    opacity 0.7s cubic-bezier(0.2, 0.7, 0.2, 1),
    transform 0.7s cubic-bezier(0.2, 0.7, 0.2, 1);
}
[data-np-reveal].np-shown,
[data-framer-appear-id].np-shown {
  opacity: var(--np-target-opacity, 1) !important;
  transform: none !important;
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  [data-np-reveal],
  [data-framer-appear-id] {
    transition: none;
    opacity: var(--np-target-opacity, 1) !important;
    transform: none !important;
  }
}

/* ---- buttons (Framer applied these through whileHover) ---- */
.framer-2dXoz.framer-1lu9w5n,
.framer-t9P2I {
  transition: background-color 0.2s ease;
}
.framer-2dXoz.framer-v-1pnkmzp:hover,
.framer-2dXoz.framer-v-1lu9w5n:hover {
  background-color: rgba(18, 79, 248, 0.5) !important;
}
.framer-2dXoz.framer-v-1q1dj18:hover,
.framer-2dXoz.framer-v-1s2dhcz:hover {
  background-color: rgba(255, 255, 255, 0.05) !important;
}
.framer-t9P2I:hover {
  background-color: rgb(0, 49, 184) !important;
}

/* ---- footer links: text turns brand blue ---- */
.framer-Ta48X .framer-10c7aaw {
  transition: --extracted-r6o4lv 0.2s ease;
}
.framer-Ta48X.framer-19xxrvp:hover .framer-10c7aaw {
  --extracted-r6o4lv: var(--token-474cd57f-bcf6-432f-ac27-8763383336d4, rgb(18, 79, 248)) !important;
}

/* ---- nav links: the small marker slides in from the left on hover ---- */
.framer-wxmU1 .framer-ehrzk8 {
  transition:
    opacity 0.25s ease,
    transform 0.25s ease,
    left 0.25s ease,
    right 0.25s ease;
}
.framer-wxmU1.framer-v-vsvjwe:hover .framer-ehrzk8 {
  opacity: 1 !important;
  transform: none !important;
  left: unset;
  right: 0;
}

/* ---- menu panel fade ---- */
.framer-1muibf0-container,
.framer-tu2h2d-container {
  transition: opacity 0.25s ease;
}
.framer-dgtLT.framer-v-1lotky9 .framer-1muibf0-container,
.framer-dgtLT.framer-v-gf8a51 .framer-tu2h2d-container {
  opacity: 1 !important;
}
[data-framer-name="Hamburger"] {
  cursor: pointer;
}

/* ---- FAQ ---- */
.framer-8a3St .framer-1a6szl {
  cursor: pointer;
}
.framer-8a3St .np-faq-answer[hidden] {
  display: none;
}
.framer-8a3St .np-faq-answer {
  animation: np-fade-in 0.3s ease;
}
@keyframes np-fade-in {
  from {
    opacity: 0;
    transform: translateY(-4px);
  }
  to {
    opacity: 0.7;
    transform: none;
  }
}

/* ---- carousel ---- */
[data-np-carousel] ul {
  transition: transform 0.9s cubic-bezier(0.2, 0.8, 0.2, 1);
}
[data-np-carousel] ul.np-no-transition {
  transition: none;
}
[data-np-carousel] button[aria-label="Previous"],
[data-np-carousel] button[aria-label="Next"] {
  opacity: 0;
  transition: opacity 0.2s ease;
}
[data-np-carousel]:hover button[aria-label="Previous"],
[data-np-carousel]:hover button[aria-label="Next"],
[data-np-carousel] button:focus-visible {
  opacity: 1;
}
[data-np-carousel] button[aria-label^="Scroll"] > div {
  transition: opacity 0.2s ease;
}

/* ---- newsletter form status ---- */
.np-form-status {
  margin: 8px 0 0;
  font-family: "Host Grotesk", "Host Grotesk Placeholder", sans-serif;
  font-size: 14px;
  line-height: 20px;
  color: rgba(32, 32, 38, 0.7);
}
.np-form-status[hidden] {
  display: none;
}
.np-form-status.np-error {
  color: rgb(196, 48, 48);
}
.np-form-status.np-ok {
  color: rgb(18, 79, 248);
}
#newsletter-form.np-busy button[type="submit"] {
  opacity: 0.6;
  pointer-events: none;
}
