/*
 * Carmel Cookiebot theme
 *
 * Cookiebot still supplies the dialog markup, consent logic, keyboard handling,
 * and screen-reader text. This stylesheet takes ownership of the visual layout
 * at every viewport width. The dialog changes layout at 767px.
 */
:root {
    --carmel-cookie-bg: #ffffff;
    --carmel-cookie-surface: #f7f7f7;
    --carmel-cookie-text: #1f2327;
    --carmel-cookie-muted: #61666c;
    --carmel-cookie-border: #d8dadd;
    --carmel-cookie-primary: #173f67;
    --carmel-cookie-primary-hover: #0d2b4a;
    --carmel-cookie-focus: #2563eb;
}

#CybotCookiebotDialog,
#CybotCookiebotDialog *,
#CybotCookiebotDialogBodyUnderlay {
    animation: none !important;
    transition: none !important;
}

.cookiebot-manage-button {
    background: var(--carmel-cookie-primary);
    border: 0;
    border-radius: 4px;
    color: #ffffff;
    cursor: pointer;
    font: inherit;
    font-weight: 600;
    padding: 10px 16px;
    margin-top: 10px;
}

.cookiebot-manage-button:hover {
    background: var(--carmel-cookie-primary-hover);
}

/* Marketing-gated video placeholders. */
.video-consent-message {
    align-items: center;
    background: var(--carmel-cookie-surface);
    border: 1px solid var(--carmel-cookie-border);
    box-sizing: border-box;
    color: var(--carmel-cookie-text);
    display: flex;
    flex-direction: column;
    justify-content: center;
    line-height: 1.6;
    margin: 0 auto;
    min-height: 380px;
    padding: 24px;
    text-align: center;
}

.video-consent-note {
    font-size: 13px;
    margin-top: 12px;
}

.video-consent-note a {
    color: var(--carmel-cookie-primary);
    font-weight: 600;
}

@media only screen and (max-width: 640px) {
    .video-consent-message {
        min-height: 270px;
    }
}

#CybotCookiebotDialogDetailFooter {
    padding: 0 !important;
}

/* A bottom banner should not behave like a blocking centered modal. */
#CybotCookiebotDialogBodyUnderlay,
#CybotCookiebotDialog.CybotCookiebotDialogActive + #CybotCookiebotDialogBodyUnderlay {
    opacity: 0 !important;
    pointer-events: none !important;
}

#CybotCookiebotDialog,
#CybotCookiebotDialog[data-template="bottom"],
#CybotCookiebotDialog.CybotEdge,
#CybotCookiebotDialog.CybotEdge[data-template="bottom"] {
    background: var(--carmel-cookie-bg) !important;
    border: 0 !important;
    border-radius: 12px 12px 0 0 !important;
    bottom: 0 !important;
    box-shadow: 0 -10px 30px rgba(0, 0, 0, .2) !important;
    color: var(--carmel-cookie-text) !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 15px !important;
    height: auto !important;
    left: 50% !important;
    line-height: 1.45 !important;
    margin: 0 !important;
    max-height: min(520px, 72vh) !important;
    max-width: 100vw !important;
    min-width: 0 !important;
    overflow: hidden !important;
    padding: 0 !important;
    position: fixed !important;
    top: auto !important;
    transform: translateX(-50%) !important;
    width: 100vw !important;
}

#CybotCookiebotDialog .CybotCookiebotDialogContentWrapper {
    display: grid !important;
    gap: 0 28px !important;
    grid-template-areas:
        "nav actions"
        "content actions";
    grid-template-columns: minmax(0, 1fr) 270px !important;
    margin: 0 auto !important;
    max-width: 1440px !important;
    padding: 22px 28px !important;
    width: 100% !important;
}

/* Cookiebot's provider mark is intentionally replaced by the Carmel layout. */
#CybotCookiebotDialogHeader {
    display: none !important;
}

#CybotCookiebotDialogNav,
#CybotCookiebotDialogBodyEdgeMoreDetails,
#CybotCookiebotDialog .CybotCookiebotDialogGpcContainer,
#CybotCookiebotDialog .CybotCookiebotDialogBodyContentControlsWrapper.CybotCookiebotDialogHide {
    display: none !important;
}

#CybotCookiebotDialogTabContent {
    grid-area: content !important;
    margin-top: 0 !important;
    min-height: 0 !important;
    overflow: hidden !important;
}

#CybotCookiebotDialogTabContent .CybotCookiebotScrollContainer {
    padding: .375em 0 !important;
}

#CybotCookiebotDialog #CybotCookiebotDialogBody .CybotCookiebotScrollContainer {
    border: 0 !important;
    display: block !important;
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    overflow: visible !important;
    padding: 0 !important;
}

#CybotCookiebotDialogTabContent .CybotCookiebotDialogTabPanel {
    overflow-x: hidden !important;
    overflow-y: auto !important;
}

#CybotCookiebotDialogBodyContent {
    letter-spacing: 0 !important;
    line-height: 1.45 !important;
    padding: 0 !important;
}

#CybotCookiebotDialog .CybotCookiebotDialogBodyContentHeading {
    color: var(--carmel-cookie-text) !important;
    font-size: 22px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    margin: 0 0 8px !important;
}

#CybotCookiebotDialogBodyContentText,
#CybotCookiebotDialogBodyContentText p {
    color: var(--carmel-cookie-muted) !important;
    font-size: 15px !important;
    line-height: 1.5 !important;
}

#CybotCookiebotDialogFooter {
    align-self: stretch !important;
    border: 0 !important;
    display: flex !important;
    grid-area: actions !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
    padding: 0 !important;
    width: 100% !important;
}

#CybotCookiebotDialogFooter .CybotCookiebotScrollArea {
    align-items: stretch !important;
    display: flex !important;
    padding: 0 !important;
    width: 100% !important;
}

#CybotCookiebotDialogBodyButtons,
#CybotCookiebotDialogBodyButtonsWrapper {
    display: flex !important;
    flex-direction: column !important;
    gap: 9px !important;
    width: 100% !important;
}

#CybotCookiebotDialog .CybotCookiebotDialogBodyButton,
#CybotCookiebotDialogFooter .CybotCookiebotDialogBodyButton {
    background: var(--carmel-cookie-bg) !important;
    border: 1px solid var(--carmel-cookie-primary) !important;
    border-radius: 4px !important;
    color: var(--carmel-cookie-primary) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    margin: 0 !important;
    min-height: 44px !important;
    padding: 11px 16px !important;
    text-align: center !important;
    width: 100% !important;
}

#CybotCookiebotDialog .CybotCookiebotDialogBodyButton:hover {
    background: #e8f0f8 !important;
}

#CybotCookiebotDialog #CybotCookiebotDialogBodyLevelButtonLevelOptinAllowAll {
    background: var(--carmel-cookie-primary) !important;
    color: #ffffff !important;
    order: -2 !important;
}

#CybotCookiebotDialog #CybotCookiebotDialogBodyLevelButtonCustomize {
    order: -1 !important;
}

#CybotCookiebotDialog #CybotCookiebotDialogBodyLevelButtonLevelOptinAllowAll:hover {
    background: var(--carmel-cookie-primary-hover) !important;
}

/* Consent categories shown by Manage. */
#CybotCookiebotDialog .CybotCookiebotDialogBodyBottomWrapper {
    display: none !important;
}

#CybotCookiebotDialog #CybotCookiebotDialogBodyFieldsetInnerContainer {
    display: grid !important;
    gap: 8px !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

#CybotCookiebotDialog .CybotCookiebotDialogBodyLevelButtonWrapper {
    align-items: center !important;
    background: var(--carmel-cookie-surface) !important;
    border: 1px solid var(--carmel-cookie-border) !important;
    border-radius: 4px !important;
    display: flex !important;
    justify-content: space-between !important;
    margin: 0 !important;
    padding: 10px !important;
}

#CybotCookiebotDialog .CybotCookiebotDialogBodyLevelButtonLabel,
#CybotCookiebotDialog .CybotCookiebotDialogBodyLevelButtonDescription {
    color: var(--carmel-cookie-text) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
}

#CybotCookiebotDialog .CybotCookiebotDialogBodyLevelButtonSliderWrapper {
    align-items: center !important;
    display: inline-flex !important;
    flex: 0 0 46px !important;
    height: 26px !important;
    justify-content: center !important;
    margin-left: 16px !important;
    min-width: 46px !important;
    position: relative !important;
    width: 46px !important;
}

#CybotCookiebotDialog .CybotCookiebotDialogBodyLevelButtonSlider {
    background: #9ca1a6 !important;
    border: 0 !important;
    border-radius: 999px !important;
    display: block !important;
    bottom: 0 !important;
    height: auto !important;
    left: 0 !important;
    position: absolute !important;
    right: 0 !important;
    top: 0 !important;
    transition: background-color .18s ease !important;
    width: auto !important;
}

#CybotCookiebotDialog .CybotCookiebotDialogBodyLevelButtonSlider:before {
    background: #ffffff !important;
    border-radius: 50% !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .22) !important;
    content: "" !important;
    bottom: 3px !important;
    height: 20px !important;
    left: 3px !important;
    position: absolute !important;
    top: auto !important;
    transform: translateX(0) !important;
    transition: transform .18s ease !important;
    width: 20px !important;
}

#CybotCookiebotDialog .CybotCookiebotDialogBodyLevelButton:checked + .CybotCookiebotDialogBodyLevelButtonSlider {
    background: var(--carmel-cookie-primary) !important;
}

#CybotCookiebotDialog .CybotCookiebotDialogBodyLevelButton:checked + .CybotCookiebotDialogBodyLevelButtonSlider:before {
    transform: translateX(20px) !important;
}

/* Necessary cookies are always enabled, but their switch remains visibly on. */
#CybotCookiebotDialog .CybotCookiebotDialogBodyLevelButton:disabled:checked + .CybotCookiebotDialogBodyLevelButtonSlider {
    opacity: .5 !important;
}

/* Details view and cookie cards. */
#CybotCookiebotDialog .CookieCard,
#CybotCookiebotDialogDetailBulkConsent,
#CybotCookiebotDialogDetailBodyContentIABv2Tabs .CybotCookiebotDialogBodyLevelButtonIABWrapper {
    background: var(--carmel-cookie-surface) !important;
    border: 1px solid var(--carmel-cookie-border) !important;
    border-radius: 6px !important;
    margin: 0 0 10px !important;
    padding: 0 !important;
}

#CybotCookiebotDialog .CookieCard > div {
    padding: 12px !important;
}

#CybotCookiebotDialog .CookieCard button {
    color: var(--carmel-cookie-text) !important;
    font-weight: 700 !important;
}

#CybotCookiebotDialog .CybotCookiebotDialogDetailBulkConsentCount,
#CybotCookiebotDialog .CybotCookiebotDialogDetailBodyContentCookieInfoCount {
    display: none !important;
}

#CybotCookiebotDialog :focus-visible,
#CybotCookiebotDialog .CybotCookiebotDialogBodyLevelButtonSliderWrapper input:focus-visible + span {
    outline: 3px solid var(--carmel-cookie-focus) !important;
    outline-offset: 2px !important;
}

#CybotCookiebotDialogDetailBodyContentCookieContainerTypes {
    padding: 0 !important;
}

#CybotCookiebotDialogDetailBodyContentCookieContainerTypes > :last-child {
    display: none !important;
}

#CybotCookiebotDialog .CybotCookiebotScrollContainer {
    border: none !important;
}

/* Keep category cards, with expandable provider and cookie sections. */
#CybotCookiebotDialog .CybotCookiebotDialogDetailBodyContentCookieTabContent {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

#CybotCookiebotDialog .CybotCookiebotDialogDetailBodyContentCookieGroup {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

#CybotCookiebotDialog .CybotCookiebotDialogDetailBodyContentCookieProvider {
    align-items: center !important;
    background-image: none !important;
    color: var(--carmel-cookie-text) !important;
    display: flex !important;
    font-weight: 700 !important;
    margin: 0 !important;
    padding: 14px 0 8px !important;
    text-decoration: none !important;
}

/* Replace Cookiebot's right-side provider indicator with a left-side chevron. */
#CybotCookiebotDialog .CybotCookiebotDialogDetailBodyContentCookieProvider::after {
    content: none !important;
    display: none !important;
}

#CybotCookiebotDialog .CybotCookiebotDialogDetailBodyContentCookieProvider::before {
    border: solid currentColor !important;
    border-width: 0 2px 2px 0 !important;
    content: "" !important;
    display: inline-block !important;
    flex: 0 0 auto !important;
    height: 7px !important;
    margin: 0 12px 0 4px !important;
    transform: rotate(-45deg) !important;
    width: 7px !important;
}

#CybotCookiebotDialog .CybotCookiebotDialogDetailBodyContentCookieProvider:not(.CybotCookiebotDialogCollapsed)::before {
    margin-top: -4px !important;
    transform: rotate(45deg) !important;
}

#CybotCookiebotDialog .CybotCookiebotDialogDetailBodyContentCookieProvider .CybotCookiebotDialogDetailBodyContentCookieInfoCount {
    margin-left: 8px !important;
}

#CybotCookiebotDialog .CybotCookiebotDialogDetailBodyContentCookieLink {
    color: var(--carmel-cookie-focus) !important;
    display: inline-block !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    margin: 0 !important;
    padding: 0 !important;
}

#CybotCookiebotDialog .CarmelCookiebotProviderLink {
    display: block !important;
    padding: 0 !important;
    width: fit-content !important;
}

#CybotCookiebotDialog .CybotCookiebotDialogDetailBodyContentCookieGroup .CybotCookiebotDialogDetailBodyContentCookieLink:last-of-type {
    margin-bottom: 12px !important;
}

#CybotCookiebotDialog .CybotCookiebotDialogDetailBodyContentCookieProviderDescription {
    color: var(--carmel-cookie-muted) !important;
    font-size: 13px !important;
    line-height: 1.45 !important;
    margin: 0 !important;
    padding-bottom: 8px !important;
}

#CybotCookiebotDialog .CybotExternalLinkArrow {
    display: none !important;
}

#CybotCookiebotDialog .CybotCookiebotDialogDetailBodyContentCookieInfoWrapper {
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    margin: 0 0 14px !important;
    overflow: visible !important;
}

#CybotCookiebotDialog .CybotCookiebotDialogDetailBodyContentCookieInfoWrapper,
#CybotCookiebotDialog .CybotCookiebotDialogDetailBodyContentCookieInfo {
    cursor: default !important;
}

#CybotCookiebotDialog .CybotCookiebotDialogDetailBodyContentCookieInfoWrapper::before {
    border-top: 0 !important;
    content: none !important;
    display: none !important;
}

#CybotCookiebotDialog .CybotCookiebotDialogDetailBodyContentCookieProvider.CybotCookiebotDialogCollapsed + .CybotCookiebotDialogDetailBodyContentCookieInfoWrapper {
    border: 0 !important;
    margin: 0 !important;
}

#CybotCookiebotDialog .CybotCookiebotDialogDetailBodyContentCookieInfo {
    background: #ffffff !important;
    border: 1px solid var(--carmel-cookie-border) !important;
    border-radius: 4px !important;
    color: var(--carmel-cookie-text) !important;
    font-size: 13px !important;
    line-height: 1.4 !important;
    margin: 0 0 8px !important;
    padding: 12px !important;
}

#CybotCookiebotDialog .CybotCookiebotDialogDetailBodyContentCookieInfoTitle {
    display: block !important;
    font-size: 14px !important;
    margin-bottom: 6px !important;
}

#CybotCookiebotDialog .CybotCookiebotDialogDetailBodyContentCookieInfoDescription {
    display: block !important;
    margin-bottom: 8px !important;
}

#CybotCookiebotDialog .CybotCookiebotDialogDetailBodyContentCookieInfoFooter {
    color: var(--carmel-cookie-muted) !important;
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 4px 14px !important;
}

#CarmelCookiebotPrivacyPolicyNote {
    color: var(--carmel-cookie-muted) !important;
    font-size: 13px !important;
    line-height: 1.45 !important;
    margin-bottom: 4px !important;
}

#CarmelCookiebotPrivacyPolicyNote a {
    color: var(--carmel-cookie-primary) !important;
    font-weight: 600 !important;
}

@media screen and (max-width: 767px) {
    #CarmelCookiebotPrivacyPolicyNote .CarmelCookiebotDeclarationUpdate,
    #CarmelCookiebotPrivacyPolicyNote .CarmelCookiebotPrivacySentence {
        display: block !important;
    }

    #CarmelCookiebotPrivacyPolicyNote .CarmelCookiebotPrivacySentence {
        margin-top: 4px !important;
    }
}

#CarmelCookiebotModalControls {
    align-items: center !important;
    display: none !important;
    justify-content: space-between !important;
    left: auto !important;
    position: absolute !important;
    right: 5px !important;
    top: 5px !important;
    width: 25px !important;
    z-index: 3 !important;
}

#CarmelCookiebotCategoryBack {
    align-items: center !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 4px !important;
    color: var(--carmel-cookie-text) !important;
    cursor: pointer !important;
    display: none !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    justify-content: center !important;
    margin: 0 !important;
    padding-bottom: 8px !important;
}

#CarmelCookiebotCategoryBack::before {
    content: "\2039" !important;
    display: inline-flex !important;
    font-size: 25px !important;
    font-weight: 400 !important;
    line-height: 1 !important;
    margin-right: 6px !important;
    position: relative !important;
    top: -2.5px !important;
}

#CybotCookiebotDialog.CarmelCookiebotManageOpen #CarmelCookiebotModalControls {
    display: flex !important;
}

#CybotCookiebotDialog.CarmelCookiebotCategoryOpen #CarmelCookiebotCategoryBack {
    display: inline-flex !important;
}

#CarmelCookiebotCategoryHeader {
    align-self: stretch !important;
    display: none !important;
    flex: 0 0 auto !important;
    margin: 0 0 8px !important;
    width: 100% !important;
}

#CybotCookiebotDialog.CarmelCookiebotCategoryOpen #CarmelCookiebotCategoryHeader {
    display: block !important;
}

#CarmelCookiebotCategoryHeader .CybotCookiebotDialogDetailBodyContentCookieContainerHeader {
    align-items: center !important;
    display: flex !important;
    gap: 12px !important;
    padding-right: 56px !important;
    position: relative !important;
    width: 100% !important;
}

#CarmelCookiebotCategoryHeader .CybotCookiebotDialogDetailBodyContentCookieContainerHeader > .CybotCookiebotDialogBodyLevelButtonSliderWrapper {
    position: absolute !important;
    right: 0 !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
}

#CarmelCookiebotCategoryHeader .CybotCookiebotDialogDetailBodyContentCookieContainerButton {
    justify-content: flex-start !important;
    text-align: left !important;
}

#CybotCookiebotDialog.CarmelCookiebotManageOpen:not(.CarmelCookiebotCategoryOpen) #CybotCookiebotDialogDetailBodyContentCookieContainerTypes > .CookieCard {
    cursor: pointer !important;
}

#CybotCookiebotDialog.CarmelCookiebotManageOpen:not(.CarmelCookiebotCategoryOpen) #CybotCookiebotDialogDetailBodyContentCookieContainerTypes > .CookieCard:hover {
    background: #e8f0f8 !important;
    border-color: #c7d6e5 !important;
}

#CybotCookiebotDialog.CarmelCookiebotCategoryOpen #CybotCookiebotDialogDetailBodyContentCookieContainerTypes > .CookieCard {
    display: none !important;
}

#CybotCookiebotDialog.CarmelCookiebotCategoryOpen #CybotCookiebotDialogDetailBodyContentCookieContainerTypes > .CookieCard.CarmelCookiebotCategoryActive {
    background: transparent !important;
    border: 0 !important;
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
}

#CybotCookiebotDialog.CarmelCookiebotCategoryOpen #CybotCookiebotDialogDetailBodyContentCookieContainerTypes > .CookieCard.CarmelCookiebotCategoryActive > div {
    padding: 0 !important;
}

#CybotCookiebotDialog.CarmelCookiebotCategoryOpen .CarmelCookiebotCategoryActive .CybotCookiebotDialogDetailBodyContentCookieContainerButton,
#CarmelCookiebotCategoryHeader .CybotCookiebotDialogDetailBodyContentCookieContainerButton {
    background-image: none !important;
    cursor: default !important;
    flex: 1 1 auto !important;
    font-size: 22px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    padding-bottom: 8px !important;
}

#CybotCookiebotDialog.CarmelCookiebotCategoryOpen .CarmelCookiebotCategoryActive .CybotCookiebotDialogDetailBodyContentCookieContainerButton::before,
#CybotCookiebotDialog.CarmelCookiebotCategoryOpen .CarmelCookiebotCategoryActive .CybotCookiebotDialogDetailBodyContentCookieContainerButton::after,
#CarmelCookiebotCategoryHeader .CybotCookiebotDialogDetailBodyContentCookieContainerButton::before,
#CarmelCookiebotCategoryHeader .CybotCookiebotDialogDetailBodyContentCookieContainerButton::after {
    content: none !important;
    display: none !important;
}

#CybotCookiebotDialog.CarmelCookiebotCategoryOpen .CarmelCookiebotCategoryActive .CollapseCard {
    display: block !important;
}

#CybotCookiebotDialog.CarmelCookiebotCategoryOpen .CarmelCookiebotCategoryActive .CybotCookiebotDialogDetailBodyContentCookieTypeIntro,
#CybotCookiebotDialog.CarmelCookiebotCategoryOpen #CarmelCookiebotPrivacyPolicyNote {
    display: none !important;
}

#CybotCookiebotDialog.CarmelCookiebotCategoryOpen .CarmelCookiebotCategoryActive .CybotCookiebotDialogDetailBodyContentCookieGroup {
    background: var(--carmel-cookie-surface) !important;
    border: 1px solid var(--carmel-cookie-border) !important;
    border-radius: 6px !important;
    margin: 0 0 10px !important;
    padding: 0 12px !important;
    cursor: pointer !important;
}

#CybotCookiebotDialog.CarmelCookiebotCategoryOpen .CarmelCookiebotCategoryActive .CybotCookiebotDialogDetailBodyContentCookieGroup:hover {
    background: #e8f0f8 !important;
    border-color: #c7d6e5 !important;
}

#CybotCookiebotDialog.CarmelCookiebotCategoryOpen .CarmelCookiebotCategoryActive .CybotCookiebotDialogDetailBodyContentCookieGroup:last-child {
    margin-bottom: 1px !important;
}

#CybotCookiebotDialog.CarmelCookiebotCategoryOpen .CarmelCookiebotCategoryActive .CybotCookiebotDialogDetailBodyContentCookieProvider {
    padding: 14px 0 16px !important;
}

/* Neutralize Cookiebot's nested-card indentation. */
#CybotCookiebotDialogDetailBodyContentCookieContainerTypes .CybotCookiebotDialogDetailBodyContentCookieTypeTableContainer {
    margin-left: 0 !important;
    margin-top: 0 !important;
    padding-top: 0 !important;
}

#CybotCookiebotDialogDetailBodyContentIABv2Tabs .CollapseCard {
    margin-left: 0 !important;
    padding-top: 0 !important;
}

/*
 * Manage state: Cookiebot still controls which Details content is active. This
 * class only changes presentation from the banner to a dedicated modal.
 */
#CybotCookiebotDialog.CarmelCookiebotManageOpen,
#CybotCookiebotDialog.CybotEdge.CarmelCookiebotManageOpen {
    border-radius: 12px !important;
    bottom: auto !important;
    box-shadow: 0 -10px 30px rgba(0, 0, 0, .2), 0 10px 30px rgba(0, 0, 0, .2) !important;
    left: 50% !important;
    max-height: min(760px, calc(100vh - 32px)) !important;
    max-width: 900px !important;
    top: 50% !important;
    transform: translate(-50%, -50%) !important;
    width: calc(100vw - 32px) !important;
}

/* Cookiebot's desktop banner template otherwise imposes a minimum width. */
#CybotCookiebotDialog.CybotEdge.CarmelCookiebotManageOpen {
    min-width: 0 !important;
}

#CybotCookiebotDialog.CarmelCookiebotManageOpen + #CybotCookiebotDialogBodyUnderlay {
    opacity: .5 !important;
    pointer-events: auto !important;
}

#CybotCookiebotDialog.CarmelCookiebotManageOpen .CybotCookiebotDialogContentWrapper {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
    max-height: inherit !important;
    padding: 24px !important;
}

#CybotCookiebotDialog.CybotEdge.CarmelCookiebotManageOpen .CybotCookiebotDialogContentWrapper {
    margin: 0 !important;
    max-width: none !important;
    width: 100% !important;
}

#CybotCookiebotDialog.CarmelCookiebotManageOpen #CybotCookiebotDialogBody,
#CybotCookiebotDialog.CarmelCookiebotManageOpen #CybotCookiebotDialogNav {
    display: none !important;
}

#CybotCookiebotDialog.CarmelCookiebotManageOpen #CybotCookiebotDialogTabContent {
    display: block !important;
    flex: 1 1 auto !important;
    margin: 0 !important;
    overflow: hidden !important;
    padding-bottom: 0 !important;
    width: 100% !important;
}

#CybotCookiebotDialog.CarmelCookiebotManageOpen #CybotCookiebotDialogTabContent > .CybotCookiebotScrollContainer {
    overflow: hidden !important;
    padding: 0 !important;
}

#CybotCookiebotDialog.CarmelCookiebotManageOpen #CybotCookiebotDialogTabContent > .CybotCookiebotScrollContainer.CarmelCookiebotDetailsActive,
#CybotCookiebotDialog.CarmelCookiebotManageOpen #CybotCookiebotDialogTabContentDetails.CarmelCookiebotDetailsActive {
    display: block !important;
}

#CybotCookiebotDialog.CarmelCookiebotManageOpen #CybotCookiebotDialogFooter {
    margin-top: 12px !important;
}

/* The stock scroll fader hides the last category card in the dedicated modal. */
#CybotCookiebotDialog.CarmelCookiebotManageOpen .CybotCookiebotFader {
    display: none !important;
}

/*
 * Cookiebot's custom scrollbar overlays leave white tracks over the dialog.
 * Manage uses the native scrollable Details panel, and the compact banner has
 * no content that needs this overlay. Keep it hidden in both states so closing
 * Manage cannot reintroduce a white track in the banner.
 */
#CybotCookiebotDialog .CybotCookiebotScrollbarContainer {
    display: none !important;
}

#CarmelCookiebotDialogClose {
    align-items: center !important;
    background: transparent !important;
    border: 0 !important;
    color: var(--carmel-cookie-text) !important;
    cursor: pointer !important;
    display: none !important;
    font-size: 25px !important;
    font-weight: 400 !important;
    height: 25px !important;
    justify-content: center !important;
    line-height: 1 !important;
    padding: 0 !important;
    margin-left: auto !important;
    position: static !important;
    width: 25px !important;
    z-index: 2 !important;
}

#CybotCookiebotDialog.CarmelCookiebotManageOpen #CarmelCookiebotDialogClose {
    display: inline-flex !important;
}

#CarmelCookiebotDialogClose:hover {
    background: #f0f1f2 !important;
    border-radius: 50% !important;
}

#CybotCookiebotDialog.CarmelCookiebotManageOpen #CybotCookiebotDialogBodyButtonsWrapper {
    flex-direction: row !important;
}

#CybotCookiebotDialog.CarmelCookiebotManageOpen #CybotCookiebotDialogBodyButtonsWrapper .CybotCookiebotDialogBodyButton {
    flex: 1 1 0 !important;
}

#CybotCookiebotDialog.CarmelCookiebotManageOpen.CarmelCookiebotCategoryOpen #CybotCookiebotDialogBodyLevelButtonLevelOptinAllowAll {
    display: none !important;
}

#CybotCookiebotDialog.CarmelCookiebotManageOpen.CarmelCookiebotCategoryOpen #CybotCookiebotDialogBodyButtonDecline,
#CybotCookiebotDialog.CarmelCookiebotManageOpen.CarmelCookiebotCategoryOpen #CybotCookiebotDialogBodyLevelButtonLevelOptinAllowallSelection {
    background: var(--carmel-cookie-primary) !important;
    border-color: var(--carmel-cookie-primary) !important;
    color: #ffffff !important;
}

#CybotCookiebotDialog.CarmelCookiebotManageOpen.CarmelCookiebotCategoryOpen #CybotCookiebotDialogBodyButtonDecline:hover,
#CybotCookiebotDialog.CarmelCookiebotManageOpen.CarmelCookiebotCategoryOpen #CybotCookiebotDialogBodyLevelButtonLevelOptinAllowallSelection:hover {
    background: var(--carmel-cookie-primary-hover) !important;
    border-color: var(--carmel-cookie-primary-hover) !important;
}

#CybotCookiebotDialog.CarmelCookiebotManageOpen:not(.CarmelCookiebotCategoryOpen) #CybotCookiebotDialogBodyButtonDecline,
#CybotCookiebotDialog.CarmelCookiebotManageOpen:not(.CarmelCookiebotCategoryOpen) #CybotCookiebotDialogBodyLevelButtonLevelOptinAllowallSelection {
    order: -3 !important;
}

#CybotCookiebotDialog.CarmelCookiebotManageOpen:not(.CarmelCookiebotCategoryOpen) #CybotCookiebotDialogBodyLevelButtonLevelOptinAllowAll {
    display: block !important;
    order: -2 !important;
}

@media screen and (min-width: 768px) {
    #CybotCookiebotDialog.CarmelCookiebotManageOpen #CybotCookiebotDialogTabContent .CybotCookiebotDialogTabPanel {
        max-height: min(600px, calc(100vh - 190px)) !important;
    }

    #CybotCookiebotDialog.CarmelCookiebotManageOpen #CybotCookiebotDialogBodyButtonDecline,
    #CybotCookiebotDialog.CarmelCookiebotManageOpen #CybotCookiebotDialogBodyLevelButtonLevelOptinAllowallSelection,
    #CybotCookiebotDialog.CarmelCookiebotManageOpen #CybotCookiebotDialogBodyLevelButtonLevelOptinAllowAll {
        flex: 0 0 220px !important;
        margin-left: 0 !important;
        width: 220px !important;
    }

    #CybotCookiebotDialog.CarmelCookiebotManageOpen.CarmelCookiebotCategoryOpen #CybotCookiebotDialogBodyButtonDecline,
    #CybotCookiebotDialog.CarmelCookiebotManageOpen.CarmelCookiebotCategoryOpen #CybotCookiebotDialogBodyLevelButtonLevelOptinAllowallSelection {
        margin-left: auto !important;
    }
}

/* The only responsive breakpoint: a compact, stacked bottom sheet. */
@media screen and (max-width: 767px) {
    #CybotCookiebotDialog.CarmelCookiebotManageOpen:not(.CarmelCookiebotCategoryOpen) #CybotCookiebotDialogDetailBodyContentCookieContainerTypes > .CookieCard {
        -webkit-tap-highlight-color: transparent !important;
    }

    #CybotCookiebotDialog.CarmelCookiebotManageOpen:not(.CarmelCookiebotCategoryOpen) #CybotCookiebotDialogDetailBodyContentCookieContainerTypes > .CookieCard:hover {
        background: var(--carmel-cookie-surface) !important;
        border-color: var(--carmel-cookie-border) !important;
    }

    #CybotCookiebotDialog.CarmelCookiebotCategoryOpen .CybotCookiebotDialogDetailBodyContentCookieProvider {
        -webkit-tap-highlight-color: transparent !important;
    }

    #CybotCookiebotDialog.CarmelCookiebotCategoryOpen .CybotCookiebotDialogDetailBodyContentCookieProvider:hover {
        background: transparent !important;
    }

    #CybotCookiebotDialog.CarmelCookiebotCategoryOpen .CarmelCookiebotCategoryActive .CybotCookiebotDialogDetailBodyContentCookieGroup {
        -webkit-tap-highlight-color: transparent !important;
    }

    #CybotCookiebotDialog.CarmelCookiebotCategoryOpen .CarmelCookiebotCategoryActive .CybotCookiebotDialogDetailBodyContentCookieGroup:hover {
        background: var(--carmel-cookie-surface) !important;
        border-color: var(--carmel-cookie-border) !important;
    }

    #CybotCookiebotDialog,
    #CybotCookiebotDialog[data-template="bottom"],
    #CybotCookiebotDialog.CybotEdge,
    #CybotCookiebotDialog.CybotEdge[data-template="bottom"] {
        border-radius: 10px 10px 0 0 !important;
        max-height: min(78dvh, 650px) !important;
    }

    #CybotCookiebotDialog .CybotCookiebotDialogContentWrapper {
        display: flex !important;
        gap: 14px !important;
        padding: 18px 16px max(16px, env(safe-area-inset-bottom)) !important;
    }

    #CybotCookiebotDialogTabContent {
        order: 1 !important;
    }

    #CybotCookiebotDialogTabContent .CybotCookiebotDialogTabPanel {
        max-height: 42dvh !important;
    }

    #CybotCookiebotDialogFooter {
        order: 2 !important;
    }

    #CybotCookiebotDialog .CybotCookiebotDialogBodyContentHeading {
        font-size: 20px !important;
    }

    #CybotCookiebotDialogBodyContentText,
    #CybotCookiebotDialogBodyContentText p {
        font-size: 14px !important;
    }

    #CybotCookiebotDialog #CybotCookiebotDialogBodyFieldsetInnerContainer {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    #CybotCookiebotDialog.CarmelCookiebotManageOpen {
        border-radius: 10px !important;
        max-height: calc(100dvh - 24px) !important;
        width: calc(100vw - 24px) !important;
    }

    #CybotCookiebotDialog.CarmelCookiebotManageOpen .CybotCookiebotDialogContentWrapper {
        padding: 26px 16px !important;
    }
    
    #CybotCookiebotDialog.CarmelCookiebotManageOpen #CybotCookiebotDialogTabContent .CybotCookiebotDialogTabPanel {
        max-height: 64dvh !important;
        scrollbar-width: none !important;
        -ms-overflow-style: none !important;
    }
    
    #CybotCookiebotDialog.CarmelCookiebotManageOpen #CybotCookiebotDialogTabContent .CybotCookiebotDialogTabPanel::-webkit-scrollbar {
        display: none !important;
    }

    #CybotCookiebotDialog.CarmelCookiebotManageOpen #CybotCookiebotDialogBodyButtonsWrapper {
        flex-direction: column !important;
    }

}

/* Prevent Cookiebot's stock dialog from painting before the custom modal state. */
html.CarmelCookiebotRenewing #CybotCookiebotDialog,
html.CarmelCookiebotRenewing #CybotCookiebotDialogBodyUnderlay {
    visibility: hidden !important;
}
