/* ── Advanced Button Widget ─────────────────────────────────────────────── */
/* Presets */
.epp-btn.preset-solid{
    background:var(--epp-primary);
    color:#fff;
    box-shadow:var(--epp-shadow-colored);
}
.epp-btn.preset-solid:hover{
    background:var(--epp-primary-dark);
    box-shadow:0 10px 28px rgba(var(--epp-primary-rgb),.32);
}
.epp-btn.preset-outline{
    background:transparent!important;
    color:var(--epp-primary);
    border-color:var(--epp-primary)!important;
}
.epp-btn.preset-outline:hover{
    background:var(--epp-primary-light)!important;
}
.epp-btn.preset-ghost{
    background:transparent!important;
    border-color:transparent!important;
    box-shadow:none!important;
    color:var(--epp-primary);
    padding-left:0;
    padding-right:0;
}
.epp-btn.preset-ghost:hover{transform:none;box-shadow:none!important;color:var(--epp-primary-dark);}

/* Hover animations */
@keyframes epp-pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
@keyframes epp-swing{0%,100%{transform:rotate(0)}20%{transform:rotate(8deg)}40%{transform:rotate(-6deg)}60%{transform:rotate(4deg)}80%{transform:rotate(-2deg)}}
@keyframes epp-bounce{0%,100%{transform:translateY(0)}30%{transform:translateY(-8px)}60%{transform:translateY(-4px)}}
@keyframes epp-shake{0%,100%{transform:translateX(0)}20%,60%{transform:translateX(-5px)}40%,80%{transform:translateX(5px)}}
@keyframes epp-tada{0%,100%{transform:scale(1) rotate(0)}10%{transform:scale(.96) rotate(-2deg)}20%{transform:scale(1.04) rotate(2deg)}50%{transform:scale(1.04) rotate(-2deg)}70%{transform:scale(1.02) rotate(1deg)}}
@keyframes eppSpin { to { transform: rotate(360deg); } }
.epp-btn.epp-hover-anim-pulse:hover{animation:epp-pulse .6s ease}
.epp-btn.epp-hover-anim-swing:hover{animation:epp-swing .6s ease}
.epp-btn.epp-hover-anim-bounce:hover{animation:epp-bounce .6s ease}
.epp-btn.epp-hover-anim-shake:hover{animation:epp-shake .5s ease}
.epp-btn.epp-hover-anim-tada:hover{animation:epp-tada .8s ease}
.epp-btn-wrapper{display:flex;flex-wrap:wrap;}
.epp-btn-wrapper.align-left{justify-content:flex-start;}
.epp-btn-wrapper.align-center{justify-content:center;}
.epp-btn-wrapper.align-right{justify-content:flex-end;}

.epp-btn{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:13px 28px;
    font-size:var(--epp-text-base,15px);
    font-weight:var(--epp-font-semibold,600);
    line-height:1.25;
    text-decoration:none;
    border:2px solid transparent;
    border-radius:var(--epp-radius,8px);
    cursor:pointer;
    transition:background var(--epp-transition,.22s ease),color var(--epp-transition,.22s ease),border-color var(--epp-transition,.22s ease),transform var(--epp-transition,.22s ease),box-shadow var(--epp-transition,.22s ease);
    white-space:nowrap;
    letter-spacing:.01em;
}
.epp-btn:focus-visible{
    outline:none;
    box-shadow:var(--epp-focus-ring,0 0 0 3px rgba(124,58,237,.25));
}
.epp-btn:hover{transform:translateY(-2px);}
.epp-btn-icon{display:inline-flex;align-items:center;line-height:1;flex-shrink:0;}
.epp-btn-icon svg{width:1em;height:1em;fill:currentColor;}
.epp-btn-icon i{font-size:1em;}

/* Size presets */
.epp-btn.epp-btn-size-xs{padding:6px 14px;font-size:12px;border-radius:var(--epp-radius-sm,4px);}
.epp-btn.epp-btn-size-sm{padding:9px 20px;font-size:var(--epp-text-sm,13px);}
.epp-btn.epp-btn-size-md{padding:13px 28px;font-size:var(--epp-text-base,15px);}
.epp-btn.epp-btn-size-lg{padding:16px 36px;font-size:var(--epp-text-md,17px);}
.epp-btn.epp-btn-size-xl{padding:20px 52px;font-size:var(--epp-text-lg,20px);}

/* Icon hover animations */
.epp-btn .epp-btn-icon{transition:transform .3s ease;}
.epp-btn.epp-icon-anim-slide-right:hover .epp-btn-icon{transform:translateX(4px);}
.epp-btn.epp-icon-anim-grow:hover .epp-btn-icon{transform:scale(1.3);}
.epp-btn.epp-icon-anim-spin:hover .epp-btn-icon{transform:rotate(360deg);transition-duration:.5s;}
@keyframes epp-icon-bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
.epp-btn.epp-icon-anim-bounce:hover .epp-btn-icon{animation:epp-icon-bounce .4s ease 2;}
