/* Consent banner. Deliberately plain and bottom-anchored: it must not compete
   with the hero on a page whose whole job is the CTA above it. */
.cft-consent {
  position: fixed;
  z-index: 2147483000;
  left: 16px;
  right: 16px;
  bottom: 16px;
  margin: 0 auto;
  max-width: 560px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  border-radius: 14px;
  background: #101010;
  color: #f4f4f2;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.28);
  font: 400 13px/1.45 -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
.cft-consent__text { margin: 0; flex: 1 1 260px; }
.cft-consent__text a { color: inherit; text-decoration: underline; }
.cft-consent__actions { display: flex; gap: 8px; flex: 0 0 auto; }
.cft-consent__btn {
  cursor: pointer;
  border: 0;
  border-radius: 999px;
  padding: 8px 16px;
  font: inherit;
  font-weight: 500;
  background: #f4f4f2;
  color: #101010;
}
.cft-consent__btn--ghost { background: transparent; color: #f4f4f2; border: 1px solid rgba(244, 244, 242, 0.32); }
.cft-consent__btn:hover { opacity: 0.88; }
@media (prefers-reduced-motion: no-preference) {
  .cft-consent { animation: cft-consent-in 220ms ease-out both; }
  @keyframes cft-consent-in { from { transform: translateY(8px); opacity: 0; } to { transform: none; opacity: 1; } }
}
