/* Cookie consent banner — shared across landing/index.html and the three
   legal pages (terms/privacy/cookies). Linked once per page; the banner
   DOM is injected at runtime by cookie-consent.js so no per-page markup
   duplication.

   POLISH PASS (2026-06-24, post-launch direction):
   - Slim flush bar at the bottom edge (not a floating elevated card).
   - Hairline top border, no drop shadow, no rounded card.
   - Full-width; does NOT overlap page content (cookie-consent.js applies
     a matching padding-bottom to <body> so hero CTAs / inputs sit
     above it).
   - Background is the dark rail (`--rail` on the design system) so the
     bar reads as a distinct tray below the page surface while staying
     on-system. (The dark-rail palette is the documented bar/footer
     surface — same one used by the marketing footer + app sidebar.)
   - Both buttons quiet/equal: outlined-ghost pills, identical size +
     weight + colour. Compliance + visual humility: the cream metal
     pill is reserved for real primary CTAs (Join waitlist), not for
     consent. Reject-left, Accept-right. */

.cookie-banner {
  position: fixed; left: 0; right: 0; bottom: 0;
  background: #1f2024;            /* documented --rail */
  color: rgba(255, 255, 255, 0.85);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding: 16px 24px;
  display: none; z-index: 9999;
  font-family: 'Geist', -apple-system, 'Inter', 'Helvetica Neue', sans-serif;
  font-size: 13px; line-height: 1.5;
}
.cookie-banner.is-open { display: block; }
.cookie-banner .cb-body {
  max-width: 1280px; margin: 0 auto;
  display: flex; align-items: center; gap: 24px;
}
.cookie-banner .cb-text {
  flex: 1 1 auto; min-width: 0;
  color: rgba(255, 255, 255, 0.7);
}
.cookie-banner .cb-text a {
  color: rgba(255, 255, 255, 0.9);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: rgba(255, 255, 255, 0.35);
}
.cookie-banner .cb-text a:hover { text-decoration-color: #fff; color: #fff; }
.cookie-banner .cb-actions { display: flex; gap: 8px; flex-shrink: 0; }
.cookie-banner button.cb-btn {
  appearance: none;
  border: 1px solid rgba(255, 255, 255, 0.25);
  background: transparent;
  color: rgba(255, 255, 255, 0.85);
  padding: 7px 18px;
  border-radius: 999px;
  font: inherit; font-weight: 500; font-size: 12px;
  letter-spacing: 0;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s, color 0.15s;
}
.cookie-banner button.cb-btn:hover {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.5);
  color: #fff;
}

/* Mobile: stack copy on top, split the two buttons 50/50 below. Same
   pattern as desktop (flush bar, quiet buttons) — just wrapped. */
@media (max-width: 720px) {
  .cookie-banner { padding: 14px 16px 16px; }
  .cookie-banner .cb-body { flex-direction: column; align-items: stretch; gap: 12px; }
  .cookie-banner .cb-actions { width: 100%; }
  .cookie-banner button.cb-btn { flex: 1; padding: 9px 16px; }
}
