/* ChatBot Tecnica Button v1.3 */
.ctb-wrap {
    z-index: 2147483647 !important;
    pointer-events: none !important;
    isolation: isolate !important;
    visibility: visible !important;
    opacity: 1 !important;
    display: block !important;
    contain: none !important;
    filter: none !important;
    mix-blend-mode: normal !important;
    will-change: transform;
}

/* Priorità sopra elementi spesso invasivi del tema */
.ctb-wrap,
.ctb-wrap * {
    -webkit-transform-style: flat !important;
    transform-style: flat !important;
}

.ctb-fixed {
    position: fixed !important;
    z-index: 2147483647 !important;
}

/*
 * Nota tecnica:
 * Il bottone è in primo piano sulla pagina principale.
 * Se un iframe esterno è in fullscreen o contiene contenuti fuori dal documento padre,
 * nessun elemento HTML del sito può apparire sopra quel contesto per limiti del browser.
 */
video,
iframe,
embed,
object,
.wp-block-video,
.elementor-video,
.elementor-background-video-container {
    max-z-index: auto;
}


.ctb-shortcode {
    position: relative !important;
    display: inline-block !important;
}

.ctb-preset-top-left {
    top: 16px !important;
    left: 0 !important;
}

.ctb-preset-top-center {
    top: 16px !important;
    left: 50% !important;
    transform: translateX(-50%);
}

.ctb-preset-top-right {
    top: 16px !important;
    right: 0 !important;
}

.ctb-preset-middle-left {
    top: 50% !important;
    left: 0 !important;
    transform: translateY(-50%);
}

.ctb-preset-middle-center {
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%);
}

.ctb-preset-middle-right {
    top: 50% !important;
    right: 0 !important;
    transform: translateY(-50%);
}

.ctb-preset-footer-left {
    bottom: 16px !important;
    left: 0 !important;
}

.ctb-preset-footer-center {
    bottom: 16px !important;
    left: 50% !important;
    transform: translateX(-50%);
}

.ctb-preset-footer-right {
    bottom: 16px !important;
    right: 0 !important;
}

.ctb-button {
    z-index: 2147483647 !important;
    pointer-events: auto !important;
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 9px !important;
    overflow: hidden !important;
    border: 1px solid rgba(255,255,255,.22) !important;
    border-radius: 999px !important;
    padding: var(--ctb-padding-y, 11px) var(--ctb-padding-x, 19px) !important;
    color: #fff !important;
    font-size: var(--ctb-font-size, 14px) !important;
    font-weight: 800 !important;
    letter-spacing: .2px !important;
    cursor: pointer !important;
    background:
        radial-gradient(circle at 25% 15%, rgba(255,255,255,.30), transparent 22%),
        linear-gradient(145deg, #292929 0%, #030303 46%, #141414 100%) !important;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.28),
        inset 0 -8px 16px rgba(0,0,0,.72),
        0 9px 24px rgba(0,0,0,.24) !important;
    transform: translateY(0) scale(1);
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease !important;
}

.ctb-size-small {
    --ctb-font-size: 12px;
    --ctb-padding-y: 8px;
    --ctb-padding-x: 14px;
}

.ctb-size-medium {
    --ctb-font-size: 14px;
    --ctb-padding-y: 11px;
    --ctb-padding-x: 19px;
}

.ctb-size-large {
    --ctb-font-size: 18px;
    --ctb-padding-y: 15px;
    --ctb-padding-x: 26px;
}

.ctb-button:hover,
.ctb-button:focus {
    transform: translateY(-2px) scale(1.035);
    border-color: rgba(255,255,255,.55) !important;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.38),
        inset 0 -9px 18px rgba(0,0,0,.78),
        0 14px 34px rgba(0,0,0,.36),
        0 0 18px rgba(255,255,255,.14) !important;
    outline: none !important;
}

.ctb-orb {
    width: .86em;
    height: .86em;
    min-width: .86em;
    border-radius: 50%;
    background: linear-gradient(135deg, #fff, #9ee7ff 42%, #5cffb1);
    box-shadow: 0 0 10px rgba(158,231,255,.9), 0 0 20px rgba(92,255,177,.35);
    animation: ctbPulse 1.8s infinite ease-in-out;
}

.ctb-label {
    position: relative;
    z-index: 2;
    white-space: nowrap;
    line-height: 1;
}

.ctb-shine {
    position: absolute;
    top: -80%;
    left: -40%;
    width: 42%;
    height: 260%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,.28), transparent);
    transform: rotate(24deg);
    animation: ctbShine 3.2s infinite;
}

.ctb-tooltip {
    pointer-events: none !important;
    position: absolute !important;
    z-index: 2147483647 !important;
    width: min(390px, calc(100vw - 24px));
    padding: 12px 14px;
    border-radius: 14px;
    background: rgba(8, 8, 8, .96);
    color: #fff;
    font-size: 13px;
    line-height: 1.38;
    box-shadow: 0 16px 34px rgba(0,0,0,.42);
    opacity: 0;
    visibility: hidden;
    transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
    border: 1px solid rgba(255,255,255,.12);
}

/* Tooltip intelligente in base alla zona */
.ctb-preset-footer-left .ctb-tooltip,
.ctb-preset-footer-center .ctb-tooltip,
.ctb-preset-footer-right .ctb-tooltip,
.ctb-origin-bottom .ctb-tooltip {
    bottom: calc(100% + 9px);
    transform: translateY(5px);
}

.ctb-preset-top-left .ctb-tooltip,
.ctb-preset-top-center .ctb-tooltip,
.ctb-preset-top-right .ctb-tooltip,
.ctb-preset-middle-left .ctb-tooltip,
.ctb-preset-middle-center .ctb-tooltip,
.ctb-preset-middle-right .ctb-tooltip,
.ctb-origin-top .ctb-tooltip,
.ctb-shortcode .ctb-tooltip {
    top: calc(100% + 9px);
    transform: translateY(-5px);
}

.ctb-preset-top-left .ctb-tooltip,
.ctb-preset-middle-left .ctb-tooltip,
.ctb-preset-footer-left .ctb-tooltip,
.ctb-edge-left .ctb-tooltip,
.ctb-shortcode .ctb-tooltip {
    left: 0;
}

.ctb-preset-top-right .ctb-tooltip,
.ctb-preset-middle-right .ctb-tooltip,
.ctb-preset-footer-right .ctb-tooltip,
.ctb-edge-right .ctb-tooltip {
    right: 0;
}

.ctb-preset-top-center .ctb-tooltip,
.ctb-preset-middle-center .ctb-tooltip,
.ctb-preset-footer-center .ctb-tooltip {
    left: 50%;
    transform: translate(-50%, -5px);
}

.ctb-preset-footer-center .ctb-tooltip {
    transform: translate(-50%, 5px);
}

.ctb-wrap:hover .ctb-tooltip,
.ctb-button:focus + .ctb-tooltip {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.ctb-preset-top-center:hover .ctb-tooltip,
.ctb-preset-middle-center:hover .ctb-tooltip,
.ctb-preset-top-center .ctb-button:focus + .ctb-tooltip,
.ctb-preset-middle-center .ctb-button:focus + .ctb-tooltip {
    transform: translate(-50%, 0);
}

.ctb-preset-footer-center:hover .ctb-tooltip,
.ctb-preset-footer-center .ctb-button:focus + .ctb-tooltip {
    transform: translate(-50%, 0);
}

@keyframes ctbPulse {
    0%, 100% { transform: scale(1); opacity: .88; }
    50% { transform: scale(1.23); opacity: 1; }
}

@keyframes ctbShine {
    0% { left: -55%; }
    42%, 100% { left: 125%; }
}

@media (max-width: 768px) {
    .ctb-size-large {
        --ctb-font-size: 15px;
        --ctb-padding-y: 12px;
        --ctb-padding-x: 18px;
    }

    .ctb-tooltip {
        width: min(320px, calc(100vw - 18px));
    }
}
