/**
 * Pro Effects — Icon Slide
 *
 * Hover: icon translateX hacia su lado (data-pe-is-dir=left|right detectado
 * desde flex-direction). Sin alterar bg/padding/radius del icono — preserva
 * el look nativo. Stretch (data-pe-is-stretch=yes) extiende el padding del
 * lado del icono para que no salga del button.
 */

.elementor-button.pe-is-active .elementor-button-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: transform var(--pe-is-dur, 0.3s) cubic-bezier(0.34, 1.56, 0.64, 1);
  will-change: transform;
}

/* Slide direction: outward (hacia el lado del icono) */
.elementor-button.pe-is-active[data-pe-is-dir="right"]:hover .elementor-button-icon {
  transform: translateX(var(--pe-is-disp, 6px));
}
.elementor-button.pe-is-active[data-pe-is-dir="left"]:hover .elementor-button-icon {
  transform: translateX(calc(-1 * var(--pe-is-disp, 6px)));
}

/* Button stretches with icon (default On) */
.elementor-button.pe-is-active[data-pe-is-stretch="yes"] {
  transition: padding-right var(--pe-is-dur, 0.3s) ease,
              padding-left  var(--pe-is-dur, 0.3s) ease;
}
.elementor-button.pe-is-active[data-pe-is-stretch="yes"][data-pe-is-dir="right"]:hover {
  padding-right: calc(var(--pe-is-base-pad-right, 0px) + var(--pe-is-disp, 6px));
}
.elementor-button.pe-is-active[data-pe-is-stretch="yes"][data-pe-is-dir="left"]:hover {
  padding-left:  calc(var(--pe-is-base-pad-left, 0px) + var(--pe-is-disp, 6px));
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .elementor-button.pe-is-active .elementor-button-icon {
    transition: none !important;
    transform: none !important;
  }
  .elementor-button.pe-is-active[data-pe-is-stretch="yes"] {
    transition: none !important;
  }
}
