/* Cookie consent — Nordhauser (behaviour ported from northnavia 2026-10-08).
 *
 * House style: white card on the bone page, 18px corners, shadow-lg, green-900 title,
 * pill buttons (terra primary = .btn-primary, outlined green secondary). Sits bottom-LEFT
 * so it never covers the chat launcher (bottom-right); on phones it becomes a
 * full-width bottom sheet above everything.
 */
.nh-consent {
  position: fixed;
  left: 24px;
  bottom: 24px;
  z-index: 10000; /* above the chat widget root (#ngb-chat-widget, 9999) */
  width: min(440px, calc(100vw - 48px));
  padding: 22px 24px 20px;
  background: #fff;
  color: var(--ink-700);
  border: 0;
  border-radius: 18px;
  box-shadow: var(--shadow-lg);
  font-family: var(--font-sans);
}
.nh-consent[hidden] { display: none; }

.nh-consent__title {
  margin: 0 0 8px;
  font-size: 17px;
  font-weight: 800;
  line-height: 1.25;
  color: var(--green-900);
}
.nh-consent__text {
  margin: 0;
  font-size: 14.5px;
  line-height: 1.55;
}
.nh-consent__text a {
  font-weight: 600;
  color: var(--green-800);
  text-decoration: underline;
  text-decoration-color: var(--bone-400);
  text-underline-offset: 3px;
}
.nh-consent__text a:hover { color: var(--terra-600); text-decoration-color: currentColor; }

.nh-consent__actions { display: flex; gap: 10px; margin-top: 18px; }

.nh-consent__btn {
  flex: 1 1 0;
  padding: 12px 20px;
  border-radius: 999px;
  border: 1px solid transparent;
  font-family: inherit;
  font-size: 14.5px;
  font-weight: 700;
  line-height: 1.2;
  cursor: pointer;
  transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.nh-consent__btn--accept { background: var(--terra-500); color: #fff; }
.nh-consent__btn--accept:hover { background: var(--terra-600); }
.nh-consent__btn--reject { background: transparent; color: var(--green-800); border-color: var(--bone-400); }
.nh-consent__btn--reject:hover { border-color: var(--green-700); color: var(--green-900); }

.nh-consent__btn:focus-visible { outline: 2px solid var(--terra-500); outline-offset: 2px; }

/* Phone: bottom sheet, accept on top, full-width buttons. */
@media (max-width: 560px) {
  .nh-consent {
    left: 0; right: 0; bottom: 0;
    width: 100%;
    padding: 20px 20px calc(18px + env(safe-area-inset-bottom));
    border-radius: 18px 18px 0 0;
    border-width: 1px 0 0;
  }
  .nh-consent__actions { flex-direction: column-reverse; }
}

@media (prefers-reduced-motion: reduce) {
  .nh-consent__btn { transition: none; }
}
