/* =====================================================================
   CONSENT BANNER + INTAKE HONEYPOT

   Same paper, ink and green as the rest of the page: the banner is part of
   the site, not a bolted-on cookie widget. It appears only when an analytics
   id is configured (see analytics.js), so on the prototype and in the local
   preview it never renders at all.

   It sits above the Digital Guide launcher (z-index 100) and below the
   Guide panel, and reserves no layout space, so it cannot affect CLS.
   ===================================================================== */
.df-consent {
  position: fixed;
  z-index: 120;
  left: clamp(12px, 3vw, 24px);
  bottom: clamp(12px, 3vw, 24px);
  width: min(420px, calc(100vw - 24px));
  padding: 16px 18px;
  border: 1px solid rgba(23, 34, 28, .12);
  border-radius: 16px;
  background: #fbfaf7;
  box-shadow: 0 1px 2px rgba(16, 32, 25, .05), 0 24px 48px -28px rgba(16, 32, 25, .38);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  color: #F2EEE6;
}
.df-consent__text {
  margin: 0 0 12px;
  font-size: .88rem;
  line-height: 1.5;
  color: rgba(242, 238, 230, .75);
}
.df-consent__text a { color: #B6FF2E; font-weight: 600; text-decoration: underline; }
.df-consent__actions { display: flex; flex-wrap: wrap; gap: 8px; }
.df-consent__btn {
  min-height: 42px;
  padding: 10px 16px;
  border: 1px solid rgba(22, 32, 28, .3);
  border-radius: 999px;
  background: transparent;
  color: #F2EEE6;
  font: inherit;
  font-size: .9rem;
  font-weight: 600;
  cursor: pointer;
}
.df-consent__btn:hover { background: rgba(22, 32, 28, .05); }
.df-consent__btn--accept {
  border-color: transparent;
  background: #17221c;
  color: #f7f9f6;
}
.df-consent__btn--accept:hover { background: #22332a; }
.df-consent__btn:focus-visible { outline: 2px solid #B6FF2E; outline-offset: 3px; }

/* The Guide launcher sits bottom-right; on a narrow screen the banner would
   otherwise cover it. */
@media (max-width: 560px) {
  .df-consent { right: clamp(12px, 3vw, 24px); bottom: 96px; width: auto; }
}

@media (prefers-reduced-motion: reduce) {
  .df-consent { transition: none; animation: none; }
}

/* --------------------------------------------------------------- honeypot
   Not display:none — some bots skip hidden fields, and a real screen-reader
   user must not meet it either. Removed from the layout, from the tab order
   (tabindex=-1 in the markup) and from assistive tech (aria-hidden). */
.intake__trap {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
