/* ── ENTRANCE ANIMATION KEYFRAMES ──────────────────────────── */
@keyframes pb-fadeIn {
    from { opacity: 0; }
    to   { opacity: 1; }
}
@keyframes pb-fadeInUp {
    from { opacity: 0; transform: translateY(40px); }
    to   { opacity: 1; transform: translateY(0); }
}
@keyframes pb-fadeInDown {
    from { opacity: 0; transform: translateY(-40px); }
    to   { opacity: 1; transform: translateY(0); }
}
@keyframes pb-fadeInLeft {
    from { opacity: 0; transform: translateX(40px); }
    to   { opacity: 1; transform: translateX(0); }
}
@keyframes pb-fadeInRight {
    from { opacity: 0; transform: translateX(-40px); }
    to   { opacity: 1; transform: translateX(0); }
}
@keyframes pb-zoomIn {
    from { opacity: 0; transform: scale(0.7); }
    to   { opacity: 1; transform: scale(1); }
}
@keyframes pb-slideInUp {
    from { transform: translateY(100%); }
    to   { transform: translateY(0); }
}

.pb-anim-fadeIn     { animation: pb-fadeIn      0.6s ease-out both; }
.pb-anim-fadeInUp   { animation: pb-fadeInUp    0.6s ease-out both; }
.pb-anim-fadeInDown { animation: pb-fadeInDown  0.6s ease-out both; }
.pb-anim-fadeInLeft { animation: pb-fadeInLeft  0.6s ease-out both; }
.pb-anim-fadeInRight{ animation: pb-fadeInRight 0.6s ease-out both; }
.pb-anim-zoomIn     { animation: pb-zoomIn      0.6s ease-out both; }
.pb-anim-slideInUp  { animation: pb-slideInUp   0.6s ease-out both; overflow: hidden; }

/* ── BLOCK REVEAL OVERLAY PANELS ────────────────────────────── */
.pb-reveal-left,
.pb-reveal-right,
.pb-reveal-top,
.pb-reveal-bottom {
    position: absolute;
    inset: 0;
    z-index: 5;
    pointer-events: none;
    transition: transform 0.8s ease;
}
.pb-reveal-left   { transform-origin: right;  transform: scaleX(1); }
.pb-reveal-right  { transform-origin: left;   transform: scaleX(1); }
.pb-reveal-top    { transform-origin: bottom; transform: scaleY(1); }
.pb-reveal-bottom { transform-origin: top;    transform: scaleY(1); }

.pb-reveal-left.pb-reveal-active,
.pb-reveal-right.pb-reveal-active  { transform: scaleX(0); }
.pb-reveal-top.pb-reveal-active,
.pb-reveal-bottom.pb-reveal-active { transform: scaleY(0); }

/* ── HOVER ANIMATION LIBRARY (۲۶ مورد، عیناً و بدون تغییر عددی از
   animations.min.css واقعی المنتور — پیشوند elementor-animation- به
   pb-hover-anim- تغییر کرد، همه‌ی مقادیر transform/duration/timing
   دست‌نخورده) — استفاده روی ویجت آیکون، کلاس :hover/:focus/:active. */
.pb-hover-anim-grow{transition-duration:.3s;transition-property:transform}
.pb-hover-anim-grow:active,.pb-hover-anim-grow:focus,.pb-hover-anim-grow:hover{transform:scale(1.1)}

.pb-hover-anim-shrink{transition-duration:.3s;transition-property:transform}
.pb-hover-anim-shrink:active,.pb-hover-anim-shrink:focus,.pb-hover-anim-shrink:hover{transform:scale(0.9)}

@keyframes pb-hover-anim-pulse{25%{transform:scale(1.1)}75%{transform:scale(0.9)}}
.pb-hover-anim-pulse:active,.pb-hover-anim-pulse:focus,.pb-hover-anim-pulse:hover{animation-name:pb-hover-anim-pulse;animation-duration:1s;animation-timing-function:linear;animation-iteration-count:infinite}

@keyframes pb-hover-anim-pulse-grow{to{transform:scale(1.1)}}
.pb-hover-anim-pulse-grow:active,.pb-hover-anim-pulse-grow:focus,.pb-hover-anim-pulse-grow:hover{animation-name:pb-hover-anim-pulse-grow;animation-duration:.3s;animation-timing-function:linear;animation-iteration-count:infinite;animation-direction:alternate}

@keyframes pb-hover-anim-pulse-shrink{to{transform:scale(0.9)}}
.pb-hover-anim-pulse-shrink:active,.pb-hover-anim-pulse-shrink:focus,.pb-hover-anim-pulse-shrink:hover{animation-name:pb-hover-anim-pulse-shrink;animation-duration:.3s;animation-timing-function:linear;animation-iteration-count:infinite;animation-direction:alternate}

@keyframes pb-hover-anim-push{50%{transform:scale(0.8)}100%{transform:scale(1)}}
.pb-hover-anim-push:active,.pb-hover-anim-push:focus,.pb-hover-anim-push:hover{animation-name:pb-hover-anim-push;animation-duration:.3s;animation-timing-function:linear;animation-iteration-count:1}

@keyframes pb-hover-anim-pop{50%{transform:scale(1.2)}}
.pb-hover-anim-pop:active,.pb-hover-anim-pop:focus,.pb-hover-anim-pop:hover{animation-name:pb-hover-anim-pop;animation-duration:.3s;animation-timing-function:linear;animation-iteration-count:1}

.pb-hover-anim-bounce-in{transition-duration:.5s}
.pb-hover-anim-bounce-in:active,.pb-hover-anim-bounce-in:focus,.pb-hover-anim-bounce-in:hover{transform:scale(1.2);transition-timing-function:cubic-bezier(0.47,2.02,.31,-.36)}

.pb-hover-anim-bounce-out{transition-duration:.5s}
.pb-hover-anim-bounce-out:active,.pb-hover-anim-bounce-out:focus,.pb-hover-anim-bounce-out:hover{transform:scale(0.8);transition-timing-function:cubic-bezier(0.47,2.02,.31,-.36)}

.pb-hover-anim-rotate{transition-duration:.3s;transition-property:transform}
.pb-hover-anim-rotate:active,.pb-hover-anim-rotate:focus,.pb-hover-anim-rotate:hover{transform:rotate(4deg)}

.pb-hover-anim-grow-rotate{transition-duration:.3s;transition-property:transform}
.pb-hover-anim-grow-rotate:active,.pb-hover-anim-grow-rotate:focus,.pb-hover-anim-grow-rotate:hover{transform:scale(1.1) rotate(4deg)}

.pb-hover-anim-float{transition-duration:.3s;transition-property:transform;transition-timing-function:ease-out}
.pb-hover-anim-float:active,.pb-hover-anim-float:focus,.pb-hover-anim-float:hover{transform:translateY(-8px)}

.pb-hover-anim-sink{transition-duration:.3s;transition-property:transform;transition-timing-function:ease-out}
.pb-hover-anim-sink:active,.pb-hover-anim-sink:focus,.pb-hover-anim-sink:hover{transform:translateY(8px)}

@keyframes pb-hover-anim-bob{0%{transform:translateY(-8px)}50%{transform:translateY(-4px)}100%{transform:translateY(-8px)}}
@keyframes pb-hover-anim-bob-float{100%{transform:translateY(-8px)}}
.pb-hover-anim-bob:active,.pb-hover-anim-bob:focus,.pb-hover-anim-bob:hover{animation-name:pb-hover-anim-bob-float,pb-hover-anim-bob;animation-duration:.3s,1.5s;animation-delay:0s,.3s;animation-timing-function:ease-out,ease-in-out;animation-iteration-count:1,infinite;animation-fill-mode:forwards;animation-direction:normal,alternate}

@keyframes pb-hover-anim-hang{0%{transform:translateY(8px)}50%{transform:translateY(4px)}100%{transform:translateY(8px)}}
@keyframes pb-hover-anim-hang-sink{100%{transform:translateY(8px)}}
.pb-hover-anim-hang:active,.pb-hover-anim-hang:focus,.pb-hover-anim-hang:hover{animation-name:pb-hover-anim-hang-sink,pb-hover-anim-hang;animation-duration:.3s,1.5s;animation-delay:0s,.3s;animation-timing-function:ease-out,ease-in-out;animation-iteration-count:1,infinite;animation-fill-mode:forwards;animation-direction:normal,alternate}

.pb-hover-anim-skew{transition-duration:.3s;transition-property:transform}
.pb-hover-anim-skew:active,.pb-hover-anim-skew:focus,.pb-hover-anim-skew:hover{transform:skew(-10deg)}

.pb-hover-anim-skew-forward{transition-duration:.3s;transition-property:transform;transform-origin:0 100%}
.pb-hover-anim-skew-forward:active,.pb-hover-anim-skew-forward:focus,.pb-hover-anim-skew-forward:hover{transform:skew(-10deg)}

.pb-hover-anim-skew-backward{transition-duration:.3s;transition-property:transform;transform-origin:0 100%}
.pb-hover-anim-skew-backward:active,.pb-hover-anim-skew-backward:focus,.pb-hover-anim-skew-backward:hover{transform:skew(10deg)}

@keyframes pb-hover-anim-wobble-vertical{16.65%{transform:translateY(8px)}33.3%{transform:translateY(-6px)}49.95%{transform:translateY(4px)}66.6%{transform:translateY(-2px)}83.25%{transform:translateY(1px)}100%{transform:translateY(0)}}
.pb-hover-anim-wobble-vertical:active,.pb-hover-anim-wobble-vertical:focus,.pb-hover-anim-wobble-vertical:hover{animation-name:pb-hover-anim-wobble-vertical;animation-duration:1s;animation-timing-function:ease-in-out;animation-iteration-count:1}

@keyframes pb-hover-anim-wobble-horizontal{16.65%{transform:translateX(8px)}33.3%{transform:translateX(-6px)}49.95%{transform:translateX(4px)}66.6%{transform:translateX(-2px)}83.25%{transform:translateX(1px)}100%{transform:translateX(0)}}
.pb-hover-anim-wobble-horizontal:active,.pb-hover-anim-wobble-horizontal:focus,.pb-hover-anim-wobble-horizontal:hover{animation-name:pb-hover-anim-wobble-horizontal;animation-duration:1s;animation-timing-function:ease-in-out;animation-iteration-count:1}

@keyframes pb-hover-anim-wobble-to-bottom-right{16.65%{transform:translate(8px,8px)}33.3%{transform:translate(-6px,-6px)}49.95%{transform:translate(4px,4px)}66.6%{transform:translate(-2px,-2px)}83.25%{transform:translate(1px,1px)}100%{transform:translate(0,0)}}
.pb-hover-anim-wobble-to-bottom-right:active,.pb-hover-anim-wobble-to-bottom-right:focus,.pb-hover-anim-wobble-to-bottom-right:hover{animation-name:pb-hover-anim-wobble-to-bottom-right;animation-duration:1s;animation-timing-function:ease-in-out;animation-iteration-count:1}

@keyframes pb-hover-anim-wobble-to-top-right{16.65%{transform:translate(8px,-8px)}33.3%{transform:translate(-6px,6px)}49.95%{transform:translate(4px,-4px)}66.6%{transform:translate(-2px,2px)}83.25%{transform:translate(1px,-1px)}100%{transform:translate(0,0)}}
.pb-hover-anim-wobble-to-top-right:active,.pb-hover-anim-wobble-to-top-right:focus,.pb-hover-anim-wobble-to-top-right:hover{animation-name:pb-hover-anim-wobble-to-top-right;animation-duration:1s;animation-timing-function:ease-in-out;animation-iteration-count:1}

@keyframes pb-hover-anim-wobble-top{16.65%{transform:skew(-12deg)}33.3%{transform:skew(10deg)}49.95%{transform:skew(-6deg)}66.6%{transform:skew(4deg)}83.25%{transform:skew(-2deg)}100%{transform:skew(0)}}
.pb-hover-anim-wobble-top{transform-origin:0 100%}
.pb-hover-anim-wobble-top:active,.pb-hover-anim-wobble-top:focus,.pb-hover-anim-wobble-top:hover{animation-name:pb-hover-anim-wobble-top;animation-duration:1s;animation-timing-function:ease-in-out;animation-iteration-count:1}

@keyframes pb-hover-anim-wobble-bottom{16.65%{transform:skew(-12deg)}33.3%{transform:skew(10deg)}49.95%{transform:skew(-6deg)}66.6%{transform:skew(4deg)}83.25%{transform:skew(-2deg)}100%{transform:skew(0)}}
.pb-hover-anim-wobble-bottom{transform-origin:100% 0}
.pb-hover-anim-wobble-bottom:active,.pb-hover-anim-wobble-bottom:focus,.pb-hover-anim-wobble-bottom:hover{animation-name:pb-hover-anim-wobble-bottom;animation-duration:1s;animation-timing-function:ease-in-out;animation-iteration-count:1}

@keyframes pb-hover-anim-wobble-skew{16.65%{transform:skew(-12deg)}33.3%{transform:skew(10deg)}49.95%{transform:skew(-6deg)}66.6%{transform:skew(4deg)}83.25%{transform:skew(-2deg)}100%{transform:skew(0)}}
.pb-hover-anim-wobble-skew:active,.pb-hover-anim-wobble-skew:focus,.pb-hover-anim-wobble-skew:hover{animation-name:pb-hover-anim-wobble-skew;animation-duration:1s;animation-timing-function:ease-in-out;animation-iteration-count:1}

@keyframes pb-hover-anim-buzz{50%{transform:translateX(3px) rotate(2deg)}100%{transform:translateX(-3px) rotate(-2deg)}}
.pb-hover-anim-buzz:active,.pb-hover-anim-buzz:focus,.pb-hover-anim-buzz:hover{animation-name:pb-hover-anim-buzz;animation-duration:.15s;animation-timing-function:linear;animation-iteration-count:infinite}

@keyframes pb-hover-anim-buzz-out{10%{transform:translateX(3px) rotate(2deg)}20%{transform:translateX(-3px) rotate(-2deg)}30%{transform:translateX(3px) rotate(2deg)}40%{transform:translateX(-3px) rotate(-2deg)}50%{transform:translateX(2px) rotate(1deg)}60%{transform:translateX(-2px) rotate(-1deg)}70%{transform:translateX(2px) rotate(1deg)}80%{transform:translateX(-2px) rotate(-1deg)}90%{transform:translateX(1px) rotate(0)}100%{transform:translateX(-1px) rotate(0)}}
.pb-hover-anim-buzz-out:active,.pb-hover-anim-buzz-out:focus,.pb-hover-anim-buzz-out:hover{animation-name:pb-hover-anim-buzz-out;animation-duration:.75s;animation-timing-function:linear;animation-iteration-count:1}
