/* FiBEST integration for the third-party Complianz consent component. */
.cmplz-cookiebanner.cmplz-bottom {
    top: auto !important;
    bottom: var(--fibest-space-4) !important;
    left: 50% !important;
    right: auto !important;
    width: min(560px, calc(100vw - (2 * var(--fibest-space-4)))) !important;
    min-width: 0 !important;
    max-width: min(560px, calc(100vw - (2 * var(--fibest-space-4)))) !important;
    padding: var(--fibest-space-5) !important;
    gap: var(--fibest-space-4) !important;
    color: var(--fibest-color-text) !important;
    background: var(--fibest-color-surface) !important;
    border: 1px solid var(--fibest-color-border) !important;
    border-radius: var(--fibest-radius-lg) !important;
    box-shadow: var(--fibest-shadow-overlay) !important;
    font-family: var(--wp--preset--font-family--exo) !important;
    transform: translateX(-50%) !important;
}

.cmplz-cookiebanner.cmplz-bottom:hover {
    box-shadow: var(--fibest-shadow-overlay) !important;
}

.cmplz-cookiebanner .cmplz-header,
.cmplz-cookiebanner .cmplz-message,
.cmplz-cookiebanner .cmplz-categories,
.cmplz-cookiebanner .cmplz-buttons,
.cmplz-cookiebanner .cmplz-documents {
    width: 100% !important;
    min-width: 0 !important;
}

.cmplz-cookiebanner .cmplz-title {
    display: block !important;
    color: var(--fibest-color-text) !important;
    font-family: inherit !important;
    font-size: var(--wp--preset--font-size--lead) !important;
    font-weight: 700 !important;
}

.cmplz-cookiebanner .cmplz-message,
.cmplz-cookiebanner .cmplz-category-title,
.cmplz-cookiebanner .cmplz-description {
    color: var(--fibest-color-text) !important;
    font-family: inherit !important;
    font-size: var(--wp--preset--font-size--small) !important;
    line-height: 1.55 !important;
}

.cmplz-cookiebanner .cmplz-close {
    display: grid !important;
    place-items: center;
    width: 44px !important;
    height: 44px !important;
    color: var(--fibest-color-text) !important;
    border-radius: var(--fibest-radius-md);
}

.cmplz-cookiebanner .cmplz-buttons {
    display: flex !important;
    gap: var(--fibest-space-2) !important;
}

.cmplz-cookiebanner .cmplz-buttons .cmplz-btn {
    flex: 1 1 0 !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: 44px !important;
    padding: var(--fibest-space-3) var(--fibest-space-4) !important;
    border-radius: var(--fibest-radius-md) !important;
    font-family: inherit !important;
    font-size: var(--wp--preset--font-size--small) !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    transition: background-color var(--fibest-motion-standard) var(--fibest-motion-ease), border-color var(--fibest-motion-standard) var(--fibest-motion-ease), color var(--fibest-motion-standard) var(--fibest-motion-ease), box-shadow var(--fibest-motion-standard) var(--fibest-motion-ease);
}

.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-accept {
    color: var(--fibest-color-text-inverse) !important;
    background: var(--fibest-color-action) !important;
    border-color: var(--fibest-color-action) !important;
}

.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-accept:hover {
    background: var(--fibest-color-action-hover) !important;
    border-color: var(--fibest-color-action-hover) !important;
}

.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-deny,
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-view-preferences,
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-save-preferences {
    color: var(--fibest-color-action-hover) !important;
    background: var(--fibest-color-surface) !important;
    border-color: var(--fibest-color-border-strong) !important;
}

.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-deny:hover,
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-view-preferences:hover,
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-save-preferences:hover {
    background: var(--fibest-color-surface-subtle) !important;
    border-color: var(--fibest-color-action) !important;
}

.cmplz-cookiebanner a {
    color: var(--fibest-color-action) !important;
}

.cmplz-cookiebanner .cmplz-category-header {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto 44px !important;
    align-items: center !important;
    gap: var(--fibest-space-2) !important;
}

.cmplz-cookiebanner .cmplz-categories.cmplz-fade-in {
    opacity: 1 !important;
    animation: none !important;
}

.cmplz-cookiebanner .cmplz-category-title,
.cmplz-cookiebanner .cmplz-always-active {
    color: var(--fibest-color-text) !important;
    opacity: 1 !important;
}

.cmplz-cookiebanner .cmplz-always-active {
    display: inline-flex !important;
    align-items: center;
    gap: var(--fibest-space-2);
    font-size: var(--wp--preset--font-size--small) !important;
    white-space: nowrap;
}

.cmplz-cookiebanner .cmplz-banner-checkbox {
    position: relative !important;
    display: inline-block !important;
    flex: 0 0 auto;
    width: 40px;
    height: 24px;
}

.cmplz-cookiebanner .cmplz-banner-checkbox input {
    inset: 0 !important;
    width: 40px !important;
    height: 24px !important;
    margin: 0 !important;
}

.cmplz-cookiebanner .cmplz-banner-checkbox .cmplz-label {
    display: block !important;
    width: 40px !important;
    height: 24px !important;
}

.cmplz-cookiebanner .cmplz-label .screen-reader-text {
    display: block !important;
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.cmplz-cookiebanner button.cmplz-category-toggle {
    display: grid !important;
    place-items: center;
    width: 44px !important;
    min-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
    padding: 0 !important;
    color: var(--fibest-color-action-hover) !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: var(--fibest-radius-md) !important;
}

.cmplz-cookiebanner .cmplz-category-toggle .cmplz-icon {
    display: grid !important;
    place-items: center;
    width: 24px !important;
    height: 24px !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
}

.cmplz-cookiebanner button:focus-visible,
.cmplz-cookiebanner a:focus-visible,
#cmplz-manage-consent button:focus-visible {
    outline: var(--wp--custom--focus--width) solid var(--fibest-color-focus) !important;
    outline-offset: var(--wp--custom--focus--offset) !important;
}

body:not(.fibest-consent-documents-ready) .cmplz-cookiebanner .cmplz-documents,
.cmplz-cookiebanner .cmplz-documents .cmplz-link:empty,
.cmplz-cookiebanner .cmplz-documents .cmplz-link.impressum {
    display: none !important;
}

#cmplz-manage-consent .cmplz-manage-consent {
    min-height: 44px;
    font-family: var(--wp--preset--font-family--exo);
}

@media (max-width: 781px) {
    .cmplz-cookiebanner.cmplz-bottom {
        bottom: var(--fibest-space-2) !important;
        padding: var(--fibest-space-4) !important;
    }

    .cmplz-cookiebanner .cmplz-buttons {
        flex-direction: column !important;
    }

    .cmplz-cookiebanner .cmplz-buttons .cmplz-btn {
        width: 100% !important;
    }

    body .cmplz-cookiebanner.cmplz-show .cmplz-categories .cmplz-category .cmplz-category-header {
        grid-template-columns: minmax(0, 1fr) auto 44px !important;
        grid-template-rows: auto !important;
    }

    body .cmplz-cookiebanner.cmplz-show .cmplz-category-header > .cmplz-category-title {
        grid-column: 1 !important;
        grid-row: 1 !important;
    }

    body .cmplz-cookiebanner.cmplz-show .cmplz-category-header > :is(.cmplz-banner-checkbox, .cmplz-always-active) {
        grid-column: 2 !important;
        grid-row: 1 !important;
    }

    body .cmplz-cookiebanner.cmplz-show .cmplz-category-header > .cmplz-category-toggle {
        grid-column: 3 !important;
        grid-row: 1 !important;
    }
}
