/* ===== GDPR cookie consent ===== */
.cc-banner{position:fixed;left:0;right:0;bottom:0;z-index:200;display:flex;justify-content:center;padding:16px;box-sizing:border-box;width:100%;max-width:100vw;transform:translateY(120%);transition:transform .4s ease;pointer-events:none}
.cc-banner.open{transform:translateY(0);pointer-events:auto}
.cc-banner-inner{width:100%;max-width:900px;box-sizing:border-box;background:var(--card);border:1px solid var(--line);border-radius:22px;box-shadow:0 20px 50px oklch(30% 0.03 300 / 0.18);padding:22px 24px;display:flex;flex-wrap:wrap;align-items:center;gap:18px}
.cc-text{flex:1 1 320px;font-size:0.875rem;line-height:1.55;color:var(--muted)}
.cc-text strong{color:var(--text)}
.cc-text a{font-weight:600}
.cc-actions{display:flex;flex-wrap:wrap;gap:10px;flex:1 1 260px;justify-content:flex-end}
.cc-btn{border:0;cursor:pointer;font-family:inherit;font-size:0.875rem;font-weight:600;padding:11px 20px;border-radius:100px;white-space:nowrap;transition:transform .25s ease,opacity .25s ease}
.cc-btn:hover{transform:translateY(-2px)}
.cc-btn-accept{background:var(--plum);color:var(--on-plum)}
.cc-btn-reject{background:transparent;color:var(--text);border:1px solid var(--line)}
.cc-btn-settings{background:transparent;color:var(--plum);text-decoration:underline;padding:11px 6px}

.cc-modal-overlay{position:fixed;inset:0;z-index:210;background:oklch(20% 0.02 280 / 0.55);display:none;align-items:center;justify-content:center;padding:20px}
.cc-modal-overlay.open{display:flex}
.cc-modal{width:100%;max-width:520px;max-height:85vh;overflow-y:auto;background:var(--card);border-radius:24px;padding:28px;box-shadow:0 30px 70px oklch(20% 0.03 300 / 0.3)}
.cc-modal h2{font-size:1.375rem;margin-bottom:8px}
.cc-modal-desc{font-size:0.875rem;color:var(--muted);line-height:1.55;margin-bottom:20px}
.cc-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 0;border-top:1px solid var(--line)}
.cc-row:first-of-type{border-top:none}
.cc-row-text{flex:1}
.cc-row-title{font-weight:600;font-size:0.9375rem;margin-bottom:4px}
.cc-row-desc{font-size:0.8125rem;color:var(--muted-2);line-height:1.5}
.cc-switch{position:relative;width:46px;height:26px;flex:none;margin-top:2px}
.cc-switch input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.cc-switch-track{position:absolute;inset:0;background:var(--line);border-radius:100px;transition:background .2s ease}
.cc-switch-track::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px oklch(20% 0 0 / 0.3);transition:transform .2s ease}
.cc-switch input:checked + .cc-switch-track{background:var(--plum)}
.cc-switch input:checked + .cc-switch-track::after{transform:translateX(20px)}
.cc-switch input:disabled + .cc-switch-track{opacity:.55;cursor:not-allowed}
.cc-modal-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px;justify-content:flex-end}
.cc-link-btn{background:none;border:none;color:var(--muted);font-family:inherit;font-size:0.8125rem;cursor:pointer;text-decoration:underline;padding:0}

@media (max-width:600px){
  .cc-banner{padding:10px}
  .cc-banner-inner{border-radius:18px;padding:18px}
  .cc-actions{justify-content:stretch}
  .cc-btn{flex:1 1 auto;text-align:center}
  .cc-btn-settings{flex:1 1 100%;order:3}
}
