.psqcta-button {
    /* Edit these values to test positioning and effects. */
    --psqcta-bottom: 70px;
    --psqcta-footer-lift: 50px;
    --psqcta-glow-color: rgb(255 105 0 / 50%);
    --psqcta-glow-size: 20px;
    --psqcta-float-distance: -4px;
    --psqcta-float-duration: 3.5s;
    position: fixed;
    right: 20px;
    bottom: 70px;
    right: calc(20px + env(safe-area-inset-right, 0px));
    bottom: calc(var(--psqcta-bottom) + env(safe-area-inset-bottom, 0px));
    z-index: 9999;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    box-sizing: border-box;
    max-width: calc(100vw - 40px);
    min-height: 76px;
    padding: 16px 28px;
    border: 2px solid #ff6900;
    border-radius: 0;
    background: #ff6900;
    box-shadow: inset 0 0 0 3px #ff6900, inset 0 0 0 5px #fff, 0 0 var(--psqcta-glow-size) var(--psqcta-glow-color), 0 4px 12px rgb(0 0 0 / 18%);
    color: #fff;
    font: 700 16px/1.35 Arial, Helvetica, sans-serif;
    text-align: center;
    text-decoration: none;
    isolation: isolate;
    opacity: 1;
    translate: 0 0;
    visibility: visible;
    transition: bottom 250ms ease, opacity 300ms ease, translate 300ms ease, visibility 0s;
    animation: psqcta-float var(--psqcta-float-duration) ease-in-out infinite;
}
.psqcta-button.psqcta-near-footer {
    bottom: calc(var(--psqcta-bottom) + var(--psqcta-footer-lift) + env(safe-area-inset-bottom, 0px));
}

@keyframes psqcta-float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(var(--psqcta-float-distance)); }
}
.psqcta-button:hover,
.psqcta-button:focus { animation-play-state: paused; }
.psqcta-button:visited,
.psqcta-button:hover,
.psqcta-button:active {
    color: #fff;
    text-decoration: none;
}
.psqcta-text {
    background: transparent;
    color: inherit;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
}
.psqcta-button:focus {
    outline: 3px solid #162b3b;
    outline-offset: 4px;
}
.psqcta-button .psqcta-icon {
    display: block;
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
    max-width: none;
    margin: 0;
    padding: 0;
    border: 0;
    object-fit: contain;
}
@media (max-width: 480px) {
    .psqcta-button {
        right: calc(12px + env(safe-area-inset-right, 0px));
        max-width: calc(100vw - 24px - env(safe-area-inset-right, 0px) - env(safe-area-inset-left, 0px));
        min-height: 64px;
        gap: 10px;
        padding: 12px 16px;
    }
}
@media (prefers-reduced-motion: reduce) {
    .psqcta-button { animation: none; transition: none; }
}
@media print {
    .psqcta-button { display: none; }
}

.psqcta-button.psqcta-pending,
.psqcta-button.psqcta-original-visible,
.psqcta-button.psqcta-hidden {
    opacity: 0;
    translate: 0 10px;
    visibility: hidden;
    pointer-events: none;
    transition: bottom 250ms ease, opacity 300ms ease, translate 300ms ease, visibility 0s 300ms;
}
.psqcta-button.psqcta-pending { transition: none; }
@media (prefers-reduced-motion: reduce) {
    .psqcta-button.psqcta-original-visible,
    .psqcta-button.psqcta-hidden { transition: none; translate: none; }
}
