/* Optional services use the same local fonts and palette as the site. */
.consent-banner, .consent-dialog { color:var(--ink,#252722); background:var(--bg,#faf9f5); font-family:var(--ft,inherit); font-size:16px; line-height:1.5; border:1px solid var(--line,#bfc1b8); }
.consent-banner { position:fixed; z-index:10000; bottom:16px; left:16px; right:16px; max-width:760px; padding:20px; box-shadow:0 6px 30px #0002; }
.consent-banner[hidden] { display:none; }
.consent-banner p { margin:0 0 12px; }
.consent-dialog { max-width:640px; width:calc(100% - 32px); max-height:calc(100svh - 32px); overflow:auto; padding:clamp(20px,4vw,36px); margin:auto; }
.consent-dialog::backdrop { background:#171b1766; }
.consent-dialog h2 { font-family:var(--fd,inherit); font-size:clamp(28px,4vw,40px); font-weight:400; line-height:1.1; margin:0 0 20px; }
.consent-dialog p { margin:12px 0; }
.consent-option { display:flex; align-items:flex-start; gap:14px; padding:18px 0; border-bottom:1px solid var(--line,#bfc1b8); cursor:pointer; }
.consent-option input { appearance:auto; width:22px; height:22px; flex:none; margin-top:4px; accent-color:var(--accent,#0072ce); }
.consent-option strong,.consent-option small { display:block; }
.consent-option small { font-size:15px; margin-top:5px; }
.consent-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }
.consent-actions button,.consent-foot button { font:inherit; color:inherit; background:transparent; border:1px solid currentColor; padding:10px 15px; min-height:44px; cursor:pointer; }
.consent-actions button { flex:1 1 145px; }
.consent-actions button:hover,.consent-foot button:hover { background:var(--surface,#eeeee8); }
.consent-dialog :focus-visible,.consent-banner :focus-visible { outline:2px solid var(--accent,#0072ce); outline-offset:3px; }
.consent-foot { display:flex; flex-wrap:wrap; gap:20px; justify-content:space-between; align-items:center; margin-top:20px; }
.consent-foot a { color:inherit; text-decoration:underline; text-underline-offset:3px; }
.consent-status:empty { display:none; }
@media(max-width:540px) { .consent-banner { bottom:8px; left:8px; right:8px; padding:16px; max-height:70svh; overflow:auto; } .consent-actions {gap:8px;} .consent-actions button {flex-basis:100%;} }
