/* ============================================================
   features/analytics/analytics.css — .dd-consent
   Cookie consent banner (issue #74). Bottom-anchored strip on
   desktop, full-width card on mobile. Hidden until analytics.js
   decides the visitor has no stored choice.
   ============================================================ */

/* [hidden] alone loses to the display below, so restate it. The banner ships
   hidden and only JS reveals it — a visitor who already chose never sees a
   flash of it on the way to being dismissed. */
.dd-consent[hidden] { display: none; }

.dd-consent {
  position: fixed;
  z-index: var(--z-toast);
  left: var(--space-6);
  right: var(--space-6);
  bottom: var(--space-6);
  display: flex;
  justify-content: center;
  pointer-events: none;   /* the inner card takes the clicks */
}

.dd-consent__inner {
  pointer-events: auto;
  display: flex;
  align-items: center;
  gap: var(--space-6);
  width: min(760px, 100%);
  padding: var(--space-5) var(--space-6);
  background: var(--surface);
  color: var(--text);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);

  opacity: 0;
  transform: translateY(12px);
  transition: opacity var(--dur-base) var(--ease-dreamy),
              transform var(--dur-base) var(--ease-dreamy);
}
.dd-consent.is-in .dd-consent__inner {
  opacity: 1;
  transform: none;
}

.dd-consent__copy { flex: 1 1 auto; }

.dd-consent__title {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin: 0 0 var(--space-2);
  font-size: var(--fs-label);
  letter-spacing: 0.08em;
  text-transform: lowercase;
  color: var(--text-soft);
}

.dd-consent__body {
  margin: 0;
  font-size: var(--fs-small);
  line-height: 1.5;
  color: var(--text-soft);
}

.dd-consent__link {
  color: var(--link);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.dd-consent__actions {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: var(--space-3);
}

/* Equal footprint for both choices — the reject button must never be the
   smaller target (issue #74: real accept/reject parity, no dark patterns). */
.dd-consent__btn {
  min-width: 132px;
  justify-content: center;
}

@media (max-width: 720px) {
  .dd-consent {
    left: var(--space-4);
    right: var(--space-4);
    bottom: var(--space-4);
  }
  .dd-consent__inner {
    flex-direction: column;
    align-items: stretch;
    gap: var(--space-4);
  }
  .dd-consent__actions > * { flex: 1 1 0; }
  .dd-consent__btn { min-width: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .dd-consent__inner {
    transition: none;
    transform: none;
  }
}
