.privacy-choices {
  position: fixed;
  right: var(--snow-space-md);
  bottom: var(--snow-space-md);
  left: var(--snow-space-md);
  z-index: 300;
  width: min(44rem, calc(100% - 2 * var(--snow-space-md)));
  max-width: none;
  margin: 0 auto;
  padding: 0;
  border: 1px solid var(--snow-color-border-strong);
  border-radius: var(--snow-radius-lg);
  background: var(--snow-color-surface-overlay);
  color: var(--snow-color-text-default);
  box-shadow: var(--snow-shadow-lg);
  font-family: var(--snow-font-family-sans);
}

.privacy-choices:not([open]) {
  display: none;
}

.privacy-choices__content {
  padding: var(--snow-space-lg);
}

.privacy-choices__title {
  margin: 0 0 var(--snow-space-sm);
  font-size: 1.5rem;
  line-height: 1.25;
}

.privacy-choices p {
  margin: var(--snow-space-sm) 0 0;
  color: var(--snow-color-text-muted);
  font-size: var(--snow-type-size-label);
  line-height: 1.5;
}

.privacy-choices a,
.footer-privacy-button {
  color: var(--snow-color-action-secondary-text);
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.privacy-choices__details {
  font-size: var(--snow-type-size-label);
}

.privacy-choices__actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--snow-space-sm);
  margin-top: var(--snow-space-lg);
}

.privacy-choices__button {
  min-height: 2.75rem;
  padding: var(--snow-space-sm) var(--snow-space-md);
  border: 1px solid var(--snow-color-action-secondary-border);
  border-radius: var(--snow-radius-sm);
  background: var(--snow-color-action-secondary-background);
  color: var(--snow-color-action-secondary-text);
  font: inherit;
  font-weight: var(--snow-type-weight-semibold);
  cursor: pointer;
}

.privacy-choices__button:hover {
  background: var(--snow-color-action-secondary-hover-background);
}

.privacy-choices__button:focus-visible,
.footer-privacy-button:focus-visible {
  outline: 2px solid var(--snow-color-action-primary-focus-ring);
  outline-offset: 2px;
  box-shadow: none;
}

.footer-privacy-button {
  padding: 0;
  border: 0;
  background: transparent;
  font: inherit;
  cursor: pointer;
}

.footer-privacy-button:hover {
  color: var(--snow-color-text-default);
}

@media (max-width: 540px) {
  .privacy-choices {
    right: var(--snow-space-sm);
    bottom: var(--snow-space-sm);
    left: var(--snow-space-sm);
    width: calc(100% - 2 * var(--snow-space-sm));
  }

  .privacy-choices__content {
    padding: var(--snow-space-md);
  }

  .privacy-choices__actions {
    grid-template-columns: 1fr;
  }
}

@media (min-width: 800px) {
  .privacy-choices {
    right: var(--snow-space-md);
    left: var(--snow-space-md);
    width: auto;
    margin: 0;
  }

  .privacy-choices__content {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr) minmax(19rem, auto);
    grid-template-rows: auto auto;
    column-gap: 0.75rem;
    row-gap: var(--snow-space-xs);
    align-items: center;
    padding: 0.75rem;
  }

  .privacy-choices__title {
    grid-column: 1;
    grid-row: 1 / span 2;
    margin: 0;
    font-size: 1.125rem;
  }

  .privacy-choices p {
    margin: 0;
    font-size: 0.8125rem;
    line-height: 1.4;
  }

  .privacy-choices__content > p {
    grid-column: 2;
  }

  .privacy-choices__details {
    grid-row: 2;
  }

  .privacy-choices__actions {
    grid-column: 3;
    grid-row: 1 / span 2;
    grid-template-columns: repeat(2, minmax(9.5rem, 1fr));
    gap: var(--snow-space-sm);
    align-self: center;
    margin-top: 0;
  }

  .privacy-choices__button {
    min-height: 2.25rem;
    padding: var(--snow-space-xs) var(--snow-space-sm);
    font-size: 0.8125rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .privacy-choices,
  .privacy-choices * {
    scroll-behavior: auto;
  }
}
