/* finesse · component: shared public footer/privacy dialog · register=brand
 * tokens: inherited CZWX navy, blue and self-hosted fonts; no new media. */
:root {
  --privacy-surface: #f7f9fc; --privacy-ink: #172939; --privacy-muted: #526576;
  --privacy-accent: #2563eb; --privacy-accent-active: #1d4ed8;
  --privacy-on-accent: #f7f9fc; --privacy-border: #17293926;
  --privacy-shadow: #0b19273d; --privacy-backdrop: #0b192780;
}
html.czwx-privacy-open {overflow-y:hidden;}
.site-footer--contact .footer-bottom {display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px 24px;}
.site-footer--contact .footer-legal {margin:0;gap:8px 24px;}
.site-footer--contact .footer-legal a {white-space:nowrap;outline-offset:4px;}
.site-footer--contact .footer-legal a:focus-visible {outline:3px solid var(--cf-accent);border-radius:3px;}
.site-footer--contact .footer-legal a:active {color:var(--cf-accent);}
.site-footer--contact .footer-copyright {color:var(--cf-muted);font-size:13px;line-height:1.6;white-space:nowrap;}
.footer-source-note {max-width:1240px;margin:0 auto;padding:12px 24px;color:var(--privacy-muted);font-size:13px;line-height:1.6;}
.czwx-privacy-dialog {box-sizing:border-box;margin:auto;width:min(520px,calc(100% - 32px));max-width:none;max-height:calc(100dvh - 32px);padding:44px 32px 28px;border:1px solid var(--privacy-border);border-radius:16px;background:var(--privacy-surface);color:var(--privacy-ink);box-shadow:0 24px 80px var(--privacy-shadow);font-family:inherit;text-align:left;overflow-y:auto;}
.czwx-privacy-dialog::backdrop {background:var(--privacy-backdrop);}
.czwx-privacy-dialog h2 {margin:0 0 16px;font-size:clamp(24px,4vw,30px);font-weight:600;line-height:1.2;letter-spacing:-.03em;color:var(--privacy-ink);min-width:0;overflow-wrap:anywhere;}
.czwx-privacy-dialog p {margin:0;color:var(--privacy-muted);font-size:16px;line-height:1.65;}
.czwx-privacy-dialog button, .czwx-privacy-dialog a {box-sizing:border-box;font:inherit;font-size:16px;line-height:1.4;min-height:44px;white-space:nowrap;cursor:pointer;outline-offset:4px;transition:color .15s ease,background-color .15s ease;}
.czwx-privacy-dialog button:focus-visible, .czwx-privacy-dialog a:focus-visible {outline:3px solid var(--privacy-accent);}
.czwx-privacy-close {position:absolute;right:8px;top:8px;width:44px;height:44px;display:grid;place-items:center;padding:0;border:0;border-radius:6px;color:var(--privacy-ink);background:transparent;}
.czwx-privacy-actions {display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px 24px;margin-top:28px;}
.czwx-privacy-actions a {display:inline-flex;align-items:center;color:var(--privacy-accent);text-decoration:underline;text-underline-offset:4px;}
.czwx-privacy-actions button {display:inline-flex;justify-content:center;align-items:center;min-width:112px;padding:12px 24px;border:1px solid transparent;border-radius:6px;background:var(--privacy-accent);color:var(--privacy-on-accent);font-weight:600;}
.czwx-privacy-actions button:active {background:var(--privacy-accent-active);}
.czwx-privacy-close:active {background:var(--privacy-border);}
@media (hover:hover) and (pointer:fine) {
  .site-footer--contact .footer-legal a:hover {color:var(--cf-accent);}
  .czwx-privacy-actions button:hover {background:var(--privacy-accent-active);}
  .czwx-privacy-close:hover {background:var(--privacy-border);}
  .czwx-privacy-actions a:hover {color:var(--privacy-accent-active);}
}
@media (max-width:600px) {
  .site-footer--contact .footer-bottom {align-items:flex-start;flex-direction:column;gap:8px;}
  .czwx-privacy-dialog {padding:48px 24px 24px;}
  .czwx-privacy-actions {align-items:stretch;flex-direction:column;gap:12px;margin-top:24px;}
  .czwx-privacy-actions a {justify-content:center;}
  .czwx-privacy-actions button {width:100%;}
}
@media (prefers-reduced-motion:reduce) {.czwx-privacy-dialog button,.czwx-privacy-dialog a {transition:none;}}
