/* Shared privacy UI aligned with The Collective's black, white, and #ff4148 palette. */
.collective-cookie-banner[hidden], .collective-embed-consent[hidden] { display: none !important; }
.collective-cookie-banner, .collective-cookie-dialog {
  box-sizing: border-box;
  --cookie-accent: #ff4148;
  --cookie-surface: #111113;
  --cookie-text: #f6f6f2;
  --cookie-muted: #b2b2b8;
  color: var(--cookie-text);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 13px;
  line-height: 1.48;
}
.collective-cookie-banner *, .collective-cookie-dialog *, .collective-embed-consent * { box-sizing: border-box; }

/* Small, floating consent card — not an edge-to-edge bottom bar. */
.collective-cookie-banner {
  position: fixed;
  top: auto;
  right: auto;
  bottom: max(12px, env(safe-area-inset-bottom));
  left: 50%;
  transform: translateX(-50%);
  width: min(570px, calc(100vw - 28px));
  max-height: calc(100dvh - 24px);
  overflow-y: auto;
  z-index: 2147483000;
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 15px 17px;
  border-radius: 15px;
  border: 1px solid rgba(255,255,255,.20);
  background: #111113;
  box-shadow: 0 10px 40px rgba(0,0,0,.68);
}
.collective-cookie-banner-copy { min-width: 0; }
.collective-cookie-eyebrow {
  display: block;
  margin: 0 0 3px;
  font-size: 10px;
  letter-spacing: .12em;
  font-weight: 800;
  color: #ff6b70;
}
.collective-cookie-banner-copy strong { display: block; font-size: 16px; line-height: 1.25; letter-spacing: -.02em; }
.collective-cookie-banner-copy p, .collective-cookie-dialog p { color: var(--cookie-muted); margin: 4px 0 0; }
.collective-cookie-banner-copy p { font-size: 12px; line-height: 1.5; }
.collective-cookie-banner a, .collective-cookie-dialog a { color: #ff8388; text-decoration: underline; text-underline-offset: 3px; }
.collective-cookie-banner a:hover, .collective-cookie-dialog a:hover { color: #ffb0b3; }
.collective-cookie-banner-actions { display: grid; grid-template-columns: .9fr 1fr 1.5fr; gap: 8px; width: 100%; }
.collective-cookie-banner button, .collective-cookie-dialog button, .collective-embed-consent button {
  font: inherit;
  font-weight: 700;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.43);
  padding: 9px 12px;
  color: var(--cookie-text, #f6f6f2);
  background: #252527;
  cursor: pointer;
  min-height: 44px;
  line-height: 1.25;
}
/* Reject and Accept both stay clearly visible, with equally easy single-click actions. */
.collective-cookie-banner [data-cookie-reject] { background: #252527; border-color: rgba(255,255,255,.62); }
.collective-cookie-banner [data-cookie-accept], .collective-cookie-dialog [data-cookie-save], .collective-embed-consent button {
  background: #f6f6f2;
  color: #0b0b0d;
  border-color: #f6f6f2;
}
.collective-cookie-banner button:hover, .collective-cookie-dialog button:hover, .collective-embed-consent button:hover { filter: brightness(1.12); }
.collective-cookie-banner button:focus-visible, .collective-cookie-dialog button:focus-visible, .collective-embed-consent button:focus-visible,
.collective-footer-cookie-button:focus-visible, .collective-privacy-preferences:focus-visible {
  outline: 3px solid #ff4148;
  outline-offset: 3px;
}

.collective-cookie-dialog {
  width: min(450px, calc(100vw - 26px));
  max-height: min(670px, calc(100dvh - 24px));
  overflow: auto;
  padding: 0;
  border: 1px solid #414146;
  border-radius: 16px;
  background: #141416;
  box-shadow: 0 20px 70px rgba(0,0,0,.7);
}
.collective-cookie-dialog::backdrop { background: rgba(0,0,0,.8); }
.collective-cookie-dialog-inner { padding: 20px; }
.collective-cookie-dialog-heading { display: flex; align-items: center; justify-content: space-between; }
/* A centered vector X avoids the optical offset of the font glyph. */
.collective-cookie-dialog .collective-cookie-close {
  display: grid;
  place-items: center;
  flex: 0 0 44px;
  padding: 0;
  width: 44px;
  height: 44px;
  line-height: 1;
  appearance: none;
}
.collective-cookie-dialog .collective-cookie-close svg {
  display: block;
  width: 16px;
  height: 16px;
  stroke: currentColor;
}
.collective-cookie-dialog h2 { color: #fff; font-size: 22px; letter-spacing: -.04em; margin: 2px 0 5px; }
.collective-cookie-dialog #collectiveCookieDialogDescription { margin-bottom: 12px; font-size: 13px; }
.collective-cookie-choice {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border: 1px solid #37373d;
  border-radius: 12px;
  padding: 12px;
  margin-top: 10px;
  color: #fff;
}
.collective-cookie-choice strong { font-size: 13px; }
.collective-cookie-choice p { font-size: 12px; line-height: 1.45; }
.collective-cookie-required { color: #ff9296; font-size: 11px; white-space: nowrap; font-weight: 700; }
.collective-cookie-media-choice { cursor: pointer; }
.collective-cookie-media-choice input { width: 21px; height: 21px; flex: 0 0 auto; cursor: pointer; accent-color: #ff4148; }
.collective-cookie-dialog-actions { display: flex; gap: 8px; margin: 15px 0 11px; }
.collective-cookie-dialog-actions button { flex: 1; }
.collective-footer-cookie-button { font: inherit; color: inherit; background: transparent; padding: 0; border: 0; cursor: pointer; text-decoration: none; }
.collective-footer-cookie-button:hover { color: #ff8388; text-decoration: underline; }
.collective-privacy-preferences { padding: 0; border: 0; background: transparent; color: #ff8388; text-decoration: underline; cursor: pointer; font: inherit; text-underline-offset: 3px; }

.collective-embed-consent {
  box-sizing: border-box;
  min-height: 152px;
  height: 100%;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 19px;
  border-radius: inherit;
  text-align: center;
  background: linear-gradient(145deg,#19191b,#09090a);
  color: #f4f5f3;
  font-family: Inter,system-ui,sans-serif;
}
.spotify-embed-active .collective-embed-consent { min-height: 352px; }
.spotify-embed-previous .collective-embed-consent { min-height: 152px; }
.collective-embed-consent-mark { color: #ff4148; font-size: 24px; }
.collective-embed-consent strong { font-size: 15px; }
.collective-embed-consent p { max-width: 375px; font-size: 12px; color: #b8b8bc; line-height: 1.5; margin: 0; }
.collective-embed-consent button { min-height: 38px; padding: 7px 16px; margin-top: 5px; font-size: 12px; }
.spotify-embed-shell iframe[hidden] { display: none !important; }
/* Preserve the site's existing generous footer tap targets. */
.footer-links .collective-footer-cookie-button { display: inline-flex; align-items: center; min-height: 44px; padding: 0 4px; }

@media (max-width: 560px) {
  .collective-cookie-banner { width: calc(100vw - 22px); padding: 13px 14px; gap: 10px; border-radius: 14px; }
  .collective-cookie-banner-copy strong { font-size: 15px; }
  .collective-cookie-banner-copy p { font-size: 11.5px; }
  .collective-cookie-banner-actions { grid-template-columns: .87fr 1fr 1.44fr; gap: 6px; }
  .collective-cookie-banner-actions button { padding: 8px 5px; font-size: 11px; }
  .collective-cookie-dialog-inner { padding: 16px; }
  .collective-cookie-dialog h2 { font-size: 20px; }
  .collective-cookie-choice { align-items: flex-start; }
  .collective-cookie-required { white-space: normal; text-align: right; }
}
@media (max-width: 340px) {
  .collective-cookie-banner-actions { grid-template-columns: 1fr 1fr; }
  .collective-cookie-banner [data-cookie-accept] { grid-column: 1 / -1; }
}
@media (prefers-reduced-motion: reduce) {
  .collective-cookie-banner, .collective-cookie-dialog { scroll-behavior: auto; }
}
