/* Image block (Elementor Image). Loaded only where the block is used; the lightbox <dialog> is created by image.js. */
:where(.wb-image) { text-align: center; } /* zero specificity: the Alignment control always wins, whatever the CSS load order */
/* :where() keeps these defaults below the generated Width / Max Width / Height rules. */
:where(.wb-image) img { display: inline-block; max-width: 100%; height: auto; vertical-align: middle; transition: opacity .3s, filter .3s, transform .3s; }
.wb-image a { display: inline-block; }
.wb-image .wb-image__figure { margin: 0; }
.wb-image .wb-image__caption { display: block; }
:where(.wb-image .wb-image__caption) { margin-block-start: 8px; }

/* Hover animations (Elementor's elementor-animation-*) */
.wb-img-anim-grow:hover img { transform: scale(1.1); }
.wb-img-anim-shrink:hover img { transform: scale(.9); }
.wb-img-anim-float:hover img { transform: translateY(-8px); }
.wb-img-anim-sink:hover img { transform: translateY(8px); }
.wb-img-anim-rotate:hover img { transform: rotate(4deg); }

/* Lightbox */
.wb-image-dialog { max-width: 92vw; max-height: 92vh; padding: 0; border: 0; overflow: visible; background: transparent; }
.wb-image-dialog::backdrop { background: rgba(0, 0, 0, .85); }
.wb-image-dialog img { display: block; max-width: 92vw; max-height: 88vh; width: auto; height: auto; }
.wb-image-dialog__close { position: absolute; top: -44px; right: 0; padding: 0 8px; border: 0; background: none; color: #fff; font-size: 36px; line-height: 40px; cursor: pointer; }
@media (prefers-reduced-motion: reduce) { .wb-image img { transition: none; } }

/* "After page load": a soft panel in the image's reserved box until assets/js/lazy-frame.js sets its src. */
.wb-image img.wb-lazy-frame { background-color: #f0f0f1; }

/* Vertical parallax (parallax.js sets --wb-py / --wb-ps; `translate`/`scale` leave hover `transform` free). */
.wb-image__parallax { display: contents; }
.wb-image__parallax.is-clip { display: inline-block; max-width: 100%; overflow: hidden; vertical-align: middle; line-height: 0; }
.wb-image__parallax img { translate: 0 var(--wb-py, 0); scale: var(--wb-ps, 1); will-change: translate; }
.wb-image .wb-image__parallax img { transition-property: opacity, filter, transform; } /* never ease the scroll-driven translate */
