/* Privacy controls are independent of the page layout and homepage Zoom box. */
.consent-banner[hidden], .consent-settings [hidden] { display: none !important; }
.consent-banner {
    position: fixed; z-index: 1100; bottom: 0; left: 0; right: 0;
    background: #f2f8fb; color: #263b48; border-top: 2px solid #2479aa;
    box-shadow: 0 -4px 20px rgba(20, 45, 60, .12);
    max-height: 60vh; overflow-y: auto;
    font: 14px/1.45 Arial, sans-serif;
}
.consent-banner-inner {
    display: flex; align-items: center; gap: 24px;
    max-width: 1320px; margin: auto; padding: 12px 20px;
}
.consent-banner-inner > div:first-child { flex: 1; min-width: 0; }
.consent-banner h2, .consent-settings h2 {
    color: #263b48; font: 700 24px/1.3 'Lora', Georgia, serif; margin: 0 0 10px;
}
.consent-banner p, .consent-settings p { font-size: 16px; line-height: 1.55; margin: 0 0 16px; }
.consent-banner h2 { font: 700 17px/1.3 Arial, sans-serif; margin: 0 0 4px; }
.consent-banner p { font-size: 14px; line-height: 1.45; margin: 0; }
.consent-banner .consent-actions { flex-wrap: nowrap; gap: 8px; }
.consent-banner .consent-actions > button { font-size: 14px; white-space: nowrap; padding: 8px 12px; }
.consent-banner a, .consent-settings a { color: #185a80; text-decoration: underline; }
.consent-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.consent-button, .consent-text-button {
    font: 600 15px/1.4 Arial, sans-serif; cursor: pointer;
    min-height: 44px; border-radius: 4px; padding: 10px 16px;
}
.consent-button { background: #185a80; border: 2px solid #185a80; color: #fff; }
.consent-button:hover { background: #124562; border-color: #124562; }
.consent-text-button { color: #185a80; background: transparent; border: 2px solid transparent; text-decoration: underline; }
.consent-banner :focus-visible, .consent-settings :focus-visible { outline: 3px solid #9b5700; outline-offset: 3px; }
.consent-settings {
    color: #263b48; background: #fff; border: 1px solid #b9d1df; border-radius: 8px;
    padding: 28px; width: 580px; max-width: calc(100% - 32px); max-height: 85vh;
    overflow-y: auto; font: 16px/1.55 Arial, sans-serif;
}
.consent-settings::backdrop { background: rgba(12, 30, 42, .6); }
.consent-option { display: flex; align-items: center; gap: 10px; margin: 20px 0 10px; }
.consent-option input { width: 22px; height: 22px; margin: 0; flex: 0 0 auto; }
.consent-storage-note { color: #754200; }
.consent-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
body.consent-banner-visible { padding-bottom: var(--consent-banner-height, 140px); }
@media (max-width: 950px) {
    .consent-banner-inner { flex-direction: column; align-items: stretch; gap: 10px; }
    .consent-banner .consent-actions { justify-content: flex-start; }
}
@media (max-width: 600px) {
    .consent-banner-inner { padding: 12px 14px; }
    .consent-banner .consent-actions { flex-wrap: wrap; }
    .consent-banner .consent-actions > button { flex: 1 1 auto; padding: 8px; }
    .consent-settings .consent-actions { align-items: stretch; }
    .consent-settings .consent-actions > button { flex: 1 1 100%; }
    .consent-settings { padding: 22px; }
}
@media print { .consent-banner, .consent-settings { display: none !important; } body.consent-banner-visible { padding-bottom: 0; } }
