.hubertus-cc,
.hubertus-cc-reopen,
.hubertus-cc-overlay {
    box-sizing: border-box;
}

.hubertus-cc *,
.hubertus-cc *::before,
.hubertus-cc *::after {
    box-sizing: border-box;
}

.hubertus-cc[hidden],
.hubertus-cc-reopen[hidden],
.hubertus-cc-overlay[hidden] {
    display: none !important;
}

.hubertus-cc {
    position: fixed;
    z-index: 2147483000;
    display: flex;
    gap: 20px;
    align-items: center;
    width: min(920px, calc(100% - 24px));
    margin: 0;
    padding: 16px 18px;
    background: var(--hcc-bg, #fff);
    color: var(--hcc-text, #1c2430);
    border: 1px solid var(--hcc-border, #e6e8ee);
    border-radius: var(--hcc-radius, 18px);
    box-shadow: 0 8px 28px rgba(15, 23, 42, 0.12), 0 1px 2px rgba(15, 23, 42, 0.06);
    font-family: system-ui, "Segoe UI", sans-serif;
    font-size: 14px;
    line-height: 1.45;
}

.hubertus-cc--bar {
    left: 50%;
    bottom: calc(16px + env(safe-area-inset-bottom));
    transform: translateX(-50%);
}

.hubertus-cc--left,
.hubertus-cc--right,
.hubertus-cc--modal {
    flex-direction: column;
    align-items: stretch;
    width: min(380px, calc(100% - 24px));
}

.hubertus-cc--left {
    left: 16px;
    bottom: calc(16px + env(safe-area-inset-bottom));
}

.hubertus-cc--right {
    right: 16px;
    bottom: calc(16px + env(safe-area-inset-bottom));
}

.hubertus-cc--modal {
    left: 50%;
    top: 50%;
    bottom: auto;
    width: min(440px, calc(100% - 32px));
    transform: translate(-50%, -50%);
}

.hubertus-cc-overlay {
    position: fixed;
    z-index: 2147482999;
    inset: 0;
    background: rgba(15, 23, 42, 0.48);
}

.hubertus-cc__main {
    display: flex;
    flex: 1;
    gap: 14px;
    align-items: center;
    min-width: 0;
}

.hubertus-cc__logo {
    display: block;
    width: auto;
    max-width: 120px;
    height: auto;
    max-height: 42px;
    object-fit: contain;
}

.hubertus-cc__copy {
    min-width: 0;
}

.hubertus-cc__title {
    margin: 0;
    color: var(--hcc-text, #1c2430);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.35;
}

.hubertus-cc__text {
    margin: 2px 0 0;
    color: var(--hcc-muted, #5d6b7c);
    font-size: 13.5px;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.hubertus-cc__privacy {
    display: inline-block;
    margin-top: 4px;
    color: var(--hcc-link, #1c2430);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.hubertus-cc__actions {
    display: flex;
    flex-shrink: 0;
    gap: 4px;
    align-items: center;
}

.hubertus-cc--left .hubertus-cc__actions,
.hubertus-cc--right .hubertus-cc__actions,
.hubertus-cc--modal .hubertus-cc__actions {
    justify-content: flex-end;
}

.hubertus-cc__accept,
.hubertus-cc__reject,
.hubertus-cc-reopen {
    appearance: none;
    margin: 0;
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.2;
    cursor: pointer;
}

.hubertus-cc__reject {
    padding: 10px 12px;
    color: var(--hcc-reject, #1c2430);
    background: transparent;
    border: 0;
}

.hubertus-cc__accept,
.hubertus-cc-reopen {
    padding: 10px 18px;
    color: var(--hcc-accept-text, #fff);
    background: var(--hcc-accept, #1e2a3a);
    border: 0;
    border-radius: var(--hcc-btn-radius, 999px);
}

.hubertus-cc__accept {
    min-width: 118px;
    white-space: nowrap;
}

.hubertus-cc__accept:hover,
.hubertus-cc-reopen:hover {
    filter: brightness(1.08);
}

.hubertus-cc__reject:hover {
    text-decoration: underline;
}

.hubertus-cc__accept:focus-visible,
.hubertus-cc__reject:focus-visible,
.hubertus-cc-reopen:focus-visible,
.hubertus-cc__privacy:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 2px;
}

.hubertus-cc-reopen {
    position: fixed;
    z-index: 2147483000;
    bottom: calc(16px + env(safe-area-inset-bottom));
    left: 16px;
    padding: 8px 14px;
    font-size: 13px;
    box-shadow: 0 6px 20px rgba(16, 24, 40, 0.18);
}

.hubertus-cc-reopen--right {
    right: 16px;
    left: auto;
}

.hubertus-cc-embed {
    display: inline-block;
    max-width: 100%;
    overflow: hidden;
    vertical-align: middle;
    color: #243044;
    background: #f4f6f8;
    border-radius: 12px;
}

.hubertus-cc-embed__note {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 120px;
    padding: 16px;
    font: 14px/1.45 system-ui, "Segoe UI", sans-serif;
    text-align: center;
}

.hubertus-cc-embed.is-loaded .hubertus-cc-embed__note {
    display: none;
}

.hubertus-cc-embed:not(.is-loaded) iframe {
    display: none !important;
}

.hubertus-cc-embed iframe {
    max-width: 100%;
    border: 0;
}

@media (max-width: 720px) {
    .hubertus-cc--bar {
        flex-direction: column;
        align-items: stretch;
        bottom: calc(10px + env(safe-area-inset-bottom));
    }

    .hubertus-cc--bar .hubertus-cc__actions {
        justify-content: flex-end;
    }
}

@media print {
    .hubertus-cc-root {
        display: none !important;
    }
}
