html { scroll-behavior: smooth; }
a, button, .elementor-button, .wp-block-button__link, input[type="submit"] {
  transition: color .25s ease, background-color .25s ease, border-color .25s ease,
              box-shadow .3s ease, transform .3s cubic-bezier(.2,.7,.2,1);
}
.elementor-button:hover, .wp-block-button__link:hover,
button[type="submit"]:hover, input[type="submit"]:hover {
  transform: translateY(-3px); box-shadow: 0 10px 22px rgba(0,0,0,.18);
}
.elementor-button:active, .wp-block-button__link:active { transform: translateY(-1px); }
.elementor-widget-image-box .elementor-image-box-wrapper,
.elementor-widget-icon-box .elementor-icon-box-wrapper {
  transition: transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s ease;
}
.elementor-widget-image-box:hover .elementor-image-box-wrapper,
.elementor-widget-icon-box:hover .elementor-icon-box-wrapper {
  transform: translateY(-6px); box-shadow: 0 16px 32px rgba(0,0,0,.12);
}
.elementor-image-box-img, figure.wp-block-image { overflow: hidden; }
.elementor-image-box-img img, figure.wp-block-image img {
  transition: transform .5s cubic-bezier(.2,.7,.2,1);
}
.elementor-widget-image-box:hover .elementor-image-box-img img,
figure.wp-block-image:hover img { transform: scale(1.06); }
.elementor-nav-menu .elementor-item { position: relative; }
.elementor-nav-menu .elementor-item::after {
  content: ""; position: absolute; left: 0; bottom: 2px; width: 100%; height: 2px;
  background: currentColor; transform: scaleX(0); transform-origin: left center;
  transition: transform .3s ease; opacity: .8;
}
.elementor-nav-menu .elementor-item:hover::after,
.elementor-nav-menu .elementor-item.elementor-item-active::after { transform: scaleX(1); }
a:focus-visible, button:focus-visible, .elementor-button:focus-visible,
input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid rgba(20,110,200,.55); outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .001ms !important; animation-duration: .001ms !important; }
}
