:root {
  --lt-consent-blue: #00118a;
  --lt-consent-white: #ffffff;
  --lt-consent-ink: #101828;
  --lt-consent-muted: #475467;
  --lt-consent-border: #b7c1e8;
}

.lt-consent-banner,
.lt-consent-dialog {
  color: var(--lt-consent-ink);
  font: 400 1rem/1.5 system-ui, sans-serif;
}

.lt-consent-banner {
  position: fixed;
  z-index: 1000;
  right: 1rem;
  bottom: 1rem;
  left: 1rem;
  max-width: 48rem;
  margin-inline: auto;
  padding: 1.25rem;
  border: 2px solid var(--lt-consent-blue);
  border-radius: .75rem;
  background: var(--lt-consent-white);
  box-shadow: 0 .5rem 2rem rgb(0 17 138 / 25%);
}

.lt-consent-banner h2,
.lt-consent-dialog h2,
.lt-consent-dialog h3 { color: var(--lt-consent-blue); }
.lt-consent-banner h2 { margin-top: 0; font-size: 1.25rem; }
.lt-consent-banner p { color: var(--lt-consent-muted); }

.lt-consent-actions { display: flex; flex-wrap: wrap; gap: .75rem; }

.lt-consent-button {
  min-height: 2.75rem;
  padding: .6rem 1rem;
  border: 2px solid var(--lt-consent-blue);
  border-radius: .35rem;
  background: var(--lt-consent-blue);
  color: var(--lt-consent-white);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}

.lt-consent-button--secondary { background: var(--lt-consent-white); color: var(--lt-consent-blue); }
.lt-consent-button--link { min-height: auto; padding: .25rem; border: 0; background: transparent; color: var(--lt-consent-blue); text-decoration: underline; }
.lt-consent-button:focus-visible,
.lt-consent-field:focus-within { outline: 3px solid #ffbf47; outline-offset: 3px; }

.lt-consent-dialog {
  width: min(100% - 2rem, 42rem);
  max-height: calc(100dvh - 2rem);
  padding: 0;
  border: 2px solid var(--lt-consent-blue);
  border-radius: .75rem;
}
.lt-consent-dialog::backdrop { background: rgb(0 17 138 / 55%); }
.lt-consent-dialog__body { padding: 1.25rem; }
.lt-consent-dialog__body > :first-child { margin-top: 0; }
.lt-consent-field { display: block; margin: 1rem 0; padding: 1rem; border: 1px solid var(--lt-consent-border); border-radius: .5rem; }
.lt-consent-field input { inline-size: 1.15rem; block-size: 1.15rem; vertical-align: middle; }
.lt-consent-field small { display: block; margin-left: 1.8rem; color: var(--lt-consent-muted); }
.lt-consent-status { margin: 1rem; color: var(--lt-consent-muted); }

@media (min-width: 48rem) { .lt-consent-banner { left: auto; } }
.lt-consent-banner[hidden], [data-lt-consent-preferences][hidden] { display: none !important; }
@media (prefers-reduced-motion: reduce) { .lt-consent-dialog { scroll-behavior: auto !important; } }
