#nuvio-privacy [hidden] { display: none !important; }
.consent-banner { position: fixed; z-index: 11000; bottom: 76px; left: 20px; right: 20px; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 28px; max-width: 1280px; margin-inline: auto; padding: 24px; border: 2px solid var(--line); border-bottom: 6px solid var(--slab); border-radius: 20px; background: white; color: var(--ink); }
.consent-banner h2, .consent-dialog h2 { font: 900 23px/1.2 Nunito, sans-serif; letter-spacing: -.5px; margin: 0 0 10px; color: var(--ink); }
.consent-banner p, .consent-dialog > p { font-size: 14px; line-height: 1.6; margin: 0 0 10px; color: var(--subtle); }
.consent-banner a, .consent-dialog a { color: var(--blue-edge); font-weight: 800; font-size: 13px; text-underline-offset: 3px; }
.consent-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.consent-actions button, .privacy-launcher, .consent-dialog-header button { font: 900 13px/1.4 Nunito, sans-serif; border: 2px solid var(--line); border-bottom: 4px solid var(--slab); border-radius: 12px; background: white; color: var(--ink); min-height: 44px; padding: 11px 15px; cursor: pointer; }
.consent-actions button:hover { border-color: var(--primary-blue); }
.consent-actions button:active { border-bottom-width: 2px; transform: translateY(2px); }
.consent-actions [data-consent-save] { background: var(--primary-blue); color: white; border-color: var(--primary-blue); border-bottom-color: var(--blue-edge); }
.privacy-launcher { position: fixed; z-index: 11001; left: max(16px,env(safe-area-inset-left)); bottom: max(16px,env(safe-area-inset-bottom)); display: grid; place-items: center; width: 44px; height: 44px; padding: 0; color: var(--blue-edge); box-shadow: none; }
.privacy-launcher svg { display: block; pointer-events: none; }
.consent-dialog { width: min(560px,calc(100% - 32px)); max-height: calc(100dvh - 40px); margin: auto; padding: 26px; border: 2px solid var(--line); border-bottom: 6px solid var(--slab); border-radius: 22px; background: white; color: var(--ink); overflow-y: auto; }
.consent-dialog::backdrop { background: rgb(35 45 65 / .4); }
.consent-dialog-header { display: flex; align-items: start; gap: 16px; justify-content: space-between; }
.consent-dialog-header button { width: 44px; flex-shrink: 0; padding: 0; font-size: 25px; }
.consent-dialog-header h2 { padding-top: 7px; }
.consent-category { display: flex; align-items: center; gap: 18px; position: relative; padding: 19px 0; border-bottom: 2px solid var(--line); cursor: pointer; }
.consent-category > span:first-child { flex: 1; min-width: 0; }
.consent-category strong { display: block; font-size: 15px; font-weight: 900; margin-bottom: 6px; }
.consent-category small { display: block; font-size: 13px; line-height: 1.6; color: var(--subtle); }
.consent-category input { position: absolute; right: 0; width: 52px; height: 32px; opacity: 0; z-index: 1; cursor: pointer; }
.consent-switch { position: relative; width: 52px; height: 32px; border-radius: 20px; background: #CECECE; flex-shrink: 0; transition: background 160ms ease; }
.consent-switch::after { content: ''; position: absolute; width: 24px; height: 24px; border-radius: 50%; top: 4px; left: 4px; background: white; transition: transform 160ms ease; }
.consent-category input:checked + .consent-switch { background: var(--primary-blue); }
.consent-category input:checked + .consent-switch::after { transform: translateX(20px); }
.consent-category input:disabled + .consent-switch { opacity: .55; }
.consent-category input:focus-visible + .consent-switch, #nuvio-privacy button:focus-visible, .footer-group button:focus-visible { outline: 3px solid var(--primary-blue); outline-offset: 4px; }
.consent-policy-links { display: flex; gap: 20px; flex-wrap: wrap; padding-top: 18px; }
.consent-dialog .consent-actions { margin-top: 18px; }
.footer-group [data-consent-open] { color: #D9E8FF; border: 0; padding: 0; background: transparent; min-height: 42px; font: 700 14px/1.5 Nunito,sans-serif; text-align: left; cursor: pointer; }
.cookie-table-wrap { overflow-x: auto; margin: 22px 0; }
.cookie-table { width: 100%; border-collapse: collapse; font-size: 13px; text-align: left; }
.cookie-table th, .cookie-table td { border: 1px solid var(--line); padding: 12px; vertical-align: top; line-height: 1.6; }
.cookie-table th { background: #FAFBFD; }
@media(max-width:900px) { .consent-banner { grid-template-columns: minmax(0,1fr); gap: 15px; } }
@media(max-width:620px) { .consent-banner { left: 12px; right: 12px; bottom: calc(76px + env(safe-area-inset-bottom)); padding: 18px; max-height: calc(100dvh - 100px - env(safe-area-inset-bottom)); overflow-y: auto; } .consent-banner h2 { font-size: 21px; } .consent-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); width: 100%; } .consent-banner .consent-actions button:last-child { grid-column: 1/-1; } .consent-dialog { padding: 20px; } .consent-dialog h2 { font-size: 22px; } .privacy-launcher { min-height: 44px; } }
@media(prefers-reduced-motion:reduce) { .consent-switch, .consent-switch::after { transition: none; } }

.cookie-policy-page .legal-page > .container { max-width: 960px; }
@media(max-width:380px) { .consent-dialog { padding: 18px; } .consent-category { padding-block: 15px; } }
/* Brand-blue banner with readable white copy and equally weighted choices. */
.consent-banner { background: var(--blue-edge); border-color: var(--blue-edge); border-bottom-color: #1047AA; color: white; }
.consent-banner h2, .consent-banner p, .consent-banner a { color: white; }
.consent-banner .consent-actions button { background: white; color: var(--blue-edge); border-color: white; border-bottom-color: #BDD5FA; }
.consent-banner .consent-actions button:hover { background: #F0F6FF; border-color: white; border-bottom-color: #BDD5FA; }
#nuvio-privacy .consent-banner button:focus-visible, .consent-banner a:focus-visible { outline: 3px solid white; outline-offset: 4px; }
