.cookie-consent, .cookie-consent * { box-sizing: border-box; }
.cookie-consent { position: fixed; z-index: 1200; right: 1rem; bottom: 1rem; width: min(32rem, calc(100vw - 2rem)); color: #fff; font-size: .95rem; }
.cookie-consent [hidden] { display: none !important; }
.cookie-consent__banner { padding: clamp(1.25rem, 4vw, 2rem); border: 1px solid rgba(255,255,255,.18); border-top: 4px solid var(--nxb-colour-brand-bright); border-radius: var(--nxb-radius); background: rgba(7,15,15,.98); box-shadow: 0 24px 70px rgba(0,0,0,.38); }
.cookie-consent h2, .cookie-consent h3 { color: #fff; }
.cookie-consent h2 { margin-bottom: .6rem; font-size: 1.6rem; }
.cookie-consent h3 { margin: 0; font-size: 1rem; }
.cookie-consent p { color: rgba(255,255,255,.86); line-height: 1.55; }
.cookie-consent__actions, .cookie-consent__dialog-actions { display: flex; flex-wrap: wrap; gap: .65rem; align-items: center; }
.cookie-consent__button { min-height: 2.75rem; padding: .6rem .9rem; border: 1px solid rgba(255,255,255,.5); border-radius: .3rem; color: #fff; background: transparent; font-weight: 750; cursor: pointer; }
.cookie-consent__button:hover { border-color: #fff; background: rgba(255,255,255,.1); }
.cookie-consent__button--strong { border-color: var(--nxb-colour-brand); background: var(--nxb-colour-brand); }
.cookie-consent__button--strong:hover { border-color: var(--nxb-colour-brand-bright); background: var(--nxb-colour-brand-bright); }
.cookie-consent__links { margin: 1rem 0 0; }
.cookie-consent__links a, .cookie-consent__links button, .cookie-consent__dialog-actions a { color: #fff; font-weight: 700; }
.cookie-consent__links button { padding: 0; border: 0; background: transparent; text-decoration: underline; cursor: pointer; }
.cookie-consent__links span { margin-inline: .45rem; color: rgba(255,255,255,.55); }
.cookie-consent__backdrop { position: fixed; z-index: 1201; inset: 0; display: grid; place-items: center; padding: 1rem; background: rgba(0,0,0,.72); backdrop-filter: blur(4px); }
.cookie-consent__dialog { width: min(42rem, 100%); max-height: calc(100vh - 2rem); padding: clamp(1.25rem, 4vw, 2rem); overflow-y: auto; border: 1px solid rgba(255,255,255,.18); border-radius: var(--nxb-radius); background: var(--nxb-colour-ink); box-shadow: 0 28px 90px rgba(0,0,0,.5); }
.cookie-consent__dialog-header, .cookie-consent__option-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.cookie-consent__dialog-header { padding-bottom: 1.2rem; }
.cookie-consent__dialog-header p { margin-bottom: 0; }
.cookie-consent__option { padding-block: 1.2rem; border-top: 1px solid rgba(255,255,255,.16); }
.cookie-consent__option p { margin: .7rem 0 0; }
.cookie-consent__option-heading strong { color: var(--nxb-colour-brand-bright); font-size: .75rem; letter-spacing: .04em; text-transform: uppercase; }
.cookie-consent__toggle { position: relative; display: block; width: 3.2rem; height: 1.75rem; flex: 0 0 auto; }
.cookie-consent__toggle input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.cookie-consent__toggle span { position: absolute; inset: 0; border-radius: 2rem; background: #596263; cursor: pointer; transition: background .2s ease; }
.cookie-consent__toggle span::after { content: ""; position: absolute; top: .2rem; left: .2rem; width: 1.35rem; height: 1.35rem; border-radius: 50%; background: #fff; transition: transform .2s ease; }
.cookie-consent__toggle input:checked + span { background: var(--nxb-colour-brand); }
.cookie-consent__toggle input:checked + span::after { transform: translateX(1.45rem); }
.cookie-consent__toggle input:focus-visible + span { outline: 3px solid #f9c74f; outline-offset: 4px; }
.cookie-consent__dialog-actions { padding-top: 1.2rem; border-top: 1px solid rgba(255,255,255,.16); }
.cookie-consent-open { overflow: hidden; }
@media (max-width: 560px) {
    .cookie-consent { right: 0; bottom: 0; width: 100%; }
    .cookie-consent__banner { border-right: 0; border-bottom: 0; border-left: 0; border-radius: 0; }
    .cookie-consent__actions .cookie-consent__button { flex: 1 1 8rem; }
    .cookie-consent__dialog-header { display: grid; }
}
@media (prefers-reduced-motion: reduce) { .cookie-consent__toggle span, .cookie-consent__toggle span::after { transition: none; } }
