.customtheme-floating-element {
  --overlap-size: 30px;
  --filter-shadow: drop-shadow(2px 2px 4px rgba(0, 0, 0, 0.25));
  --overlap-opacity: 0.66;
  --dynamic-page-margin-left-right: calc(((100dvw - var(--content-width)) / 2) - var(--image-width) - var(--gap-to-content));
  position: fixed;
  z-index: 12;
  opacity: var(--overlap-opacity);
  transition: all 0.6s ease;
}
.customtheme-floating-element.no-overlap {
  opacity: 1;
}
.customtheme-floating-element.show, .customtheme-floating-element:hover {
  opacity: 1;
  transition: all 0.3s ease;
}
.customtheme-floating-element.position-top {
  top: calc(-1 * var(--overlap-size));
  transition: all 0.6s ease;
}
.customtheme-floating-element.position-top.show, .customtheme-floating-element.position-top:hover {
  top: 0;
  transition: all 0.3s ease;
}
.customtheme-floating-element.position-right {
  right: calc(-1 * var(--overlap-size));
  transition: all 0.6s ease;
}
.customtheme-floating-element.position-right.show, .customtheme-floating-element.position-right:hover {
  right: 0;
  transition: all 0.3s ease;
}
.customtheme-floating-element.position-bottom {
  bottom: calc(-1 * var(--overlap-size));
  transition: all 0.6s ease;
}
.customtheme-floating-element.position-bottom.show, .customtheme-floating-element.position-bottom:hover {
  bottom: 0;
  transition: all 0.3s ease;
}
.customtheme-floating-element.position-left {
  left: calc(-1 * var(--overlap-size));
  transition: all 0.6s ease;
}
.customtheme-floating-element.position-left.show, .customtheme-floating-element.position-left:hover {
  left: 0;
  transition: all 0.3s ease;
}
.customtheme-floating-element.from-top {
  top: 0;
}
.customtheme-floating-element.from-right {
  right: 0;
}
.customtheme-floating-element.from-bottom {
  bottom: 0;
}
.customtheme-floating-element.from-left {
  left: 0;
}
.customtheme-floating-element img {
  display: block;
  filter: var(--filter-shadow);
  width: var(--image-width);
}
.customtheme-floating-element.is-not-overlapping.position-right {
  right: var(--dynamic-page-margin-left-right);
  opacity: 1;
}
.customtheme-floating-element.is-not-overlapping.position-left {
  left: var(--dynamic-page-margin-left-right);
  opacity: 1;
}
