/* ═══════════════════════════════════════════════════════════
   ALCHMIST — Consent Management Platform (CMP) styles
   Bandeau cookies conforme CNIL. Utilise les tokens du design
   system (--bg, --tx-0, --accent, --rule…) déjà définis par la
   page hôte (index.html inline, ou assets/legal.css).
   ═══════════════════════════════════════════════════════════ */

.cmp-banner{
  position:fixed; left:0; right:0; bottom:0; z-index:9999;
  background:var(--bg-raised, #fff);
  border-top:1px solid var(--rule-hard, #ccc);
  box-shadow:0 -8px 32px rgba(0,0,0,.12);
  padding:clamp(1rem,3vw,1.5rem);
  transform:translateY(110%);
  transition:transform .45s cubic-bezier(0.16,1,0.3,1);
}
.cmp-banner.is-open{ transform:translateY(0); }

.cmp-inner{
  max-width:1280px; margin:0 auto;
  display:grid; grid-template-columns:1fr auto; gap:1.5rem; align-items:center;
}
.cmp-text{ font-family:'Barlow',system-ui,sans-serif; font-size:.9375rem; color:var(--tx-1,#444); line-height:1.55; }
.cmp-text strong{ color:var(--tx-0,#111); }
.cmp-text a{ color:var(--accent,#b06f00); text-decoration:underline; }

.cmp-actions{ display:flex; gap:.75rem; flex-wrap:wrap; align-items:center; }

/* Refus AUSSI simple qu'accepter : mêmes dimensions, même poids visuel */
.cmp-btn{
  font-family:'Barlow',sans-serif; font-weight:700; font-size:.75rem;
  letter-spacing:.08em; text-transform:uppercase; cursor:pointer;
  padding:.75rem 1.4rem; border:1px solid var(--rule-hard,#999);
  background:transparent; color:var(--tx-0,#111);
  transition:background .2s,color .2s,border-color .2s; white-space:nowrap;
}
.cmp-btn:hover{ border-color:var(--accent,#b06f00); color:var(--accent,#b06f00); }
.cmp-btn--primary{ background:var(--accent,#b06f00); border-color:var(--accent,#b06f00); color:#1a1205; }
.cmp-btn--primary:hover{ filter:brightness(.93); color:#1a1205; }
.cmp-btn:focus-visible{ outline:2px solid var(--accent,#b06f00); outline-offset:2px; }

.cmp-link{
  background:none; border:none; cursor:pointer; font-family:'Barlow',sans-serif;
  font-size:.8125rem; color:var(--tx-2,#777); text-decoration:underline; padding:.25rem;
}
.cmp-link:hover{ color:var(--accent,#b06f00); }

/* Panneau de réglages (granularité par finalité) */
.cmp-prefs{ display:none; margin-top:1rem; padding-top:1rem; border-top:1px solid var(--rule,#e0e0e0); }
.cmp-prefs.is-open{ display:block; }
.cmp-row{ display:flex; justify-content:space-between; align-items:flex-start; gap:1rem; padding:.6rem 0; }
.cmp-row h4{ font-family:'Barlow',sans-serif; font-size:.9375rem; font-weight:700; color:var(--tx-0,#111); margin:0 0 .15rem; }
.cmp-row p{ font-size:.8125rem; color:var(--tx-2,#777); margin:0; max-width:60ch; }

/* Interrupteur */
.cmp-switch{ position:relative; width:44px; height:24px; flex-shrink:0; }
.cmp-switch input{ position:absolute; opacity:0; width:100%; height:100%; margin:0; cursor:pointer; }
.cmp-switch input:disabled{ cursor:not-allowed; }
.cmp-track{ position:absolute; inset:0; border-radius:24px; background:var(--rule-hard,#bbb); transition:background .2s; }
.cmp-track::after{ content:''; position:absolute; top:3px; left:3px; width:18px; height:18px; border-radius:50%; background:#fff; transition:transform .2s; }
.cmp-switch input:checked + .cmp-track{ background:var(--accent,#b06f00); }
.cmp-switch input:checked + .cmp-track::after{ transform:translateX(20px); }
.cmp-switch input:disabled + .cmp-track{ opacity:.55; }

@media (max-width:680px){
  .cmp-inner{ grid-template-columns:1fr; }
  .cmp-actions{ width:100%; }
  .cmp-btn{ flex:1 1 auto; text-align:center; }
}
@media (prefers-reduced-motion:reduce){
  .cmp-banner{ transition:none; }
}
