/* Alex-IT — Cookie Consent Manager */
#cc-banner {
  position: fixed;
  bottom: 16px; left: 16px; right: 16px;
  z-index: 9999;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 16px;
  box-shadow: 0 12px 40px rgba(0,0,0,.18);
  max-width: 1080px;
  margin: 0 auto;
  animation: cc-slide-up .35s cubic-bezier(.16,1,.3,1);
}
@keyframes cc-slide-up { from{transform:translateY(40px);opacity:0} to{transform:translateY(0);opacity:1} }
.cc-content {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 20px;
  padding: 18px 22px;
  align-items: center;
}
@media(max-width:780px){ .cc-content{grid-template-columns:1fr;gap:14px} }
.cc-text strong { display:block; font-size:1rem; color:#0f172a; margin-bottom:6px; font-weight:700 }
.cc-text p { font-size:.86rem; color:#475569; line-height:1.55; margin:0 }
.cc-actions { display:flex; gap:8px; flex-wrap:wrap }
@media(max-width:780px){ .cc-actions{flex-direction:column} .cc-actions .cc-btn{width:100%} }
.cc-btn {
  padding: 9px 18px;
  border-radius: 8px;
  font-size: .85rem;
  font-weight: 700;
  cursor: pointer;
  border: 1px solid transparent;
  font-family: inherit;
  transition: .15s;
  white-space: nowrap;
}
.cc-btn-refuse { background:#f3f4f6; color:#0f172a; border-color:#e5e7eb }
.cc-btn-refuse:hover { background:#e5e7eb }
.cc-btn-custom { background:#fff; color:#0f172a; border-color:#e5e7eb }
.cc-btn-custom:hover { border-color:#2563eb; color:#2563eb }
.cc-btn-accept { background:#2563eb; color:#fff }
.cc-btn-accept:hover { background:#1d4ed8 }

/* Modal */
#cc-modal { position:fixed; inset:0; z-index:10000 }
.cc-modal-backdrop { position:absolute; inset:0; background:rgba(15,23,42,.6); backdrop-filter: blur(4px) }
.cc-modal-box {
  position:relative;
  max-width: 560px;
  margin: 5vh auto;
  background:#fff;
  border-radius: 16px;
  box-shadow: 0 24px 60px rgba(0,0,0,.3);
  max-height: 90vh;
  display: flex; flex-direction: column;
  animation: cc-slide-up .35s cubic-bezier(.16,1,.3,1);
}
.cc-modal-head { padding: 22px 24px 14px; border-bottom: 1px solid #e5e7eb; display:flex; justify-content:space-between; align-items:center }
.cc-modal-head h2 { font-size:1.2rem; margin:0; color:#0f172a; font-weight:800 }
.cc-modal-close { background:none; border:none; font-size:1.6rem; line-height:1; color:#6b7280; cursor:pointer; padding:0 6px }
.cc-modal-close:hover { color:#0f172a }
.cc-modal-body { padding:18px 24px; overflow-y:auto; flex:1 }
.cc-modal-foot { padding:16px 24px; border-top:1px solid #e5e7eb; display:flex; gap:10px; justify-content:flex-end; flex-wrap:wrap }

.cc-cat { padding: 14px 0; border-bottom: 1px solid #f3f4f6 }
.cc-cat:last-child { border:0 }
.cc-cat-head { display:flex; gap:14px; align-items:flex-start; justify-content:space-between }
.cc-cat-title { font-weight:700; color:#0f172a; font-size:.95rem; margin-bottom:4px }
.cc-cat-desc { color:#6b7280; font-size:.83rem; line-height:1.5 }

/* Toggle switch */
.cc-toggle { position:relative; display:inline-block; width:46px; height:24px; flex-shrink:0; cursor:pointer }
.cc-toggle input { opacity:0; width:0; height:0; position:absolute }
.cc-slider { position:absolute; inset:0; background:#cbd5e1; border-radius:24px; transition:.25s }
.cc-slider::before { content:''; position:absolute; height:18px; width:18px; left:3px; bottom:3px; background:#fff; border-radius:50%; transition:.25s }
.cc-toggle input:checked + .cc-slider { background:#2563eb }
.cc-toggle input:checked + .cc-slider::before { transform:translateX(22px) }
.cc-toggle-on { background:#10b981; color:#fff; padding:4px 10px; border-radius:999px; font-size:.74rem; font-weight:700; height:auto; width:auto; cursor:default; display:inline-flex; align-items:center }
.cc-toggle-disabled { opacity:.7 }

/* Lien permanent dans le footer pour réouvrir */
.cc-reopen-link { color:rgba(255,255,255,.55); text-decoration:none; cursor:pointer; background:none; border:none; padding:0; font-family:inherit; font-size:inherit }
.cc-reopen-link:hover { color:#fff }
