.ms-sticky-root {
  position: relative;
}

/* PRIMARY FIX: with Elementor's "Boxed" content width the sections live under
   .ms-sticky-root > .e-con-inner > .ms-sticky-section — the direct-child-only
   selector silently skipped them (sticky worked on Full-Width, died on Boxed:
   the "works sometimes" report). Cover both structures. */
.ms-sticky-root > .ms-sticky-section,
.ms-sticky-root > .e-con-inner > .ms-sticky-section {
  position: sticky;
  top: 0;
}

/* position:sticky dies inside any overflow:hidden/clip ancestor — users set that
   on the root to clip animations and the whole feature silently stops. Guard it. */
.ms-sticky-root,
.ms-sticky-root > .e-con-inner {
  overflow: visible !important;
}

/* Disable Elementor's default transform transition for sticky sections */
.ms-sticky-sections--yes,
.ms-sticky-sections--yes .e-con,
.ms-sticky-sections--yes .e-con-inner,
.ms-sticky-sections--yes .ms-sticky-section {
  --e-con-transform-transition-duration: 0s !important;
  transition: none !important;
}
.ms-sticky-demo--demo-4 .ms-sticky-section, .ms-sticky-demo--demo-5 .ms-sticky-section {
  top: 20vh;
  margin: auto;
  margin-bottom: auto;
  margin-bottom: 10vh;
}
@media (min-width: 992px) {
.ms-sticky-demo--demo-7 .ms-sticky-section {
		width: 50%;
	}
}
.ms-sticky-demo--demo-7 .ms-sticky-section:nth-child(odd) {
	margin-left: auto;
}