/* devtronic — gestionnaire de consentement (self-hosted, CSP-safe, charte du site). */
.dtc-banner, .dtc-modal { --dtc-ink:#1d1d1f; --dtc-muted:#6e6e73; --dtc-line:#e5e5e8;
  --dtc-orange:#ff3b00; --dtc-accent:#c73200; --dtc-paper:#fff; }
[hidden].dtc-banner, [hidden].dtc-modal { display:none !important; }

/* Bandeau bas de page — non bloquant */
.dtc-banner { position:fixed; left:0; right:0; bottom:0; z-index:9000;
  padding:16px clamp(14px,4vw,28px); display:flex; justify-content:center;
  animation:dtc-up .35s cubic-bezier(.22,.61,.36,1) both; }
@media (prefers-reduced-motion:reduce){ .dtc-banner{ animation:none; } }
@keyframes dtc-up { from{ transform:translateY(16px); opacity:0 } to{ transform:none; opacity:1 } }
.dtc-banner__in { width:min(980px,100%); background:var(--dtc-paper);
  border:1px solid var(--dtc-line); border-radius:18px;
  box-shadow:0 18px 50px rgba(20,17,12,.16); padding:20px 22px;
  display:flex; align-items:center; gap:26px; }
.dtc-banner__title { font-size:16px; font-weight:650; letter-spacing:-.01em; margin:0 0 4px; }
.dtc-banner__txt p:last-child { font-size:13px; color:var(--dtc-muted); line-height:1.6; margin:0; }
.dtc-banner__txt a { color:var(--dtc-accent); text-decoration:underline; }
.dtc-banner__btns { display:flex; gap:9px; flex:none; }

/* Boutons (refus aussi visible que l'acceptation — exigence CNIL) */
.dtc-btn { font:inherit; font-size:13px; font-weight:550; cursor:pointer;
  border-radius:999px; padding:11px 18px; min-height:44px; border:1px solid var(--dtc-ink);
  transition:background .18s, transform .18s, border-color .18s; white-space:nowrap; }
.dtc-btn:hover { transform:translateY(-1px); }
.dtc-btn--solid { background:var(--dtc-ink); color:#fff; }
.dtc-btn--solid:hover { background:#39393c; }
.dtc-btn--ghost { background:transparent; color:var(--dtc-ink); border-color:#c9c9cf; }
.dtc-btn--ghost:hover { background:#f5f5f7; }
.dtc-btn:focus-visible, .dtc-switch input:focus-visible + span,
.dtc-link:focus-visible { outline:3px solid var(--dtc-accent); outline-offset:3px; }

/* Panneau de préférences (modal) */
.dtc-modal { position:fixed; inset:0; z-index:9100; display:flex;
  align-items:center; justify-content:center; padding:18px; }
.dtc-modal__backdrop { position:absolute; inset:0; background:rgba(20,17,12,.55);
  backdrop-filter:blur(3px); }
.dtc-modal__card { position:relative; background:var(--dtc-paper); color:var(--dtc-ink);
  width:min(560px,100%); max-height:92vh; overflow:auto; border-radius:22px;
  padding:30px clamp(20px,4vw,34px) 26px; box-shadow:0 30px 80px rgba(20,17,12,.4);
  animation:dtc-pop .28s cubic-bezier(.22,.61,.36,1) both; }
@media (prefers-reduced-motion:reduce){ .dtc-modal__card{ animation:none; } }
@keyframes dtc-pop { from{ transform:translateY(10px) scale(.98); opacity:0 } to{ transform:none; opacity:1 } }
.dtc-modal__x { position:absolute; top:16px; right:16px; width:34px; height:34px;
  border:0; border-radius:50%; background:#f5f5f7; color:var(--dtc-ink); font-size:16px;
  cursor:pointer; line-height:1; }
.dtc-modal__x:hover { background:#ebebed; }
.dtc-eyebrow { font-size:11px; letter-spacing:.05em; text-transform:uppercase;
  color:var(--dtc-muted); margin:0 0 8px; }
.dtc-modal__card h2 { font-size:27px; letter-spacing:-.02em; margin:0 0 10px; }
.dtc-lead { font-size:14px; color:var(--dtc-muted); line-height:1.6; margin:0 0 20px; }
.dtc-cat { border-top:1px solid var(--dtc-line); padding:16px 0; }
.dtc-cat__head { display:flex; align-items:center; gap:12px; margin-bottom:7px; }
.dtc-cat__head > span:not(.dtc-badge) { font-size:15px; font-weight:600; }
.dtc-cat p { font-size:12.5px; color:var(--dtc-muted); line-height:1.6; margin:0; }
.dtc-badge { margin-left:auto; font-size:10px; font-weight:600; color:var(--dtc-accent);
  background:#ffe9e1; padding:4px 10px; border-radius:999px; }

/* Interrupteur */
.dtc-switch { position:relative; display:inline-flex; flex:none; }
.dtc-switch input { position:absolute; opacity:0; width:44px; height:26px; margin:0; cursor:pointer; }
.dtc-switch span { width:44px; height:26px; border-radius:999px; background:#d1d1d6;
  transition:background .18s; display:inline-block; }
.dtc-switch span::after { content:""; position:absolute; top:3px; left:3px; width:20px; height:20px;
  border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.25); transition:transform .18s; }
.dtc-switch input:checked + span { background:var(--dtc-orange); }
.dtc-switch input:checked + span::after { transform:translateX(18px); }

.dtc-modal__actions { display:flex; gap:10px; margin-top:22px; }
.dtc-modal__actions .dtc-btn { flex:1; justify-content:center; display:inline-flex; align-items:center; }
.dtc-fine { font-size:11px; color:var(--dtc-muted); line-height:1.6; margin:16px 0 0; }

/* Lien « Gérer mes cookies » en pied de page */
.dtc-link { font:inherit; font-size:inherit; color:inherit; background:none; border:0;
  padding:0; cursor:pointer; text-decoration:none; }
.dtc-link:hover { color:var(--dtc-orange); }

@media (max-width:720px){
  .dtc-banner__in { flex-direction:column; align-items:stretch; gap:16px; padding:18px; }
  .dtc-banner__btns { flex-wrap:wrap; }
  .dtc-banner__btns .dtc-btn { flex:1 1 auto; justify-content:center; display:inline-flex; align-items:center; }
}
