.cookie-banner {
  position: fixed;
  z-index: 20;
  right: 16px;
  bottom: 16px;
  width: min(420px, calc(100vw - 32px));
  padding: 20px;
  border: 1px solid rgba(41, 69, 68, .18);
  border-radius: 16px;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 18px 50px rgba(31, 48, 54, .2);
  backdrop-filter: blur(14px);
  transform: translateY(calc(100% + 32px)) scale(.96);
  opacity: 0;
  transition: opacity .35s ease, transform .45s cubic-bezier(.22, 1, .36, 1);
}

.cookie-banner.is-visible {
  transform: translateY(0) scale(1);
  opacity: 1;
}

.cookie-banner.is-closing {
  transform: translateY(calc(100% + 32px)) scale(.96);
  opacity: 0;
  transition-duration: .28s;
}

.cookie-banner p { margin: 0 0 16px; color: #304044; line-height: 1.55; }
.cookie-banner-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.cookie-banner-actions button {
  min-width: 112px;
  padding: 10px 15px;
  border: 1px solid #37655e;
  border-radius: 9px;
  background: #37655e;
  color: #fff;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
  transition: transform .2s ease, background-color .2s ease, box-shadow .2s ease;
}
.cookie-banner-actions button:hover { background: #2c514b; box-shadow: 0 6px 16px rgba(55, 101, 94, .22); transform: translateY(-2px); }
.cookie-banner-actions button:active { transform: translateY(0); }
.cookie-banner-actions button[data-cookie-consent="reject"] { background: transparent; color: #37655e; }
.cookie-banner-actions button[data-cookie-consent="reject"]:hover { background: #edf4f2; }

@media (prefers-reduced-motion: reduce) {
  .cookie-banner { transition: none; }
  .cookie-banner-actions button { transition: none; }
}
