/* Additions for the standalone version (replacing Elementor runtime UI) */

html { scroll-behavior: smooth; }
html.endo-no-scroll { overflow: hidden; }

/* popups: keep the Elementor look, sit above everything */
.elementor-popup-modal { position: fixed; inset: 0; z-index: 9999; overflow-y: auto; }
.elementor-popup-modal .dialog-widget-content { position: relative; margin: auto; max-width: calc(100vw - 20px); }
.elementor-popup-modal .dialog-message { max-width: 100%; }
.elementor-popup-modal .dialog-close-button { cursor: pointer; }
.elementor-popup-modal .dialog-close-button svg { width: 1em; height: 1em; }

/* form submitting state */
.elementor-form-waiting .elementor-button { opacity: .6; cursor: wait; }

/* gallery hover overlay needs a positioned layer */
.elementor-gallery-item__overlay { position: absolute; inset: 0; transition: background-color .35s; }
.elementor-gallery-item { cursor: zoom-in; }

/* lightbox */
.endo-lightbox {
  position: fixed; inset: 0; z-index: 100000;
  display: none; align-items: center; justify-content: center;
  background: rgba(0, 0, 0, .87); color: #fff; user-select: none;
}
.endo-lightbox.is-open { display: flex; }
.endo-lightbox__stage { margin: 0; display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; padding: 60px 70px; box-sizing: border-box; }
.endo-lightbox__stage img { max-width: 100%; max-height: 100%; object-fit: contain; opacity: 0; transition: opacity .25s; box-shadow: 0 0 30px rgba(0,0,0,.3); }
.endo-lightbox__stage img.is-loaded { opacity: 1; }
.endo-lightbox__stage figcaption { display: none; }
.endo-lightbox button { background: none; border: 0; color: rgba(238, 238, 238, .9); cursor: pointer; font-family: Arial, sans-serif; line-height: 1; padding: 0; }
.endo-lightbox button:hover { color: #fff; }
.endo-lightbox__close { position: absolute; top: 12px; left: 16px; font-size: 44px; width: 48px; height: 48px; }
.endo-lightbox__counter { position: absolute; top: 20px; right: 20px; font-size: 16px; font-family: Arial, sans-serif; color: rgba(238,238,238,.9); }
.endo-lightbox__nav { position: absolute; top: 50%; transform: translateY(-50%); font-size: 64px; width: 60px; height: 100px; }
.endo-lightbox__prev { right: 6px; }
.endo-lightbox__next { left: 6px; }
.endo-lightbox.is-single .endo-lightbox__nav { display: none; }
@media (max-width: 767px) {
  .endo-lightbox__stage { padding: 60px 10px; }
  .endo-lightbox__nav { font-size: 44px; width: 44px; }
}

/* popup document is hidden by Elementor CSS until it is placed inside a dialog */
.elementor-popup-modal [data-elementor-type="popup"] { display: block; }

/* YouTube click-to-play thumbnails */
.endo-yt { position: relative; display: block; width: 100%; height: 100%; background: #000; cursor: pointer; overflow: hidden; }
.endo-yt img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.endo-yt--contain img { object-fit: contain; }
.endo-yt__play { position: absolute; top: 50%; left: 50%; width: 68px; height: 48px; transform: translate(-50%, -50%); pointer-events: none; transition: transform .15s; }
.endo-yt__play svg { display: block; width: 100%; height: 100%; }
.endo-yt:hover .endo-yt__play, .endo-yt:focus-visible .endo-yt__play { transform: translate(-50%, -50%) scale(1.1); }
