.consent-banner[hidden],.consent-feedback[hidden]{display:none}
/* Keep the policy text in the contact notice together as one clear pointer/keyboard target. */
.contact-privacy a{display:inline-block;max-width:100%}
/* Deferred consent rendering must not insert height above the homepage hero. */
.consent-banner{position:fixed;inset:auto 0 0;z-index:60;max-height:calc(100vh - 88px);max-height:calc(100dvh - 88px);overflow-y:auto;overscroll-behavior:contain;background:#edf4fc;border-block:1px solid #ccdaec;color:#10233f;padding:24px}
.consent-banner-inner{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:30px;align-items:center}
.consent-banner h2,.consent-dialog h2{font-size:24px;line-height:1.2;letter-spacing:-.025em;margin:0 0 12px;color:#07172f}
.consent-banner p{font-size:15px;line-height:1.55;margin:0 0 6px;max-width:850px}
.consent-banner-actions{display:grid;gap:10px}
.consent-choice,.consent-customise,.consent-save,.consent-close{font:600 15px/1.4 "Instrument Sans",Arial,sans-serif;cursor:pointer;min-height:46px;border-radius:7px;padding:11px 16px;transition:background-color .15s}
.consent-choice{border:1px solid #1756ca;background:#fff;color:#1756ca}
.consent-choice:hover{background:#e2edfe}
.consent-customise{border:1px solid #9cacc1;background:transparent;color:#183354}
.consent-customise:hover{background:#e2edfe}
.consent-policy-link{display:inline-block;margin-top:10px;font-size:14px;line-height:1.5;color:#1756ca;text-decoration:underline;text-underline-offset:3px}
.consent-feedback,.consent-nojs{padding:14px 24px;background:#edf4fc;border-block:1px solid #ccdaec;color:#183354;font-size:14px;line-height:1.6;margin:0}
/* Status announcements also stay out of flow; no-script content stays in its initial position. */
.consent-feedback{position:fixed;inset:auto 16px 16px;z-index:61;width:min(calc(100% - 32px),640px);max-height:128px;overflow-y:auto;overscroll-behavior:contain;margin:0 auto}
.consent-banner:not([hidden]) + .consent-feedback:not([hidden]){top:64px;bottom:auto}
/* Failed storage can show both panels. Keep the banner below the status area. */
.consent-banner:has(+ .consent-feedback:not([hidden])){max-height:calc(100vh - 216px);max-height:calc(100dvh - 216px)}
.consent-dialog{color:#10233f;background:#fff;width:min(650px,calc(100% - 32px));max-height:calc(100dvh - 40px);border:1px solid #d5deea;border-radius:16px;padding:30px;overflow:auto;box-shadow:0 20px 90px #061d2d38}
.consent-dialog::backdrop{background:#061d2d80}
.consent-dialog-top{display:flex;justify-content:space-between;gap:18px;align-items:start}
.consent-dialog h2{margin-top:8px;font-size:28px}
.consent-close{padding:4px;min-width:44px;min-height:44px;font-size:28px;border:1px solid #b7c5d8;color:#183354;background:#fff}
.consent-dialog p{font-size:16px;line-height:1.6;margin:0 0 10px;color:#405773}
.consent-category{margin-top:22px;padding-top:20px;border-top:1px solid #d5deea}
.consent-category-title{display:flex;justify-content:space-between;gap:16px;align-items:start;margin:0 0 12px}
.consent-category h3{font-size:18px;line-height:1.4;margin:0;color:#10233f;font-weight:600}
.consent-always{font-size:13px;line-height:1.5;font-weight:600;white-space:nowrap;color:#17553f;background:#e4f4ec;border-radius:999px;padding:5px 10px}
.consent-toggle{display:flex;align-items:center;gap:8px;font-size:14px;line-height:1.5;min-height:44px;cursor:pointer;white-space:nowrap;flex-shrink:0;color:#183354}
.consent-toggle input{accent-color:#2161ec;width:21px;height:21px;margin:0;cursor:pointer}
.consent-dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:24px 0 0}
.consent-save{grid-column:1/-1;background:#2161ec;color:#fff;border:1px solid #2161ec}
.consent-save:hover{background:#1756ca}
.consent-banner :focus-visible,.consent-dialog :focus-visible,[data-cookie-settings]:focus-visible{outline:3px solid #2161ec;outline-offset:3px}
button.footer-cookies{border:0;background:none;color:inherit;padding:0;text-decoration:underline;text-underline-offset:3px;font:inherit;cursor:pointer;min-height:44px;display:inline-flex;align-items:center}
.footer-links{display:flex;flex-wrap:wrap;gap:8px 24px;align-items:center}
.footer-links a,.footer-links button{font-size:14px;line-height:1.6;min-height:44px;display:inline-flex;align-items:center}
.footer-links [hidden]{display:none}
@media(max-width:650px){.consent-banner{padding:22px 20px}.consent-banner-inner{grid-template-columns:1fr;gap:16px}.consent-banner-actions{grid-template-columns:1fr 1fr;gap:10px}.consent-customise{grid-column:1/-1}.consent-dialog{padding:22px 20px}.consent-dialog h2{font-size:25px}.consent-category-title{flex-wrap:wrap;gap:8px}.consent-category h3{flex-basis:100%}.consent-always{white-space:normal}.consent-toggle{white-space:normal}.consent-dialog p{font-size:15px}}
@media(prefers-reduced-motion:reduce){.consent-choice,.consent-customise,.consent-save,.consent-close{transition:none}}
