/* Cookie consent banner (bottom of page) */
.cc {
  position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 1000;
  max-width: 1160px; margin: 0 auto; max-height: calc(100vh - 32px); overflow-y: auto; overscroll-behavior: contain;
  background: #ffffff; color: #242D3A;
  border: 1px solid #E3E8EF; border-radius: 20px;
  box-shadow: 0 20px 50px -20px rgba(36, 45, 58, .35);
  font-family: "Inter", Aptos, Arial, sans-serif;
  animation: cc-in .35s cubic-bezier(.2, .7, .2, 1);
}
.cc[hidden] { display: none; }
@keyframes cc-in { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
.cc-inner { display: grid; grid-template-columns: 1fr auto; gap: 16px 32px; align-items: center; padding: 24px 28px; }
.cc-title { margin: 0 0 6px; font-size: 1.0625rem; font-weight: 700; letter-spacing: -.01em; }
.cc-text p { margin: 0; font-size: .9rem; line-height: 1.55; color: #5A6573; }
.cc-text a { color: #0060FC; font-weight: 600; }
.cc-prefs { grid-column: 1 / -1; grid-row: 2; }
.cc-prefs[hidden] { display: none; }
.cc-prefs fieldset { border: 0; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.cc-prefs legend { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.cc-opt { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; border: 1px solid #E3E8EF; border-radius: 14px; background: #F4F7FA; cursor: pointer; font-size: .875rem; }
.cc-opt input { width: 18px; height: 18px; margin: 2px 0 0; accent-color: #0060FC; flex: none; }
.cc-opt input:disabled { cursor: not-allowed; }
.cc-opt b { display: block; font-weight: 600; margin-bottom: 2px; }
.cc-opt small { display: block; color: #5A6573; font-size: .8125rem; line-height: 1.45; }
.cc-actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; }
.cc-prefs:not([hidden]) ~ .cc-actions { grid-column: 1 / -1; }
/* Accept and Reject are given equal prominence, as the ICO expects */
.cc-btn {
  font: inherit; font-size: .9375rem; font-weight: 600; cursor: pointer;
  padding: 12px 20px; border-radius: 12px; border: 1px solid #0060FC;
  background: #0060FC; color: #ffffff; white-space: nowrap;
  transition: background-color .2s, border-color .2s, color .2s;
}
.cc-btn:hover { background: #0047C2; border-color: #0047C2; }
.cc-btn[data-cc="manage"] { background: #ffffff; color: #242D3A; border-color: #E3E8EF; }
.cc-btn[data-cc="manage"]:hover { border-color: #242D3A; }
.cc-btn[hidden] { display: none; }
.cc-btn:focus-visible, .cc-opt:focus-within { outline: 2px solid #0060FC; outline-offset: 2px; }
html.cc-open body { padding-bottom: 220px; }
@media (max-width: 860px) {
  .cc-inner { grid-template-columns: 1fr; padding: 20px; }
  .cc-prefs { grid-row: auto; }
  .cc-prefs fieldset { grid-template-columns: 1fr; }
  .cc-actions { justify-content: stretch; }
  .cc-btn { flex: 1 1 auto; }
  html.cc-open body { padding-bottom: 360px; }
}
@media (max-width: 480px) {
  .cc { left: 8px; right: 8px; bottom: 8px; }
  .cc-actions { flex-direction: column; }
  .cc-actions .cc-btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .cc { animation: none; } }
