/* Consent banner — same tokens as the site (paper / ink / lime), light and dark themes. */
.consent-banner{position:fixed;z-index:60;left:16px;right:16px;bottom:16px;max-width:560px;margin-left:auto;background:var(--paper,#eeece1);color:var(--ink,#1d1f18);border:1px solid var(--line,#cccec0);border-radius:18px;box-shadow:0 20px 60px #0003;font:15px/1.5 Space,Arial,sans-serif}
.consent-inner{padding:22px 22px 18px;display:grid;gap:12px}
.consent-banner h2{margin:0;font-size:20px;line-height:1.2}
.consent-banner p{margin:0;color:var(--muted,#6b6e62);font-size:14px}
.consent-banner a{color:inherit}
.consent-details{display:grid;gap:10px}
.consent-details[hidden]{display:none}
.consent-option{display:flex;gap:12px;align-items:flex-start;font-size:14px}
.consent-option input{width:20px;height:20px;margin-top:2px;flex:none;accent-color:var(--ink,#1d1f18)}
.consent-option strong{display:block}
.consent-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}
.consent-button{min-height:44px;border-radius:999px;border:1px solid var(--ink,#1d1f18);background:transparent;color:inherit;font:inherit;font-size:14px;padding:0 14px;cursor:pointer}
.consent-button[data-consent-accept],.consent-button[data-consent-refuse]{background:var(--ink,#1d1f18);color:var(--paper,#eeece1)}
.consent-button[hidden]{display:none}
.consent-button:focus-visible{outline:3px solid #839f4f;outline-offset:2px}
[data-theme=dark] .consent-banner{box-shadow:0 20px 60px #000a}
@media (prefers-reduced-motion:no-preference){.consent-banner{animation:consent-in .3s cubic-bezier(.2,.75,.15,1)}@keyframes consent-in{from{opacity:0;transform:translateY(12px)}}}
@media print{.consent-banner{display:none}}
/* Legal links and pages */
.footer-legal{display:flex;flex-wrap:wrap;gap:4px 18px;align-items:center;font-size:13px}
.footer .footer-legal{padding:18px 0 0}
.footer-legal a,.footer-legal button{color:inherit;opacity:.8;background:none;border:0;padding:0;font:inherit;min-height:44px;display:inline-flex;align-items:center;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.footer-legal a:hover,.footer-legal button:hover{opacity:1}
.legal-page{max-width:820px;padding:56px 0 80px}
.legal-page h1{font-size:clamp(36px,6vw,64px);line-height:1;margin:12px 0 24px}
.legal-page h2{font-size:22px;margin:36px 0 12px}
.legal-page p{line-height:1.6}
.legal-facts{display:grid;grid-template-columns:minmax(160px,240px) 1fr;gap:8px 20px;margin:0}
.legal-facts dt{color:var(--muted,#6b6e62)}
.legal-facts dd{margin:0}
.legal-table{width:100%;border-collapse:collapse;font-size:14px;display:block;overflow-x:auto}
.legal-table th,.legal-table td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line,#cccec0);vertical-align:top}
.legal-todo{background:#ffe08a;color:#1d1f18;padding:0 4px;border-radius:4px}
.legal-button{min-height:44px;border-radius:999px;border:1px solid currentColor;background:transparent;color:inherit;font:inherit;padding:0 16px;cursor:pointer}
@media (max-width:640px){.legal-facts{grid-template-columns:1fr}.legal-facts dt{margin-top:8px}}
