.nf-visitor-preferences {
  max-width: 1320px;
  margin: auto;
  padding: 0 5vw 1rem;
}

.nf-visitor-preferences button {
  padding: .3rem 0;
  border: 0;
  background: transparent;
  color: #465c64;
  font: 600 .75rem/1.5 Arial, Helvetica, sans-serif;
  text-decoration: underline;
  text-underline-offset: .2em;
  cursor: pointer;
}

.article-sidebar .nf-visitor-preferences {
  padding: .35rem 0 .55rem;
  border-bottom: 1px solid #d9dfd7;
}

.nf-visitor-dialog {
  position: fixed;
  inset: 0;
  box-sizing: border-box;
  width: min(34rem, calc(100% - 2rem));
  max-height: calc(100% - 2rem);
  margin: auto;
  padding: 0;
  overflow: auto;
  border: 1px solid #d9dfd7;
  border-top: 3px solid var(--accent, #a86e49);
  border-radius: 7px;
  background: #f8f7f3;
  color: #263a40;
  box-shadow: 0 14px 42px #1c354c30;
}

.nf-visitor-dialog::backdrop { background: #192c395e; }

.nf-visitor-copy,
.nf-visitor-footer { padding-inline: clamp(1.1rem, 5vw, 1.8rem); }

.nf-visitor-copy { padding-block: 1.55rem 1.3rem; }

.nf-visitor-dialog .nf-visitor-kicker {
  margin: 0 0 .55rem;
  color: #874e2d;
  font: 700 .65rem/1.4 Arial, Helvetica, sans-serif;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.nf-visitor-dialog h2 {
  margin: 0 0 .65rem;
  font: clamp(1.65rem, 4vw, 2.1rem)/1.16 Georgia, serif;
  letter-spacing: -.025em;
}

#visitor-consent-details {
  margin: 0;
  color: #4c6063;
  font: .9rem/1.65 Arial, Helvetica, sans-serif;
}

#visitor-consent-details p { margin: 0; }
#visitor-consent-details p + p { margin-top: .55rem; }

.nf-visitor-footer {
  padding-block: 1rem;
  border-top: 1px solid #d9dfd7;
  background: #f0f1eb;
}

.nf-visitor-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: .4rem .9rem;
}

.nf-visitor-actions button {
  min-height: 44px;
  padding: .55rem .75rem;
  border: 1px solid transparent;
  font: 600 .8rem/1.4 Arial, Helvetica, sans-serif;
  cursor: pointer;
}

.nf-visitor-actions .nf-visitor-secondary {
  background: transparent;
  color: #253e53;
  font-size: 10pt;
}

.nf-visitor-secondary:hover { text-decoration: underline; }

.nf-visitor-actions .nf-visitor-primary {
  padding-inline: 1rem;
  border: 1px solid #a3d63c;
  border-radius: 999px;
  background: linear-gradient(#356d45, #265538);
  color: #fff;
  transition: box-shadow .15s ease;
}

.nf-visitor-primary:active,
.nf-visitor-primary.nf-visitor-saving {
  transform: translateY(-2px);
  box-shadow: 0 4px 7px #153c252e;
}
.nf-visitor-actions button:focus-visible,
.nf-visitor-preferences button:focus-visible { outline: 2px solid #253e53; outline-offset: 3px; }
.nf-visitor-actions button:disabled { opacity: .65; cursor: wait; }

.nf-visitor-note {
  margin: .6rem 0 0;
  color: #4c6063;
  font: .75rem/1.45 Arial, Helvetica, sans-serif;
}

.nf-visitor-dialog [role="alert"] { margin: .6rem 0 0; color: #972d23; }

@media (prefers-reduced-motion: reduce) {
  .nf-visitor-actions .nf-visitor-primary { transition: none; }
}
