/* ==========================================================================
   Cookie consent banner — bottom-left, shown on first visit only.
   Required given third-party tracking (MNTN, Madgicx/iHeart, Birdeye).
   A11Y: role="dialog" aria-modal="false" with aria-labelledby/﻿describedby;
   not a focus trap (non-blocking), but Accept/Decline are reachable and the
   banner is dismissible by keyboard. Choice persisted in localStorage.
   ========================================================================== */
.cookie-consent {
  position: fixed;
  left: var(--space-2);
  bottom: var(--space-2);
  z-index: var(--z-cookie);
  width: min(420px, calc(100vw - var(--space-3)));
  background: #ffffff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-xl);
  padding: var(--space-3);
  transform: translateY(calc(100% + var(--space-4)));
  opacity: 0;
  transition: transform var(--duration-slow) var(--ease-out), opacity var(--duration-slow) var(--ease-out);
}
.cookie-consent[data-visible='true'] { transform: translateY(0); opacity: 1; }
/* Keep it clear of the mobile CTA bar on small screens. */
@media (max-width: 767.98px) {
  .cookie-consent { bottom: calc(72px + var(--space-1)); }
}

.cookie-consent__title {
  display: flex; align-items: center; gap: 0.5rem;
  font-family: var(--font-body);
  font-size: var(--text-base);
  font-weight: var(--weight-semibold);
  color: var(--color-primary);
  margin-bottom: 0.5rem;
}
.cookie-consent__title .icon { color: var(--color-accent); }
.cookie-consent__body { font-size: var(--text-sm); color: var(--color-text-muted); line-height: var(--leading-normal); }
.cookie-consent__body a { color: var(--color-accent-hover); }
.cookie-consent__actions {
  display: flex; flex-wrap: wrap; gap: var(--space-1);
  margin-top: var(--space-2);
}
.cookie-consent__actions .btn { flex: 1 1 auto; }
