@font-face {
  font-family: "EST Lora";
  src: url("../fonts/Lora-Variable.ttf") format("truetype");
  font-weight: 400 700;
  font-display: swap;
}
.est-designed-banner,
.est-editor-stage {
  position: relative;
  container-type: inline-size;
  overflow: hidden;
  isolation: isolate;
  background: #142033;
}
.est-designed-banner.est-home-banner {
  aspect-ratio: var(--est-design-ratio) !important;
  height: auto !important;
  min-height: 0 !important;
  padding: 0 !important;
  display: block !important;
  gap: 0 !important;
}
.est-designed-banner .est-home-banner__bg {
  object-position: var(--est-focal, 50% 50%) !important;
}
.est-design-shade {
  position: absolute;
  inset: 0;
  background: #000;
  pointer-events: none;
  z-index: 1;
}
.est-design-stage {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 3;
}
.est-design-stage--mobile {
  display: none;
}
.est-design-layer {
  position: absolute;
  box-sizing: border-box;
  display: block;
  margin: 0;
  min-height: 0;
  max-width: none;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  text-decoration: none;
  border-style: solid;
  box-shadow: none;
  transform: none;
}
a.est-design-layer.est-design-button {
  pointer-events: auto;
  text-decoration: none !important;
  cursor: pointer;
  min-width: 0;
  min-height: 0;
  box-sizing: border-box;
}
a.est-design-layer.est-design-button:hover {
  filter: brightness(1.12);
}
a.est-design-layer:focus-visible {
  outline: 3px solid #278dff;
  outline-offset: 3px;
}
.est-designed-banner .est-home-banner__full-link {
  z-index: 2;
}
@media (max-width: 767px) {
  .est-designed-banner.est-home-banner {
    aspect-ratio: var(--est-mobile-ratio) !important;
    height: auto !important;
  }
  .est-design-stage--desktop {
    display: none;
  }
  .est-design-stage--mobile {
    display: block;
  }
}
/* Legacy slots have a short mobile aspect ratio. Only opt-in builder slots grow. */
@media (max-width: 767px) {
  .ef-home-section.est-home-banners
    .est-page-banners__primary:has(.est-designed-banner),
  .ef-home-section.est-home-banners
    .est-page-banners__secondary:has(.est-designed-banner) {
    height: auto !important;
    aspect-ratio: auto !important;
    contain: none !important;
  }
  .est-page-banners__slider:has(.est-designed-banner) {
    height: auto !important;
  }
  .est-page-banners__slider:has(.est-designed-banner) > .swiper-wrapper {
    height: auto;
    align-items: flex-start;
  }
  .est-page-banners__slider:has(.est-designed-banner)
    > .swiper-wrapper
    > .swiper-slide {
    height: auto !important;
  }
}

/* Background sizing is independent for desktop and mobile; legacy defaults to cover. */
.est-designed-banner.est-home-banner { background: var(--est-canvas-color, #142033) !important; }
.est-designed-banner .est-home-banner__bg { object-fit: var(--est-fit-desktop, cover) !important; }
@media (max-width: 767px) {
  .est-designed-banner .est-home-banner__bg { object-fit: var(--est-fit-mobile, cover) !important; }
}

.est-designed-banner .est-home-banner__bg { transform: var(--est-bg-desktop, none) !important; transform-origin: 50% 50%; }
@media (max-width: 767px) {
  .est-designed-banner .est-home-banner__bg { transform: var(--est-bg-mobile, none) !important; }
}
.est-editor-stage.is-moving-background { cursor: grab; touch-action: none; }
.est-editor-stage.is-moving-background:active { cursor: grabbing; }
.est-editor-stage.is-moving-background .est-design-layer { pointer-events: none !important; }
