.mff-floating-cta-wrap {
    position: fixed;
    z-index: 9999;
    pointer-events: none;
    width: auto;
    max-width: calc(100vw - 24px);
}

.mff-floating-cta-button {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 54px;
    max-width: calc(100vw - 24px);
    text-align: center;
    text-decoration: none !important;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: .01em;
    cursor: pointer;
    pointer-events: auto;
    transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, color .18s ease;
    box-shadow: 0 12px 32px rgba(0,0,0,.18);
    -webkit-tap-highlight-color: transparent;
}

.mff-floating-cta-button:hover {
    transform: translateY(-2px);
    text-decoration: none !important;
}

.mff-floating-cta-button:focus-visible {
    outline: 3px solid rgba(0,0,0,.28);
    outline-offset: 3px;
}

.mff-desktop-left { left: var(--mff-side-desktop, 24px); right: auto; transform: none; }
.mff-desktop-center { left: 50%; right: auto; transform: translateX(-50%); }
.mff-desktop-right { right: var(--mff-side-desktop, 24px); left: auto; transform: none; }

@media (min-width: 768px) {
    .mff-hide-desktop { display: none !important; }
}

@media (max-width: 767px) {
    .mff-hide-mobile { display: none !important; }

    .mff-floating-cta-wrap {
        max-width: calc(100vw - 16px);
    }

    .mff-floating-cta-button {
        max-width: calc(100vw - 16px);
        min-height: 52px;
    }

    .mff-mobile-left { left: var(--mff-side-mobile, 14px); right: auto; transform: none; }
    .mff-mobile-center { left: 50%; right: auto; transform: translateX(-50%); }
    .mff-mobile-right { right: var(--mff-side-mobile, 14px); left: auto; transform: none; }
}
