/* ==========================================================================
   Consent banner and "Your Privacy Choices" panel — every page
   (_includes/consent-banner.html). Self-contained so it reads the same on
   every layout; colours follow the /passes handoff (ink, cream, gold).
   Above the newsletter popup (9999), which would otherwise cover it.
   ========================================================================== */

.sf-consent,
.sf-choices {
  --sf-ink: #0C0B0A;
  --sf-cream: #F4F1EA;
  --sf-line: #3A3733;
  --sf-muted: #A9A398;
  --sf-gold: #F6B01E;
  --sf-gold-hover: #FFC23D;

  font-family: "DM Sans", system-ui, sans-serif;
  color: var(--sf-cream);
}

.sf-consent[hidden],
.sf-choices[hidden] {
  display: none;
}

.sf-consent {
  position: fixed;
  z-index: 10000;
  left: 24px;
  bottom: 24px;
  max-width: 440px;
  padding: 18px 20px;
  background: var(--sf-ink);
  border: 1px solid var(--sf-line);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.25);
}

.sf-consent__title,
.sf-choices__title {
  margin: 0 0 6px;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.3;
}

.sf-consent__text {
  margin: 0 0 14px;
  font-size: 13px;
  line-height: 1.5;
}

.sf-consent a {
  color: var(--sf-gold);
  text-decoration: underline;
}

.sf-consent__actions,
.sf-choices__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
  align-items: center;
}

.sf-consent__btn {
  min-height: 40px;
  padding: 0 18px;
  font: inherit;
  font-size: 13px;
  font-weight: 500;
  color: var(--sf-cream);
  background: transparent;
  border: 1px solid var(--sf-line);
  border-radius: 0;
  cursor: pointer;
}

.sf-consent__btn--link {
  margin-right: auto;
  padding: 0 4px;
  border-color: transparent;
  text-decoration: underline;
}

.sf-consent__btn--accept {
  color: var(--sf-ink);
  background: var(--sf-gold);
  border-color: var(--sf-gold);
}

.sf-consent__btn--accept:hover {
  background: var(--sf-gold-hover);
}

.sf-consent__btn:focus-visible,
.sf-choices__toggle:focus-visible {
  outline: 2px solid var(--sf-gold);
  outline-offset: 2px;
}

.sf-choices {
  position: fixed;
  z-index: 10001;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  background: rgba(0, 0, 0, 0.6);
}

.sf-choices__box {
  width: 100%;
  max-width: 520px;
  max-height: calc(100vh - 32px);
  overflow-y: auto;
  padding: 24px;
  background: var(--sf-ink);
  border: 1px solid var(--sf-line);
}

.sf-choices__title {
  margin-bottom: 12px;
  font-size: 18px;
}

.sf-choices__note {
  margin: 0 0 12px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--sf-gold);
}

.sf-choices__row {
  display: flex;
  gap: 16px;
  justify-content: space-between;
  align-items: flex-start;
  padding: 14px 0;
  border-top: 1px solid var(--sf-line);
  cursor: pointer;
}

.sf-choices__row--fixed {
  cursor: default;
}

.sf-choices__label {
  display: block;
  margin: 0 0 4px;
  font-size: 14px;
  font-weight: 600;
}

.sf-choices__desc {
  display: block;
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
  color: var(--sf-muted);
}

.sf-choices__always {
  flex: none;
  font-size: 12px;
  color: var(--sf-muted);
}

.sf-choices__toggle {
  flex: none;
  width: 20px;
  height: 20px;
  margin-top: 2px;
  accent-color: var(--sf-gold);
  cursor: pointer;
}

.sf-choices__actions {
  padding-top: 16px;
  border-top: 1px solid var(--sf-line);
}

@media (max-width: 759px) {
  .sf-consent {
    left: 16px;
    right: 16px;
    bottom: 16px;
    max-width: none;
  }
}
