/* consent manager (cms core); themes adapt it via the variables, e.g. :root{--cc-accent:#1f5fa8} */
:root{
  --cc-accent:#1f5fa8;
  --cc-accent-text:#fff;
  --cc-bg:#fff;
  --cc-text:#1d2433;
  --cc-muted:#5b6475;
  --cc-line:#dde2ea;
  --cc-radius:14px;
  --cc-shadow:0 18px 48px rgba(16,24,40,.22);
  --cc-font:inherit;
}
.cc-banner,.cc-dialog{font-family:var(--cc-font);color:var(--cc-text);font-size:15px;line-height:1.5}
.cc-banner{position:fixed;z-index:2147483000;right:16px;bottom:16px;width:min(440px,calc(100vw - 32px));padding:20px;border-radius:var(--cc-radius);background:var(--cc-bg);border:1px solid var(--cc-line);box-shadow:var(--cc-shadow)}
.cc-banner h2,.cc-dialog h2{margin:0 0 8px;font-size:18px;line-height:1.3;color:var(--cc-text)}
.cc-banner p,.cc-dialog p{margin:0 0 12px;color:var(--cc-muted)}
.cc-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px}
/* "accept" and "only necessary" look the same: no nudging */
.cc-btn{flex:1 1 140px;min-height:42px;padding:9px 16px;border-radius:10px;border:1px solid var(--cc-accent);background:var(--cc-accent);color:var(--cc-accent-text);font:600 15px/1.2 var(--cc-font);cursor:pointer}
.cc-btn-secondary{background:transparent;color:var(--cc-accent)}
.cc-btn:hover{filter:brightness(1.08)}
.cc-link{padding:6px 2px;border:0;background:none;color:var(--cc-accent);font:500 15px/1.2 var(--cc-font);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.cc-btn:focus-visible,.cc-link:focus-visible,.cc-close:focus-visible,.cc-switch input:focus-visible+.cc-track{outline:2px solid var(--cc-accent);outline-offset:2px}
.cc-links{margin:12px 0 0!important;font-size:13px}
.cc-links a{color:var(--cc-muted)}
.cc-dialog{width:min(620px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:24px;border:0;border-radius:var(--cc-radius);background:var(--cc-bg);box-shadow:var(--cc-shadow)}
.cc-dialog::backdrop{background:rgba(16,24,40,.45)}
.cc-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.cc-close{width:36px;height:36px;flex:none;border:0;border-radius:8px;background:none;color:var(--cc-muted);font-size:24px;line-height:1;cursor:pointer}
.cc-cat{padding:14px 0;border-top:1px solid var(--cc-line)}
.cc-cat p{margin:6px 0 0;font-size:14px}
.cc-cat-head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.cc-cat-name{font-weight:600;color:var(--cc-text)}
.cc-always{font-size:13px;color:var(--cc-muted)}
.cc-switch{display:inline-flex;align-items:center;gap:10px;cursor:pointer}
.cc-switch input{position:absolute;opacity:0;width:1px;height:1px}
.cc-track{position:relative;width:40px;height:22px;flex:none;border-radius:999px;background:var(--cc-line);transition:background .2s}
.cc-track::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.25);transition:transform .2s}
.cc-switch input:checked+.cc-track{background:var(--cc-accent)}
.cc-switch input:checked+.cc-track::after{transform:translateX(18px)}
.cc-switch input:disabled+.cc-track{opacity:.6}
.cc-cat details{margin-top:8px;font-size:14px}
.cc-cat summary{cursor:pointer;color:var(--cc-accent)}
.cc-cat ul{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:8px}
.cc-service{padding:10px 12px;border-radius:10px;background:rgba(127,127,127,.08)}
.cc-service dl{display:grid;grid-template-columns:max-content 1fr;gap:2px 10px;margin:6px 0}
.cc-service dt{color:var(--cc-muted)}
.cc-service dd{margin:0}
.cc-service a{color:var(--cc-accent)}
.cc-dialog .cc-actions{margin-top:16px}
@media (max-width:480px){.cc-banner{right:8px;bottom:8px;width:calc(100vw - 16px)}}
@media (prefers-reduced-motion:reduce){.cc-track,.cc-track::after{transition:none}}
