/* ============================================================
   DJ Soulrocca – Cookie / Consent UI (DSGVO)
   Self-contained, prefixed with .cc-  ·  brand: oxblood/cream
   ============================================================ */
:root{
  --cc-bg:#150c0d;
  --cc-panel:#1c1214;
  --cc-line:rgba(232,222,206,0.16);
  --cc-cream:#ece2d2;
  --cc-dim:#c3b4a3;
  --cc-muted:#8d7e72;
  --cc-red:#a81f28;
  --cc-red-bright:#d8343f;
}
.cc-hidden{display:none !important}

/* ---- Banner ---- */
.cc-banner{
  position:fixed;left:0;right:0;bottom:0;z-index:9000;
  background:rgba(18,10,11,0.98);border-top:1px solid var(--cc-line);
  backdrop-filter:blur(8px);box-shadow:0 -18px 50px rgba(0,0,0,0.45);
  transform:translateY(110%);transition:transform .45s cubic-bezier(.2,.7,.2,1);
}
.cc-banner.cc-show{transform:translateY(0)}
.cc-banner-in{
  max-width:1240px;margin:0 auto;padding:22px clamp(20px,5vw,60px);
  display:flex;align-items:center;gap:30px;flex-wrap:wrap;
}
.cc-banner-txt{flex:1 1 380px;min-width:280px}
.cc-banner-txt h3{
  font-family:'Oswald','Arial Narrow',sans-serif;font-weight:600;text-transform:uppercase;
  letter-spacing:0.04em;font-size:1.05rem;color:var(--cc-cream);margin:0 0 6px;
}
.cc-banner-txt p{
  font-family:'Archivo',system-ui,sans-serif;font-weight:300;font-size:0.88rem;line-height:1.6;
  color:var(--cc-dim);margin:0;
}
.cc-banner-txt a{color:var(--cc-red-bright);text-decoration:none}
.cc-banner-txt a:hover{text-decoration:underline}
.cc-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}

/* ---- Buttons (equal weight for accept & reject) ---- */
.cc-btn{
  font-family:'Oswald','Arial Narrow',sans-serif;font-weight:500;text-transform:uppercase;
  letter-spacing:0.14em;font-size:0.76rem;padding:13px 24px;border-radius:2px;cursor:pointer;
  border:1px solid var(--cc-line);background:transparent;color:var(--cc-cream);transition:.2s;white-space:nowrap;
}
.cc-btn:hover{border-color:var(--cc-red-bright);color:var(--cc-red-bright)}
.cc-btn-solid{background:var(--cc-red);border-color:var(--cc-red);color:var(--cc-cream)}
.cc-btn-solid:hover{background:transparent;color:var(--cc-red-bright);border-color:var(--cc-red-bright)}
.cc-btn-text{border-color:transparent;padding:13px 8px;color:var(--cc-dim)}
.cc-btn-text:hover{color:var(--cc-cream);border-color:transparent;text-decoration:underline}

/* ---- Floating always-visible icon ---- */
.cc-fab{
  position:fixed;left:20px;bottom:20px;z-index:8900;
  width:48px;height:48px;border-radius:50%;
  background:var(--cc-panel);border:1px solid var(--cc-line);color:var(--cc-cream);
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  box-shadow:0 8px 26px rgba(0,0,0,0.5);transition:.25s;
}
.cc-fab:hover{border-color:var(--cc-red-bright);color:var(--cc-red-bright);transform:translateY(-2px)}
.cc-fab svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}

/* ---- Settings modal ---- */
.cc-modal{
  position:fixed;inset:0;z-index:9100;display:flex;align-items:center;justify-content:center;
  padding:20px;background:rgba(6,3,4,0.7);backdrop-filter:blur(4px);
  opacity:0;pointer-events:none;transition:opacity .3s;
}
.cc-modal.cc-show{opacity:1;pointer-events:auto}
.cc-card{
  width:100%;max-width:560px;max-height:88vh;overflow-y:auto;
  background:var(--cc-bg);border:1px solid var(--cc-line);border-radius:8px;
  padding:clamp(24px,4vw,38px);transform:translateY(14px);transition:transform .3s;
}
.cc-modal.cc-show .cc-card{transform:none}
.cc-card h2{
  font-family:'Oswald','Arial Narrow',sans-serif;font-weight:600;text-transform:uppercase;letter-spacing:0.04em;
  font-size:1.5rem;color:var(--cc-cream);margin:0 0 8px;
}
.cc-card>p{font-family:'Archivo',sans-serif;font-weight:300;font-size:0.9rem;line-height:1.65;color:var(--cc-dim);margin:0 0 22px}
.cc-card>p a{color:var(--cc-red-bright);text-decoration:none}

.cc-cat{border:1px solid var(--cc-line);border-radius:5px;padding:18px 20px;margin-bottom:14px;background:var(--cc-panel)}
.cc-cat-top{display:flex;align-items:center;justify-content:space-between;gap:16px}
.cc-cat-top h4{font-family:'Oswald','Arial Narrow',sans-serif;font-weight:500;text-transform:uppercase;letter-spacing:0.05em;font-size:1rem;color:var(--cc-cream);margin:0}
.cc-cat p{font-family:'Archivo',sans-serif;font-weight:300;font-size:0.84rem;line-height:1.55;color:var(--cc-dim);margin:10px 0 0}

/* toggle switch */
.cc-switch{position:relative;width:46px;height:26px;flex-shrink:0}
.cc-switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.cc-track{position:absolute;inset:0;border-radius:30px;background:#3a2b2b;border:1px solid var(--cc-line);transition:.25s}
.cc-track::before{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:var(--cc-cream);transition:.25s}
.cc-switch input:checked + .cc-track{background:var(--cc-red)}
.cc-switch input:checked + .cc-track::before{transform:translateX(20px)}
.cc-switch input:disabled + .cc-track{opacity:.65;cursor:not-allowed}
.cc-switch input:disabled{cursor:not-allowed}
.cc-lock{font-family:'Archivo',sans-serif;font-size:0.66rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--cc-muted)}

.cc-card-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
.cc-card-actions .cc-btn{flex:1 1 auto}

/* ---- Click-to-load placeholder for Mixcloud embeds ---- */
.cc-embed-ph{
  border:1px solid var(--cc-line);border-radius:6px;background:var(--cc-panel);
  padding:34px 26px;text-align:center;
}
.cc-embed-ph h4{font-family:'Oswald','Arial Narrow',sans-serif;font-weight:500;text-transform:uppercase;letter-spacing:0.05em;color:var(--cc-cream);font-size:1.05rem;margin:0 0 8px}
.cc-embed-ph p{font-family:'Archivo',sans-serif;font-weight:300;font-size:0.85rem;color:var(--cc-dim);margin:0 auto 16px;max-width:420px;line-height:1.55}
.cc-embed-ph p a{color:var(--cc-red-bright);text-decoration:none}

@media(max-width:680px){
  .cc-banner-in{gap:18px}
  .cc-actions{width:100%}
  .cc-actions .cc-btn{flex:1 1 auto;text-align:center}
  .cc-btn-text{flex-basis:100%}
}
