.consent-banner {
    position: fixed;
    z-index: 10000;
    left: 50%;
    bottom: 18px;
    width: min(calc(100% - 32px), 1120px);
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 24px;
    padding: 20px 22px;
    border: 1px solid rgba(33, 64, 154, .18);
    border-radius: 18px;
    background: #fff;
    color: #122449;
    box-shadow: 0 22px 70px rgba(9, 28, 70, .24);
    transform: translateX(-50%);
}
.consent-banner[hidden] { display: none; }
.consent-banner__copy strong { display: block; margin-bottom: 5px; color: #102c6c; font-size: 1rem; }
.consent-banner__copy p { max-width: 720px; margin: 0; color: #52627c; font-size: .84rem; line-height: 1.55; }
.consent-banner__status:empty { display: none; }
.consent-banner__actions, .consent-dialog__actions { display: flex; align-items: center; justify-content: flex-end; gap: 9px; flex-wrap: wrap; }
.consent-button {
    min-height: 44px;
    padding: 0 16px;
    border: 1px solid #21409a;
    border-radius: 10px;
    background: #fff;
    color: #173881;
    font: inherit;
    font-size: .82rem;
    font-weight: 700;
    cursor: pointer;
}
.consent-button:hover, .consent-button:focus-visible { outline: 3px solid rgba(245, 130, 31, .22); outline-offset: 2px; }
.consent-button--primary { border-color: #f5821f; background: #f5821f; color: #fff; }
.consent-button--secondary { background: #fff; color: #173881; }
.consent-dialog {
    width: min(calc(100% - 30px), 620px);
    max-height: min(90vh, 760px);
    max-height: min(90dvh, 760px);
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    padding: 0;
    border: 0;
    border-radius: 22px;
    background: #fff;
    color: #182238;
    box-shadow: 0 28px 90px rgba(9, 28, 70, .32);
}
.consent-dialog::backdrop { background: rgba(8, 22, 54, .62); backdrop-filter: blur(3px); }
.consent-dialog__panel { padding: 26px; }
.consent-dialog__heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.consent-dialog__heading h2 { margin: 3px 0 0; color: #102c6c; font-size: clamp(1.55rem, 4vw, 2.05rem); line-height: 1.16; }
.consent-dialog__eyebrow { color: #f5821f; font-size: .7rem; font-weight: 800; letter-spacing: .15em; }
.consent-dialog__close {
    width: 42px;
    height: 42px;
    border: 1px solid #dfe7f2;
    border-radius: 50%;
    background: #fff;
    color: #102c6c;
    font-size: 1.45rem;
    cursor: pointer;
}
.consent-dialog__close:hover,
.consent-dialog__close:focus-visible,
.consent-settings-button:focus-visible {
    outline: 3px solid rgba(245, 130, 31, .24);
    outline-offset: 2px;
}
.consent-dialog__panel > p { color: #657087; font-size: .9rem; line-height: 1.55; }
.consent-option {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 20px;
    margin-top: 12px;
    padding: 16px;
    border: 1px solid #dfe7f2;
    border-radius: 14px;
    background: #f8faff;
}
.consent-option strong, .consent-option span { display: block; }
.consent-option strong { color: #102c6c; font-size: .92rem; }
.consent-option span { margin-top: 3px; color: #657087; font-size: .78rem; line-height: 1.45; }
.consent-option input {
    width: 23px;
    height: 23px;
    accent-color: #21409a;
}
.consent-dialog__gpc { padding: 11px 13px; border-radius: 10px; background: #fff4e8; color: #874710 !important; }
.consent-dialog__actions { margin-top: 22px; }
.consent-settings-button {
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
}

@media (max-width: 760px) {
    .consent-banner {
        grid-template-columns: 1fr;
        gap: 15px;
        bottom: 82px;
        max-height: calc(100vh - 98px);
        max-height: calc(100dvh - 98px);
        overflow-y: auto;
        overscroll-behavior: contain;
        padding: 18px;
    }
    .consent-banner__actions { display: grid; grid-template-columns: 1fr 1fr; }
    .consent-banner__actions .consent-button--primary { grid-column: 1 / -1; }
    .consent-button { width: 100%; }
    .consent-dialog {
        width: calc(100% - 20px);
        max-height: calc(100vh - 20px);
        max-height: calc(100dvh - 20px);
        overflow-y: auto;
        border-radius: 18px;
    }
    .consent-dialog__panel { padding: 21px 18px; }
    .consent-dialog__actions { display: grid; grid-template-columns: 1fr 1fr; }
}
