:root {
    --clean-consent-shadow: 0 24px 60px rgba(15, 23, 42, 0.16);
}

#cc-main {
    --cc-font-family: Georgia, "Times New Roman", serif;
    --cc-modal-border-radius: 18px;
    --cc-btn-border-radius: 999px;
    --cc-bg: #f9f6f1;
    --cc-primary-color: #151515;
    --cc-secondary-color: #343434;
    --cc-modal-border-color: rgba(21, 21, 21, 0.12);
    --cc-separator-border-color: rgba(21, 21, 21, 0.12);
    --cc-footer-border-color: rgba(21, 21, 21, 0.1);
    --cc-overlay-bg: rgba(15, 23, 42, 0.42);
    --cc-btn-primary-bg: #111111;
    --cc-btn-primary-color: #f9f6f1;
    --cc-btn-primary-hover-bg: #2a2a2a;
    --cc-btn-primary-hover-color: #ffffff;
    --cc-btn-secondary-bg: transparent;
    --cc-btn-secondary-color: #111111;
    --cc-btn-secondary-border-color: rgba(17, 17, 17, 0.75);
    --cc-btn-secondary-hover-bg: rgba(17, 17, 17, 0.08);
    --cc-btn-secondary-hover-color: #111111;
    --cc-btn-secondary-hover-border-color: #111111;
    --cc-cookie-category-block-bg: rgba(17, 17, 17, 0.04);
    --cc-cookie-category-block-border: rgba(17, 17, 17, 0.08);
    --cc-cookie-category-block-hover-bg: rgba(17, 17, 17, 0.06);
    --cc-cookie-category-block-hover-border: rgba(17, 17, 17, 0.12);
    --cc-cookie-category-expanded-block-bg: rgba(17, 17, 17, 0.04);
    --cc-cookie-category-expanded-block-hover-bg: rgba(17, 17, 17, 0.06);
    --cc-toggle-readonly-bg: #a29b8f;
    --cc-toggle-on-bg: #111111;
    --cc-toggle-on-knob-bg: #f9f6f1;
    --cc-toggle-off-bg: #cbc3b8;
    --cc-toggle-off-knob-bg: #ffffff;
}

#cc-main .cm,
#cc-main .pm {
    border: 1px solid rgba(17, 17, 17, 0.1);
    box-shadow: var(--clean-consent-shadow);
    backdrop-filter: blur(18px);
}

#cc-main .cm {
    max-width: 58rem;
}

#cc-main .cm__title,
#cc-main .pm__title {
    font-size: clamp(1.35rem, 1.1rem + 0.6vw, 1.75rem);
    letter-spacing: -0.02em;
}

#cc-main .cm__desc,
#cc-main .pm__section-desc {
    font-family: "Helvetica Neue", Arial, sans-serif;
    line-height: 1.6;
}

#cc-main .cm__btn,
#cc-main .pm__btn {
    min-height: 3rem;
    border-width: 1px;
    font-family: "Helvetica Neue", Arial, sans-serif;
    font-size: 0.95rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    text-transform: none;
}

#cc-main .cm__btn-group,
#cc-main .pm__btn-group {
    gap: 0.75rem;
}

#cc-main .pm__section {
    border-radius: 14px;
}

.plain-cookie-settings-link {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 0.18em;
}

.plain-cookie-settings-link:hover,
.plain-cookie-settings-link:focus {
    text-decoration-thickness: 2px;
}

@media (max-width: 640px) {
    #cc-main .cm,
    #cc-main .pm {
        border-radius: 16px;
    }

    #cc-main .cm__btn,
    #cc-main .pm__btn {
        width: 100%;
    }
}

/*
 * Phones: a compact consent box with both buttons side by side at equal width,
 * lifted above a Joinchat floating button so the widget stays tappable while
 * the banner is open. The CookieConsent library forces a button column at
 * <=640px with !important (and forces flex: auto), hence the !important on the
 * row and on the equal flex share. Flipped modals keep the library's order.
 * The Pro add-on's Accept emphasis scales that button up; the row would eat
 * the gap between the choices, so emphasised modals keep the stacked column.
 * Long labels wrap inside the half-width buttons instead of being clipped.
 * The lift height is the --pcc-mobile-bottom-offset custom property (default
 * 84px). The plugin never sets it; a theme can, e.g.
 * :root { --pcc-mobile-bottom-offset: 120px; }. The value must be a length
 * (0px puts the box flush with the bottom edge).
 */
@media (max-width: 480px) {
    html #cc-main .cm.cm--box .cm__texts {
        padding-top: 12px;
    }

    html #cc-main .cm.cm--box .cm__title {
        font-size: 16px;
        line-height: 1.3;
    }

    html #cc-main .cm.cm--box .cm__desc {
        font-size: 14px;
        line-height: 1.45;
        padding-bottom: 10px;
    }

    html #cc-main .cm.cm--box .cm__btns {
        padding-top: 10px;
        padding-bottom: 10px;
    }

    html:not([data-pcc-pro-emphasis="on"]) #cc-main .cm.cm--box:not(.cm--flip) .cm__btn-group {
        flex-direction: row !important;
        gap: 8px;
    }

    html:not([data-pcc-pro-emphasis="on"]) #cc-main .cm.cm--box:not(.cm--flip) .cm__btn {
        flex: 1 1 0 !important;
        min-width: 0;
        min-height: 44px;
        margin: 0 !important;
        padding-left: 8px;
        padding-right: 8px;
        white-space: normal;
        overflow-wrap: anywhere;
        hyphens: auto;
    }

    html #cc-main .cm.cm--box .cm__footer {
        padding: 4px 0 8px;
    }

    html:has(.joinchat) #cc-main .cm.cm--box.cm--bottom {
        bottom: var(--pcc-mobile-bottom-offset, 84px);
    }
}
