.nexus-desktop-cta{
    --nxcta-top:50%;
    --nxcta-edge:0px;
    --nxcta-size:56px;
    --nxcta-label:180px;
    --nxcta-gap:10px;
    --nxcta-radius:18px;
    --nxcta-duration:260ms;
    --nxcta-z:9990;
    position:fixed;
    top:var(--nxcta-top);
    z-index:var(--nxcta-z);
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    gap:var(--nxcta-gap);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(-50%) scale(.96);
    transition:opacity var(--nxcta-duration) ease,transform var(--nxcta-duration) ease,visibility 0s linear var(--nxcta-duration);
    font-family:inherit;
}
.nexus-desktop-cta--right{right:var(--nxcta-edge)}
.nexus-desktop-cta--left{left:var(--nxcta-edge);align-items:flex-start}
.nexus-desktop-cta.is-visible{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translateY(-50%) scale(1);
    transition-delay:0s;
}
.nexus-desktop-cta.is-scroll-hidden{
    opacity:0;
    pointer-events:none;
    transform:translateY(calc(-50% + 18px)) scale(.96);
}
.nexus-desktop-cta__panel{
    display:flex;
    flex-direction:column;
    align-items:inherit;
    gap:var(--nxcta-gap);
}
.nexus-desktop-cta__link,
.nexus-desktop-cta__launcher{
    position:relative;
    display:flex;
    align-items:center;
    width:var(--nxcta-size);
    height:var(--nxcta-size);
    min-height:var(--nxcta-size);
    margin:0;
    padding:0;
    overflow:hidden;
    border:0;
    border-radius:var(--nxcta-radius);
    background:var(--nxcta-bg,#2563eb);
    color:var(--nxcta-text,#fff);
    text-decoration:none!important;
    box-shadow:none;
    cursor:pointer;
    transition:width var(--nxcta-duration) cubic-bezier(.22,.61,.36,1),background-color var(--nxcta-duration) ease,box-shadow var(--nxcta-duration) ease,filter var(--nxcta-duration) ease;
    will-change:width;
}
.nexus-desktop-cta--right .nexus-desktop-cta__link,
.nexus-desktop-cta--right .nexus-desktop-cta__launcher{flex-direction:row-reverse}
.nexus-desktop-cta__link:hover,
.nexus-desktop-cta__link:focus-visible{
    background:var(--nxcta-hover,#7c3aed);
    color:var(--nxcta-text,#fff);
    outline:none;
}
.nexus-desktop-cta.has-shadow .nexus-desktop-cta__link,
.nexus-desktop-cta.has-shadow .nexus-desktop-cta__launcher{
    box-shadow:0 12px 28px rgba(15,23,42,.22),0 3px 10px rgba(15,23,42,.14);
}
.nexus-desktop-cta.has-shadow .nexus-desktop-cta__link:hover,
.nexus-desktop-cta.has-shadow .nexus-desktop-cta__link:focus-visible,
.nexus-desktop-cta.has-shadow .nexus-desktop-cta__launcher:hover,
.nexus-desktop-cta.has-shadow .nexus-desktop-cta__launcher:focus-visible{
    box-shadow:0 16px 34px rgba(15,23,42,.3),0 5px 14px rgba(15,23,42,.18);
}
.nexus-desktop-cta__icon{
    flex:0 0 var(--nxcta-size);
    width:var(--nxcta-size);
    height:var(--nxcta-size);
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--nxcta-icon,#fff);
    font-size:calc(var(--nxcta-size) * .38);
    line-height:1;
}
.nexus-desktop-cta__image{
    width:calc(var(--nxcta-size) * .5);
    height:calc(var(--nxcta-size) * .5);
    object-fit:contain;
    display:block;
}
.nexus-desktop-cta__label,
.nexus-desktop-cta__launcher-label{
    flex:0 0 var(--nxcta-label);
    width:var(--nxcta-label);
    padding:0 18px;
    color:inherit;
    font-size:14px;
    font-weight:700;
    line-height:1.2;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    text-align:left;
    box-sizing:border-box;
}
.nexus-desktop-cta--right .nexus-desktop-cta__label,
.nexus-desktop-cta--right .nexus-desktop-cta__launcher-label{text-align:right}

/* Icon at rest, full label on hover/focus. */
.nexus-desktop-cta--slide .nexus-desktop-cta__link:hover,
.nexus-desktop-cta--slide .nexus-desktop-cta__link:focus-visible{width:calc(var(--nxcta-size) + var(--nxcta-label))}

/* Always-open preset. */
.nexus-desktop-cta--open .nexus-desktop-cta__link{width:calc(var(--nxcta-size) + var(--nxcta-label))}

/* Expandable cluster preset. The launcher stays anchored at the configured
 * vertical position while the CTA panel opens independently above or below. */
.nexus-desktop-cta--cluster{
    width:var(--nxcta-size);
    height:var(--nxcta-size);
}
.nexus-desktop-cta--cluster .nexus-desktop-cta__launcher{
    position:relative;
    width:var(--nxcta-size);
    background:linear-gradient(135deg,#2563eb,#7c3aed);
    color:#fff;
    z-index:2;
}
.nexus-desktop-cta--cluster .nexus-desktop-cta__launcher-label{display:none}
.nexus-desktop-cta--cluster .nexus-desktop-cta__panel{
    position:absolute;
    width:calc(var(--nxcta-size) + var(--nxcta-label));
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity var(--nxcta-duration) ease,transform var(--nxcta-duration) ease,visibility 0s linear var(--nxcta-duration);
}
.nexus-desktop-cta--cluster.nexus-desktop-cta--right .nexus-desktop-cta__panel{right:0}
.nexus-desktop-cta--cluster.nexus-desktop-cta--left .nexus-desktop-cta__panel{left:0}
.nexus-desktop-cta--cluster-up .nexus-desktop-cta__panel{
    top:auto;
    bottom:calc(100% + var(--nxcta-gap));
    transform:translateY(12px) scale(.94);
    transform-origin:bottom center;
}
.nexus-desktop-cta--cluster-down .nexus-desktop-cta__panel{
    top:calc(100% + var(--nxcta-gap));
    bottom:auto;
    transform:translateY(-12px) scale(.94);
    transform-origin:top center;
}
.nexus-desktop-cta--cluster.is-open .nexus-desktop-cta__panel{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translateY(0) scale(1);
    transition-delay:0s;
}
.nexus-desktop-cta--cluster.is-open .nexus-desktop-cta__link,
.nexus-desktop-cta--cluster .nexus-desktop-cta__link:hover,
.nexus-desktop-cta--cluster .nexus-desktop-cta__link:focus-visible{width:calc(var(--nxcta-size) + var(--nxcta-label))}
.nexus-desktop-cta--cluster.is-open .nexus-desktop-cta__launcher{filter:brightness(1.08)}

@media (prefers-reduced-motion:reduce){
    .nexus-desktop-cta,
    .nexus-desktop-cta__link,
    .nexus-desktop-cta__launcher,
    .nexus-desktop-cta__panel{transition-duration:1ms!important}
}
@media (max-width:1024px){
    .nexus-desktop-cta{display:none!important}
}
