/***************/
/* Back to Top */
/***************/

/* Place "Back to top" button on the left side of the screen */
#back-top {
    right: unset;
    left: 20px;
}

/*****************/
/* Accessibility */
/*****************/

/* a11y: Impairment */
:root:has(.chat-i-a11y-invert) { 
    --chat-i-contrast-light: #fff;
    --chat-i-contrast-medium: #8a8a8a;
    --chat-i-contrast-dark: #000;
}

.chat-i-a11y-invert {
    .chat-i-cta {
        background-color: var(--chat-i-contrast-light);
        color: var(--chat-i-contrast-dark);
    }

    .bulb-footer-link {
        color: var(--chat-i-contrast-light);

        &:hover {
            color: var(--chat-i-contrast-dark);
        }
    }

    .bulb-consent-overlay {
        color: var(--chat-i-contrast-dark);
    }

    .bulb-consent-link {
        color: var(--chat-i-contrast-dark);
    }

    .bulb-consent-button {
        background-color: var(--chat-i-contrast-dark);
        color: var(--chat-i-contrast-light);
    }

    #bulb-messenger .messenger-popup-panel {
        --bui-popup-panel-toggle-button-color: var(--chat-i-contrast-medium);
        --bui-popup-panel-header-background-color: var(--chat-i-contrast-dark);
        
        .bui-messenger {
            --bui-messenger-background-color: var(--chat-i-contrast-medium);
        }
        
        .bui-message {
            --bui-message-sent-background: var(--chat-i-contrast-dark);
            --bui-message-sent-color: var(--chat-i-contrast-light);
        }
    }
} 

/* a11y: Larger Fonts */
:root:has(.chat-i-a11y-big-font) {
   --chat-i-upscale-factor: 2;
}

/* a11y: Size */
.bulb-consent-overlay {
    gap: calc(1.25rem * var(--bui-upscale-factor));
    padding: calc(1.5rem * var(--bui-upscale-factor));
}

.bulb-consent-text {
    font-size: calc(1rem * var(--bui-upscale-factor));

    > p {
        margin-block: calc(0.375em * var(--bui-upscale-factor));
    }
}

.bulb-consent-button {
    padding: calc(0.5rem * var(--bui-upscale-factor)) calc(1.5rem * var(--bui-upscale-factor));
    font-size: calc(1rem * var(--bui-upscale-factor));
}


/* Custom Toggle Button */
.bui-popup-panel {
    position: fixed;
    z-index: 999999;
    right: var(--bui-popup-panel-toggle-button-margin-right, 1rem);
    bottom: var(--bui-popup-panel-toggle-button-margin-bottom, 1rem);
}

/******************/
/* Call to action */
/******************/

.bui-popup-panel .popup-panel-toggle-button {
    display: none;
}

.chat-i-cta-wrapper {
    position: fixed;
    right: var(--chat-i-popup-panel-toggle-button-margin-right);
    bottom: var(--chat-i-popup-panel-toggle-button-margin-bottom);
    z-index: 1000000;
    width: var(--chat-i-popup-panel-toggle-button-height);
    height: var(--chat-i-popup-panel-toggle-button-height);
}

.chat-i-cta {
    position: absolute;
    bottom: calc(var(--chat-i-popup-panel-toggle-button-height) / 2);
    right: 0;
    width: max-content;
    max-width: min(400px, 75vw);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem;
    padding: 1.5rem;
    border-radius: 0.5rem;
    background-color: var(--bui-primary-500);
    color: var(--bui-neutral-0);
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

.chat-i-cta-wrapper:hover .chat-i-cta {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.chat-i-cta-message {
    max-width: 50ch;
}

.chat-i-cta-button {
    position: relative;
    z-index: 1;
    height: calc(var(--chat-i-popup-panel-toggle-button-height));
    width: calc(var(--chat-i-popup-panel-toggle-button-height));
    border: 2px solid var(--bui-primary-500);
    background-color: var(--bui-gray-400);
    border-radius: 50rem;
    padding: 0;
    cursor: pointer;
    transition: transform 0.1s;

    &:hover {
        transform: scale(1.05);
    }

    &::before {
        content: "";
        display: inline-block;
        width: 100%;
        height: 100%;
        background-image: var(--chat-i-popup-panel-header-icon-url);
        background-size: calc(100% - 0.5rem);
        background-color: var(--bui-gray-400);
        background-repeat: no-repeat;
        background-position: center;
        border-radius: 50rem;
    }
}

/* Hide CTA wrapper when messenger panel is opened */
.chat-i-cta-wrapper:has(~ #bulb-messenger .popup-panel-opened) {
    display: none;
}

.bulb-footer-links {
    display: flex;
    gap: 1rem;
    padding: 0 0.75rem 0.375rem 0.75rem;
}

.bulb-footer-link {
    color: var(--bui-primary-400);
    font-size: calc(0.875rem * var(--chat-i-upscale-factor));
    text-decoration: underline;

    &:hover {
        color: var(--bui-primary-500);
    }
}

/* Mobile: hide CTA text bubble on touch-only devices */
@media (hover: none) {
    .chat-i-cta {
        display: none;
    }
}