.lbr-consent-banner,
.lbr-consent-dialog {
    box-sizing: border-box;
    color: #18352e;
    background: #fcfbf7;
    border: 1px solid #c7d1c7;
    border-radius: 16px;
    font: 400 16px/1.5 "Source Sans 3", system-ui, sans-serif;
    text-align: left;
    box-shadow: 0 12px 48px #18352e24;
}
.lbr-consent-banner *, .lbr-consent-dialog * { box-sizing: border-box; }
.lbr-consent-banner {
    position: fixed;
    z-index: 240;
    left: max(20px, env(safe-area-inset-left));
    bottom: max(20px, env(safe-area-inset-bottom));
    width: min(580px, calc(100% - 40px));
    padding: 20px 24px 14px;
}
.lbr-consent-banner h2, .lbr-consent-dialog h2 { margin: 0; color: #18352e; font: 600 23px/1.2 "Source Sans 3", system-ui, sans-serif; letter-spacing: -.015em; }
.lbr-consent-banner > p { margin: 8px 0 16px; font-size: 16px; line-height: 1.45; }
.lbr-consent-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.lbr-consent-actions button,
.lbr-consent-policy-button {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    min-height: 46px;
    padding: 10px 12px;
    border: 1px solid #205247;
    border-radius: 7px;
    color: #fff;
    background: #205247;
    font: 600 16px/1.25 "Source Sans 3", system-ui, sans-serif;
    text-align: center;
    cursor: pointer;
}
.lbr-consent-actions button:hover, .lbr-consent-policy-button:hover { color: #fff; background: #183c32; border-color: #183c32; }
.lbr-consent-links { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 4px; }
.lbr-consent-links button, .lbr-consent-links a, .lbr-consent-dialog-policy { min-height: 40px; display: inline-flex; align-items: center; padding: 0; border: 0; border-radius: 0; color: #205247; background: none; font: 600 15px/1.3 "Source Sans 3", system-ui, sans-serif; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.lbr-consent-reopen { display: inline-flex; align-items: center; min-height: 44px; padding: 0; border: 0; color: inherit; background: none; font: inherit; text-align: left; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.lbr-privacy-links { display: flex; flex-wrap: wrap; align-items: center; gap: 0 24px; padding-bottom: 16px; color: #d4e1d4; font-size: 16px; }
.lbr-privacy-links > a { display: inline-flex; align-items: center; min-height: 44px; color: inherit; text-decoration: underline; text-underline-offset: 4px; }
.lbr-consent-banner [hidden], .lbr-consent-dialog [hidden], .lbr-consent-reopen[hidden], .lbr-consent-policy-button[hidden], .lbr-consent-banner[hidden] { display: none !important; }
.lbr-consent-dialog { width: min(520px, calc(100% - 32px)); max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); padding: 24px; margin: auto; overflow: auto; overscroll-behavior: contain; }
.lbr-consent-dialog[data-lbr-fallback] { display: block; position: fixed; z-index: 260; inset: 50% auto auto 50%; margin: 0; transform: translate(-50%, -50%); }
.lbr-consent-dialog:not([open]) { display: none; }
.lbr-consent-dialog::backdrop { background: #10282085; }
.lbr-consent-dialog-heading { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.lbr-consent-close { display: inline-flex; flex: 0 0 44px; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 10px; border: 0; border-radius: 50%; color: #18352e; background: #edf2e9; cursor: pointer; }
.lbr-consent-close svg { display: block; }
.lbr-consent-dialog > p { margin: 12px 0 20px; font-size: 16px; }
.lbr-consent-option { padding: 16px 0; border-top: 1px solid #d7ded3; }
.lbr-consent-option > div, .lbr-consent-option label { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 44px; }
.lbr-consent-option label { cursor: pointer; }
.lbr-consent-option strong { font-size: 18px; font-weight: 600; }
.lbr-consent-option span { color: #4e6258; font-size: 14px; }
.lbr-consent-option p { margin: 6px 0 0; color: #4e6258; font-size: 16px; line-height: 1.5; }
.lbr-consent-option input { appearance: auto; width: 24px; height: 24px; margin: 0; flex: 0 0 24px; accent-color: #205247; }
.lbr-consent-dialog .lbr-consent-actions { margin-top: 12px; }
.lbr-consent-dialog-policy { margin-top: 8px; }
.lbr-consent-error { color: #922f27; font-weight: 600; }
.lbr-consent-banner button:focus-visible, .lbr-consent-banner a:focus-visible, .lbr-consent-dialog button:focus-visible, .lbr-consent-dialog a:focus-visible, .lbr-consent-dialog input:focus-visible, .lbr-consent-reopen:focus-visible, .lbr-consent-policy-button:focus-visible { outline: 2px solid #205247; outline-offset: 3px; box-shadow: 0 0 0 5px #fcfbf7; }
body.has-lbr-consent-banner { padding-bottom: var(--lbr-consent-space, 0px); }
body.has-lbr-consent-banner [data-mobile-actionbar] { display: none !important; }
body.menu-is-open .lbr-consent-banner { display: none; }
body.lbr-consent-dialog-open { overflow: hidden; }
@media (max-width: 600px) {
    .lbr-consent-banner { left: max(12px, env(safe-area-inset-left)); bottom: max(12px, env(safe-area-inset-bottom)); width: calc(100% - 24px); padding: 16px 16px 8px; border-radius: 12px; }
    .lbr-consent-banner h2 { font-size: 20px; }
    .lbr-consent-banner > p { margin: 6px 0 12px; font-size: 15px; line-height: 1.4; }
    .lbr-consent-actions { gap: 8px; }
    .lbr-consent-actions button { min-height: 46px; padding-inline: 8px; font-size: 15px; }
    .lbr-consent-links button, .lbr-consent-links a { font-size: 14px; }
    .lbr-consent-dialog { width: calc(100% - 24px); max-height: calc(100vh - 24px); max-height: calc(100dvh - 24px); padding: 16px; border-radius: 12px; }
    .lbr-consent-dialog h2 { font-size: 24px; }
}
@media (prefers-reduced-motion: reduce) {
    .lbr-consent-banner, .lbr-consent-dialog, .lbr-consent-banner *, .lbr-consent-dialog * { scroll-behavior: auto; transition: none; animation: none; }
}
@media print { .lbr-consent-banner, .lbr-consent-dialog, .lbr-consent-reopen, .lbr-consent-policy-button { display: none !important; } body.has-lbr-consent-banner { padding-bottom: 0; } }
