/* Utilities — shared cross-module helpers. Baked into the baseline (every theme inherits these). */

/* .fill-image — image covers its column; put on a Divi Image module alone in a column, or an <img>. */
.fill-image {
  width: 100%;
  height: 100%;
  align-self: stretch;
  object-fit: cover;
  object-position: center;
  max-width: none;
}
.fill-image .et_pb_image_wrap,
.fill-image > a,
.fill-image > span,
.fill-image picture {
  display: block !important;   /* beats Divi's ≤980px fit-content on the image wrap */
  width: 100% !important;
  height: 100%;
}
.fill-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  max-width: none;
}

/* .zoom-hover — image scales up on hover, clipped to its box. Put on a Divi Image module or any <img> wrapper. */
.zoom-hover { overflow: hidden; }
.zoom-hover img {
  display: block;
  width: 100%;
  transition: transform 0.3s ease-in-out;
}
.zoom-hover:hover img { transform: scale(1.12); }
@media (prefers-reduced-motion: reduce) {
  .zoom-hover img,
  .zoom-hover:hover img { transition: none; transform: none; }
}

/* .zoom-hover-bg — same zoom for a CSS/Divi BACKGROUND image (no <img>). Put on the column/module
   that carries the background; a scaled ::before layer inherits the image so content stays put. */
.zoom-hover-bg { position: relative; overflow: hidden; isolation: isolate; }
.zoom-hover-bg::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;                 /* behind the module's own content */
  background-image: inherit;   /* copies the element's background image */
  background-size: cover;
  background-position: center;
  transition: transform 0.3s ease-in-out;
}
.zoom-hover-bg:hover::before { transform: scale(1.12); }
@media (prefers-reduced-motion: reduce) {
  .zoom-hover-bg::before,
  .zoom-hover-bg:hover::before { transition: none; transform: none; }
}

/* Mobile menu — keep the nav stacked/expanded on ≤980px (.pa-open-mobile-menu = Divi Plus hook). Do not remove. */
@media (max-width: 980px) {
  .pa-open-mobile-menu .et_pb_menu__menu {
    display: flex !important;
    flex-direction: column !important;
  }
  .pa-open-mobile-menu .et_mobile_nav_menu {
    display: none !important;
  }
}
