/* cr-runtime.css — glue styles for the hand-written runtime.
 * Elementor's own dialog.min.css / lightbox.min.css / widget CSS remain bundled;
 * this only covers what those expect their JS to do inline. */

/* popup documents live hidden at page bottom until the runtime opens them */
[data-elementor-type="popup"] { display: none; }
.elementor-popup-modal [data-elementor-type="popup"] { display: block; }

.elementor-popup-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, .8);
  overflow: auto;
}
.elementor-popup-modal .dialog-widget-content {
  position: relative;
  max-width: 100%;
  max-height: 100vh;
  overflow: auto;
}
.elementor-popup-modal .dialog-close-button {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 2;
  cursor: pointer;
  font-size: 22px;
  line-height: 1;
  color: rgba(255, 255, 255, .9);
}
body.cr-popup-open { overflow: hidden; }

/* video lightbox */
.cr-lightbox {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 10000;
  background: rgba(0, 0, 0, .88);
  align-items: center;
  justify-content: center;
}
.cr-lightbox__frame { position: relative; width: min(1140px, 92vw); }
.cr-lightbox__video { position: relative; width: 100%; aspect-ratio: 16 / 9; }
.cr-lightbox__video iframe { position: absolute; inset: 0; width: 100%; height: 100%; }
.cr-lightbox__close {
  position: absolute;
  top: -38px;
  right: 0;
  color: #fff;
  font-size: 30px;
  line-height: 1;
  text-decoration: none;
}

/* nav dropdowns (smartmenus replacement) */
.elementor-nav-menu--main .menu-item-has-children { position: relative; }
.elementor-nav-menu--main ul.sub-menu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 210px;
  z-index: 999;
}
.elementor-nav-menu--main ul.sub-menu ul.sub-menu { top: 0; left: 100%; }
@media (hover: hover) {
  .elementor-nav-menu--main .menu-item-has-children:hover > ul.sub-menu,
  .elementor-nav-menu--main .menu-item-has-children:focus-within > ul.sub-menu { display: block; }
}
.elementor-nav-menu--main .menu-item-has-children.cr-sub-open > ul.sub-menu { display: block; }

/* mobile nav dropdown container */
nav.elementor-nav-menu--dropdown { display: none; }
nav.elementor-nav-menu--dropdown.cr-open { display: block; }

/* full-screen search overlay */
.elementor-widget-search-form .elementor-search-form__container { }
.elementor-widget-search-form.cr-search-open .elementor-search-form__container {
  position: fixed;
  inset: 0;
  z-index: 9998;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, .92);
}
.elementor-widget-search-form.cr-search-open .elementor-search-form__input {
  font-size: 40px;
  color: #fff;
  background: transparent;
  border: 0;
  border-bottom: 2px solid #fff;
  width: min(700px, 80vw);
  outline: none;
}
.elementor-widget-search-form .elementor-search-form__container:not(:focus-within) { }
