.privacy-banner[hidden],
[data-privacy-settings][hidden],
.external-content [hidden] {
  display: none !important;
}

.privacy-banner {
  border-bottom: 1px solid #334155;
  background: #0f172a;
  color: #f8fafc;
}

.privacy-banner__inner {
  max-width: 72rem;
  margin-inline: auto;
  padding: 1rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: .75rem 1.5rem;
}

.privacy-banner__inner > div:first-child { flex: 1 1 24rem; }
.privacy-banner h2,
.privacy-dialog h2,
.external-content__title { font-weight: 700; }
.privacy-banner p,
.privacy-dialog p,
.external-content p { font-size: .875rem; line-height: 1.5; }
.privacy-banner p { margin-top: .25rem; color: #cbd5e1; }

.privacy-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  align-items: center;
}

.privacy-actions button,
.privacy-dialog__heading button {
  border: 1px solid #94a3b8;
  border-radius: .65rem;
  background: #1e293b;
  color: #f8fafc;
  padding: .55rem .8rem;
  font-size: .875rem;
  font-weight: 600;
  cursor: pointer;
  min-height: 44px;
}

.privacy-actions button:hover,
.privacy-dialog__heading button:hover { background: #334155; }
.privacy-dialog a,
.external-content a,
.privacy-footer { color: #fdba74; text-decoration: underline; text-underline-offset: .18em; }
.privacy-footer { margin-top: .75rem; min-height: 44px; padding: .25rem .5rem; }
.privacy-banner :focus-visible,
.privacy-dialog :focus-visible,
.external-content :focus-visible,
.privacy-footer:focus-visible { outline: 2px solid #fdba74; outline-offset: 3px; }

.privacy-dialog {
  box-sizing: border-box;
  position: fixed;
  inset: 0;
  margin: auto;
  width: min(36rem, calc(100% - 1.5rem));
  max-height: calc(100% - 1.5rem);
  overflow: auto;
  border: 1px solid #64748b;
  border-radius: 1rem;
  background: #0f172a;
  color: #f8fafc;
  padding: clamp(1rem, 4vw, 1.5rem);
}

.privacy-dialog::backdrop { background: rgb(2 6 23 / 78%); }
.privacy-dialog form { display: grid; gap: .9rem; }
.privacy-dialog__heading { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.privacy-dialog__heading h2 { font-size: 1.25rem; }
.privacy-dialog__heading button { min-width: 44px; font-size: 1.25rem; line-height: 1; }
.privacy-options { min-width: 0; border: 1px solid #64748b; border-radius: .75rem; padding: .25rem .75rem .5rem; }
.privacy-options legend { padding-inline: .3rem; font-weight: 600; font-size: .875rem; }
.privacy-options label { display: flex; gap: .65rem; align-items: start; padding: .55rem 0; cursor: pointer; }
.privacy-options input { margin-top: .25rem; accent-color: #fdba74; width: 1.1rem; height: 1.1rem; flex: none; }
.privacy-options small { display: block; color: #cbd5e1; font-size: .8125rem; margin-top: .15rem; }

.external-content { display: grid; min-height: 14rem; }
.external-content--video { aspect-ratio: 16 / 9; }
.external-content--map { min-height: 420px; }
.external-content__placeholder {
  display: grid;
  align-content: center;
  justify-items: center;
  gap: .75rem;
  padding: 1rem;
  text-align: center;
  color: #cbd5e1;
}
.external-content__placeholder .privacy-actions { justify-content: center; }
.external-content .external-content__title { color: #f8fafc; font-size: 1.1rem; }
.external-content a { font-size: .875rem; }
.external-content__frame iframe { display: block; width: 100%; height: 100%; border: 0; }
.external-content--map iframe { min-height: 420px; }
