/* Consent choices have equal size and legibility, with distinct solid colours. */
.cookie-controls { color: #172033; font: 400 var(--text-base, 16px)/1.55 Outfit, system-ui, sans-serif; }
.cookie-controls [hidden] { display: none !important; }
.cookie-controls h2 { font-size: 23px; line-height: 1.25; margin: 0 0 12px; color: #172033; }
.cookie-controls h3 { font-size: 18px; margin: 0 0 4px; color: #172033; }
.cookie-controls p { margin: 0 0 14px; color: #344054; }
.cookie-controls a { color: #1b4fb5; text-decoration: underline; }
.cookie-controls button { font: inherit; cursor: pointer; margin: 0; width: auto; }
.cookie-controls :focus-visible, .privacy-links :focus-visible, .privacy-content :focus-visible {
    outline: 3px solid #3777df; outline-offset: 4px;
}
.cookie-banner {
    position: fixed; z-index: 2147483000; inset: auto 0 0;
    max-height: 65dvh; overflow-y: auto;
    background: #fff; border-top: 1px solid #cbd5e1;
    box-shadow: 0 -8px 32px #0003;
    font-size: 14px; line-height: 1.5;
}
.cookie-banner .cookie-banner-inner {
    display: flex; align-items: center; gap: 24px;
    max-width: 1220px; margin: 0 auto; padding: 16px 24px;
}
.cookie-banner .cookie-banner-copy { flex: 1 1 auto; min-width: 0; }
.cookie-banner h2 { font-size: 18px; margin-bottom: 6px; }
.cookie-banner p { margin: 0; }
.cookie-banner a { white-space: nowrap; }
.cookie-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 20px; }
.cookie-banner .cookie-actions { flex: 0 0 330px; justify-content: center; gap: 10px; margin-top: 0; }
.cookie-actions button {
    flex: 1 1 100px; min-height: 46px; padding: 10px 18px; border: 2px solid #183c73;
    border-radius: 8px; background: #183c73; color: #fff; font-weight: 600;
}
.cookie-actions button:hover { background: #102b55; border-color: #102b55; }
.cookie-banner .cookie-actions button { flex: 1 1 0; min-width: 0; min-height: 44px; padding: 8px 14px; }
.cookie-actions [data-cookie-action="decline"] { background: #454545; border-color: #454545; }
.cookie-actions [data-cookie-action="decline"]:hover { background: #303030; border-color: #303030; }
.cookie-inline { background: #fff; border: 1px solid #cbd5e1; border-radius: 16px; padding: 24px; margin: 24px 0 32px; scroll-margin-top: 100px; }
.cookie-inline .cookie-choice-status { margin: 16px 0 0; font-weight: 600; }
.cookie-dialog {
    color: #172033; background: #fff; padding: 28px; border: 1px solid #cbd5e1;
    border-radius: 16px; width: min(580px, calc(100% - 32px)); max-height: 85dvh;
    overflow-y: auto; box-shadow: 0 8px 40px #0004;
}
.cookie-dialog::backdrop { background: #0b1220aa; }
.cookie-dialog-heading { display: flex; align-items: start; justify-content: space-between; gap: 16px; }
.cookie-close { background: #fff; color: #183c73; border: 1px solid #71809a; border-radius: 6px; padding: 6px 12px; min-height: 40px; }
body.cookie-banner-visible { padding-bottom: var(--cookie-banner-space, 350px); }
.privacy-links { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 8px 14px; margin: 16px 0 0; }
.privacy-links a, .privacy-links button { flex: 0 0 auto; width: auto; max-width: 100%; padding: 8px 0; font: inherit; color: var(--text); text-decoration: underline; border-radius: 2px; }
.privacy-links button, .privacy-links button:hover, .privacy-links button:active { background: none; border: 0; cursor: pointer; }
app-footer[compact] .footer { background: #0b1220; color: #e6ecff; padding: 20px 0; }
.privacy-content { max-width: 860px; padding-top: 120px; padding-bottom: 40px; line-height: 1.75; }
.privacy-content h1 { font-size: clamp(32px, 5vw, 48px); line-height: 1.2; }
.privacy-content h2 { font-size: 24px; margin: 36px 0 12px; }
.privacy-content .cookie-inline h2 { margin: 0 0 12px; }
.privacy-content p { margin: 0 0 18px; }
.privacy-content a { text-decoration: underline; }
.privacy-table-wrap { overflow-x: auto; }
.privacy-storage { margin: 24px 0; }
.privacy-storage summary { cursor: pointer; font-weight: 600; text-decoration: underline; }
.privacy-providers { display: flex; flex-wrap: wrap; gap: 12px 24px; }
.privacy-content table { width: 100%; border-collapse: collapse; margin: 20px 0; font-size: 15px; }
.privacy-content th, .privacy-content td { text-align: left; vertical-align: top; padding: 12px; border: 1px solid #526078; }
.privacy-content th { background: #18243c; }
.privacy-content th, .privacy-content td { overflow-wrap: anywhere; }
.contact-privacy { font-size: 15px; color: var(--muted); line-height: 1.6; }
.contact-privacy a { text-decoration: underline; }
.contact-direct { max-width: 600px; margin: 28px auto 0; padding-top: 24px; border-top: var(--border-muted); }
.contact-direct p { margin: 0 0 12px; }
.contact-direct button { width: auto; }
.contact-direct [hidden] { display: none !important; }
.contact-direct #direct-email { margin: 16px 0 0; overflow-wrap: anywhere; }
.contact-direct a { text-decoration: underline; }
.contact-direct :focus-visible { outline: 3px solid #60a5fa; outline-offset: 4px; }
@media (min-width: 601px) {
    .cookie-actions button { max-width: 220px; }
}
@media (max-width: 900px) {
    .cookie-banner .cookie-banner-inner { flex-direction: column; align-items: stretch; gap: 12px; }
    .cookie-banner .cookie-actions { flex: 0 0 auto; width: min(100%, 330px); align-self: center; }
}
@media (max-width: 600px) {
    .cookie-banner .cookie-banner-inner { padding: 16px; padding-bottom: max(16px, env(safe-area-inset-bottom)); }
    .cookie-actions { gap: 10px; }
    .cookie-dialog { padding: 20px; }
    .cookie-inline { padding: 20px; }
    .privacy-content { padding-top: 100px; }
}
@media (max-width: 359px) {
    .cookie-banner .cookie-actions { flex-direction: column; }
    .cookie-banner .cookie-actions button { flex: 0 0 auto; width: 100%; }
}
