.consent-banner {
  --consent-paper: rgba(255, 250, 244, .97);
  --consent-ink: #4e2d22;
  --consent-muted: #6f564c;
  --consent-line: rgba(105, 71, 54, .18);
  --consent-accent: #aa7444;
  position: fixed;
  right: clamp(.5rem, 1.5vw, 1rem);
  bottom: clamp(.5rem, 1.5vw, 1rem);
  left: clamp(.5rem, 1.5vw, 1rem);
  z-index: 1300;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1.25rem;
  align-items: center;
  width: min(1040px, calc(100vw - 1rem));
  margin-inline: auto;
  padding: 1rem 1.1rem;
  border: 1px solid var(--consent-line);
  border-radius: 24px;
  color: var(--consent-ink);
  background: var(--consent-paper);
  box-shadow: 0 24px 70px rgba(84, 53, 35, .18);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
  opacity: 0;
  pointer-events: none;
  transform: translate3d(0, 12px, 0);
  transition: opacity .3s cubic-bezier(.16, 1, .3, 1), transform .3s cubic-bezier(.16, 1, .3, 1);
}

.consent-banner[hidden] { display: none; }
.consent-banner.is-visible { opacity: 1; pointer-events: auto; transform: none; }
.consent-banner__copy { min-width: 0; }
.consent-banner__copy strong { display: block; color: var(--consent-ink); font-family: var(--serif, "Cormorant Garamond", Georgia, serif); font-size: 1.28rem; font-weight: 600; line-height: 1; }
.consent-banner__copy p { max-width: 62rem; margin: .42rem 0 0; color: var(--consent-muted); font-size: .82rem; line-height: 1.5; }
.consent-banner__actions { display: inline-flex; align-items: center; gap: .65rem; white-space: nowrap; }
.consent-banner__button { min-height: 44px; padding: .72rem 1.15rem; border: 1px solid var(--consent-accent); border-radius: 999px; color: #fffaf4; background: var(--consent-accent); font: inherit; font-size: .8rem; font-weight: 750; cursor: pointer; }
.consent-banner__button:hover { background: #83512d; }
.consent-banner__button--secondary { border-color: var(--consent-line); color: var(--consent-ink); background: transparent; }
.consent-banner__button--secondary:hover { border-color: var(--consent-ink); color: var(--consent-ink); background: rgba(232, 211, 187, .34); }

.footer .consent-settings {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0;
  border: 0;
  color: #fff;
  background: transparent;
  font: inherit;
  font-size: 14px;
  text-align: left;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}

@media (max-width: 760px) {
  .consent-banner { grid-template-columns: 1fr; gap: .85rem; padding: 1rem; border-radius: 18px; }
  .consent-banner__actions { display: grid; grid-template-columns: 1fr 1fr; white-space: normal; }
}

@media (max-width: 520px) {
  .consent-banner__actions { grid-template-columns: 1fr; }
  .consent-banner__button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .consent-banner { transition-duration: .01ms; }
}
