/* ============================================================
   Cookie consent — RGPD · negro/oro
   ============================================================ */
.cc-scrim{
  position:fixed; inset:0; z-index:200; display:none;
  background:rgba(5,4,3,.74); backdrop-filter:blur(5px);
  align-items:center; justify-content:center; padding:24px;
}
.cc-scrim.show{ display:flex; }

.cc-modal{
  width:min(560px,100%); max-height:90vh; overflow-y:auto;
  background:var(--bg-2); border:1px solid var(--line);
  border-radius:10px; padding:clamp(28px,4vw,44px);
  box-shadow:0 40px 120px -30px rgba(0,0,0,.9), 0 0 0 1px rgba(216,178,74,.06);
  transform:translateY(14px); animation:ccUp .5s cubic-bezier(.2,.8,.2,1) forwards;
}
@keyframes ccUp{ to{ transform:none; } }
.cc-modal::-webkit-scrollbar{ width:8px; }
.cc-modal::-webkit-scrollbar-thumb{ background:rgba(216,178,74,.2); border-radius:8px; }

.cc-eye{ font-family:var(--mono); font-size:11px; letter-spacing:.26em; text-transform:uppercase; color:var(--gold); }
.cc-title{ font-family:var(--serif); font-weight:500; font-size:clamp(28px,3.4vw,38px); line-height:1.05; margin-top:14px; color:var(--ink); }
.cc-text{ margin-top:16px; color:var(--ink-dim); font-size:15px; line-height:1.6; }
.cc-text a{ color:var(--gold); text-decoration:underline; text-underline-offset:3px; text-decoration-color:var(--line); }
.cc-text a:hover{ text-decoration-color:var(--gold); }

.cc-actions{ margin-top:28px; display:flex; flex-direction:column; gap:12px; }
.cc-row{ display:flex; gap:12px; flex-wrap:wrap; }
.cc-row .cc-btn{ flex:1 1 0; min-width:140px; }
.cc-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5em;
  height:52px; padding:0 22px; border-radius:999px; cursor:pointer;
  font-family:var(--sans); font-size:14.5px; font-weight:560; letter-spacing:.01em;
  border:1px solid var(--line); background:transparent; color:var(--ink);
  transition:transform .3s cubic-bezier(.2,.8,.2,1), background .3s, color .3s, border-color .3s, box-shadow .3s;
  white-space:nowrap;
}
.cc-btn:hover{ border-color:var(--gold); color:#fff; transform:translateY(-1px); }
.cc-btn.primary{
  background:var(--gold-grad); color:#241803; border-color:transparent;
  box-shadow:0 1px 0 rgba(255,255,255,.25) inset, 0 12px 30px -14px rgba(216,178,74,.6);
}
.cc-btn.primary:hover{ color:#241803; transform:translateY(-2px); box-shadow:0 1px 0 rgba(255,255,255,.3) inset, 0 16px 38px -14px rgba(216,178,74,.75); }
.cc-btn.full{ width:100%; flex:none; }

/* config categories */
.cc-config{ display:none; margin-top:26px; border-top:1px solid var(--line-2); }
.cc-config.show{ display:block; }
.cc-cat{ padding:20px 0; border-bottom:1px solid var(--line-2); display:flex; align-items:flex-start; justify-content:space-between; gap:18px; }
.cc-cat .info h4{ font-family:var(--sans); font-weight:600; font-size:15.5px; color:var(--ink); }
.cc-cat .info p{ margin-top:6px; color:var(--ink-dim); font-size:13.5px; line-height:1.55; max-width:42ch; }

/* toggle */
.cc-toggle{ flex:none; position:relative; width:46px; height:26px; border-radius:999px; background:rgba(255,255,255,.08); border:1px solid var(--line-2); cursor:pointer; transition:background .3s, border-color .3s; padding:0; }
.cc-toggle::after{ content:""; position:absolute; top:50%; left:3px; transform:translateY(-50%); width:18px; height:18px; border-radius:50%; background:var(--ink-dim); transition:left .3s cubic-bezier(.2,.8,.2,1), background .3s; }
.cc-toggle[aria-checked="true"]{ background:rgba(216,178,74,.22); border-color:var(--gold); }
.cc-toggle[aria-checked="true"]::after{ left:23px; background:var(--gold); }
.cc-toggle[aria-disabled="true"]{ cursor:not-allowed; opacity:.7; }

.cc-save{ margin-top:24px; }

/* floating reopen button (bottom-left) */
.cc-fab{
  position:fixed; left:22px; bottom:22px; z-index:150; display:none;
  align-items:center; gap:9px; height:44px; padding:0 16px 0 14px;
  background:rgba(16,14,10,.86); backdrop-filter:blur(10px);
  border:1px solid var(--line); border-radius:999px; cursor:pointer;
  font-family:var(--mono); font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-2);
  transition:border-color .3s, color .3s, transform .3s;
  box-shadow:0 12px 30px -16px rgba(0,0,0,.8);
}
.cc-fab.show{ display:inline-flex; }
.cc-fab:hover{ border-color:var(--gold); color:var(--gold); transform:translateY(-1px); }
.cc-fab .glyph{ width:9px; height:9px; background:var(--gold); transform:rotate(45deg); display:inline-block; }

@media (max-width:540px){
  .cc-row{ flex-direction:column; }
  .cc-fab{ left:14px; bottom:14px; }
}
@media (prefers-reduced-motion:reduce){
  .cc-scrim, .cc-modal, .cc-btn, .cc-fab{ transition:none !important; }
}
