/* Force consistent media crops against Elementor img resets */
.nv-avatars {
  display: flex !important;
  align-items: center !important;
}

.nv-avatars img,
.nv-avatars span,
.elementor-widget-container .nv-avatars img,
.elementor-element .nv-avatars img {
  width: 40px !important;
  height: 40px !important;
  max-width: 40px !important;
  min-width: 40px !important;
  border-radius: 50% !important;
  border: 2px solid #fff !important;
  margin-left: -12px !important;
  object-fit: cover !important;
  object-position: center !important;
  background: var(--nv-pastel-sky);
  flex-shrink: 0 !important;
  display: block !important;
  position: relative !important;
  inset: auto !important;
}

.nv-avatars img:first-child,
.nv-avatars span:first-child {
  margin-left: 0 !important;
}

.nv-feature__media,
.nv-course-card__media,
.nv-instructor__media,
.nv-corporate-photo,
.nv-cert-block__media {
  position: relative !important;
  overflow: hidden !important;
}

.nv-feature__media { aspect-ratio: 16 / 10 !important; }
.nv-course-card__media { aspect-ratio: 4 / 3 !important; }
.nv-instructor__media { aspect-ratio: 3 / 4 !important; }
.nv-corporate-photo,
.nv-cert-block__media { aspect-ratio: 4 / 3 !important; }

.nv-feature__media img,
.nv-course-card__media img,
.nv-instructor__media img,
.nv-corporate-photo img,
.nv-cert-block__media img,
.elementor-widget-container .nv-feature__media img,
.elementor-widget-container .nv-course-card__media img,
.elementor-widget-container .nv-instructor__media img,
.elementor-widget-container .nv-corporate-photo img,
.elementor-widget-container .nv-cert-block__media img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
  border-radius: 0 !important;
}

.nv-instructor__media img {
  object-position: center top !important;
}

.nv-review__author img,
.nv-review__avatar,
.elementor-widget-container .nv-review__author img {
  width: 48px !important;
  height: 48px !important;
  max-width: 48px !important;
  min-width: 48px !important;
  border-radius: 50% !important;
  object-fit: cover !important;
  object-position: center !important;
  flex-shrink: 0 !important;
  display: block !important;
  position: relative !important;
  inset: auto !important;
}

.nv-hero {
  overflow: visible;
}

.nv-hero__visual {
  overflow: visible;
  padding: 28px 36px;
  box-sizing: border-box;
}

.nv-hero__image,
.elementor-widget-container .nv-hero__image {
  width: min(100%, 380px) !important;
  max-width: 100% !important;
  aspect-ratio: 1 / 1 !important;
  height: auto !important;
  object-fit: cover !important;
  object-position: center !important;
  border-radius: 28px !important;
}

.nv-hero__float-card {
  white-space: nowrap;
  max-width: calc(100% - 24px);
}

.nv-hero__float-card--kit {
  top: 10%;
  left: 4%;
}

.nv-hero__float-card--heart {
  bottom: 16%;
  right: 4%;
}

.nv-hero__float-card--cert {
  bottom: 10%;
  left: 10%;
  right: auto;
}

/* Elementor Atomic homepage stack must always be full-width column */
.elementor .e-flexbox-base,
.elementor .e-con.e-flexbox-base,
.elementor [data-element_type="e-flexbox"] {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  max-width: 100% !important;
  align-items: stretch !important;
}

.elementor .e-flexbox-base > .elementor-element,
.elementor .e-con.e-flexbox-base > .elementor-element {
  width: 100% !important;
  max-width: 100% !important;
  flex: 0 0 auto !important;
}
