.fspw-widget{
    box-sizing:border-box;
    display:block;
    width:var(--fspw-width,100%);
    max-width:100%;
    margin:0 0 18px;
    padding:var(--fspw-padding,18px);
    background:var(--fspw-box-bg,#fff);
    border-radius:var(--fspw-radius,12px);
    color:var(--fspw-text,#18212b);
    font-size:var(--fspw-size,15px);
    font-weight:var(--fspw-weight,600);
    line-height:1.45;
    overflow:hidden;
    transition:box-shadow .35s ease,transform .35s ease;
}
.fspw-message{
    display:flex;
    align-items:center;
    gap:9px;
    min-height:24px;
    margin-bottom:12px;
}
.fspw-check{
    display:inline-flex;
    flex:0 0 auto;
    align-items:center;
    justify-content:center;
    width:25px;
    height:25px;
    border-radius:50%;
    background:var(--fspw-bar-color,#168a5b);
    color:#fff;
    font-size:16px;
    line-height:1;
}
.fspw-bar{
    position:relative;
    width:100%;
    height:var(--fspw-bar-height,10px);
    background:var(--fspw-bar-bg,#e9eef2);
    border-radius:var(--fspw-bar-radius,99px);
    overflow:hidden;
}
.fspw-bar-fill{
    display:block;
    height:100%;
    min-width:0;
    background:var(--fspw-bar-color,#168a5b);
    border-radius:inherit;
    transition:width .65s cubic-bezier(.22,1,.36,1);
    position:relative;
}
.fspw-loading-shimmer .fspw-bar-fill:not([style*="width: 100%"]):after,
.fspw-el-loading-shimmer .fspw-bar-fill:not([style*="width: 100%"]):after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(110deg,transparent 20%,rgba(255,255,255,.45) 45%,transparent 70%);
    transform:translateX(-100%);
    animation:fspw-shimmer 1.7s infinite;
}
.fspw-loading-stripe .fspw-bar-fill:after,
.fspw-el-loading-stripe .fspw-bar-fill:after{
    content:"";
    position:absolute;
    inset:0;
    background:repeating-linear-gradient(-45deg,rgba(255,255,255,.18) 0 8px,transparent 8px 16px);
    animation:fspw-stripe 1s linear infinite;
}
.fspw-loading-pulse .fspw-bar-fill,
.fspw-el-loading-pulse .fspw-bar-fill{animation:fspw-bar-pulse 1.8s ease-in-out infinite}
.fspw-widget.is-complete.fspw-loading-pulse .fspw-bar-fill{animation:none}

.fspw-widget.is-complete.fspw-success-pulse,
.elementor-element.fspw-el-success-pulse .fspw-widget.is-complete{animation:fspw-success-pulse 1.4s ease-out}
.fspw-widget.is-complete.fspw-success-glow,
.elementor-element.fspw-el-success-glow .fspw-widget.is-complete{animation:fspw-success-glow 1.6s ease-out}
.fspw-widget.is-complete.fspw-success-bounce,
.elementor-element.fspw-el-success-bounce .fspw-widget.is-complete{animation:fspw-success-bounce .8s ease-out}

.fspw-check-bounce .fspw-check,
.fspw-el-check-bounce .fspw-check{animation:fspw-check-bounce .75s cubic-bezier(.36,.07,.19,.97)}
.fspw-check-pop .fspw-check,
.fspw-el-check-pop .fspw-check{animation:fspw-check-pop .55s ease-out}
.fspw-check-rubber .fspw-check,
.fspw-el-check-rubber .fspw-check{animation:fspw-rubber .85s ease-out}

@keyframes fspw-shimmer{to{transform:translateX(100%)}}
@keyframes fspw-stripe{to{background-position:32px 0}}
@keyframes fspw-bar-pulse{50%{opacity:.72}}
@keyframes fspw-success-pulse{0%{transform:scale(1)}35%{transform:scale(1.012)}100%{transform:scale(1)}}
@keyframes fspw-success-glow{0%{box-shadow:0 0 0 rgba(22,138,91,0)}35%{box-shadow:0 0 28px rgba(22,138,91,.25)}100%{box-shadow:0 0 0 rgba(22,138,91,0)}}
@keyframes fspw-success-bounce{0%{transform:translateY(0)}35%{transform:translateY(-4px)}70%{transform:translateY(2px)}100%{transform:translateY(0)}}
@keyframes fspw-check-bounce{0%{transform:scale(.2);opacity:0}55%{transform:scale(1.2);opacity:1}75%{transform:scale(.92)}100%{transform:scale(1)}}
@keyframes fspw-check-pop{0%{transform:scale(0);opacity:0}70%{transform:scale(1.25)}100%{transform:scale(1);opacity:1}}
@keyframes fspw-rubber{0%{transform:scale(0)}30%{transform:scale(1.25)}45%{transform:scale(.9)}60%{transform:scale(1.08)}75%{transform:scale(.96)}100%{transform:scale(1)}}

@media (max-width:767px){
    .fspw-widget{width:100%;max-width:100%;margin-bottom:14px}
    .fspw-message{font-size:var(--fspw-size,15px)}
}
@media (prefers-reduced-motion:reduce){
    .fspw-widget,.fspw-bar-fill,.fspw-check{animation:none!important;transition:none!important}
}
