/**
 * Pro Effects — Hover Iris
 *
 * Overlay div con bg solido. clip-path: circle() expande de radio 0 al
 * --pe-hir-r-max (calculado por JS = distancia desde el origen al corner
 * mas lejano). Asimetria entry/exit: transition idle (exit) usa ease-in +
 * dur-out; transition :hover (entry) usa ease-out + dur-in.
 *
 * Origenes via [data-pe-hir-origin] → setea --pe-hir-x / --pe-hir-y.
 */

.elementor-button.pe-hir-active {
  position: relative;
  overflow: hidden;
}

.elementor-button.pe-hir-active .elementor-button-content-wrapper {
  position: relative;
  z-index: 2;
}

/* Overlay — cubre todo el button. clip-path circle() controla la visibilidad. */
.elementor-button.pe-hir-active .pe-hir-overlay {
  position: absolute;
  inset: 0;
  background: var(--pe-hir-color, #1a1a1a);
  pointer-events: none;
  z-index: 1;
  /* Estado idle (exit): radio 0 + ease-in + dur-out */
  clip-path: circle(0 at var(--pe-hir-x, 50%) var(--pe-hir-y, 50%));
  transition: clip-path var(--pe-hir-dur-out, 0.55s) cubic-bezier(0.32, 0, 0.67, 0);
}

/* Estado hover (entry): radio max + ease-out + dur-in */
.elementor-button.pe-hir-active:hover .pe-hir-overlay,
.elementor-button.pe-hir-active:focus-visible .pe-hir-overlay {
  clip-path: circle(var(--pe-hir-r-max, 150%) at var(--pe-hir-x, 50%) var(--pe-hir-y, 50%));
  transition: clip-path var(--pe-hir-dur-in, 0.5s) cubic-bezier(0.33, 1, 0.68, 1);
}

/* Origenes — definen --pe-hir-x / --pe-hir-y */
.elementor-button.pe-hir-active[data-pe-hir-origin="center"]       { --pe-hir-x: 50%;  --pe-hir-y: 50%;  }
.elementor-button.pe-hir-active[data-pe-hir-origin="top"]          { --pe-hir-x: 50%;  --pe-hir-y: 0%;   }
.elementor-button.pe-hir-active[data-pe-hir-origin="bottom"]       { --pe-hir-x: 50%;  --pe-hir-y: 100%; }
.elementor-button.pe-hir-active[data-pe-hir-origin="left"]         { --pe-hir-x: 0%;   --pe-hir-y: 50%;  }
.elementor-button.pe-hir-active[data-pe-hir-origin="right"]        { --pe-hir-x: 100%; --pe-hir-y: 50%;  }
.elementor-button.pe-hir-active[data-pe-hir-origin="top-left"]     { --pe-hir-x: 0%;   --pe-hir-y: 0%;   }
.elementor-button.pe-hir-active[data-pe-hir-origin="top-right"]    { --pe-hir-x: 100%; --pe-hir-y: 0%;   }
.elementor-button.pe-hir-active[data-pe-hir-origin="bottom-left"]  { --pe-hir-x: 0%;   --pe-hir-y: 100%; }
.elementor-button.pe-hir-active[data-pe-hir-origin="bottom-right"] { --pe-hir-x: 100%; --pe-hir-y: 100%; }

/* Text/icon color flip sincronizado.
 * Idle (exit): dur-out + ease-in. Hover (entry): dur-in + ease-out. */
.elementor-button.pe-hir-active .elementor-button-text,
.elementor-button.pe-hir-active .elementor-button-icon {
  transition: color var(--pe-hir-dur-out, 0.55s) cubic-bezier(0.32, 0, 0.67, 0);
}
.elementor-button.pe-hir-active:hover .elementor-button-text,
.elementor-button.pe-hir-active:hover .elementor-button-icon,
.elementor-button.pe-hir-active:focus-visible .elementor-button-text,
.elementor-button.pe-hir-active:focus-visible .elementor-button-icon {
  color: var(--pe-hir-text-hover, #ffffff);
  transition: color var(--pe-hir-dur-in, 0.5s) cubic-bezier(0.33, 1, 0.68, 1);
}
.elementor-button.pe-hir-active:hover .elementor-button-icon svg,
.elementor-button.pe-hir-active:focus-visible .elementor-button-icon svg {
  fill: var(--pe-hir-text-hover, #ffffff);
}

/* Reduced motion — instant cover en :hover, sin transition */
@media (prefers-reduced-motion: reduce) {
  .elementor-button.pe-hir-active .pe-hir-overlay {
    transition: none !important;
  }
  .elementor-button.pe-hir-active:hover .pe-hir-overlay,
  .elementor-button.pe-hir-active:focus-visible .pe-hir-overlay {
    transition: none !important;
  }
  .elementor-button.pe-hir-active .elementor-button-text,
  .elementor-button.pe-hir-active .elementor-button-icon {
    transition: none !important;
  }
}
