/* Cookie banner and the footer's Privacy and Cookie settings controls (src/consent.js). Built from the site's own
   tokens and .button styles; no motion. Accept and Reject share one style on purpose: neither may be nudged. */
/* Bottom right on wide screens: the site's headings, copy and buttons sit on the left. */
.consent-banner{position:fixed;z-index:60;right:var(--space-6);bottom:var(--space-6);width:min(34rem,calc(100% - 2 * var(--space-6)));background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:0 16px 32px oklch(from var(--ink) l c h/.08);padding:var(--space-6)}
.consent-title{font-size:var(--text-lg);margin-bottom:var(--space-3)}
.consent-text{font-size:var(--text-sm);color:var(--muted);line-height:1.6}
.consent-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-5)}
.consent-actions .button{flex:1 1 8rem;margin-top:0}
/* While the banner is open the page keeps room below its content, so the banner never covers what has focus.
   consent.js keeps --consent-height at the banner's real height; 15rem covers the first paint. */
html{--consent-height:15rem;--consent-room:calc(var(--consent-height) + var(--space-8))}
html.consent-open{scroll-padding-bottom:var(--consent-room)}
html.consent-open body,html.consent-open .mobile-menu{padding-bottom:var(--consent-room)}
@media(max-width:800px){
  .consent-banner{left:0;right:0;bottom:0;width:100%;border-width:1px 0 0;border-radius:0;padding:var(--space-5) var(--gutter)}
  html{--consent-room:calc(var(--consent-height) + var(--space-4))}
}
@media print{.consent-banner{display:none}}

/* Footer: the copyright line carries Privacy and, once consent.js runs, Cookie settings; the row wraps on phones. */
.footer-bottom{flex-wrap:wrap;column-gap:var(--space-6)}
.footer-bottom>span a,.footer-link-button{display:inline-flex;align-items:center;min-height:44px}
.footer-link-button{background:none;border:0;padding:0}
.footer-bottom>span a:hover,.footer-link-button:hover{color:white}
