/* Static-archive fixes (no Next.js hydration) */
html { --vw: 1vw; --vh: 1vh; }
.sp-hero-video, .parallax-video video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.parallax-video { background: #000 center/cover no-repeat; }
.parallax-video:has(video[poster]) {
  /* poster shows while video loads */
}
nav[data-open="true"] {
  transform: translateX(0) !important;
}
body.menu-open { overflow: hidden; }
#MainNav a.active, nav a.active { opacity: 1; }
img { max-width: 100%; height: auto; }

.sp-faq-item { cursor: pointer; }
.sp-faq-item:not(.sp-faq-open) > div:last-child:not(:first-child) {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
}
.sp-faq-item.sp-faq-open > div:last-child {
  max-height: 800px;
  opacity: 1;
  transition: all .3s ease;
}
.sp-contact-form input,
.sp-contact-form textarea,
.sp-contact-form select {
  color: inherit;
  background: transparent;
}

/* Word spans from Next.js animation — keep spaces readable */
h1 span.inline-block.ease-out,
h2 span.inline-block.ease-out,
h3 span.inline-block.ease-out {
  display: inline;
}

.parallax-video {
  background-color: #000;
  background-size: cover;
  background-position: center;
}
.parallax-video video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.parallax-video > div {
  position: absolute;
  inset: 0;
}

video.sp-hero-still {
  /* Rely on poster attribute + parent background */
  background: transparent;
}

img.sp-hero-still {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
