.tt-privacy {
  position: fixed;
  z-index: 10000;
  inset-inline: max(1rem, env(safe-area-inset-left)) max(1rem, env(safe-area-inset-right));
  bottom: max(1rem, env(safe-area-inset-bottom));
  max-width: 920px;
  margin-inline: auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: clamp(1.5rem, 4vw, 4rem);
  padding: clamp(1.5rem, 3vw, 2.5rem);
  background: var(--workshop, #0c1216);
  color: #fff;
  box-shadow: 0 24px 50px rgba(0,0,0,.24);
}

.tt-privacy[hidden],
.tt-privacy-choice[hidden] {
  display: none;
}

.tt-privacy__copy {
  min-width: 0;
}

.tt-privacy h2 {
  max-width: 18ch;
  margin: 0 0 .7rem;
  color: #fff;
  font-family: var(--display, inherit);
  font-size: clamp(1.7rem, 2.8vw, 2.6rem);
  line-height: .98;
  letter-spacing: -.025em;
}

.tt-privacy p {
  max-width: 62ch;
  margin: 0;
  color: #fff;
  font-size: clamp(1rem, .94rem + .18vw, 1.125rem);
  line-height: 1.65;
  opacity: .82;
}

.tt-privacy__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .7rem;
}

.tt-privacy__button,
.tt-privacy-choice {
  min-height: 46px;
  padding: .75rem 1rem;
  border: 1px solid currentColor;
  border-radius: 0;
  font: inherit;
  font-size: .78rem;
  font-weight: 800;
  line-height: 1.2;
  cursor: pointer;
}

.tt-privacy__button {
  background: transparent;
  color: #fff;
}

.tt-privacy__button--primary {
  border-color: var(--brand, #ec1a24);
  background: var(--brand, #ec1a24);
}

.tt-privacy__button:hover,
.tt-privacy__button:focus-visible {
  border-color: var(--brand, #ec1a24);
  color: var(--brand, #ec1a24);
}

.tt-privacy__button--primary:hover,
.tt-privacy__button--primary:focus-visible {
  background: var(--brand-dark, #c9121b);
  color: #fff;
}

.tt-privacy-choice {
  position: fixed;
  z-index: 9999;
  right: max(1rem, env(safe-area-inset-right));
  bottom: max(1rem, env(safe-area-inset-bottom));
  min-height: 42px;
  padding: .6rem .8rem;
  border-color: var(--workshop, #0c1216);
  background: #fff;
  color: var(--workshop, #0c1216);
  box-shadow: 0 24px 50px rgba(0,0,0,.24);
}

.tt-privacy-choice:hover,
.tt-privacy-choice:focus-visible {
  border-color: var(--brand, #ec1a24);
  color: var(--brand, #ec1a24);
}

/* Keep the fixed control in its own footer lane so it never covers the
   DEVECTUS credit. The lane exists only after a consent choice is stored and
   the compact privacy control is visible. */
body:has(.tt-privacy-choice:not([hidden])) .site-footer__base {
  padding-inline-end: max(var(--gutter, 1.25rem), 13rem);
}

.tt-privacy__button:focus-visible,
.tt-privacy-choice:focus-visible {
  outline: 3px solid var(--brand, #ec1a24);
  outline-offset: 3px;
}

@media (max-width: 760px) {
  body:has(.tt-privacy-choice:not([hidden])) .site-footer__base {
    padding-inline-end: var(--gutter, 1.25rem);
    padding-bottom: calc(5.25rem + env(safe-area-inset-bottom));
  }

  .tt-privacy {
    grid-template-columns: 1fr;
    align-items: stretch;
    gap: 1.25rem;
  }

  .tt-privacy__actions {
    justify-content: stretch;
  }

  .tt-privacy__button {
    flex: 1 1 10rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .tt-privacy *,
  .tt-privacy-choice {
    scroll-behavior: auto;
    transition-duration: .01ms !important;
  }
}
