/* StudioLot cookie consent — themed with tokens.css custom properties */
.cc-root { position: fixed; inset: auto 0 0 0; z-index: 200; display: flex; justify-content: center; padding: 18px clamp(14px,4vw,28px); pointer-events: none; }
.cc-root[hidden] { display: none; }
.cc-card {
  pointer-events: auto;
  width: 100%; max-width: 560px;
  background: rgba(16,22,30,.94);
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 16px;
  box-shadow: 0 24px 60px -20px rgba(0,0,0,.85);
  padding: 22px 24px;
  font-family: var(--font);
  color: var(--text-1);
  animation: cc-rise .4s cubic-bezier(.16,1,.3,1) both;
}
@keyframes cc-rise { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .cc-card { animation: none; } }

.cc-title { font-size: 15px; font-weight: 700; letter-spacing: -.01em; margin: 0 0 8px; }
.cc-body { font-size: 13.5px; line-height: 1.6; color: var(--text-2); margin: 0 0 16px; }
.cc-body a { color: var(--brand-bright); text-decoration: none; }
.cc-body a:hover { color: var(--text-1); }

.cc-actions { display: flex; flex-wrap: wrap; gap: 9px; }
.cc-btn {
  font-family: var(--font); font-size: 13.5px; font-weight: 650; letter-spacing: -.01em;
  padding: 10px 18px; border-radius: 9px; cursor: pointer;
  border: 1px solid var(--border); background: rgba(255,255,255,.04); color: var(--text-1);
  transition: all .2s cubic-bezier(.4,0,.2,1);
}
.cc-btn:hover { border-color: var(--brand-bright); transform: translateY(-1px); }
.cc-btn-primary { border: none; background: linear-gradient(135deg,#2C7A7B,#1F5F60); color: #fff; box-shadow: 0 2px 12px rgba(44,122,123,.4); }
.cc-btn-primary:hover { box-shadow: 0 8px 22px rgba(44,122,123,.5); }
.cc-btn-link { background: none; border: none; color: var(--text-3); padding: 10px 6px; }
.cc-btn-link:hover { color: var(--text-1); transform: none; }
.cc-actions .cc-spacer { flex: 1 1 auto; }

/* preferences panel */
.cc-prefs { margin: 4px 0 16px; display: none; flex-direction: column; gap: 2px; }
.cc-prefs.cc-open { display: flex; }
.cc-cat { display: flex; align-items: flex-start; gap: 12px; padding: 12px 0; border-top: 1px solid var(--border-soft); }
.cc-cat:first-child { border-top: none; }
.cc-cat .cc-cat-txt { flex: 1; }
.cc-cat h5 { margin: 0 0 3px; font-size: 13.5px; font-weight: 700; color: var(--text-1); }
.cc-cat p { margin: 0; font-size: 12.5px; line-height: 1.5; color: var(--text-3); }
.cc-cat .cc-fixed { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--brand-bright); padding-top: 3px; white-space: nowrap; }

/* toggle */
.cc-switch { position: relative; flex: none; width: 40px; height: 22px; margin-top: 1px; }
.cc-switch input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.cc-track { position: absolute; inset: 0; border-radius: 999px; background: var(--border); transition: background .2s ease; }
.cc-track::after { content: ''; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: #fff; transition: transform .2s ease; }
.cc-switch input:checked + .cc-track { background: var(--brand); }
.cc-switch input:checked + .cc-track::after { transform: translateX(18px); }

@media (max-width: 520px) {
  .cc-actions { flex-direction: column-reverse; align-items: stretch; }
  .cc-actions .cc-spacer { display: none; }
  .cc-btn { width: 100%; text-align: center; }
}
