.cookie-consent{
  position:fixed; left:16px; right:16px; bottom:16px; z-index:60;
  max-width:640px; margin:0 auto;
  background:var(--paper); border:1px solid var(--line); border-radius:8px;
  box-shadow:0 20px 40px rgba(0,0,0,0.18);
  padding:22px 24px;
  opacity:0; transform:translateY(16px);
  transition:opacity var(--m-base) var(--ease-out-snap), transform var(--m-base) var(--ease-out-snap);
}
.cookie-consent.is-visible{ opacity:1; transform:translateY(0); }
@media(max-width:819px){ .cookie-consent{ bottom:calc(52px + 16px); } }
.cookie-consent p{ font-size:0.92rem; color:var(--ink); }
.cookie-consent a{ color:var(--teal-deep); }

.cookie-consent-categories{ display:flex; flex-direction:column; gap:10px; margin-top:16px; }
.cookie-cat{ display:flex; align-items:flex-start; gap:10px; }
.cookie-cat-badge{
  flex-shrink:0; font-family:"IBM Plex Mono",monospace; font-size:0.62rem; text-transform:uppercase; letter-spacing:0.06em;
  padding:3px 8px; border-radius:100px; border:1px solid var(--line); margin-top:1px;
}
.cookie-cat-badge.cookie-cat-on{ color:var(--teal-deep); border-color:var(--teal); }
.cookie-cat-badge.cookie-cat-optional{ color:var(--taupe); }
.cookie-cat-body strong{ display:block; font-size:0.86rem; }
.cookie-cat-desc{ font-size:0.8rem; color:var(--taupe); }

.cookie-consent-actions{ display:flex; flex-wrap:wrap; gap:12px; margin-top:20px; }
.cookie-consent-btn{
  font-family:"Instrument Sans",sans-serif; font-size:0.88rem; padding:10px 22px; border-radius:100px;
  border:1px solid var(--ink); background:none; color:var(--ink); cursor:pointer;
  transition:background var(--m-instant) ease, color var(--m-instant) ease, border-color var(--m-instant) ease;
}
.cookie-consent-btn-primary{ background:var(--teal-deep); border-color:var(--teal-deep); color:var(--paper); }
.cookie-consent-btn-primary:hover{ opacity:0.88; }
.cookie-consent-btn-muted{ border-color:var(--line); color:var(--taupe); }
.cookie-consent-btn-muted:hover{ border-color:var(--taupe); color:var(--ink); }

@media (prefers-reduced-motion: reduce){
  .cookie-consent{ transition:none; }
}
