/* Cookie consent banner and preferences. Equal prominence is structural: Accept, Reject and Customise are the same element
   with the same class, so they cannot drift apart in size, colour, font or weight. */
:root{--consent-bg:#fff;--consent-ink:#10223d;--consent-line:#c9d1e3;--consent-accent:#4f46e5;--consent-shadow:0 -10px 40px -12px rgba(13,18,38,.35)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--consent-bg:#141a33;--consent-ink:#eef0fb;--consent-line:#3a4472;--consent-accent:#8b9bff}}
:root[data-theme="dark"]{--consent-bg:#141a33;--consent-ink:#eef0fb;--consent-line:#3a4472;--consent-accent:#8b9bff}
html.consent-open body{padding-bottom:var(--consent-h,0)}
.consent-banner[hidden],.consent-dialog:not([open]){display:none!important}
.consent-banner{position:fixed;inset:auto 0 0 0;z-index:2147483000;background:var(--consent-bg);color:var(--consent-ink);border-top:3px solid var(--consent-accent);box-shadow:var(--consent-shadow);font:400 .95rem/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;padding-bottom:env(safe-area-inset-bottom,0)}
.consent-inner{max-width:1180px;margin:0 auto;padding:16px clamp(16px,3vw,32px);display:flex;gap:20px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.consent-copy{flex:1 1 420px;min-width:0}
.consent-copy h2{margin:0 0 4px;font-size:1.05rem;font-weight:700;color:inherit}
.consent-copy p{margin:0}.consent-copy a{color:var(--consent-accent);font-weight:600}
.consent-actions{display:grid;grid-template-columns:repeat(3,10rem);gap:10px}
/* one shared style for every choice button */
.consent-btn{appearance:none;box-sizing:border-box;width:100%;height:46px;padding:0 12px;border:2px solid var(--consent-accent);border-radius:10px;background:var(--consent-bg);color:var(--consent-ink);font:700 .95rem/1 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;cursor:pointer;text-align:center}
.consent-btn:hover{background:var(--consent-accent);color:var(--consent-bg)}
.consent-btn:focus-visible,.consent-switch input:focus-visible+.consent-track,.linklike:focus-visible{outline:3px solid var(--consent-accent);outline-offset:2px}
.consent-dialog{width:min(560px,calc(100vw - 24px));max-height:calc(100vh - 24px);overflow:auto;padding:0;border:1px solid var(--consent-line);border-radius:16px;background:var(--consent-bg);color:var(--consent-ink);font:400 .95rem/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.consent-dialog::backdrop{background:rgba(8,11,24,.55)}
.consent-dialog form{margin:0;padding:22px 24px 20px}
.consent-dialog h2{margin:0 0 6px;font-size:1.2rem;color:inherit}.consent-dialog p{margin:0 0 14px}
.consent-cat{display:flex;gap:14px;justify-content:space-between;align-items:flex-start;padding:14px 0;border-top:1px solid var(--consent-line)}
.consent-cat strong{display:block;font-size:1rem}.consent-cat small{display:block;color:inherit;opacity:.8;margin-top:2px}.consent-cat em{display:block;font-style:normal;font-size:.85rem;margin-top:4px;opacity:.9}
.consent-switch{position:relative;flex:none;display:inline-block;width:52px;height:30px;margin-top:2px}
.consent-switch input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;z-index:1}
.consent-switch input:disabled{cursor:not-allowed}
.consent-track{position:absolute;inset:0;border-radius:999px;background:#8791ad;transition:background .15s}
.consent-track::after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;transition:transform .15s}
.consent-switch input:checked+.consent-track{background:var(--consent-accent)}
.consent-switch input:checked+.consent-track::after{transform:translateX(22px)}
.consent-switch input:disabled+.consent-track{opacity:.6}
.consent-dialog .consent-actions{margin-top:16px;border-top:1px solid var(--consent-line);padding-top:16px}
.linklike{appearance:none;background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;text-decoration:underline;cursor:pointer;text-align:left}
.footer-grid .linklike{color:inherit;opacity:.85;text-decoration:none;display:block}.footer-grid .linklike:hover{opacity:1;text-decoration:underline}
button.side-link{width:100%;background:none;border:0;font:inherit;cursor:pointer;text-align:left}
@media (max-width:640px){.consent-actions{width:100%;grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.consent-track,.consent-track::after{transition:none}}
