/* JS Construction Sydney — sitewide premium scroll-reveal + hover polish */

/* ---------- Scroll reveal ---------- */
.jscs-reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1), transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}
.jscs-reveal.jscs-revealed {
  opacity: 1;
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
  .jscs-reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* ---------- Premium hover polish ---------- */
.elementor-button,
.wdt-button,
a.jscs-svc-card,
a.jscs-port-card,
.jscs-gal-item,
.elementor-widget-wdt-icon-box,
.elementor-image-box-wrapper {
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.35s ease, filter 0.35s ease;
}

.elementor-button:hover,
.wdt-button:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 28px rgba(2, 51, 97, 0.18);
}

a.jscs-svc-card:hover,
a.jscs-port-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 18px 36px rgba(2, 51, 97, 0.14);
}

.elementor-widget-wdt-icon-box:hover,
.elementor-image-box-wrapper:hover {
  transform: translateY(-4px);
}

/* smoother in-page anchor scrolling */
html {
  scroll-behavior: smooth;
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

/* image hover zoom polish (grid/cards only, not carousels/logos) */
.jscs-port-img img,
.jscs-gal-item img {
  transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}
