.swca-tbb-inline-wrap {
    width: 100%;
    margin: 24px 0;
}

.swca-tbb-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 13px 24px;
    border: 0;
    border-radius: var(--swca-tbb-radius, 10px);
    background: var(--swca-tbb-accent, #0f766e);
    color: var(--swca-tbb-text, #fff) !important;
    text-decoration: none !important;
    font: inherit;
    font-weight: 700;
    line-height: 1.2;
    cursor: pointer;
    box-sizing: border-box;
    transition: transform .18s ease, opacity .18s ease, box-shadow .18s ease;
}

.swca-tbb-button:hover,
.swca-tbb-button:focus-visible {
    opacity: .94;
    transform: translateY(-1px);
    box-shadow: 0 10px 24px rgba(0, 0, 0, .16);
}

.swca-tbb-button:focus-visible {
    outline: 3px solid currentColor;
    outline-offset: 3px;
}

.swca-tbb-button.swca-tbb-error {
    animation: swca-tbb-shake .3s linear 1;
}

.swca-tbb-sticky-wrap {
    position: fixed;
    left: 50%;
    bottom: var(--swca-tbb-offset, 16px);
    transform: translateX(-50%);
    width: min(680px, calc(100vw - 32px));
    z-index: 99990;
    transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
}

.swca-tbb-sticky-wrap .swca-tbb-button {
    width: 100%;
    min-height: 56px;
    box-shadow: 0 14px 36px rgba(0, 0, 0, .22);
}

.swca-tbb-sticky-wrap--hidden {
    opacity: 0;
    visibility: hidden;
    transform: translate(-50%, 12px);
    pointer-events: none;
}

@media (max-width: 782px) {
    .swca-tbb-button {
        width: 100%;
    }

    .swca-tbb-hide-mobile,
    .swca-tbb-sticky-wrap:has(.swca-tbb-hide-mobile) {
        display: none !important;
    }
}

@media (min-width: 783px) {
    .swca-tbb-hide-desktop,
    .swca-tbb-sticky-wrap:has(.swca-tbb-hide-desktop) {
        display: none !important;
    }
}

@keyframes swca-tbb-shake {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-4px); }
    75% { transform: translateX(4px); }
}

@media (prefers-reduced-motion: reduce) {
    .swca-tbb-button,
    .swca-tbb-sticky-wrap {
        transition: none;
    }
}

/* v1.0.3: hide the Banner Tour Booking CTA once the native availability flow starts. */
.swca-tbb-inline-wrap.swca-tbb-booking-open,
.swca-tbb-sticky-wrap.swca-tbb-booking-open {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.swca-tbb-inline-wrap.swca-tbb-booking-open {
    height: 0;
    margin-top: 0;
    margin-bottom: 0;
    overflow: hidden;
    transition: opacity .18s ease, visibility .18s ease, height .18s ease, margin .18s ease;
}

/* v1.0.4: destination pages. The automatic banner is invisible until JS finds
   an existing CTA that points to a related /tour/.../ URL. */
.swca-tbb-destination-auto-wrap {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.swca-tbb-destination-auto-wrap.swca-tbb-destination-auto-wrap--ready {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}
