.bdt-cursor-effects-yes {
  --cursor-ball-color: red;
  --cursor-ball-size: 10px;
  --cursor-circle-color: red;
  --cursor-circle-size: 40px;
  --cursor-text-label: "bdthemes";
  --cursor-image-size: 50px;
}
/* Body-mounted wrapper: avoids RTL/transform containing block so cursor is always visible (LTR + viewport-fixed) */
.bdt-cursor-effects-body-wrap {
  direction: ltr;
  position: static;
  pointer-events: none;
}
.bdt-cursor-effects-body-wrap .bdt-cursor-effects {
  pointer-events: none;
}
.bdt-cursor-effects-yes .bdt-cursor-effects {
  position: fixed;
  z-index: 999999;
}
.bdt-cursor-effects-yes .bdt-cursor-effects .cotton-init.ep-cursor-ball.cotton-active {
  position: fixed;
  top: 0;
  /*rtl:ignore*/
  left: 0;
  z-index: 999;
  pointer-events: none;
  /*rtl:ignore*/
  transform: translate(-20px, -20px);
}
.bdt-cursor-effects-yes .bdt-cursor-effects .cotton-init.ep-cursor-circle.cotton-active {
  position: fixed;
  top: 0;
  /*rtl:ignore*/
  left: 0;
  pointer-events: none;
  /*rtl:ignore*/
  transform: translate(-40px, -40px);
}
.bdt-cursor-effects-yes .bdt-cursor-effects.ep-cursor-style-1 .cotton-init.ep-cursor-ball.cotton-active {
  inline-size: var(--cursor-ball-size);
  block-size: var(--cursor-ball-size);
  background-color: var(--cursor-ball-color);
  border-radius: 50%;
}
.bdt-cursor-effects-yes .bdt-cursor-effects.ep-cursor-style-1 .cotton-init.ep-cursor-circle.cotton-active {
  background-color: transparent;
  border: 1px solid var(--cursor-circle-color);
  inline-size: var(--cursor-circle-size);
  block-size: var(--cursor-circle-size);
  border-radius: 50%;
}
.bdt-cursor-effects-yes .bdt-cursor-effects.ep-cursor-style-2 .cotton-init {
  position: relative;
}
.bdt-cursor-effects-yes .bdt-cursor-effects.ep-cursor-style-2 .cotton-init.ep-cursor-ball.cotton-active {
  border-radius: 50%;
  background-size: cover;
  background-position: center;
}
.bdt-cursor-effects-yes .bdt-cursor-effects.ep-cursor-style-2 .cotton-init.ep-cursor-ball.cotton-active::before,
.bdt-cursor-effects-yes .bdt-cursor-effects.ep-cursor-style-2 .cotton-init.ep-cursor-ball.cotton-active::after {
  content: "";
  position: absolute;
  top: 0;
  /*rtl:ignore*/
  left: 50%;
  /*rtl:ignore*/
  transform: translateX(-50%);
  inline-size: var(--cursor-ball-size);
  block-size: 2px;
  background: var(--cursor-ball-color);
}
.bdt-cursor-effects-yes .bdt-cursor-effects.ep-cursor-style-2 .cotton-init.ep-cursor-ball.cotton-active:after {
  /*rtl:ignore*/
  transform: translateX(-50%) rotate(90deg);
}
.bdt-cursor-effects-yes .bdt-cursor-effects.ep-cursor-style-2 .cotton-init.ep-cursor-circle.cotton-active {
  background-color: transparent;
  border: 1px solid var(--cursor-circle-color);
  inline-size: var(--cursor-circle-size);
  block-size: var(--cursor-circle-size);
  border-radius: 50%;
}
.bdt-cursor-effects-yes .bdt-cursor-effects.ep-cursor-style-3 .cotton-init.ep-cursor-circle.cotton-active {
  background-color: var(--cursor-ball-color);
  inline-size: var(--cursor-ball-size);
  block-size: var(--cursor-ball-size);
  border-radius: 50%;
}
.bdt-cursor-effects-yes .bdt-cursor-effects.ep-cursor-style-5 .cotton-init.ep-cursor-ball.cotton-active {
  inline-size: 450px;
  block-size: 450px;
  background-color: var(--cursor-ball-color);
  border-radius: 50%;
}
.bdt-cursor-effects-yes .bdt-cursor-effects .cotton-active .bdt-cursor-image {
  inline-size: var(--cursor-image-size, 50px);
  block-size: var(--cursor-image-size, 50px);
  width: var(--cursor-image-size, 50px);
  height: var(--cursor-image-size, 50px);
  max-width: none;
  object-fit: cover;
  box-sizing: border-box;
}
/* Image source: size control (also set via Elementor on #bdt-cursor-effects-wrap-{{ID}} .bdt-cursor-image) */
.bdt-cursor-effects-body-wrap.bdt-cursor-effects--image .bdt-cursor-effects .cotton-active .bdt-cursor-image {
  inline-size: var(--cursor-image-size, 50px);
  block-size: var(--cursor-image-size, 50px);
  width: var(--cursor-image-size, 50px);
  height: var(--cursor-image-size, 50px);
}
/* Icons source (font / inline SVG / SVG URL as <img>): Size control maps to --cursor-ball-size */
.bdt-cursor-effects-body-wrap.bdt-cursor-effects--icons .bdt-cursor-effects .cotton-active .bdt-cursor-image {
  inline-size: var(--cursor-ball-size);
  block-size: var(--cursor-ball-size);
}
.bdt-cursor-effects-yes .bdt-cursor-effects .cotton-active .bdt-cursor-text,
.bdt-cursor-effects-yes .bdt-cursor-effects .cotton-active .bdt-cursor-icons,
.bdt-cursor-effects-yes .bdt-cursor-effects .cotton-active .bdt-cursor-image {
  display: block;
}
.bdt-cursor-effects-yes .bdt-cursor-effects .bdt-cursor-text,
.bdt-cursor-effects-yes .bdt-cursor-effects .bdt-cursor-icons,
.bdt-cursor-effects-yes .bdt-cursor-effects .bdt-cursor-image {
  display: none;
}
.bdt-cursor-effects-yes .bdt-cursor-effects .bdt-cursor-icons {
  color: var(--cursor-ball-color);
  font-size: var(--cursor-ball-size);
}
.bdt-cursor-effects-body-wrap.bdt-cursor-effects--icons .bdt-cursor-effects .cotton-active .bdt-cursor-icons {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}
/* SVG icons (uploaded SVG / Font Awesome inline SVG): font-size alone does not scale the graphic */
.bdt-cursor-effects-body-wrap.bdt-cursor-effects--icons .bdt-cursor-effects .bdt-cursor-icons svg,
.bdt-cursor-effects-body-wrap.bdt-cursor-effects--icons .bdt-cursor-effects svg.bdt-cursor-icons {
  width: var(--cursor-ball-size);
  height: var(--cursor-ball-size);
  flex-shrink: 0;
}
.bdt-cursor-effects-yes.bdt-cursor-effects-disable-default-cursor-yes .bdt-marquee {
  cursor: none !important;
}
/* RTL: Keep left:0; top:0 so Cotton.js transform (translate(calc(-50% + Xpx), ...)) works.
   Mouse coordinates are always in viewport space; flipping to right:0 breaks positioning. */
