/* WhatsApp Float Button Styles */
.whatsapp-float-button {
    position: fixed;
    bottom: calc(var(--wafb-bottom-offset, 20px) + env(safe-area-inset-bottom, 0px));
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 50%;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3);
    z-index: 999;
    transition: all 0.3s ease;
}

.whatsapp-float-button:hover {
    transform: scale(1.1);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
}

.whatsapp-float-button a,
.whatsapp-float-button .wafb-open-form {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    text-decoration: none;
}

/* Foco visível sobre fundos claros e escuros. */
.whatsapp-float-button a:focus-visible,
.whatsapp-float-button .wafb-open-form:focus-visible {
    outline: 3px solid #111;
    outline-offset: 3px;
    box-shadow: 0 0 0 3px #fff;
}

/* Tamanhos */
.whatsapp-float-button.wafb-small {
    width: 50px;
    height: 50px;
}

.whatsapp-float-button.wafb-medium {
    width: 60px;
    height: 60px;
}

.whatsapp-float-button.wafb-large {
    width: 70px;
    height: 70px;
}

/* Posicionamento */
.whatsapp-float-button.wafb-left {
    left: calc(var(--wafb-side-offset, 20px) + env(safe-area-inset-left, 0px));
}

.whatsapp-float-button.wafb-right {
    right: calc(var(--wafb-side-offset, 20px) + env(safe-area-inset-right, 0px));
}

/* Responsivo */
@media (max-width: 767px) {
    .whatsapp-float-button {
        bottom: calc(var(--wafb-mobile-bottom, 20px) + env(safe-area-inset-bottom, 0px));
    }
    .whatsapp-float-button.wafb-left { left: calc(var(--wafb-mobile-side, 20px) + env(safe-area-inset-left, 0px)); }
    .whatsapp-float-button.wafb-right { right: calc(var(--wafb-mobile-side, 20px) + env(safe-area-inset-right, 0px)); }
    .whatsapp-float-button.wafb-small { width: var(--wafb-mobile-size, 50px); height: var(--wafb-mobile-size, 50px); }
    .whatsapp-float-button.wafb-medium { width: var(--wafb-mobile-size, 60px); height: var(--wafb-mobile-size, 60px); }
    .whatsapp-float-button.wafb-large { width: var(--wafb-mobile-size, 70px); height: var(--wafb-mobile-size, 70px); }
    .whatsapp-float-button.wafb-hide-mobile {
        display: none;
    }
}
.whatsapp-float-button .wafb-open-form {
    padding: 0;
    border: 0;
    background: transparent;
    color: #fff;
    cursor: pointer;
}

.wafb-dialog {
    box-sizing: border-box;
    width: min(440px, calc(100vw - 80px));
    top: var(--wafb-viewport-top, 0px);
    bottom: var(--wafb-viewport-bottom, 0px);
    max-height: calc(var(--wafb-viewport-height, 100dvh) - 32px);
    overflow: visible;
    padding: 44px 0 0;
    border: 0;
    background: transparent;
    color: var(--wafb-form-text, #172b22);
    font: 16px/1.5 system-ui, sans-serif;
}
.wafb-dialog-panel {
    box-sizing: border-box;
    max-height: calc(var(--wafb-viewport-height, 100dvh) - 76px);
    overflow-y: auto;
    overscroll-behavior: contain;
    overflow-wrap: anywhere;
    padding: 28px;
    border-radius: 16px;
    background: var(--wafb-form-background, #fff);
    color: var(--wafb-form-text, #172b22);
    box-shadow: 0 16px 64px #0004;
    font: 16px/1.5 system-ui, sans-serif;
}
.wafb-dialog::backdrop { background: #071d16b3; }
.wafb-dialog[open] {
    animation: wafb-dialog-enter 240ms cubic-bezier(.2, .8, .2, 1);
}
.wafb-dialog[open]::backdrop {
    animation: wafb-backdrop-enter 180ms ease-out;
}
@keyframes wafb-dialog-enter {
    from { opacity: 0; transform: translateY(12px) scale(.98); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes wafb-backdrop-enter {
    from { opacity: 0; }
    to { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
    .wafb-dialog[open],
    .wafb-dialog[open]::backdrop {
        animation: none;
    }
}
.wafb-dialog h2 { margin: 0 0 12px; font-size: 24px; color: inherit; }
.wafb-dialog p { margin: 0 0 18px; }
.wafb-dialog .wafb-close {
    position: absolute;
    top: 12px;
    right: -32px;
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 1px solid var(--wafb-form-close-border, #d5e3da);
    border-radius: 50%;
    background: var(--wafb-form-close-background, #edf5ef);
    color: var(--wafb-form-close-icon, #172b22);
    line-height: 1;
    cursor: pointer;
    appearance: none;
    transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease;
}
.wafb-dialog .wafb-close svg { display: block; width: 16px; height: 16px; flex: none; pointer-events: none; }
.wafb-dialog .wafb-close:hover, .wafb-dialog .wafb-close:active {
    background: var(--wafb-form-close-hover-background, #dcece1);
    border-color: var(--wafb-form-close-hover-border, #9abaa6);
    color: var(--wafb-form-close-hover-icon, #0b542b);
}
.wafb-dialog .wafb-close:focus-visible { outline: 3px solid var(--wafb-form-focus, #126b38); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) {
    .wafb-dialog .wafb-close { transition: none; }
}
.wafb-dialog label { display: block; margin: 14px 0 6px; font-weight: 600; }
.wafb-dialog input[type="text"], .wafb-dialog input[type="tel"] {
    box-sizing: border-box;
    display: block;
    width: 100%;
    padding: 12px;
    border: 1px solid var(--wafb-form-border, #788d81);
    border-radius: 8px;
    background: var(--wafb-form-input-background, #fff);
    color: var(--wafb-form-input-text, #172b22);
    font: inherit;
}
.wafb-dialog #wafb-phone { margin-bottom: 18px; }
.wafb-dialog .wafb-submit {
    box-sizing: border-box;
    white-space: normal;
    overflow-wrap: anywhere;
    width: 100%;
    padding: 14px 12px;
    border: 0;
    border-radius: 8px;
    background: var(--wafb-form-submit-background, #009565);
    color: var(--wafb-form-submit-text, #fff);
    font: 600 16px/1.4 system-ui, sans-serif;
    cursor: pointer;
}
.wafb-dialog .wafb-submit:disabled { opacity: .65; cursor: wait; }
.wafb-dialog :focus-visible { outline: 3px solid var(--wafb-form-focus, #126b38); outline-offset: 3px; }
.wafb-dialog .wafb-form-status { margin: 16px 0; }
.wafb-dialog .wafb-form-status:empty { display: none; }
.wafb-dialog .wafb-honeypot { display: none; }
.wafb-dialog #wafb-lead-form,
.wafb-dialog .wafb-turnstile {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    max-width: 100%;
}
.wafb-dialog .wafb-turnstile { margin: 0 0 18px; overflow-x: auto; }
.wafb-dialog .wafb-turnstile-frame {
    box-sizing: border-box;
    width: 100%;
    min-width: 300px;
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid rgba(26, 26, 25, .12);
    font-size: 0;
    line-height: 0;
}
.wafb-dialog .wafb-turnstile-surface {
    /* Esconde o contorno quadrado nativo sob a borda arredondada externa. */
    margin: -1px;
}
.wafb-dialog .wafb-turnstile[data-size="normal"] .wafb-turnstile-frame { width: 300px; }
.wafb-dialog .wafb-turnstile[data-size="compact"] .wafb-turnstile-frame { width: 150px; min-width: 150px; }
.wafb-dialog .wafb-turnstile[data-appearance="always"] .wafb-turnstile-frame,
.wafb-dialog .wafb-turnstile.wafb-turnstile-interactive .wafb-turnstile-frame { height: 65px; }
.wafb-dialog .wafb-turnstile[data-size="compact"][data-appearance="always"] .wafb-turnstile-frame,
.wafb-dialog .wafb-turnstile[data-size="compact"].wafb-turnstile-interactive .wafb-turnstile-frame { height: 140px; }
.wafb-dialog .wafb-turnstile[data-appearance="interaction-only"]:not(.wafb-turnstile-interactive) .wafb-turnstile-frame { border: 0; height: 0; }

.wafb-dialog .wafb-privacy a { color: var(--wafb-form-link, #009565); }
.wafb-dialog #wafb-dialog-description, .wafb-dialog .wafb-form-status { color: var(--wafb-form-support, #172b22); }

@media (max-width: 480px) {
    .wafb-dialog { width: calc(100vw - 48px); }
    .wafb-dialog-panel { padding: 20px; }
    .wafb-dialog .wafb-close { right: -16px; }
}
