/* =========================================================
   Francesco Sarnà WPBakery Addons
   ========================================================= */

/* ---------------------------------------------------------
   Pulsante Freccia Animato
   --------------------------------------------------------- */
.fswa-arrow-button {
    --fswa-size: 56px;
    --fswa-base: #f0eeef;
    --fswa-hover: #96daf0;

    display: inline-block;
    box-sizing: border-box;
    line-height: 0;
    text-decoration: none !important;
    vertical-align: middle;
    cursor: pointer;
    outline: none;
}

.fswa-arrow-button__visual {
    display: block;
    position: relative;
    width: var(--fswa-size);
    height: var(--fswa-size);
    overflow: hidden;
    border: 0;
    border-radius: 50%;
    background: transparent;
}

.fswa-arrow-button__visual::before,
.fswa-arrow-button__visual::after {
    content: "";
    position: absolute;
    z-index: 2;
    border-radius: 50%;
    inset: calc(var(--fswa-size) * 0.125);
    pointer-events: none;
}

.fswa-arrow-button__visual::before {
    border: calc(var(--fswa-size) * 0.0714286) solid var(--fswa-base);
    transition:
        opacity .4s cubic-bezier(.165,.84,.44,1),
        transform .5s cubic-bezier(.25,.46,.45,.94);
}

.fswa-arrow-button__visual::after {
    border: calc(var(--fswa-size) * 0.0714286) solid var(--fswa-hover);
    opacity: 0;
    transform: scale(1.3);
    transition:
        opacity .4s cubic-bezier(.165,.84,.44,1),
        transform .5s cubic-bezier(.25,.46,.45,.94);
}

.fswa-arrow-button:hover .fswa-arrow-button__visual::before,
.fswa-arrow-button:focus-visible .fswa-arrow-button__visual::before {
    opacity: 0;
    transform: scale(.7);
}

.fswa-arrow-button:hover .fswa-arrow-button__visual::after,
.fswa-arrow-button:focus-visible .fswa-arrow-button__visual::after {
    opacity: 1;
    transform: scale(1);
}

.fswa-arrow-button__track {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    display: flex;
    transition: transform .4s ease;
}

.fswa-arrow-button__item {
    display: flex;
    flex: 0 0 var(--fswa-size);
    width: var(--fswa-size);
    height: var(--fswa-size);
    align-items: center;
    justify-content: center;
}

.fswa-arrow-button__item svg {
    display: block;
    width: calc(var(--fswa-size) * 0.3571429);
    height: auto;
    transform-origin: center;
}

.fswa-arrow-button__item:first-child svg { fill: var(--fswa-base); }
.fswa-arrow-button__item:nth-child(2) svg { fill: var(--fswa-hover); }

.fswa-arrow-button--right .fswa-arrow-button__item svg { transform: rotate(0deg); }
.fswa-arrow-button--down .fswa-arrow-button__item svg { transform: rotate(90deg); }
.fswa-arrow-button--left .fswa-arrow-button__item svg { transform: rotate(180deg); }
.fswa-arrow-button--up .fswa-arrow-button__item svg { transform: rotate(270deg); }

.fswa-arrow-button--left .fswa-arrow-button__track,
.fswa-arrow-button--right .fswa-arrow-button__track {
    flex-direction: row;
    width: calc(var(--fswa-size) * 2);
    height: var(--fswa-size);
}

.fswa-arrow-button--left:hover .fswa-arrow-button__track,
.fswa-arrow-button--left:focus-visible .fswa-arrow-button__track,
.fswa-arrow-button--right:hover .fswa-arrow-button__track,
.fswa-arrow-button--right:focus-visible .fswa-arrow-button__track {
    transform: translateX(calc(var(--fswa-size) * -1));
}

.fswa-arrow-button--up .fswa-arrow-button__track,
.fswa-arrow-button--down .fswa-arrow-button__track {
    flex-direction: column;
    width: var(--fswa-size);
    height: calc(var(--fswa-size) * 2);
}

.fswa-arrow-button--up:hover .fswa-arrow-button__track,
.fswa-arrow-button--up:focus-visible .fswa-arrow-button__track,
.fswa-arrow-button--down:hover .fswa-arrow-button__track,
.fswa-arrow-button--down:focus-visible .fswa-arrow-button__track {
    transform: translateY(calc(var(--fswa-size) * -1));
}

/* ---------------------------------------------------------
   Pulsante Inner Glow
   --------------------------------------------------------- */
.fswa-inner-glow-button {
    --fswa-ig-size: 56px;
    --fswa-ig-bg: #a8ff1b;
    --fswa-ig-bg-hover: #c8ff00;
    --fswa-ig-icon-bg: #d0d4d9;
    --fswa-ig-icon-bg-hover: #b8bdc5;
    --fswa-ig-icon: #0f172a;
    --fswa-ig-icon-hover: #0f172a;
    --fswa-ig-text: #0f172a;
    --fswa-ig-text-hover: #0f172a;
    --fswa-ig-font-size: 15px;
    --fswa-ig-font-weight: 600;
    --fswa-ig-font-style: normal;
    --fswa-ig-text-transform: none;
    --fswa-ig-letter-spacing: -0.01em;
    --fswa-ig-line-height: 1;

    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    box-sizing: border-box;
    gap: calc(var(--fswa-ig-size) * 0.3571429);
    height: var(--fswa-ig-size);
    min-width: 0;

    background: var(--fswa-ig-bg);
    box-shadow:
        inset 0 calc(var(--fswa-ig-size) * 0.0714286) calc(var(--fswa-ig-size) * 0.1071429) rgba(0, 0, 0, 0.2),
        inset 0 calc(var(--fswa-ig-size) * 0.0357143) calc(var(--fswa-ig-size) * 0.0714286) rgba(255, 255, 255, 0.25);
    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: 9999px;

    font-size: var(--fswa-ig-font-size);
    font-weight: var(--fswa-ig-font-weight);
    font-style: var(--fswa-ig-font-style);
    letter-spacing: var(--fswa-ig-letter-spacing);
    line-height: var(--fswa-ig-line-height);
    text-transform: var(--fswa-ig-text-transform);
    text-decoration: none !important;

    cursor: pointer;
    overflow: visible;
    outline: none;
    vertical-align: middle;
    appearance: none;
    -webkit-appearance: none;
    transition:
        background .4s cubic-bezier(.16,1,.3,1),
        color .4s cubic-bezier(.16,1,.3,1),
        border-color .4s cubic-bezier(.16,1,.3,1),
        box-shadow .4s cubic-bezier(.16,1,.3,1),
        transform .4s cubic-bezier(.16,1,.3,1);
}

/* Padding originale, specchiato in base alla posizione dell'icona */
.fswa-inner-glow-button--icon-after {
    padding:
        calc(var(--fswa-ig-size) * 0.1785714)
        calc(var(--fswa-ig-size) * 0.1785714)
        calc(var(--fswa-ig-size) * 0.1785714)
        calc(var(--fswa-ig-size) * 0.4285714);
}

.fswa-inner-glow-button--icon-before {
    padding:
        calc(var(--fswa-ig-size) * 0.1785714)
        calc(var(--fswa-ig-size) * 0.4285714)
        calc(var(--fswa-ig-size) * 0.1785714)
        calc(var(--fswa-ig-size) * 0.1785714);
}

.fswa-inner-glow-button__text {
    position: relative;
    z-index: 1;
    color: var(--fswa-ig-text);
    line-height: inherit;
    white-space: nowrap;
    transition: color .4s cubic-bezier(.16,1,.3,1);
}

.fswa-inner-glow-button__icon-wrapper {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: calc(var(--fswa-ig-size) * 0.6428571);
    height: calc(var(--fswa-ig-size) * 0.6428571);
    background: var(--fswa-ig-icon-bg);
    color: var(--fswa-ig-icon);
    border-radius: 50%;
    transition:
        transform .5s cubic-bezier(.34,1.56,.64,1),
        border-radius .4s ease,
        background .4s ease,
        color .4s ease,
        width .4s cubic-bezier(.34,1.56,.64,1);
}

.fswa-inner-glow-button__icon {
    display: block;
    width: calc(var(--fswa-ig-size) * 0.3214286);
    height: calc(var(--fswa-ig-size) * 0.3214286);
    transform-origin: center;
    transition: transform .25s ease;
}

.fswa-inner-glow-button--right .fswa-inner-glow-button__icon { transform: rotate(0deg); }
.fswa-inner-glow-button--down .fswa-inner-glow-button__icon { transform: rotate(90deg); }
.fswa-inner-glow-button--left .fswa-inner-glow-button__icon { transform: rotate(180deg); }
.fswa-inner-glow-button--up .fswa-inner-glow-button__icon { transform: rotate(270deg); }

.fswa-inner-glow-button:hover,
.fswa-inner-glow-button:focus-visible {
    background: var(--fswa-ig-bg-hover);
    border-color: rgba(255, 255, 255, 0.6);
    box-shadow:
        inset 0 calc(var(--fswa-ig-size) * 0.0714286) calc(var(--fswa-ig-size) * 0.1428571) rgba(0, 0, 0, 0.15),
        inset 0 calc(var(--fswa-ig-size) * 0.0357143) calc(var(--fswa-ig-size) * 0.1071429) rgba(255, 255, 255, 0.4);
    transform: translateY(-1px);
    text-decoration: none !important;
}

.fswa-inner-glow-button:hover .fswa-inner-glow-button__text,
.fswa-inner-glow-button:focus-visible .fswa-inner-glow-button__text {
    color: var(--fswa-ig-text-hover);
}

.fswa-inner-glow-button:hover .fswa-inner-glow-button__icon-wrapper,
.fswa-inner-glow-button:focus-visible .fswa-inner-glow-button__icon-wrapper {
    background: var(--fswa-ig-icon-bg-hover);
    color: var(--fswa-ig-icon-hover);
    width: calc(var(--fswa-ig-size) * 0.8928571);
    border-radius: calc(var(--fswa-ig-size) * 0.3214286);
}

.fswa-inner-glow-button--icon-after:hover .fswa-inner-glow-button__icon-wrapper,
.fswa-inner-glow-button--icon-after:focus-visible .fswa-inner-glow-button__icon-wrapper {
    transform: translateX(calc(var(--fswa-ig-size) * 0.0714286));
}

.fswa-inner-glow-button--icon-before:hover .fswa-inner-glow-button__icon-wrapper,
.fswa-inner-glow-button--icon-before:focus-visible .fswa-inner-glow-button__icon-wrapper {
    transform: translateX(calc(var(--fswa-ig-size) * -0.0714286));
}

.fswa-inner-glow-button:active {
    background: var(--fswa-ig-bg-hover);
    transform: scale(.98);
    box-shadow: inset 0 calc(var(--fswa-ig-size) * 0.1071429) calc(var(--fswa-ig-size) * 0.1785714) rgba(0, 0, 0, 0.3);
}

.fswa-inner-glow-button:active .fswa-inner-glow-button__icon-wrapper {
    width: calc(var(--fswa-ig-size) * 0.6428571);
    border-radius: 50%;
    transform: translateX(0);
    background: var(--fswa-ig-icon-bg);
    color: var(--fswa-ig-icon);
}



/* ---------------------------------------------------------
   Icon Box
   --------------------------------------------------------- */
.fswa-icon-box{--fswa-ib-title:#0f172a;--fswa-ib-content:#475569;--fswa-ib-icon:#0f172a;--fswa-ib-bg:#fff;--fswa-ib-icon-bg:#f1f5f9;--fswa-ib-box-border:#e2e8f0;--fswa-ib-icon-border:#e2e8f0;--fswa-ib-box-shadow:0 10px 30px rgba(15,23,42,.08);--fswa-ib-icon-shadow:0 8px 18px rgba(15,23,42,.10);--fswa-ib-box-radius:24px;--fswa-ib-icon-radius:999px;--fswa-ib-icon-box-size:72px;--fswa-ib-icon-size:34px;--fswa-ib-title-size:24px;--fswa-ib-content-size:16px;--fswa-ib-gap:20px;--fswa-ib-max-width:420px;position:relative;box-sizing:border-box;gap:var(--fswa-ib-gap);border-radius:var(--fswa-ib-box-radius);box-shadow:var(--fswa-ib-box-shadow);color:var(--fswa-ib-content);text-decoration:none!important;overflow:hidden;transition:transform .45s cubic-bezier(.16,1,.3,1),box-shadow .45s cubic-bezier(.16,1,.3,1),border-color .35s ease,filter .35s ease;vertical-align:top}.fswa-icon-box--contained{display:inline-flex;width:auto;max-width:min(100%,var(--fswa-ib-max-width))}.fswa-icon-box--full{display:flex;width:100%;max-width:100%}.fswa-icon-box--top{flex-direction:column}.fswa-icon-box--bottom{flex-direction:column}.fswa-icon-box--left{flex-direction:row}.fswa-icon-box--right{flex-direction:row}.fswa-icon-box--align-left{text-align:left}.fswa-icon-box--align-center{text-align:center}.fswa-icon-box--align-right{text-align:right}.fswa-icon-box--top.fswa-icon-box--align-left,.fswa-icon-box--bottom.fswa-icon-box--align-left{align-items:flex-start}.fswa-icon-box--top.fswa-icon-box--align-center,.fswa-icon-box--bottom.fswa-icon-box--align-center{align-items:center}.fswa-icon-box--top.fswa-icon-box--align-right,.fswa-icon-box--bottom.fswa-icon-box--align-right{align-items:flex-end}.fswa-icon-box--left,.fswa-icon-box--right{align-items:flex-start}.fswa-icon-box__icon-wrap{display:flex;flex:0 0 var(--fswa-ib-icon-box-size);width:var(--fswa-ib-icon-box-size);height:var(--fswa-ib-icon-box-size);align-items:center;justify-content:center;box-sizing:border-box;border-radius:var(--fswa-ib-icon-radius);background:var(--fswa-ib-icon-bg);box-shadow:var(--fswa-ib-icon-shadow);color:var(--fswa-ib-icon);transition:transform .45s cubic-bezier(.16,1,.3,1),box-shadow .4s ease,background .4s ease}.fswa-icon-box__icon{display:block;width:var(--fswa-ib-icon-size);height:var(--fswa-ib-icon-size);background:currentColor;-webkit-mask:var(--fswa-ib-icon-url) center/contain no-repeat;mask:var(--fswa-ib-icon-url) center/contain no-repeat;transition:transform .55s cubic-bezier(.34,1.56,.64,1),filter .35s ease}.fswa-icon-box__text{display:block;min-width:0}.fswa-icon-box__title{margin:0 0 10px;color:var(--fswa-ib-title);font-size:var(--fswa-ib-title-size);line-height:1.15;font-weight:700}.fswa-icon-box__content{display:block;color:var(--fswa-ib-content);font-size:var(--fswa-ib-content-size);line-height:1.6}.fswa-icon-box__content>:first-child{margin-top:0}.fswa-icon-box__content>:last-child{margin-bottom:0}.fswa-icon-box:focus-visible{outline:3px solid rgba(59,130,246,.28);outline-offset:3px}.fswa-icon-box--hover-lift:hover{transform:translateY(-8px);box-shadow:var(--fswa-ib-box-shadow),0 18px 45px rgba(15,23,42,.12)}.fswa-icon-box--hover-scale:hover{transform:scale(1.035)}.fswa-icon-box--hover-glow:hover{box-shadow:var(--fswa-ib-box-shadow),0 0 36px rgba(59,130,246,.24)}.fswa-icon-box--hover-tilt-right:hover{transform:perspective(900px) rotateX(2deg) rotateY(-4deg) translateY(-4px)}.fswa-icon-box--hover-tilt-left:hover{transform:perspective(900px) rotateX(2deg) rotateY(4deg) translateY(-4px)}.fswa-icon-box--hover-float:hover{animation:fswaHoverFloat 1.8s ease-in-out infinite}.fswa-icon-box--hover-icon-pop:hover .fswa-icon-box__icon-wrap{transform:scale(1.12)}.fswa-icon-box--hover-icon-pop:hover .fswa-icon-box__icon{transform:scale(1.08)}.fswa-icon-box--hover-icon-spin:hover .fswa-icon-box__icon{transform:rotate(360deg) scale(1.05)}.fswa-icon-box--hover-focus:hover{filter:saturate(1.08) contrast(1.02);transform:translateY(-3px)}.fswa-icon-box--hover-focus:hover .fswa-icon-box__icon-wrap{transform:scale(1.06);box-shadow:var(--fswa-ib-icon-shadow),0 0 0 8px rgba(15,23,42,.04)}.fswa-icon-box--hover-shine::before{content:"";position:absolute;z-index:0;top:-50%;left:-80%;width:45%;height:200%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);transform:skewX(-20deg);transition:left .7s cubic-bezier(.16,1,.3,1);pointer-events:none}.fswa-icon-box--hover-shine:hover::before{left:135%}.fswa-icon-box--hover-shine>*{position:relative;z-index:1}@keyframes fswaHoverFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}

/* ---------------------------------------------------------
   Sistema animazioni di ingresso condiviso
   --------------------------------------------------------- */
.fswa-animate{--fswa-anim-duration:700ms;--fswa-anim-delay:0ms;display:inline-block;max-width:100%;vertical-align:top}.fswa-animate--full{display:block;width:100%}html.fswa-js .fswa-animate{opacity:0}html.fswa-js .fswa-animate.is-visible{opacity:1;animation-duration:var(--fswa-anim-duration);animation-delay:var(--fswa-anim-delay);animation-fill-mode:both;animation-timing-function:cubic-bezier(.16,1,.3,1)}
.fswa-animate--fade.is-visible{animation-name:fswaFade}.fswa-animate--fade-up.is-visible{animation-name:fswaFadeUp}.fswa-animate--fade-down.is-visible{animation-name:fswaFadeDown}.fswa-animate--fade-left.is-visible{animation-name:fswaFadeLeft}.fswa-animate--fade-right.is-visible{animation-name:fswaFadeRight}.fswa-animate--slide-up.is-visible{animation-name:fswaSlideUp}.fswa-animate--slide-down.is-visible{animation-name:fswaSlideDown}.fswa-animate--zoom-in.is-visible{animation-name:fswaZoomIn}.fswa-animate--zoom-out.is-visible{animation-name:fswaZoomOut}.fswa-animate--rotate-in.is-visible{animation-name:fswaRotateIn}.fswa-animate--bounce-in.is-visible{animation-name:fswaBounceIn}.fswa-animate--flip-x.is-visible{animation-name:fswaFlipX}.fswa-animate--flip-y.is-visible{animation-name:fswaFlipY}.fswa-animate--blur-up.is-visible{animation-name:fswaBlurUp}.fswa-animate--blur-zoom.is-visible{animation-name:fswaBlurZoom}.fswa-animate--elastic-up.is-visible{animation-name:fswaElasticUp}.fswa-animate--swing-in.is-visible{animation-name:fswaSwingIn}.fswa-animate--skew-reveal.is-visible{animation-name:fswaSkewReveal}.fswa-animate--clip-left.is-visible{animation-name:fswaClipLeft}.fswa-animate--clip-up.is-visible{animation-name:fswaClipUp}.fswa-animate--light-speed.is-visible{animation-name:fswaLightSpeed}.fswa-animate--soft-drop.is-visible{animation-name:fswaSoftDrop}.fswa-animate--pop-spin.is-visible{animation-name:fswaPopSpin}.fswa-animate--orbital-in.is-visible{animation-name:fswaOrbitalIn}.fswa-animate--prism-in.is-visible{animation-name:fswaPrismIn}.fswa-animate--fold-in.is-visible{animation-name:fswaFoldIn}.fswa-animate--kinetic-rise.is-visible{animation-name:fswaKineticRise}.fswa-animate--magnetic-rise.is-visible{animation-name:fswaMagneticRise}.fswa-animate--perspective-lift.is-visible{animation-name:fswaPerspectiveLift}.fswa-animate--soft-spring.is-visible{animation-name:fswaSoftSpring}.fswa-animate--reveal-twist.is-visible{animation-name:fswaRevealTwist}.fswa-animate--focus-burst.is-visible{animation-name:fswaFocusBurst}.fswa-animate--float-in.is-visible{animation-name:fswaFloatIn}
@keyframes fswaFade{from{opacity:0}to{opacity:1}}@keyframes fswaFadeUp{from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:none}}@keyframes fswaFadeDown{from{opacity:0;transform:translateY(-32px)}to{opacity:1;transform:none}}@keyframes fswaFadeLeft{from{opacity:0;transform:translateX(36px)}to{opacity:1;transform:none}}@keyframes fswaFadeRight{from{opacity:0;transform:translateX(-36px)}to{opacity:1;transform:none}}@keyframes fswaSlideUp{from{opacity:0;transform:translateY(65px)}to{opacity:1;transform:none}}@keyframes fswaSlideDown{from{opacity:0;transform:translateY(-65px)}to{opacity:1;transform:none}}@keyframes fswaZoomIn{from{opacity:0;transform:scale(.72)}to{opacity:1;transform:none}}@keyframes fswaZoomOut{from{opacity:0;transform:scale(1.22)}to{opacity:1;transform:none}}@keyframes fswaRotateIn{from{opacity:0;transform:rotate(-9deg) scale(.9)}to{opacity:1;transform:none}}@keyframes fswaBounceIn{0%{opacity:0;transform:scale(.55)}58%{opacity:1;transform:scale(1.08)}78%{transform:scale(.97)}100%{opacity:1;transform:none}}@keyframes fswaFlipX{from{opacity:0;transform:perspective(900px) rotateX(-70deg)}to{opacity:1;transform:none}}@keyframes fswaFlipY{from{opacity:0;transform:perspective(900px) rotateY(-70deg)}to{opacity:1;transform:none}}@keyframes fswaBlurUp{from{opacity:0;filter:blur(16px);transform:translateY(28px)}to{opacity:1;filter:blur(0);transform:none}}@keyframes fswaBlurZoom{from{opacity:0;filter:blur(18px);transform:scale(.82)}to{opacity:1;filter:blur(0);transform:none}}@keyframes fswaElasticUp{0%{opacity:0;transform:translateY(70px) scaleY(.82)}62%{opacity:1;transform:translateY(-9px) scaleY(1.04)}82%{transform:translateY(4px) scaleY(.99)}100%{transform:none}}@keyframes fswaSwingIn{from{opacity:0;transform-origin:top center;transform:rotateX(-35deg) rotateZ(-5deg) translateY(-18px)}to{opacity:1;transform:none}}@keyframes fswaSkewReveal{from{opacity:0;transform:translateX(-35px) skewX(-12deg)}to{opacity:1;transform:none}}@keyframes fswaClipLeft{from{opacity:.2;clip-path:inset(0 100% 0 0);transform:translateX(-18px)}to{opacity:1;clip-path:inset(0);transform:none}}@keyframes fswaClipUp{from{opacity:.2;clip-path:inset(100% 0 0 0);transform:translateY(18px)}to{opacity:1;clip-path:inset(0);transform:none}}@keyframes fswaLightSpeed{from{opacity:0;transform:translateX(75px) skewX(-18deg);filter:blur(4px)}to{opacity:1;transform:none;filter:none}}@keyframes fswaSoftDrop{from{opacity:0;transform:translateY(-50px) scale(.96);filter:blur(4px)}to{opacity:1;transform:none;filter:none}}@keyframes fswaPopSpin{from{opacity:0;transform:scale(.45) rotate(-14deg)}70%{opacity:1;transform:scale(1.06) rotate(2deg)}to{transform:none}}@keyframes fswaOrbitalIn{from{opacity:0;transform:translate(55px,-45px) rotate(18deg) scale(.72)}to{opacity:1;transform:none}}@keyframes fswaPrismIn{from{opacity:0;transform:perspective(1000px) rotateY(22deg) rotateX(-10deg) translateX(35px);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}@keyframes fswaFoldIn{from{opacity:0;transform-origin:top;transform:perspective(900px) rotateX(-82deg) scaleY(.7)}to{opacity:1;transform:none}}@keyframes fswaKineticRise{0%{opacity:0;transform:translateY(60px) rotate(-2deg)}55%{opacity:1;transform:translateY(-7px) rotate(.6deg)}100%{transform:none}}@keyframes fswaMagneticRise{0%{opacity:0;transform:translateY(50px) scale(.88)}65%{opacity:1;transform:translateY(-5px) scale(1.025)}100%{transform:none}}@keyframes fswaPerspectiveLift{from{opacity:0;transform:perspective(1000px) rotateX(20deg) translateY(40px) scale(.94)}to{opacity:1;transform:none}}@keyframes fswaSoftSpring{0%{opacity:0;transform:scale(.82) translateY(25px)}58%{opacity:1;transform:scale(1.035) translateY(-4px)}80%{transform:scale(.99) translateY(2px)}100%{transform:none}}@keyframes fswaRevealTwist{from{opacity:0;clip-path:inset(15% 45% 15% 45% round 40px);transform:rotate(-5deg) scale(.9)}to{opacity:1;clip-path:inset(0);transform:none}}@keyframes fswaFocusBurst{from{opacity:0;filter:blur(20px) brightness(1.3);transform:scale(1.12)}to{opacity:1;filter:none;transform:none}}@keyframes fswaFloatIn{from{opacity:0;transform:translate3d(0,38px,0) scale(.97);filter:blur(5px)}to{opacity:1;transform:none;filter:none}}

@media (prefers-reduced-motion: reduce) {
    .fswa-arrow-button__visual::before,
    .fswa-arrow-button__visual::after,
    .fswa-arrow-button__track,
    .fswa-inner-glow-button,
    .fswa-inner-glow-button__text,
    .fswa-inner-glow-button__icon-wrapper,
    .fswa-inner-glow-button__icon,
    .fswa-icon-box,
    .fswa-icon-box__icon-wrap,
    .fswa-icon-box__icon {
        transition: none;
    }
    html.fswa-js .fswa-animate { opacity: 1; animation: none !important; }
    .fswa-icon-box--hover-float:hover { animation: none; }
}

/* ---------------------------------------------------------
   Media Carousel
   --------------------------------------------------------- */
.fswa-media-carousel{
    --fswa-mc-radius:16px;
    --fswa-mc-text:#000;
    --fswa-mc-line:#000;
    --fswa-mc-dot:#c9cbd2;
    --fswa-mc-dot-active:#111318;
    --fswa-mc-arrow:#111318;
    --fswa-mc-thumb-height:146px;
    --fswa-mc-active-height:166px;
    --fswa-mc-active-grow:1.5;
    --fswa-mc-font-size:18px;
    --fswa-mc-font-weight:400;
    --fswa-mc-font-style:normal;
    --fswa-mc-text-transform:none;
    --fswa-mc-line-height:1.35;
    --fswa-mc-letter-spacing:0em;
    --fswa-mc-line-thickness:1px;
    --fswa-mc-line-length:35%;
    display:flex;
    align-items:flex-start;
    width:100%;
    gap:clamp(24px,4vw,72px);
    box-sizing:border-box;
}
.fswa-media-carousel--text-left .fswa-media-carousel__carousel{order:2}
.fswa-media-carousel--text-left .fswa-media-carousel__copy{order:1}
.fswa-media-carousel__carousel{width:72%;min-width:0}
.fswa-media-carousel--no-text .fswa-media-carousel__carousel{width:100%}
.fswa-media-carousel__track{
    display:flex;
    align-items:flex-start;
    width:100%;
    gap:clamp(5px,.65vw,10px);
    min-height:var(--fswa-mc-active-height);
    overflow:visible;
}
.fswa-media-carousel__item{
    position:relative;
    display:block;
    min-width:0;
    height:var(--fswa-mc-thumb-height);
    flex:1 1 0;
    text-decoration:none!important;
    color:inherit;
    outline:none;
    transform-origin:top left;
    transition:height .5s cubic-bezier(.16,1,.3,1),flex-grow .5s cubic-bezier(.16,1,.3,1),transform .4s cubic-bezier(.16,1,.3,1),filter .4s ease,box-shadow .4s ease;
    will-change:height,flex-grow,transform;
}
.fswa-media-carousel__item.is-active{
    height:var(--fswa-mc-active-height);
    flex-grow:var(--fswa-mc-active-grow);
    z-index:2;
}
.fswa-media-carousel__media{
    position:relative;
    display:block;
    width:100%;
    height:100%;
    overflow:hidden;
    border-radius:var(--fswa-mc-radius);
    background:#eef0f4;
    transition:border-radius .3s ease,box-shadow .35s ease;
}
.fswa-media-carousel__image,
.fswa-media-carousel__video{
    position:absolute!important;
    inset:0!important;
    display:block!important;
    width:100%!important;
    height:100%!important;
    min-width:100%!important;
    max-width:none!important;
    min-height:100%!important;
    max-height:none!important;
    object-fit:cover!important;
    object-position:center!important;
    border:0!important;
    margin:0!important;
    padding:0!important;
    transition:transform .55s cubic-bezier(.16,1,.3,1),filter .4s ease;
}
.fswa-media-carousel__video{pointer-events:none;background:#101217}
.fswa-media-carousel__type-badge{position:absolute;left:50%;top:50%;display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:999px;background:rgba(255,255,255,.96);color:#0d0f13;box-shadow:0 8px 24px rgba(0,0,0,.18);transform:translate(-50%,-50%) scale(.72);opacity:0;pointer-events:none;transition:opacity .3s ease,transform .42s cubic-bezier(.34,1.56,.64,1)}
.fswa-media-carousel__type-badge svg{width:22px;height:22px;display:block}
.fswa-media-carousel__item.is-active .fswa-media-carousel__type-badge{opacity:1;transform:translate(-50%,-50%) scale(1)}
.fswa-media-carousel--shadow-yes .fswa-media-carousel__media{box-shadow:0 9px 25px rgba(15,23,42,.13)}
.fswa-media-carousel--hover-lift .fswa-media-carousel__item:hover{transform:translateY(-6px)}
.fswa-media-carousel--hover-zoom .fswa-media-carousel__item:hover .fswa-media-carousel__image,.fswa-media-carousel--hover-zoom .fswa-media-carousel__item:hover .fswa-media-carousel__video{transform:scale(1.075)}
.fswa-media-carousel--hover-scale .fswa-media-carousel__item:hover{transform:scale(1.035);z-index:3}
.fswa-media-carousel--hover-tilt .fswa-media-carousel__item:hover{transform:perspective(800px) rotateY(-4deg) translateY(-3px);z-index:3}
.fswa-media-carousel--hover-color-reveal .fswa-media-carousel__item:not(:hover):not(.is-active) .fswa-media-carousel__image,.fswa-media-carousel--hover-color-reveal .fswa-media-carousel__item:not(:hover):not(.is-active) .fswa-media-carousel__video{filter:grayscale(1) saturate(.25)}
.fswa-media-carousel__controls{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;min-height:42px;margin-top:18px;gap:14px}
.fswa-media-carousel__dots{grid-column:2;display:flex;align-items:center;justify-content:center;gap:7px}
.fswa-media-carousel__dot{appearance:none;-webkit-appearance:none;border:0;padding:0;width:8px;height:8px;border-radius:999px;background:var(--fswa-mc-dot)!important;cursor:pointer;transition:transform .25s ease,background .25s ease;box-shadow:none!important}
.fswa-media-carousel__dot:hover{transform:scale(1.25)}
.fswa-media-carousel__dot.is-active{background:var(--fswa-mc-dot-active)!important;transform:scale(1.08)}
.fswa-media-carousel__arrows{grid-column:3;justify-self:end;display:flex;align-items:center;gap:18px}
.fswa-media-carousel__arrow{appearance:none;-webkit-appearance:none;display:flex;align-items:center;justify-content:center;width:30px;height:32px;padding:0;border:0;background:transparent!important;color:var(--fswa-mc-arrow)!important;cursor:pointer;box-shadow:none!important;transition:opacity .25s ease,transform .25s ease}
.fswa-media-carousel__arrow svg{display:block;width:24px;height:24px;color:inherit;overflow:visible}
.fswa-media-carousel__arrow:hover{transform:translateY(-1px) scale(1.08)}
.fswa-media-carousel__arrow:disabled{opacity:.25;cursor:default;transform:none}
.fswa-media-carousel__copy{width:28%;min-width:0;color:var(--fswa-mc-text);font-size:var(--fswa-mc-font-size);font-weight:var(--fswa-mc-font-weight);font-style:var(--fswa-mc-font-style);text-transform:var(--fswa-mc-text-transform);line-height:var(--fswa-mc-line-height);letter-spacing:var(--fswa-mc-letter-spacing)}
.fswa-media-carousel__copy-inner>:first-child{margin-top:0}.fswa-media-carousel__copy-inner>:last-child{margin-bottom:0}
.fswa-media-carousel__separator{display:block;width:var(--fswa-mc-line-length);height:var(--fswa-mc-line-thickness);background:var(--fswa-mc-line);margin:0 0 20px}
.fswa-media-carousel__item:focus-visible,.fswa-media-carousel__dot:focus-visible,.fswa-media-carousel__arrow:focus-visible{outline:2px solid currentColor;outline-offset:4px}

@media (max-width:767px){
    .fswa-media-carousel,.fswa-media-carousel--text-left{flex-direction:column;gap:24px}
    .fswa-media-carousel--text-left .fswa-media-carousel__carousel,.fswa-media-carousel--text-left .fswa-media-carousel__copy{order:initial}
    .fswa-media-carousel__carousel,.fswa-media-carousel__copy{width:100%}
    .fswa-media-carousel__track{gap:4px;min-height:calc(var(--fswa-mc-active-height) * .78)}
    .fswa-media-carousel__item{height:calc(var(--fswa-mc-thumb-height) * .78)}
    .fswa-media-carousel__item.is-active{height:calc(var(--fswa-mc-active-height) * .78);flex-grow:1.35}
    .fswa-media-carousel__type-badge{width:36px;height:36px}
    .fswa-media-carousel__type-badge svg{width:19px;height:19px}
    .fswa-media-carousel__controls{margin-top:12px}
}

@media (prefers-reduced-motion:reduce){
    .fswa-media-carousel__item,.fswa-media-carousel__image,.fswa-media-carousel__video,.fswa-media-carousel__type-badge,.fswa-media-carousel__dot,.fswa-media-carousel__arrow{transition:none!important}
}


/* ---------------------------------------------------------
   Titolo con Linea
   --------------------------------------------------------- */
.fswa-lined-heading{
    --fswa-lh-color:#111827;
    --fswa-lh-font-size:22px;
    --fswa-lh-font-weight:500;
    --fswa-lh-font-style:normal;
    --fswa-lh-text-transform:none;
    --fswa-lh-line-height:1.25;
    --fswa-lh-letter-spacing:.08em;
    --fswa-lh-line-color:#111827;
    --fswa-lh-line-length:18%;
    --fswa-lh-line-thickness:2px;
    --fswa-lh-line-gap:20px;
    display:flex;
    flex-direction:column;
    width:100%;
    max-width:100%;
    box-sizing:border-box;
    gap:var(--fswa-lh-line-gap);
    color:var(--fswa-lh-color);
    font-size:var(--fswa-lh-font-size);
    font-weight:var(--fswa-lh-font-weight);
    font-style:var(--fswa-lh-font-style);
    text-transform:var(--fswa-lh-text-transform);
    line-height:var(--fswa-lh-line-height);
    letter-spacing:var(--fswa-lh-letter-spacing);
}
.fswa-lined-heading--align-left{text-align:left;align-items:flex-start}
.fswa-lined-heading--align-center{text-align:center;align-items:center}
.fswa-lined-heading--align-right{text-align:right;align-items:flex-end}
.fswa-lined-heading__text{display:block;width:100%;min-width:0;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;line-height:inherit}
.fswa-lined-heading__text>:first-child{margin-top:0}
.fswa-lined-heading__text>:last-child{margin-bottom:0}
.fswa-lined-heading__text p{color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;line-height:inherit}
.fswa-lined-heading__text strong,.fswa-lined-heading__text b{font-weight:bolder}
.fswa-lined-heading__text em,.fswa-lined-heading__text i{font-style:italic}
.fswa-lined-heading__line{display:block;flex:0 0 auto;width:var(--fswa-lh-line-length);max-width:100%;height:var(--fswa-lh-line-thickness);min-height:0;background:var(--fswa-lh-line-color);line-height:0}
.fswa-lined-heading--align-left .fswa-lined-heading__line{align-self:flex-start}
.fswa-lined-heading--align-center .fswa-lined-heading__line{align-self:center}
.fswa-lined-heading--align-right .fswa-lined-heading__line{align-self:flex-end}


/* ---------------------------------------------------------
   Image Cluster
   --------------------------------------------------------- */
.fswa-image-cluster {
    --fswa-ic-size: 56px;
    --fswa-ic-overlap: 16px;
    --fswa-ic-radius: 12px;
    --fswa-ic-text: #111827;
    --fswa-ic-line: #111827;
    --fswa-ic-font-size: 18px;
    --fswa-ic-font-weight: 400;
    --fswa-ic-font-style: normal;
    --fswa-ic-text-transform: none;
    --fswa-ic-line-height: 1.35;
    --fswa-ic-letter-spacing: 0;
    --fswa-ic-line-thickness: 2px;
    --fswa-ic-line-length: 28%;
    --fswa-ic-line-gap: 12px;
    --fswa-ic-content-gap: 20px;

    display: flex;
    align-items: center;
    gap: var(--fswa-ic-content-gap);
    width: 100%;
    color: var(--fswa-ic-text);
}

.fswa-image-cluster--text-left,
.fswa-image-cluster--text-right {
    flex-direction: row;
}
.fswa-image-cluster--text-top,
.fswa-image-cluster--text-bottom {
    flex-direction: column;
    align-items: flex-start;
}
.fswa-image-cluster--text-left { justify-content: space-between; }
.fswa-image-cluster--text-right { justify-content: space-between; }
.fswa-image-cluster--text-top .fswa-image-cluster__content,
.fswa-image-cluster--text-bottom .fswa-image-cluster__content,
.fswa-image-cluster--no-text { width: 100%; }

.fswa-image-cluster__stack {
    display: flex;
    align-items: center;
    isolation: isolate;
    flex-wrap: nowrap;
}

.fswa-image-cluster__item {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--fswa-ic-size);
    height: var(--fswa-ic-size);
    flex: 0 0 var(--fswa-ic-size);
    text-decoration: none !important;
    transition: transform .35s cubic-bezier(.16,1,.3,1), filter .35s ease, box-shadow .35s ease;
    outline: none;
}

.fswa-image-cluster__item + .fswa-image-cluster__item {
    margin-left: calc(var(--fswa-ic-overlap) * -1);
}

.fswa-image-cluster__item:hover,
.fswa-image-cluster__item:focus-visible {
    z-index: 40 !important;
}

.fswa-image-cluster__media,
.fswa-image-cluster__image {
    display: block;
    width: 100%;
    height: 100%;
}

.fswa-image-cluster__media {
    overflow: hidden;
    background: #e5e7eb;
    border: 2px solid rgba(255,255,255,.9);
}

.fswa-image-cluster__image {
    object-fit: cover;
    object-position: center center;
}

.fswa-image-cluster--shape-circle .fswa-image-cluster__media { border-radius: 50%; }
.fswa-image-cluster--shape-square .fswa-image-cluster__media { border-radius: 0; }
.fswa-image-cluster--shape-rounded .fswa-image-cluster__media { border-radius: var(--fswa-ic-radius); }

.fswa-image-cluster--shadow-yes .fswa-image-cluster__media {
    box-shadow: 0 7px 18px rgba(17,24,39,.16);
}

.fswa-image-cluster--hover-lift .fswa-image-cluster__item:hover,
.fswa-image-cluster--hover-lift .fswa-image-cluster__item:focus-visible { transform: translateY(-4px); }
.fswa-image-cluster--hover-scale .fswa-image-cluster__item:hover,
.fswa-image-cluster--hover-scale .fswa-image-cluster__item:focus-visible { transform: scale(1.08); }
.fswa-image-cluster--hover-glow .fswa-image-cluster__item:hover .fswa-image-cluster__media,
.fswa-image-cluster--hover-glow .fswa-image-cluster__item:focus-visible .fswa-image-cluster__media { box-shadow: 0 0 0 3px rgba(255,255,255,.9), 0 12px 30px rgba(99,102,241,.30); }
.fswa-image-cluster--hover-tilt-right .fswa-image-cluster__item:hover,
.fswa-image-cluster--hover-tilt-right .fswa-image-cluster__item:focus-visible { transform: translateY(-3px) rotate(5deg); }
.fswa-image-cluster--hover-tilt-left .fswa-image-cluster__item:hover,
.fswa-image-cluster--hover-tilt-left .fswa-image-cluster__item:focus-visible { transform: translateY(-3px) rotate(-5deg); }

.fswa-image-cluster__content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    max-width: 100%;
    color: var(--fswa-ic-text);
    font-size: var(--fswa-ic-font-size);
    font-weight: var(--fswa-ic-font-weight);
    font-style: var(--fswa-ic-font-style);
    text-transform: var(--fswa-ic-text-transform);
    line-height: var(--fswa-ic-line-height);
    letter-spacing: var(--fswa-ic-letter-spacing);
    text-align: inherit;
}

.fswa-image-cluster--align-left .fswa-image-cluster__content { text-align: left; align-items: flex-start; }
.fswa-image-cluster--align-center .fswa-image-cluster__content { text-align: center; align-items: center; }
.fswa-image-cluster--align-right .fswa-image-cluster__content { text-align: right; align-items: flex-end; }

.fswa-image-cluster__text p:last-child,
.fswa-image-cluster__text > *:last-child { margin-bottom: 0; }
.fswa-image-cluster__text p:first-child,
.fswa-image-cluster__text > *:first-child { margin-top: 0; }

.fswa-image-cluster__line {
    display: block;
    width: var(--fswa-ic-line-length);
    max-width: 100%;
    height: var(--fswa-ic-line-thickness);
    background: var(--fswa-ic-line);
    border-radius: 999px;
    margin: 0;
}
.fswa-image-cluster__content > .fswa-image-cluster__line:first-child { margin-bottom: var(--fswa-ic-line-gap); }
.fswa-image-cluster__content > .fswa-image-cluster__line:last-child { margin-top: var(--fswa-ic-line-gap); }

/* Generic tooltip, reusable site-wide */
.fswa-site-tooltip {
    position: absolute;
    left: 50%;
    bottom: calc(100% + 12px);
    z-index: 60;
    display: inline-flex;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transform: translate(-50%, 8px) scale(.92);
    transition: opacity .28s ease, transform .32s cubic-bezier(.16,1,.3,1), visibility .28s ease;
    pointer-events: none;
    white-space: nowrap;
}

.fswa-site-tooltip__label {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 30px;
    padding: 7px 12px;
    border-radius: 14px;
    background: rgba(6,8,14,.96);
    color: #fff;
    font-size: 11px;
    line-height: 1.1;
    letter-spacing: .08em;
    text-transform: uppercase;
    box-shadow: 0 10px 28px rgba(0,0,0,.24);
}

.fswa-site-tooltip__label::before {
    content: "";
    position: absolute;
    inset: -3px;
    z-index: -1;
    border-radius: inherit;
    background: conic-gradient(
        from 0deg,
        rgba(255, 0, 204, .95),
        rgba(111, 68, 255, .90),
        rgba(0, 238, 255, .95),
        rgba(255, 255, 255, .55),
        rgba(255, 0, 204, .95)
    );
    filter: blur(5px);
    opacity: .78;
    transform-origin: center;
    animation: fswa-tooltip-aura-spin 2.2s linear infinite;
    will-change: transform;
    isolation: isolate;
}

@keyframes fswa-tooltip-aura-spin {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

.fswa-site-tooltip__label::after {
    content: "";
    position: absolute;
    left: 50%;
    top: calc(100% - 2px);
    width: 10px;
    height: 10px;
    background: rgba(6,8,14,.96);
    transform: translateX(-50%) rotate(45deg);
    border-radius: 2px;
}

.fswa-image-cluster__item:hover .fswa-site-tooltip,
.fswa-image-cluster__item:focus-visible .fswa-site-tooltip {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, 0) scale(1);
}

@media (max-width: 767px) {
    .fswa-image-cluster--text-left,
    .fswa-image-cluster--text-right {
        flex-direction: column;
        align-items: flex-start;
    }
}


@media (prefers-reduced-motion: reduce) {
    .fswa-site-tooltip__label::before {
        animation: none;
    }
}


/* ---------------------------------------------------------
   Video Modal
   --------------------------------------------------------- */
.fswa-video-modal-trigger-wrap { display:flex; width:100%; }
.fswa-video-modal-trigger-wrap--align-left { justify-content:flex-start; }
.fswa-video-modal-trigger-wrap--align-center { justify-content:center; }
.fswa-video-modal-trigger-wrap--align-right { justify-content:flex-end; }

.fswa-video-trigger {
    --fswa-vm-button-size:64px;
    --fswa-vm-button-radius:18px;
    --fswa-vm-button-bg:#111;
    --fswa-vm-button-bg-hover:#242424;
    --fswa-vm-play:#fff;
    --fswa-vm-ring:#8b5cf6;
    --fswa-vm-border-width:0px;
    --fswa-vm-border:#fff;
    --fswa-vm-button-shadow:0 12px 30px rgba(0,0,0,.16);
    --fswa-vm-text:#111827;
    --fswa-vm-text-hover:#111827;
    --fswa-vm-font-size:16px;
    --fswa-vm-font-weight:500;
    --fswa-vm-text-transform:none;
    --fswa-vm-letter-spacing:0em;
    --fswa-vm-gap:14px;
    display:inline-flex;
    align-items:center;
    gap:var(--fswa-vm-gap);
    padding:0;
    border:0;
    background:transparent;
    color:var(--fswa-vm-text);
    font-size:var(--fswa-vm-font-size);
    font-weight:var(--fswa-vm-font-weight);
    letter-spacing:var(--fswa-vm-letter-spacing);
    text-transform:var(--fswa-vm-text-transform);
    text-decoration:none !important;
    cursor:pointer;
    appearance:none;
    -webkit-appearance:none;
    transition:transform .35s cubic-bezier(.16,1,.3,1), color .3s ease, filter .3s ease;
}
.fswa-video-trigger--icon-after { flex-direction:row-reverse; }
.fswa-video-trigger__play {
    position:relative;
    isolation:isolate;
    display:grid;
    place-items:center;
    width:var(--fswa-vm-button-size);
    height:var(--fswa-vm-button-size);
    flex:0 0 var(--fswa-vm-button-size);
    background:var(--fswa-vm-button-bg);
    border:var(--fswa-vm-border-width) solid var(--fswa-vm-border);
    color:var(--fswa-vm-play);
    box-shadow:var(--fswa-vm-button-shadow);
    transition:background .35s ease, box-shadow .35s ease, transform .35s cubic-bezier(.16,1,.3,1);
}
.fswa-video-trigger--shape-circle .fswa-video-trigger__play { border-radius:50%; }
.fswa-video-trigger--shape-rounded .fswa-video-trigger__play { border-radius:var(--fswa-vm-button-radius); }
.fswa-video-trigger--shape-square .fswa-video-trigger__play { border-radius:0; }
.fswa-video-trigger__icon { display:grid; place-items:center; width:36%; height:36%; transform:translateX(5%); }
.fswa-video-trigger__icon svg { display:block; width:100%; height:100%; }
.fswa-video-trigger__text { transition:color .3s ease, transform .3s ease; }
.fswa-video-trigger:hover,.fswa-video-trigger:focus-visible { color:var(--fswa-vm-text-hover); outline:none; }
.fswa-video-trigger:hover .fswa-video-trigger__play,.fswa-video-trigger:focus-visible .fswa-video-trigger__play { background:var(--fswa-vm-button-bg-hover); }
.fswa-video-trigger--hover-lift:hover,.fswa-video-trigger--hover-lift:focus-visible { transform:translateY(-3px); }
.fswa-video-trigger--hover-scale:hover .fswa-video-trigger__play,.fswa-video-trigger--hover-scale:focus-visible .fswa-video-trigger__play { transform:scale(1.08); }
.fswa-video-trigger--hover-glow:hover .fswa-video-trigger__play,.fswa-video-trigger--hover-glow:focus-visible .fswa-video-trigger__play { box-shadow:0 0 0 5px color-mix(in srgb,var(--fswa-vm-ring) 18%,transparent),0 16px 38px color-mix(in srgb,var(--fswa-vm-ring) 35%,transparent); }

.fswa-video-trigger--effect-pulse .fswa-video-trigger__play::before,
.fswa-video-trigger--effect-pulse .fswa-video-trigger__play::after,
.fswa-video-trigger--effect-ripple .fswa-video-trigger__play::before {
    content:""; position:absolute; inset:-1px; z-index:-1; border-radius:inherit; border:1px solid var(--fswa-vm-ring); opacity:.55;
}
.fswa-video-trigger--effect-pulse .fswa-video-trigger__play::before { animation:fswa-vm-pulse 2s ease-out infinite; }
.fswa-video-trigger--effect-pulse .fswa-video-trigger__play::after { animation:fswa-vm-pulse 2s .75s ease-out infinite; }
@keyframes fswa-vm-pulse { 0%{transform:scale(.92);opacity:.65} 75%,100%{transform:scale(1.55);opacity:0} }
.fswa-video-trigger--effect-ripple .fswa-video-trigger__play::before { animation:fswa-vm-ripple 2.4s cubic-bezier(.16,1,.3,1) infinite; }
@keyframes fswa-vm-ripple { 0%,30%{box-shadow:0 0 0 0 color-mix(in srgb,var(--fswa-vm-ring) 38%,transparent)} 100%{box-shadow:0 0 0 18px transparent} }
.fswa-video-trigger--effect-orbit .fswa-video-trigger__play::before {
    content:""; position:absolute; inset:-5px; z-index:-1; border-radius:inherit; background:conic-gradient(from 0deg,transparent,var(--fswa-vm-ring),#61dafb,var(--fswa-vm-ring),transparent); filter:blur(4px); opacity:.72; animation:fswa-vm-orbit 2.6s linear infinite;
}
.fswa-video-trigger--effect-orbit .fswa-video-trigger__play::after { content:""; position:absolute; inset:-2px; z-index:-1; border-radius:inherit; background:var(--fswa-vm-button-bg); }
@keyframes fswa-vm-orbit { to{transform:rotate(360deg)} }
.fswa-video-trigger--effect-glass .fswa-video-trigger__play { background:linear-gradient(145deg,rgba(255,255,255,.30),rgba(255,255,255,.08)),var(--fswa-vm-button-bg); backdrop-filter:blur(16px) saturate(145%); -webkit-backdrop-filter:blur(16px) saturate(145%); box-shadow:inset 0 1px 0 rgba(255,255,255,.38),inset 0 -1px 0 rgba(255,255,255,.10),var(--fswa-vm-button-shadow); }

.fswa-video-modal { position:fixed; inset:0; z-index:100000; display:none; place-items:center; padding:28px; }
.fswa-video-modal.is-open { display:grid; }
.fswa-video-modal__backdrop { position:absolute; inset:0; background:var(--fswa-vm-backdrop); backdrop-filter:blur(18px) saturate(120%); -webkit-backdrop-filter:blur(18px) saturate(120%); opacity:0; transition:opacity .32s ease; }
.fswa-video-modal.is-open .fswa-video-modal__backdrop { opacity:var(--fswa-vm-backdrop-opacity); }
.fswa-video-modal__panel { position:relative; z-index:1; width:min(var(--fswa-vm-modal-width),calc(100vw - 56px)); opacity:0; transform:translateY(18px) scale(.97); transition:opacity .34s ease,transform .45s cubic-bezier(.16,1,.3,1); }
.fswa-video-modal.is-open .fswa-video-modal__panel { opacity:1; transform:none; }
.fswa-video-modal__close { position:absolute; top:-16px; right:-16px; z-index:7; display:grid; place-items:center; width:42px; height:42px; border:1px solid rgba(255,255,255,.30); border-radius:50%; background:rgba(22,22,26,.56); backdrop-filter:blur(18px) saturate(155%); -webkit-backdrop-filter:blur(18px) saturate(155%); box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 12px 35px rgba(0,0,0,.25); cursor:pointer; }
.fswa-video-modal__close span { position:absolute; width:16px; height:1.5px; background:#fff; border-radius:10px; }
.fswa-video-modal__close span:first-child{transform:rotate(45deg)} .fswa-video-modal__close span:last-child{transform:rotate(-45deg)}
.fswa-video-player { position:relative; overflow:hidden; width:100%; background:#050507; border-radius:var(--fswa-vm-modal-radius); box-shadow:0 32px 100px rgba(0,0,0,.48); }
.fswa-video-player--ratio-16-9{aspect-ratio:16/9}.fswa-video-player--ratio-4-3{aspect-ratio:4/3}.fswa-video-player--ratio-1-1{aspect-ratio:1/1}.fswa-video-player--ratio-9-16{aspect-ratio:9/16;max-height:82vh;margin:auto;width:auto;max-width:100%}.fswa-video-player--ratio-21-9{aspect-ratio:21/9}
.fswa-video-player__video,.fswa-video-player__iframe{display:block;width:100%;height:100%;border:0;object-fit:contain;background:#000}
.fswa-video-player__activity{position:absolute;inset:0;z-index:2;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:default;appearance:none;-webkit-appearance:none}
.fswa-video-player.is-controls-hidden .fswa-video-player__activity{cursor:none}
.fswa-video-player__cover { position:absolute; inset:0; z-index:3; display:grid; place-items:center; border:0; background-position:center; background-size:cover; cursor:pointer; }
.fswa-video-player__cover::before { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.35)); }
.fswa-video-player__cover span { position:relative; display:grid; place-items:center; width:74px;height:74px;border-radius:50%;background:rgba(255,255,255,.20);color:#fff;border:1px solid rgba(255,255,255,.35);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 18px 50px rgba(0,0,0,.28); }
.fswa-video-player__cover svg{width:30px;height:30px;transform:translateX(2px)}
.fswa-video-player__cover.is-hidden{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s ease,visibility .25s ease}

.fswa-video-controls { position:absolute; left:50%; bottom:18px; z-index:5; display:flex; align-items:center; gap:8px; width:min(860px,calc(100% - 34px)); min-height:52px; padding:7px 9px; border-radius:20px; color:var(--fswa-vm-accent); transform:translateX(-50%); transition:opacity .25s ease,transform .25s ease; }
.fswa-video-modal--controls-liquid .fswa-video-controls { background:linear-gradient(135deg,rgba(255,255,255,.20),rgba(255,255,255,.075)); border:1px solid rgba(255,255,255,.28); box-shadow:inset 0 1px 0 rgba(255,255,255,.30),inset 0 -1px 0 rgba(255,255,255,.06),0 16px 45px rgba(0,0,0,.24); backdrop-filter:blur(24px) saturate(170%); -webkit-backdrop-filter:blur(24px) saturate(170%); }
.fswa-video-modal--controls-dark .fswa-video-controls { background:rgba(10,10,12,.76);border:1px solid rgba(255,255,255,.12);box-shadow:0 16px 45px rgba(0,0,0,.32);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px); }
.fswa-video-modal--controls-light .fswa-video-controls { background:rgba(245,245,248,.78);color:#111;border:1px solid rgba(255,255,255,.55);box-shadow:0 16px 45px rgba(0,0,0,.18);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px); }
.fswa-video-modal--controls-minimal .fswa-video-controls { background:rgba(0,0,0,.36);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px); }
.fswa-video-controls__button { display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;padding:0;border:0;border-radius:14px;background:rgba(255,255,255,.10);color:currentColor;cursor:pointer;transition:background .2s ease,transform .2s ease; }
.fswa-video-controls__button:hover{background:rgba(255,255,255,.18);transform:scale(1.04)} .fswa-video-modal--controls-light .fswa-video-controls__button{background:rgba(255,255,255,.52)}
.fswa-video-controls__button svg{width:18px;height:18px}.fswa-video-controls__pause-icon{display:none}.fswa-video-player.is-playing .fswa-video-controls__play-icon{display:none}.fswa-video-player.is-playing .fswa-video-controls__pause-icon{display:inline-flex}
.fswa-video-controls__progress { display:flex;align-items:center;gap:10px;flex:1;min-width:0; }
.fswa-video-controls__range { width:100%;height:4px;appearance:none;-webkit-appearance:none;border-radius:99px;background:rgba(255,255,255,.24);accent-color:var(--fswa-vm-accent);cursor:pointer; }
.fswa-video-controls__range::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:13px;height:13px;border-radius:50%;background:var(--fswa-vm-accent);box-shadow:0 2px 10px rgba(0,0,0,.25)}
.fswa-video-controls__range::-moz-range-thumb{width:13px;height:13px;border:0;border-radius:50%;background:var(--fswa-vm-accent);box-shadow:0 2px 10px rgba(0,0,0,.25)}
.fswa-video-controls__time,.fswa-video-controls__external-label{font-size:11px;font-weight:600;letter-spacing:.02em;white-space:nowrap;opacity:.85}
.fswa-video-player.is-controls-hidden .fswa-video-controls{opacity:0;transform:translate(-50%,12px) scale(.985);pointer-events:none}
.fswa-video-controls__menu-wrap{position:relative;flex:0 0 auto}
.fswa-video-controls__chip{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:38px;padding:0 11px;border:0;border-radius:14px;background:rgba(255,255,255,.10);color:currentColor;font:inherit;font-size:11px;font-weight:700;letter-spacing:.01em;white-space:nowrap;cursor:pointer;transition:background .2s ease,transform .2s ease,opacity .2s ease}
.fswa-video-controls__chip:hover,.fswa-video-controls__chip:focus-visible{background:rgba(255,255,255,.18);transform:scale(1.035);outline:none}
.fswa-video-modal--controls-light .fswa-video-controls__chip{background:rgba(255,255,255,.52)}
.fswa-video-controls__chip--static{cursor:default;opacity:.82}
.fswa-video-controls__chip--static:hover{transform:none}
.fswa-video-controls__menu{position:absolute;right:0;bottom:calc(100% + 10px);z-index:10;display:flex;flex-direction:column;gap:3px;min-width:94px;max-height:230px;padding:6px;border:1px solid rgba(255,255,255,.20);border-radius:16px;background:rgba(18,18,22,.78);box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 18px 45px rgba(0,0,0,.30);backdrop-filter:blur(22px) saturate(170%);-webkit-backdrop-filter:blur(22px) saturate(170%);opacity:0;visibility:hidden;transform:translateY(8px) scale(.96);transform-origin:bottom right;transition:opacity .2s ease,visibility .2s ease,transform .28s cubic-bezier(.16,1,.3,1);overflow:auto}
.fswa-video-controls__menu-wrap.is-open .fswa-video-controls__menu{opacity:1;visibility:visible;transform:none}
.fswa-video-controls__menu-option{display:flex;align-items:center;justify-content:flex-start;width:100%;min-height:32px;padding:6px 10px;border:0;border-radius:10px;background:transparent;color:#fff;font-size:11px;font-weight:650;white-space:nowrap;cursor:pointer;transition:background .18s ease,transform .18s ease}
.fswa-video-controls__menu-option:hover,.fswa-video-controls__menu-option:focus-visible{background:rgba(255,255,255,.12);outline:none}
.fswa-video-controls__menu-option.is-active{background:rgba(255,255,255,.18)}
.fswa-video-modal--controls-light .fswa-video-controls__menu{background:rgba(245,245,248,.86);border-color:rgba(255,255,255,.65)}
.fswa-video-modal--controls-light .fswa-video-controls__menu-option{color:#111}
.fswa-video-modal--controls-light .fswa-video-controls__menu-option:hover,.fswa-video-modal--controls-light .fswa-video-controls__menu-option.is-active{background:rgba(0,0,0,.08)}
body.fswa-video-modal-opened{overflow:hidden}

@media(max-width:767px){.fswa-video-modal{padding:14px}.fswa-video-modal__panel{width:calc(100vw - 28px)}.fswa-video-modal__close{top:-10px;right:-6px}.fswa-video-controls{bottom:10px;width:calc(100% - 20px);border-radius:18px;gap:5px}.fswa-video-controls__time{display:none}.fswa-video-controls__chip{min-width:38px;height:36px;padding:0 8px}.fswa-video-controls__button{flex-basis:36px;width:36px;height:36px}.fswa-video-controls__external-label{display:none}.fswa-video-controls__menu{max-height:180px}}
@media(prefers-reduced-motion:reduce){.fswa-video-trigger--effect-pulse .fswa-video-trigger__play::before,.fswa-video-trigger--effect-pulse .fswa-video-trigger__play::after,.fswa-video-trigger--effect-ripple .fswa-video-trigger__play::before,.fswa-video-trigger--effect-orbit .fswa-video-trigger__play::before{animation:none}}


/* ---------------------------------------------------------
   Image Hover FX
   --------------------------------------------------------- */
.fswa-image-hover-fx {
    --fswa-fx-width: auto;
    --fswa-fx-max-width: 100%;
    --fswa-fx-ratio: auto;
    --fswa-fx-radius: 0px;
    --fswa-fx-fit: cover;
    --fswa-fx-position: center;
    --fswa-fx-intensity: 8;
    --fswa-fx-scale: 1.03;
    --fswa-fx-lift: 8px;
    --fswa-fx-rotate: 2deg;
    --fswa-fx-perspective: 1100px;
    --fswa-fx-duration: 520ms;
    --fswa-fx-light-opacity: .35;
    --fswa-fx-light-color: #fff;
    --fswa-fx-blend: screen;
    --fswa-fx-border-width: 0px;
    --fswa-fx-border-color: #fff;
    --fswa-fx-shadow: 0 24px 55px rgba(15,23,42,.24);
    --fswa-fx-mx: 0;
    --fswa-fx-my: 0;
    --fswa-fx-px: 50%;
    --fswa-fx-py: 50%;

    display: flex;
    width: 100%;
    box-sizing: border-box;
    text-decoration: none !important;
    outline: none;
}
.fswa-image-hover-fx--align-left { justify-content: flex-start; }
.fswa-image-hover-fx--align-center { justify-content: center; }
.fswa-image-hover-fx--align-right { justify-content: flex-end; }

.fswa-image-hover-fx__perspective {
    display: block;
    width: var(--fswa-fx-width);
    max-width: var(--fswa-fx-max-width);
    perspective: var(--fswa-fx-perspective);
    perspective-origin: var(--fswa-fx-px) var(--fswa-fx-py);
}

.fswa-image-hover-fx--aspect-original .fswa-image-hover-fx__perspective {
    width: var(--fswa-fx-width);
}

.fswa-image-hover-fx__frame {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: var(--fswa-fx-ratio);
    overflow: hidden;
    border-radius: var(--fswa-fx-radius);
    border: var(--fswa-fx-border-width) solid var(--fswa-fx-border-color);
    transform-style: preserve-3d;
    transform-origin: center center;
    transition:
        transform var(--fswa-fx-duration) cubic-bezier(.16,1,.3,1),
        box-shadow var(--fswa-fx-duration) cubic-bezier(.16,1,.3,1),
        filter var(--fswa-fx-duration) ease;
    will-change: transform;
    isolation: isolate;
}

.fswa-image-hover-fx--aspect-original .fswa-image-hover-fx__frame {
    aspect-ratio: auto;
}

.fswa-image-hover-fx__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: var(--fswa-fx-fit);
    object-position: var(--fswa-fx-position);
    border-radius: inherit;
    transform: translateZ(0);
    transition: transform var(--fswa-fx-duration) cubic-bezier(.16,1,.3,1), filter var(--fswa-fx-duration) ease;
    backface-visibility: hidden;
}

.fswa-image-hover-fx--aspect-original .fswa-image-hover-fx__image {
    height: auto;
    object-fit: initial;
}

.fswa-image-hover-fx--shadow-box .fswa-image-hover-fx__frame {
    box-shadow: var(--fswa-fx-shadow);
}
.fswa-image-hover-fx--shadow-drop .fswa-image-hover-fx__image {
    filter: drop-shadow(var(--fswa-fx-shadow));
}

.fswa-image-hover-fx__light,
.fswa-image-hover-fx__edge {
    position: absolute;
    inset: 0;
    display: block;
    border-radius: inherit;
    pointer-events: none;
}

.fswa-image-hover-fx__light {
    z-index: 3;
    opacity: 0;
    mix-blend-mode: var(--fswa-fx-blend);
    transition: opacity .32s ease, background-position var(--fswa-fx-duration) ease, transform var(--fswa-fx-duration) cubic-bezier(.16,1,.3,1);
}

.fswa-image-hover-fx__edge {
    z-index: 4;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.08), inset 0 -24px 60px rgba(0,0,0,.08);
    opacity: .7;
}

/* Movement presets */
.fswa-image-hover-fx--motion-lift:hover .fswa-image-hover-fx__frame,
.fswa-image-hover-fx--motion-lift:focus-visible .fswa-image-hover-fx__frame {
    transform: translateY(calc(var(--fswa-fx-lift) * -1)) scale(var(--fswa-fx-scale));
}

.fswa-image-hover-fx--motion-zoom:hover .fswa-image-hover-fx__image,
.fswa-image-hover-fx--motion-zoom:focus-visible .fswa-image-hover-fx__image {
    transform: scale(var(--fswa-fx-scale));
}

.fswa-image-hover-fx--motion-rotate:hover .fswa-image-hover-fx__frame,
.fswa-image-hover-fx--motion-rotate:focus-visible .fswa-image-hover-fx__frame {
    transform: translateY(calc(var(--fswa-fx-lift) * -.55)) rotate(var(--fswa-fx-rotate)) scale(var(--fswa-fx-scale));
}

.fswa-image-hover-fx--motion-tilt:hover .fswa-image-hover-fx__frame,
.fswa-image-hover-fx--motion-tilt:focus-visible .fswa-image-hover-fx__frame {
    transform:
        rotateX(calc(var(--fswa-fx-my) * var(--fswa-fx-intensity) * -1deg))
        rotateY(calc(var(--fswa-fx-mx) * var(--fswa-fx-intensity) * 1deg))
        translateY(calc(var(--fswa-fx-lift) * -.35))
        scale(var(--fswa-fx-scale));
}

.fswa-image-hover-fx--motion-magnetic:hover .fswa-image-hover-fx__frame,
.fswa-image-hover-fx--motion-magnetic:focus-visible .fswa-image-hover-fx__frame {
    transform:
        translate3d(calc(var(--fswa-fx-mx) * var(--fswa-fx-intensity) * 1.15px), calc(var(--fswa-fx-my) * var(--fswa-fx-intensity) * 1.15px), 18px)
        rotateX(calc(var(--fswa-fx-my) * var(--fswa-fx-intensity) * -.65deg))
        rotateY(calc(var(--fswa-fx-mx) * var(--fswa-fx-intensity) * .65deg))
        scale(var(--fswa-fx-scale));
}

.fswa-image-hover-fx--motion-depth:hover .fswa-image-hover-fx__frame,
.fswa-image-hover-fx--motion-depth:focus-visible .fswa-image-hover-fx__frame {
    transform:
        translateZ(calc(var(--fswa-fx-intensity) * 3px))
        rotateX(calc(var(--fswa-fx-my) * -3deg))
        rotateY(calc(var(--fswa-fx-mx) * 3deg))
        scale(var(--fswa-fx-scale));
}
.fswa-image-hover-fx--motion-depth:hover .fswa-image-hover-fx__image,
.fswa-image-hover-fx--motion-depth:focus-visible .fswa-image-hover-fx__image {
    transform: translateZ(22px) scale(1.018);
}

@keyframes fswaFxSoftFloat {
    0%,100% { transform: translateY(calc(var(--fswa-fx-lift) * -.45)) scale(var(--fswa-fx-scale)); }
    50% { transform: translateY(calc(var(--fswa-fx-lift) * -1.15)) scale(var(--fswa-fx-scale)); }
}
.fswa-image-hover-fx--motion-float:hover .fswa-image-hover-fx__frame,
.fswa-image-hover-fx--motion-float:focus-visible .fswa-image-hover-fx__frame {
    animation: fswaFxSoftFloat 2.6s ease-in-out infinite;
}

@keyframes fswaFxElasticPop {
    0% { transform: scale(1); }
    52% { transform: translateY(calc(var(--fswa-fx-lift) * -1)) scale(calc(var(--fswa-fx-scale) + .025)); }
    76% { transform: translateY(calc(var(--fswa-fx-lift) * -.7)) scale(calc(var(--fswa-fx-scale) - .008)); }
    100% { transform: translateY(calc(var(--fswa-fx-lift) * -.8)) scale(var(--fswa-fx-scale)); }
}
.fswa-image-hover-fx--motion-elastic:hover .fswa-image-hover-fx__frame,
.fswa-image-hover-fx--motion-elastic:focus-visible .fswa-image-hover-fx__frame {
    animation: fswaFxElasticPop .72s cubic-bezier(.16,1,.3,1) both;
}

/* Light presets */
.fswa-image-hover-fx--light-glare .fswa-image-hover-fx__light {
    background: linear-gradient(112deg, transparent 15%, color-mix(in srgb, var(--fswa-fx-light-color) 82%, transparent) 44%, rgba(255,255,255,.05) 54%, transparent 76%);
    transform: translateX(-72%) skewX(-12deg);
}
.fswa-image-hover-fx--light-glare:hover .fswa-image-hover-fx__light,
.fswa-image-hover-fx--light-glare:focus-visible .fswa-image-hover-fx__light {
    opacity: var(--fswa-fx-light-opacity);
    transform: translateX(72%) skewX(-12deg);
}

.fswa-image-hover-fx--light-spotlight .fswa-image-hover-fx__light {
    background: radial-gradient(circle at var(--fswa-fx-px) var(--fswa-fx-py), color-mix(in srgb, var(--fswa-fx-light-color) 86%, transparent) 0%, rgba(255,255,255,.10) 20%, transparent 54%);
}
.fswa-image-hover-fx--light-spotlight:hover .fswa-image-hover-fx__light,
.fswa-image-hover-fx--light-spotlight:focus-visible .fswa-image-hover-fx__light { opacity: var(--fswa-fx-light-opacity); }

.fswa-image-hover-fx--light-aurora .fswa-image-hover-fx__light {
    background:
        radial-gradient(circle at 18% 25%, rgba(113,72,255,.75), transparent 42%),
        radial-gradient(circle at 82% 28%, rgba(0,225,255,.62), transparent 44%),
        radial-gradient(circle at 58% 86%, rgba(255,61,178,.55), transparent 45%);
    filter: blur(18px) saturate(1.3);
    transform: scale(1.12) rotate(-3deg);
}
.fswa-image-hover-fx--light-aurora:hover .fswa-image-hover-fx__light,
.fswa-image-hover-fx--light-aurora:focus-visible .fswa-image-hover-fx__light {
    opacity: var(--fswa-fx-light-opacity);
    transform: scale(1.22) rotate(4deg) translate3d(calc(var(--fswa-fx-mx) * 8px), calc(var(--fswa-fx-my) * 8px), 0);
}

.fswa-image-hover-fx--light-holographic .fswa-image-hover-fx__light {
    background:
        conic-gradient(from 210deg at var(--fswa-fx-px) var(--fswa-fx-py), rgba(255,0,180,.72), rgba(0,230,255,.74), rgba(255,235,80,.65), rgba(142,72,255,.70), rgba(255,0,180,.72));
    filter: saturate(1.45) contrast(1.05);
}
.fswa-image-hover-fx--light-holographic:hover .fswa-image-hover-fx__light,
.fswa-image-hover-fx--light-holographic:focus-visible .fswa-image-hover-fx__light { opacity: var(--fswa-fx-light-opacity); }

.fswa-image-hover-fx--light-gold .fswa-image-hover-fx__light {
    background: linear-gradient(115deg, transparent 22%, rgba(255,196,72,.05) 34%, rgba(255,224,137,.95) 48%, rgba(199,134,27,.40) 56%, transparent 74%);
    transform: translateX(-78%);
}
.fswa-image-hover-fx--light-gold:hover .fswa-image-hover-fx__light,
.fswa-image-hover-fx--light-gold:focus-visible .fswa-image-hover-fx__light {
    opacity: var(--fswa-fx-light-opacity);
    transform: translateX(78%);
}

@keyframes fswaFxScanLight {
    0% { transform: translateY(-120%); }
    100% { transform: translateY(120%); }
}
.fswa-image-hover-fx--light-scan .fswa-image-hover-fx__light {
    inset: -30% 0;
    background: linear-gradient(180deg, transparent 42%, color-mix(in srgb, var(--fswa-fx-light-color) 85%, transparent) 49%, rgba(255,255,255,.10) 53%, transparent 60%);
}
.fswa-image-hover-fx--light-scan:hover .fswa-image-hover-fx__light,
.fswa-image-hover-fx--light-scan:focus-visible .fswa-image-hover-fx__light {
    opacity: var(--fswa-fx-light-opacity);
    animation: fswaFxScanLight 1.35s cubic-bezier(.2,.75,.25,1) infinite;
}



/* Transparent silhouette mode: light/edge/shadow follow the image alpha channel. */
.fswa-image-hover-fx--alpha-yes .fswa-image-hover-fx__frame {
    overflow: visible;
    border-color: transparent;
    box-shadow: none !important;
}

.fswa-image-hover-fx--alpha-yes .fswa-image-hover-fx__image {
    filter: drop-shadow(var(--fswa-fx-shadow));
}

.fswa-image-hover-fx--alpha-yes .fswa-image-hover-fx__light,
.fswa-image-hover-fx--alpha-yes .fswa-image-hover-fx__edge {
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center center;
    mask-position: center center;
    -webkit-mask-size: 100% 100%;
    mask-size: 100% 100%;
    mask-mode: alpha;
    transform: translateZ(1px);
}

.fswa-image-hover-fx--alpha-yes .fswa-image-hover-fx__light {
    mix-blend-mode: var(--fswa-fx-blend);
}

.fswa-image-hover-fx--alpha-yes .fswa-image-hover-fx__edge {
    box-shadow: none;
    opacity: .45;
}

.fswa-image-hover-fx--alpha-yes.fswa-image-hover-fx--motion-depth:hover .fswa-image-hover-fx__image,
.fswa-image-hover-fx--alpha-yes.fswa-image-hover-fx--motion-depth:focus-visible .fswa-image-hover-fx__image {
    filter: drop-shadow(var(--fswa-fx-shadow));
}

/* Keep light effects visibly strong after alpha masking. */
.fswa-image-hover-fx--alpha-yes:hover .fswa-image-hover-fx__light,
.fswa-image-hover-fx--alpha-yes:focus-visible .fswa-image-hover-fx__light {
    opacity: var(--fswa-fx-light-opacity);
}

@media (prefers-reduced-motion: reduce) {
    .fswa-image-hover-fx__frame,
    .fswa-image-hover-fx__image,
    .fswa-image-hover-fx__light {
        transition-duration: .01ms !important;
        animation: none !important;
    }
}

/* Compatibility fallback: ensure light overlays remain visible in alpha-mask mode. */
.fswa-image-hover-fx--alpha-yes.fswa-image-hover-fx--light-glare:hover .fswa-image-hover-fx__light,
.fswa-image-hover-fx--alpha-yes.fswa-image-hover-fx--light-glare:focus-visible .fswa-image-hover-fx__light,
.fswa-image-hover-fx--alpha-yes.fswa-image-hover-fx--light-gold:hover .fswa-image-hover-fx__light,
.fswa-image-hover-fx--alpha-yes.fswa-image-hover-fx--light-gold:focus-visible .fswa-image-hover-fx__light,
.fswa-image-hover-fx--alpha-yes.fswa-image-hover-fx--light-aurora:hover .fswa-image-hover-fx__light,
.fswa-image-hover-fx--alpha-yes.fswa-image-hover-fx--light-aurora:focus-visible .fswa-image-hover-fx__light,
.fswa-image-hover-fx--alpha-yes.fswa-image-hover-fx--light-holographic:hover .fswa-image-hover-fx__light,
.fswa-image-hover-fx--alpha-yes.fswa-image-hover-fx--light-holographic:focus-visible .fswa-image-hover-fx__light,
.fswa-image-hover-fx--alpha-yes.fswa-image-hover-fx--light-spotlight:hover .fswa-image-hover-fx__light,
.fswa-image-hover-fx--alpha-yes.fswa-image-hover-fx--light-spotlight:focus-visible .fswa-image-hover-fx__light,
.fswa-image-hover-fx--alpha-yes.fswa-image-hover-fx--light-scan:hover .fswa-image-hover-fx__light,
.fswa-image-hover-fx--alpha-yes.fswa-image-hover-fx--light-scan:focus-visible .fswa-image-hover-fx__light {
    opacity: max(var(--fswa-fx-light-opacity), .28);
}


/* ---------------------------------------------------------
   Portfolio Showcase · Fluid Editorial 0.13
   --------------------------------------------------------- */
.fswa-portfolio-showcase {
  --fswa-portfolio-gap: 12px;
  --fswa-portfolio-radius: 16px;
  --fswa-portfolio-shadow: 0 10px 28px rgba(15,23,42,.08);
  --fswa-portfolio-text: #111;
  --fswa-portfolio-meta: #6f7280;
  --fswa-portfolio-accent: #8D87B9;
  --fswa-portfolio-card-bg: #fff;
  --fswa-portfolio-card-bg-hover: #f8f7fc;
  --fswa-portfolio-tag-bg: #f1eff8;
  --fswa-portfolio-tag-text: #5e5a73;
  --fswa-portfolio-featured-text: #fff;
  --fswa-portfolio-featured-overlay: #08080b;
  --fswa-portfolio-featured-overlay-opacity: .64;
  --fswa-portfolio-card-border-width: 0px;
  --fswa-portfolio-card-border: #e7e5ef;
  --fswa-portfolio-logo-width: 88px;
  --fswa-portfolio-logo-height: 44px;
  --fswa-portfolio-featured-logo-width: 110px;
  --fswa-portfolio-hover-intensity: 10;
  --fswa-portfolio-image-zoom: 1.08;
  --fswa-portfolio-hover-duration: 720ms;
  --fswa-portfolio-scroll-height: 72vh;
  color: var(--fswa-portfolio-text);
  position: relative;
}

.fswa-portfolio-showcase__toolbar {
  display:flex; align-items:center; justify-content:space-between; gap:24px;
  margin-bottom:16px; position:relative; z-index:20;
}
.fswa-portfolio-showcase__filters { display:flex; flex-wrap:wrap; gap:8px; min-width:0; }
.fswa-portfolio-filter {
  appearance:none; border:1px solid transparent; background:rgba(255,255,255,.66); color:var(--fswa-portfolio-text);
  padding:9px 18px; border-radius:999px; font-size:10px; line-height:1; cursor:pointer;
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  transition:transform .35s cubic-bezier(.16,1,.3,1),background .35s ease,color .35s ease,box-shadow .35s ease,border-color .35s ease;
}
.fswa-portfolio-filter:hover { transform:translateY(-2px); box-shadow:0 8px 22px rgba(15,23,42,.08); }
.fswa-portfolio-filter.is-active { background:var(--fswa-portfolio-text); color:#fff; box-shadow:0 8px 24px rgba(15,23,42,.14); }
.fswa-portfolio-showcase__tools { display:flex; align-items:center; justify-content:flex-end; gap:18px; flex:0 0 auto; }
.fswa-portfolio-showcase__count { font-size:10px; white-space:nowrap; color:var(--fswa-portfolio-meta); }
.fswa-portfolio-showcase__count strong { font-weight:600; color:var(--fswa-portfolio-text); }
.fswa-portfolio-showcase__search {
  display:flex; align-items:center; width:min(260px,28vw); min-width:180px;
  border:1px solid rgba(15,23,42,.12); border-radius:999px; background:rgba(255,255,255,.76); overflow:hidden;
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  transition:border-color .3s ease,box-shadow .3s ease,transform .3s ease;
}
.fswa-portfolio-showcase__search:focus-within { border-color:var(--fswa-portfolio-accent); box-shadow:0 0 0 4px color-mix(in srgb,var(--fswa-portfolio-accent) 12%,transparent); transform:translateY(-1px); }
.fswa-portfolio-showcase__search input { width:100%; border:0!important; outline:0!important; box-shadow:none!important; background:transparent!important; padding:9px 8px 9px 16px!important; font-size:10px; color:inherit; }
.fswa-portfolio-showcase__search span { width:36px; text-align:center; font-size:18px; opacity:.72; }

.fswa-portfolio-showcase__viewport { position:relative; }
.fswa-portfolio-showcase--scroll-focus .fswa-portfolio-showcase__viewport {
  max-height:var(--fswa-portfolio-scroll-height); overflow-y:auto; overflow-x:hidden; padding-right:0;
  scrollbar-width:none; -ms-overflow-style:none; overscroll-behavior-y:contain; scroll-behavior:auto;
}
.fswa-portfolio-showcase--scroll-focus .fswa-portfolio-showcase__viewport::-webkit-scrollbar { width:0!important; height:0!important; display:none!important; }

.fswa-portfolio-showcase__grid {
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); grid-auto-flow:row; align-items:stretch;
  gap:var(--fswa-portfolio-gap); perspective:1400px;
}

.fswa-portfolio-card {
  --fswa-portfolio-px:50%; --fswa-portfolio-py:50%; --fswa-portfolio-mx:0; --fswa-portfolio-my:0; --fswa-portfolio-shift-x:0px; --fswa-portfolio-shift-y:0px; --fswa-portfolio-image-shift-x:0px; --fswa-portfolio-image-shift-y:0px; --fswa-portfolio-tilt-x:0deg; --fswa-portfolio-tilt-y:0deg;
  position:relative; min-width:0; background:var(--fswa-portfolio-card-bg);
  border:var(--fswa-portfolio-card-border-width) solid var(--fswa-portfolio-card-border);
  border-radius:var(--fswa-portfolio-radius); box-shadow:var(--fswa-portfolio-shadow); overflow:hidden;
  transform-style:preserve-3d; transform-origin:center center; isolation:isolate;
  transition:transform var(--fswa-portfolio-hover-duration) cubic-bezier(.16,1,.3,1),box-shadow var(--fswa-portfolio-hover-duration) ease,background .45s ease,filter .55s ease,border-radius .55s cubic-bezier(.16,1,.3,1);
  will-change:transform;
}
.fswa-portfolio-card.is-pending { opacity:0; transform:translate3d(0,46px,0) scale(.78,1.12); filter:blur(14px); border-radius:42% 58% 48% 52% / 58% 44% 56% 42%; }
.fswa-portfolio-card.is-fresh { animation:fswaPortfolioDropletIn 1.08s cubic-bezier(.15,.85,.18,1) both; animation-delay:var(--fswa-portfolio-card-delay,0ms); }
@keyframes fswaPortfolioDropletIn {
  0% { opacity:0; transform:translate3d(0,58px,0) scale(.64,1.18) rotateX(8deg); filter:blur(15px); border-radius:48% 52% 62% 38% / 58% 42% 58% 42%; }
  35% { opacity:1; transform:translate3d(0,-8px,0) scale(1.055,.94) rotateX(-2deg); filter:blur(1.5px); border-radius:22% 78% 30% 70% / 68% 24% 76% 32%; }
  58% { transform:translate3d(0,4px,0) scale(.975,1.035); filter:blur(0); border-radius:36% 64% 68% 32% / 42% 66% 34% 58%; }
  78% { transform:translate3d(0,-2px,0) scale(1.012,.992); border-radius:calc(var(--fswa-portfolio-radius) + 5px); }
  100% { opacity:1; transform:translate3d(0,0,0) scale(1); filter:none; border-radius:var(--fswa-portfolio-radius); }
}

.fswa-portfolio-card__link { display:flex; flex-direction:column; height:100%; color:inherit!important; text-decoration:none!important; }
.fswa-portfolio-card__visual { position:relative; display:block; aspect-ratio:1.55/1; overflow:hidden; background:#ececf2; isolation:isolate; flex:0 0 auto; }
.fswa-portfolio-card__image { width:100%; height:100%; display:block; object-fit:cover!important; object-position:center center; transform:scale(1.001); transition:transform calc(var(--fswa-portfolio-hover-duration) * 1.05) cubic-bezier(.16,1,.3,1),filter .6s ease; will-change:transform; }
.fswa-portfolio-card__visual::after { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg,rgba(5,6,9,.03),rgba(5,6,9,0) 42%); pointer-events:none; }

.fswa-portfolio-card__logo-wrap { position:absolute; z-index:7; left:18px; top:17px; display:flex; align-items:center; justify-content:flex-start; max-width:var(--fswa-portfolio-logo-width); max-height:var(--fswa-portfolio-logo-height); filter:drop-shadow(0 4px 12px rgba(0,0,0,.16)); transform:translateZ(22px); }
.fswa-portfolio-card__logo { display:block; max-width:100%; max-height:var(--fswa-portfolio-logo-height); width:auto; height:auto; object-fit:contain; object-position:left center; }
.fswa-portfolio-card.is-featured .fswa-portfolio-card__logo-wrap { max-width:var(--fswa-portfolio-featured-logo-width); max-height:calc(var(--fswa-portfolio-logo-height) * 1.25); left:24px; top:22px; }
.fswa-portfolio-card.is-featured .fswa-portfolio-card__logo { max-height:calc(var(--fswa-portfolio-logo-height) * 1.25); }

.fswa-portfolio-card__body { display:flex; flex-direction:column; flex:1; padding:13px 14px 14px; background:var(--fswa-portfolio-card-bg); transition:background .45s ease; }
.fswa-portfolio-card__title { font-size:13px; line-height:1.14; margin-bottom:4px; color:var(--fswa-portfolio-text); }
.fswa-portfolio-card__category { font-size:9px; color:var(--fswa-portfolio-meta); min-height:15px; }
.fswa-portfolio-card__tags,.fswa-portfolio-card__featured-tags { display:flex; flex-wrap:wrap; gap:5px; margin-top:9px; }
.fswa-portfolio-card__tags span,.fswa-portfolio-card__featured-tags span { padding:5px 9px; border-radius:999px; background:var(--fswa-portfolio-tag-bg); color:var(--fswa-portfolio-tag-text); font-size:8px; line-height:1; }
.fswa-portfolio-card__featured-tags span { background:rgba(255,255,255,.12); color:inherit; border:1px solid rgba(255,255,255,.18); backdrop-filter:blur(8px); }
.fswa-portfolio-card__action { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:auto; padding-top:12px; font-size:9px; font-weight:650; color:var(--fswa-portfolio-text); }
.fswa-portfolio-card__arrow { display:grid; place-items:center; width:27px; height:27px; border:1px solid color-mix(in srgb,var(--fswa-portfolio-text) 18%,transparent); border-radius:50%; font-size:12px; transition:transform .4s cubic-bezier(.16,1,.3,1),background .3s ease,color .3s ease,border-color .3s ease; }

.fswa-portfolio-card__featured-content { position:absolute; z-index:6; inset:auto 24px 22px 24px; display:flex; flex-direction:column; align-items:flex-start; color:var(--fswa-portfolio-featured-text); text-shadow:0 2px 18px rgba(0,0,0,.34); transform:translateZ(28px); }
.fswa-portfolio-card__featured-content::before { content:""; position:absolute; z-index:-1; left:-46px; right:-46px; bottom:-42px; height:210px; background:linear-gradient(0deg,var(--fswa-portfolio-featured-overlay),transparent 82%); opacity:var(--fswa-portfolio-featured-overlay-opacity); pointer-events:none; }
.fswa-portfolio-card__eyebrow { font-size:8px; letter-spacing:.15em; text-transform:uppercase; opacity:.88; margin-bottom:7px; }
.fswa-portfolio-card__featured-title { font-size:24px; line-height:1.02; }
.fswa-portfolio-card__featured-cat { margin-top:5px; font-size:10px; opacity:.84; }
.fswa-portfolio-card__featured-action { display:flex; align-items:center; gap:16px; margin-top:14px; font-size:9px; font-weight:650; }
.fswa-portfolio-card__featured-action > span { display:grid; place-items:center; width:30px; height:30px; border-radius:50%; background:#fff; color:#111; text-shadow:none; transition:transform .42s cubic-bezier(.16,1,.3,1); }

/* Fluid layers */
.fswa-portfolio-card__shine,.fswa-portfolio-card__liquid,.fswa-portfolio-card__cursor-glow { position:absolute; inset:0; pointer-events:none; }
.fswa-portfolio-card__shine { z-index:4; opacity:0; background:linear-gradient(112deg,transparent 22%,rgba(255,255,255,.08) 38%,rgba(255,255,255,.78) 49%,rgba(255,255,255,.12) 57%,transparent 76%); transform:translateX(-125%) skewX(-14deg); transition:opacity .35s ease,transform .95s cubic-bezier(.16,1,.3,1); mix-blend-mode:screen; }
.fswa-portfolio-card__cursor-glow { z-index:3; opacity:0; background:radial-gradient(circle at var(--fswa-portfolio-px) var(--fswa-portfolio-py),color-mix(in srgb,var(--fswa-portfolio-accent) 48%,transparent) 0%,rgba(255,255,255,.16) 17%,transparent 48%); mix-blend-mode:screen; transition:opacity .35s ease; }
.fswa-portfolio-card__liquid { z-index:2; inset:-28%; opacity:0; background:conic-gradient(from 80deg at var(--fswa-portfolio-px) var(--fswa-portfolio-py),transparent 0deg,color-mix(in srgb,var(--fswa-portfolio-accent) 48%,transparent) 90deg,rgba(255,255,255,.34) 155deg,transparent 250deg,color-mix(in srgb,var(--fswa-portfolio-accent) 24%,transparent) 330deg); filter:blur(18px) saturate(1.25); transform:translate3d(calc(var(--fswa-portfolio-mx) * 12px),calc(var(--fswa-portfolio-my) * 12px),0) scale(.76); mix-blend-mode:screen; }
@keyframes fswaPortfolioLiquidOrb { 0%,100%{border-radius:48% 52% 62% 38% / 58% 42% 58% 42%;transform:translate3d(calc(var(--fswa-portfolio-mx) * 12px),calc(var(--fswa-portfolio-my) * 12px),0) scale(.82) rotate(0deg)} 50%{border-radius:68% 32% 44% 56% / 38% 70% 30% 62%;transform:translate3d(calc(var(--fswa-portfolio-mx) * -8px),calc(var(--fswa-portfolio-my) * 9px),0) scale(1.18) rotate(9deg)} }

/* Editorial: exactly 7 items = 3 on first row (featured spans 2 cols) + 4 on second row. */
.fswa-portfolio-showcase--editorial .fswa-portfolio-card.is-featured { grid-column:span 2; grid-row:auto; }
.fswa-portfolio-showcase--editorial .fswa-portfolio-card.is-featured .fswa-portfolio-card__visual { height:100%; min-height:280px; aspect-ratio:auto; flex:1 1 auto; }
.fswa-portfolio-showcase--last-wide .fswa-portfolio-card.is-wide { grid-column:1/-1; }
.fswa-portfolio-showcase--last-wide .fswa-portfolio-card.is-wide .fswa-portfolio-card__visual { aspect-ratio:3.1/1; }
.fswa-portfolio-showcase--uniform .fswa-portfolio-card__visual { aspect-ratio:1.55/1; }

/* WOW hover presets */
.fswa-portfolio-showcase--hover-liquid .fswa-portfolio-card:hover { transform:translate3d(0,-10px,28px) scale(1.022); box-shadow:0 32px 78px rgba(15,23,42,.20); background:var(--fswa-portfolio-card-bg-hover); border-radius:calc(var(--fswa-portfolio-radius) + 6px); }
.fswa-portfolio-showcase--hover-liquid .fswa-portfolio-card:hover .fswa-portfolio-card__body { background:var(--fswa-portfolio-card-bg-hover); }
.fswa-portfolio-showcase--hover-liquid .fswa-portfolio-card:hover .fswa-portfolio-card__image { transform:scale(var(--fswa-portfolio-image-zoom)) translate3d(var(--fswa-portfolio-image-shift-x),var(--fswa-portfolio-image-shift-y),0); filter:saturate(1.09) contrast(1.025); }
.fswa-portfolio-showcase--hover-liquid .fswa-portfolio-card:hover .fswa-portfolio-card__liquid { opacity:.78; animation:fswaPortfolioLiquidOrb 2.15s ease-in-out infinite; }
.fswa-portfolio-showcase--hover-liquid .fswa-portfolio-card:hover .fswa-portfolio-card__shine { opacity:.72; transform:translateX(125%) skewX(-14deg); }
.fswa-portfolio-showcase--hover-liquid .fswa-portfolio-card:hover .fswa-portfolio-card__cursor-glow { opacity:.82; }

.fswa-portfolio-showcase--hover-magnetic .fswa-portfolio-card:hover { transform:perspective(950px) translate3d(var(--fswa-portfolio-shift-x),var(--fswa-portfolio-shift-y),24px) rotateX(var(--fswa-portfolio-tilt-x)) rotateY(var(--fswa-portfolio-tilt-y)) scale(1.025); box-shadow:0 30px 78px color-mix(in srgb,var(--fswa-portfolio-accent) 18%,rgba(15,23,42,.2)); }
.fswa-portfolio-showcase--hover-magnetic .fswa-portfolio-card:hover .fswa-portfolio-card__image { transform:scale(var(--fswa-portfolio-image-zoom)) translate3d(var(--fswa-portfolio-image-shift-x),var(--fswa-portfolio-image-shift-y),0); }
.fswa-portfolio-showcase--hover-magnetic .fswa-portfolio-card:hover .fswa-portfolio-card__cursor-glow { opacity:.95; }
.fswa-portfolio-showcase--hover-magnetic .fswa-portfolio-card:hover .fswa-portfolio-card__liquid { opacity:.6; animation:fswaPortfolioLiquidOrb 1.8s ease-in-out infinite reverse; }

.fswa-portfolio-showcase--hover-reveal .fswa-portfolio-card__visual::before { content:"";position:absolute;inset:-1px;z-index:5;background:linear-gradient(135deg,color-mix(in srgb,var(--fswa-portfolio-accent) 74%,transparent),rgba(255,255,255,.18) 46%,transparent 68%);clip-path:circle(0% at var(--fswa-portfolio-px) var(--fswa-portfolio-py));transition:clip-path .72s cubic-bezier(.16,1,.3,1);mix-blend-mode:screen;pointer-events:none; }
.fswa-portfolio-showcase--hover-reveal .fswa-portfolio-card:hover .fswa-portfolio-card__visual::before { clip-path:circle(88% at var(--fswa-portfolio-px) var(--fswa-portfolio-py)); }
.fswa-portfolio-showcase--hover-reveal .fswa-portfolio-card:hover { transform:translateY(-8px) scale(1.012); box-shadow:0 28px 70px rgba(15,23,42,.18); }
.fswa-portfolio-showcase--hover-reveal .fswa-portfolio-card:hover .fswa-portfolio-card__image { transform:scale(var(--fswa-portfolio-image-zoom));filter:saturate(1.15) contrast(1.04); }

.fswa-portfolio-showcase--hover-tilt .fswa-portfolio-card:hover { transform:perspective(900px) rotateX(var(--fswa-portfolio-tilt-x)) rotateY(var(--fswa-portfolio-tilt-y)) translateY(-7px) scale(1.018); box-shadow:0 30px 72px rgba(15,23,42,.2); }
.fswa-portfolio-showcase--hover-tilt .fswa-portfolio-card:hover .fswa-portfolio-card__image { transform:translateZ(22px) scale(var(--fswa-portfolio-image-zoom)); }
.fswa-portfolio-showcase--hover-tilt .fswa-portfolio-card:hover .fswa-portfolio-card__cursor-glow { opacity:.76; }

.fswa-portfolio-showcase--hover-chromatic .fswa-portfolio-card:hover { transform:translateY(-9px) scale(1.018); box-shadow:-11px 0 30px rgba(255,0,153,.18),11px 0 30px rgba(0,220,255,.18),0 28px 64px rgba(15,23,42,.18); }
.fswa-portfolio-showcase--hover-chromatic .fswa-portfolio-card:hover .fswa-portfolio-card__image { transform:scale(var(--fswa-portfolio-image-zoom)); filter:saturate(1.24) contrast(1.04); }
.fswa-portfolio-showcase--hover-chromatic .fswa-portfolio-card:hover .fswa-portfolio-card__shine { opacity:.54;transform:translateX(120%) skewX(-14deg); }

.fswa-portfolio-card:hover .fswa-portfolio-card__arrow { background:var(--fswa-portfolio-text);color:#fff;border-color:var(--fswa-portfolio-text);transform:translateX(3px) rotate(-5deg); }
.fswa-portfolio-card:hover .fswa-portfolio-card__featured-action > span { transform:translateX(5px) rotate(-7deg) scale(1.06); }

.fswa-portfolio-showcase__loader { display:flex; justify-content:center; gap:7px; padding:26px 0 10px; }
.fswa-portfolio-showcase__loader[hidden] { display:none; }
.fswa-portfolio-showcase__loader span { width:9px;height:9px;background:var(--fswa-portfolio-accent);animation:fswaPortfolioWaterDots 1.15s cubic-bezier(.16,1,.3,1) infinite; }
.fswa-portfolio-showcase__loader span:nth-child(1){border-radius:58% 42% 65% 35% / 50% 65% 35% 50%}.fswa-portfolio-showcase__loader span:nth-child(2){animation-delay:.14s;border-radius:40% 60% 36% 64% / 68% 38% 62% 32%}.fswa-portfolio-showcase__loader span:nth-child(3){animation-delay:.28s;border-radius:66% 34% 52% 48% / 40% 58% 42% 60%}
@keyframes fswaPortfolioWaterDots { 0%,100%{transform:translateY(0) scale(.7,1.25);opacity:.38}50%{transform:translateY(-10px) scale(1.18,.72);opacity:1} }
.fswa-portfolio-showcase__sentinel{height:2px}.fswa-portfolio-showcase__empty{text-align:center;padding:50px 20px;color:var(--fswa-portfolio-meta)}
.fswa-portfolio-showcase.is-loading .fswa-portfolio-showcase__grid{transition:filter .3s ease;filter:saturate(.97)}

@media(max-width:991px){
  .fswa-portfolio-showcase__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fswa-portfolio-showcase__toolbar{align-items:flex-start;flex-direction:column}
  .fswa-portfolio-showcase__tools{width:100%;justify-content:space-between}
  .fswa-portfolio-showcase__search{width:min(360px,58vw)}
  .fswa-portfolio-showcase--editorial .fswa-portfolio-card.is-featured{grid-column:1/-1;grid-row:auto}
  .fswa-portfolio-showcase--scroll-focus .fswa-portfolio-showcase__viewport{max-height:none;overflow:visible;padding-right:0}
}
@media(max-width:600px){
  .fswa-portfolio-showcase__grid{grid-template-columns:1fr}
  .fswa-portfolio-showcase--editorial .fswa-portfolio-card.is-featured{grid-column:auto}
  .fswa-portfolio-showcase__tools{align-items:flex-start;flex-direction:column}
  .fswa-portfolio-showcase__search{width:100%;min-width:0}
  .fswa-portfolio-card__featured-title{font-size:20px}
  .fswa-portfolio-showcase--last-wide .fswa-portfolio-card.is-wide{grid-column:auto}
  .fswa-portfolio-showcase--last-wide .fswa-portfolio-card.is-wide .fswa-portfolio-card__visual{aspect-ratio:1.55/1}
}

