/* Preserve the legacy landing-page viewport height through Nuxt's wrapper DOM. */
#home .sec-splash {
  height: calc(100vh - 50px);
  min-height: calc(100vh - 50px);
}

/* ScrollReveal can leave the hero copy at opacity 0 when its legacy callback
   is unavailable. Keep the primary heading and CTA visible in Nuxt. */
#home .home-heading h1,
#home .home-heading a.caret-link {
  visibility: visible !important;
  opacity: 1 !important;
  transform: none !important;
}

/* ScrollReveal was written for static PHP markup. Nuxt can replace those
   nodes during hydration after the legacy script has marked them hidden. */
.sr:not([data-sr-id]) {
  visibility: visible !important;
  opacity: 1 !important;
  transform: none !important;
}

/* The legacy Maps callback slides this panel in. Keep it accessible when the
   configured key is unavailable or the dynamically loaded callback is late. */
#contact-us .sec-location {
  transform: translateX(0) !important;
}

/* The original HK map background file is absent. Use the retained variant
   when the no Maps API fallback exposes this panel. */
#contact-us #map.bg-hongkong {
  background-image: url("../img/contactus/bg-hongkong_2.jpg") !important;
}

/* Keep the Contact enquiry view usable when the legacy Maps-dependent Tween
   callback is unavailable. The controls retain their original markup/style. */
.nuxt-contact-toggle {
  position: fixed;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
}

#contact-us:has(#contact-enquiry-toggle:checked) #form-enquiry {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  animation: nuxt-contact-enquiry-in 0.7s ease-out;
}

#contact-us:has(#contact-enquiry-toggle:checked) .location-content {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
}

@keyframes nuxt-contact-enquiry-in {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Slick owns slide selection; legacy inline fallbacks must not hide its active
   office heading/time after the real slider has initialized. */
#contact-us #location-slider.slick-initialized .slide.slick-active .slide-countryname,
#contact-us #location-slider.slick-initialized .slide.slick-active .slide-locationtime {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}
